From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Winkler, Tomas" Subject: Re: [PATCH v9 35/39] misc/mei/hdcp: Component framework for I915 Interface Date: Sat, 15 Dec 2018 21:20:38 +0000 Message-ID: <5B8DA87D05A7694D9FA63FD143655C1B9DA53C91@hasmsx108.ger.corp.intel.com> References: <1544673701-6353-1-git-send-email-ramalingam.c@intel.com> <1544673701-6353-36-git-send-email-ramalingam.c@intel.com> <5B8DA87D05A7694D9FA63FD143655C1B9DA5248E@hasmsx108.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: 'Daniel Vetter' Cc: "Rafael J. Wysocki" , intel-gfx , dri-devel , Sean Paul , Greg KH List-Id: dri-devel@lists.freedesktop.org PiANCj4gT24gVGh1LCBEZWMgMTMsIDIwMTggYXQgNToyNyBQTSBXaW5rbGVyLCBUb21hcyA8dG9t YXMud2lua2xlckBpbnRlbC5jb20+DQo+IHdyb3RlOg0KPiA+DQo+ID4gPiBPbiBUaHUsIERlYyAx MywgMjAxOCBhdCAxOjM2IFBNIEMsIFJhbWFsaW5nYW0NCj4gPiA+IDxyYW1hbGluZ2FtLmNAaW50 ZWwuY29tPg0KPiA+ID4gd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+IFRvbWFzIGFuZCBEYW5pZWws DQo+ID4gPiA+DQo+ID4gPiA+IFdlIGdvdCBhbiBpc3N1ZSBoZXJlLg0KPiA+ID4gPg0KPiA+ID4g PiBUaGUgcmVsYXRpb25zaGlwIHRoYXQgd2UgdHJ5IHRvIGJ1aWxkIGJldHdlZW4gSTkxNSBhbmQg bWVpX2hkY3AgaXMgYXMNCj4gZm9sbG93czoNCj4gPiA+ID4NCj4gPiA+ID4gV2UgYXJlIHVzaW5n IHRoZSBjb21wb25lbnRzIHRvIGVzdGFibGlzaCB0aGUgcmVsYXRpb25zaGlwLg0KPiA+ID4gPiBJ OTE1IGlzIGNvbXBvbmVudCBtYXN0ZXIgd2hlcmUgYXMgbWVpX2hkY3AgaXMgY29tcG9uZW50Lg0K PiA+ID4gPiBJOTE1IGFkZHMgdGhlIGNvbXBvbmVudCBtYXN0ZXIgZHVyaW5nIHRoZSBtb2R1bGUg bG9hZC4gbWVpX2hkY3ANCj4gPiA+ID4gYWRkcyB0aGUNCj4gPiA+IGNvbXBvbmVudCB3aGVuIHRo ZSBkcml2ZXItPnByb2JlIGlzIGNhbGxlZCAob24gZGV2aWNlIGRyaXZlciBiaW5kaW5nKS4NCj4g PiA+ID4gSTkxNSBmb3JjZXMgaXRzZWxmIHN1Y2ggdGhhdCB1bnRpbCBtZWlfaGRjcCBjb21wb25l bnQgaXMgYWRkZWQNCj4gPiA+ID4gSTkxNV9sb2FkDQo+ID4gPiB3b250IGJlIGNvbXBsZXRlLg0K PiA+ID4gPiBTaW1pbGFybHkgb24gY29tcGxldGUgc3lzdGVtLCBpZiBtZWlfaGRjcCBjb21wb25l bnQgaXMgcmVtb3ZlZCwNCj4gPiA+IGltbWVkaWF0ZWx5IEk5MTUgdW5yZWdpc3RlciBpdHNlbGYg YW5kIEhXIHdpbGwgYmUgc2h1dGRvd24uDQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgaXMgY29tcGxl dGVseSBmaW5lIHdoZW4gdGhlIG1vZHVsZXMgYXJlIGxvYWRlZCBhbmQgdW5sb2FkZWQuDQo+ID4g PiA+DQo+ID4gPiA+IEJ1dCBkdXJpbmcgc3VzcGVuZCwgbWVpIGRldmljZSBkaXNhcHBlYXJzIGFu ZCBtZWkgYnVzIGhhbmRsZXMgaXQNCj4gPiA+ID4gYnkNCj4gPiA+IHVuYmluZGluZyBkZXZpY2Ug YW5kIGRyaXZlciBieSBjYWxsaW5nIGRyaXZlci0+cmVtb3ZlLg0KPiA+ID4gPiBUaGlzIGluLXR1 cm4gcmVtb3ZlcyB0aGUgY29tcG9uZW50IGFuZCB0cmlnZ2VycyB0aGUgbWFzdGVyIHVuYmluZA0K PiA+ID4gPiBvZiBJOTE1DQo+ID4gPiB3aGVyZSwgSTkxNSB1bnJlZ2lzdGVyIGl0c2VsZi4NCj4g PiA+ID4gVGhpcyBjYXVzZSB0aGUgSFcgc3RhdGUgbWlzbWF0Y2ggZHVyaW5nIHRoZSBzdXNwZW5k IGFuZCByZXN1bWUuDQo+ID4gPiA+DQo+ID4gPiA+IFBsZWFzZSBjaGVjayB0aGUgcG93ZXJ3ZWxs IG1pc21hdGNoIGVycm9ycyBhdCBDSSByZXBvcnQgZm9yIHY5DQo+ID4gPiA+IGh0dHBzOi8vaW50 ZWwtZ2Z4LWNpLjAxLm9yZy90cmVlL2RybS10aXAvVHJ5Ym90XzM0MTIvZmktZ2xrLWo0MDA1Lw0K PiA+ID4gPiBpZ3RADQo+ID4gPiA+IGdlbV9leGVjX3N1c3BlbmRAYmFzaWMtczMuaHRtbA0KPiA+ ID4gPg0KPiA+ID4gPiBNb3JlIG92ZXIgdW5yZWdpc3RlcmluZyBJOTE1IGR1cmluZyB0aGUgc3Vz cGVuZCBpcyBub3QgZXhwZWN0ZWQuDQo+ID4gPiA+IFNvIGhvdyBkbw0KPiA+ID4gd2UgaGFuZGxl IHRoaXM/DQo+ID4gPg0KPiA+ID4gQml0IG1vcmUgY29udGV4dCBmcm9tIG91ciBpcmMgZGlzY3Vz c2lvbiB3aXRoIFJhbToNCj4gPiA+DQo+ID4gPiBJIGZvdW5kIHRoaXMgdmVyeSBzdXJwcmlzaW5n LCBzaW5jZSBJIGRvbid0IGtub3cgb2YgYW55IG90aGVyDQo+ID4gPiBzdWJzeXN0ZW1zIHdoZXJl IHRoZSBkZXZpY2VzIGdldCBvdXRyaWdodCByZW1vdmVkIHdoZW4gZ29pbmcgdGhyb3VnaCBhDQo+ IHN1c3BlbmQvcmVzdW1lIGN5Y2xlLg0KPiA+ID4gVGhlIGRldmljZSBtb2RlbCB3YXMgYnVpbHQg dG8gaGFuZGxlIHRoaXMgc3R1ZmYNCj4gPiA+IGNvcnJlY3RseTogRmlyc3QgY2xpZW50cy9kZXZp Y2VzL2ludGVyZmFjZXMgZ2V0IHN1c3BlbmQsIHRoZW4gdGhlDQo+ID4gPiBwYXJlbnQvYnJpZGdl L2J1cy4gU2FtZSBkYW5jZSBpbiByZXZlcnNlIHdoZW4gcmVzdW1pbmcuIFRoaXMgZXZlbg0KPiA+ ID4gaG9sZHMgZm9yIGxvdHMgb2YgaG90cGx1Z2dhYmxlIGJ1c2VzLCB3aGVyZSBjaGlsZCBkZXZp Y2VzIGNvdWxkDQo+ID4gPiBpbmRlZWQgZGlzYXBwZWFyIG9uIHJlc3VtZSwgYnV0IGFzIGxvbmcg YXMgdGhleSBkb24ndCwgZXZlcnl0aGluZw0KPiA+ID4gc3RheXMgdGhlIHNhbWUuIEl0J3MgcmVh bGx5IHN1cnByaXNpbmcgZm9yIHNvbWV0aGluZyB0aGF0J3Mgc29sZGVyZWQgb250byB0aGUNCj4g Ym9hcmQgbGlrZSBNRS4NCj4gPg0KPiA+IEhEQ1AgaXMgYW4gYXBwbGljYXRpb24gaW4gdGhlIE1F IGl0J3Mgbm90IE1FIGl0c2VsZi4uICBPbiB0aGUgbGludXgNCj4gPiBzaWRlIEhEQ1AyIGlzIGEg dmlydHVhbCBkZXZpY2UgIG9uIG1laSBjbGllbnQgdmlydHVhbCBidXMsIHRoZSBidXMgIGlzIHRl YXJlZA0KPiBkb3duIG9uIE1FIHJlc2V0LCB3aGljaCBtb3N0bHkgaGFwcGVuICBvbiBwb3dlciB0 cmFuc2l0aW9ucy4NCj4gPiBUaGVvcmV0aWNhbGx5LCAgd2UgY291bGQga2VlcCBpdCB1cCBkdXJp bmcgcG93ZXIgdHJhbnNpdGlvbnMsIGJ1dCBzbw0KPiA+IGZhcmUgaXQgd2FzIG5vdCBuZWNlc3Nh cnkgYW5kIHNlY29uZCBpdCdzIG5vdCBndWFyYW50aWUgdGhhdCB0aGUgYWxsIE1FDQo+IGFwcGxp Y2F0aW9ucyB3aWxsIHJlYXBwZWFyIGFmdGVyIHJlc2V0Lg0KPiANCj4gV2hlbiBkb2VzIHRoaXMg aGFwcGVuIHRoYXQgYW4gTUUgYXBwbGljYXRpb24gZG9lc24ndCBjb21lIGJhY2sgYWZ0ZXIgZS5n Lg0KPiBzdXNwZW5kL3Jlc3VtZT8NCk5vLCB0aGlzIGNhbiBoYXBwZW4gaW4gc3BlY2lhbCBmbG93 cyBzdWNoIGFzICBmdyB1cGRhdGVzIGFuZCBlcnJvciBjb25kaXRpb25zLCBidXQgaXMgaGFzIHRv IGJlIHN1cHBvcnRlZCBhcyB3ZWxsLiANCiANCj4gDQo+IEFsc28sIHdoYXQncyBhbGwgdGhlIHBs YWNlIHdoZXJlIHRoaXMgcmVzZXQgY2FuIGhhcHBlbj8gSnVzdA0KPiBzdXNwZW5kL3Jlc3VtZS9o aWJlcm5hdGUgYW5kIGFsbCB0aGVzZSwgb3IgYWxzbyBhdCBvdGhlciB0aW1lcz8NCg0KQWxzbyBv biBlcnJvcnMgYW5kIGZ3IHVwZGF0ZSwgIHRoZSBiYXNpYyBhc3N1bXB0aW9uIGlzIGhlcmUgdGhh dCBpdCBjYW4gaGFwcGVuIGFueSB0aW1lLiANCg0KPiBIb3cgZG9lcyB1c2Vyc3BhY2UgZGVhbCB3 aXRoIHRoZSByZXNldCBvdmVyIHMvcj8gSSdtIGFzc3VtaW5nIHRoYXQgYXQgbGVhc3QgdGhlDQo+ IGRldmljZSBub2RlIGZpbGUgd2lsbCBiZWNvbWUgaW52YWxpZCAob3Igd2hhdGV2ZXIgeW91J3Jl IHVzaW5nIGFzIHVzZXJzcGFjZQ0KPiBhcGkpLCBzbyBpZiB1c2Vyc3BhY2UgaXMgYWNjZXNzaW5n IHN0dWZmIG9uIHRoZSBtZSBhdCB0aGUgc2FtZSB0aW1lIGFzIHdlIGRvIGENCj4gc3VzcGVuZC9y ZXN1bWUsIHdoYXQgaGFwcGVucz8NCj4gDQo+ID4gPiBBc2lkZTogV2UnbGwgcHJvYmFibHkgbmVl ZCBhIGRldmljZV9saW5rIHRvIG1ha2Ugc3VyZSBtZWlfaGRjcCBpcw0KPiA+ID4gZnVsbHkgcmVz dW1lZCBiZWZvcmUgaTkxNSBnZXRzIHJlc3VtZWQsIGJ1dCB0aGF0J3Mga2luZGEgYSBkZXRhaWwg Zm9yIGxhdGVyDQo+IG9uLg0KPiA+DQo+ID4gRnJhbmtseSBJIGRvbuKAmXQgYmVsaWV2ZSB0aGVy ZSBpcyBjdXJyZW50bHkgZXhhY3QgYWJzdHJhY3Rpb24gdGhhdA0KPiA+IHN1cHBvcnRzIHRoaXMg bW9kZWwsIG5laXRoZXIgY29tcG9uZW50cyBub3IgZGV2aWNlX2xpbmsgLg0KPiA+IFNvIGZhcmUg d2UgdXNlZCBjbGFzcyBpbnRlcmZhY2UgZm9yIG90aGVyIHB1cnBvc2VzLCBpdCB3b3JrZWQgd2Vs bC4NCj4gDQo+IEknbSBub3QgY2xlYXIgb24gd2hhdCBjbGFzcyBpbnRlcmZhY2UgaGFzIHRvIGRv IHdpdGggY29tcG9uZW50IG9yIGRldmljZSBsaW5rLg0KPiBUaGV5IGFsbCBzb2x2ZSBkaWZmZXJl bnQgcHJvYmxlbXMsIGF0IGxlYXN0IGFzIGZhciBhcyBJIHVuZGVyc3RhbmQgYWxsIHRoaXMgc3R1 ZmYgLi4uDQo+IC1EYW5pZWwNCg0KSXQgY29tZXMgaW5zdGVhZCBvZiBpdCwgZGV2aWNlX2xpbmsg aXMgbW9zdGx5IHVzZWQgZm9yIHBvd2VyIG1hbmFnZW1lbnQgYW5kIGNvbXBvbmVudCBhcyB3ZSBz ZWUga25vdyBpcyBub3Qgd2hhdCB3ZSBuZWVkIGFzIEhEQ1AgDQpJcyBhIGIgaXQgdm9saXRsZS4g DQpjbGFzc19pbnRlcmZhY2UgIGdpdmVzIHlvdSB0d28gaGFuZGxlcnM6IGFkZCBhbmQgcmVtb3Zl IGRldmljZSwgdGhhdCdzIGFsbCB3aGF0IGlzIG5lZWRlZCBmb3IgdGhlIGN1cnJlbnQgaW1wbGVt ZW50YXRpb24uIA0KPiANCj4gPiA+IFRvbWFzLCBjYW4geW91IHBscyBleHBsYWluIHdoeSBtZWkg aXMgZGVzaWduZWQgbGlrZSB0aGlzPyBPciBpcw0KPiA+ID4gdGhlcmUgc29tZXRoaW5nIGVsc2Ug d2UncmUgbWlzc2luZyAoSSBkaWRuJ3QgZGlnIHRocm91Z2ggdGhlIG1laSBidXMNCj4gPiA+IGlu IGRldGFpbCBhdCBhbGwsIHNvIG5vdCBjbGVhciBvbiB3aGF0IGV4YWN0bHkgaXMgZ29pbmcgb24g dGhlcmUpLg0KPiA+IEFib3ZlLg0KPiA+ID4NCj4gPiA+IEFsc28gcHVsbGluZyBpbiBkZXZpY2Ug bW9kZWwgYW5kIHN1c3BlbmQvcmVzdW1lIGV4cGVydHMuDQo+ID4gPg0KPiA+ID4gVGhhbmtzLCBE YW5pZWwNCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IC1SYW0NCj4gPiA+ID4NCj4gPiA+ID4gT24g MTIvMTMvMjAxOCA5OjMxIEFNLCBSYW1hbGluZ2FtIEMgd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+ IE1laSBoZGNwIGRyaXZlciBpcyBkZXNpZ25lZCBhcyBjb21wb25lbnQgc2xhdmUgZm9yIHRoZSBJ OTE1DQo+ID4gPiA+IGNvbXBvbmVudCBtYXN0ZXIuDQo+ID4gPiA+DQo+ID4gPiA+IHYyOiBSZWJh c2VkLg0KPiA+ID4gPiB2MzoNCj4gPiA+ID4gICBOb3RpZmllciBjaGFpbiBpcyBhZG9wdGVkIGZv ciBjbGRldiBzdGF0ZSB1cGRhdGUgW1RvbWFzXQ0KPiA+ID4gPiB2NDoNCj4gPiA+ID4gICBNYWRl IHN0YXRpYyBkdW1teSBmdW5jdGlvbnMgYXMgaW5saW5lIGluIG1laV9oZGNwLmgNCj4gPiA+ID4g ICBBUEkgZm9yIHBvbGxpbmcgY2xpZW50IGRldmljZSBzdGF0dXMNCj4gPiA+ID4gICBJU19FTkFC TEVEIHVzZWQgaW4gaGVhZGVyLCBmb3IgY29uZmlnIHN0YXR1cyBmb3IgbWVpX2hkY3AuDQo+ID4g PiA+IHY1Og0KPiA+ID4gPiAgIFJlcGxhY2luZyB0aGUgbm90aWZpZXIgd2l0aCBjb21wb25lbnQg ZnJhbWV3b3JrLiBbRGFuaWVsXQ0KPiA+ID4gPiB2NjoNCj4gPiA+ID4gICBSZWJhc2VkIG9uIHRo ZSBJOTE1IGNvbXAgbWFzdGVyIHJlZGVzaWduLg0KPiA+ID4gPiB2NzoNCj4gPiA+ID4gICBtZWlf aGRjcF9jb21wb25lbnRfcmVnaXN0ZXJlZCBpcyBtYWRlIHN0YXRpYyBbVW1hXQ0KPiA+ID4gPiAg IE5lZWQgZm9yIGdsb2JhbCBzdGF0aWMgdmFyaWFibGUgbWVpX2NsZGV2IGlzIHJlbW92ZWQuDQo+ ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5j QGludGVsLmNvbT4NCj4gPiA+ID4gUmV2aWV3ZWQtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmth ckBpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgZHJpdmVycy9taXNjL21laS9oZGNw L21laV9oZGNwLmMgfCA2Nw0KPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tDQo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9t ZWkvaGRjcC9tZWlfaGRjcC5jDQo+ID4gPiA+IGIvZHJpdmVycy9taXNjL21laS9oZGNwL21laV9o ZGNwLmMNCj4gPiA+ID4gaW5kZXggYjIyYTcxZThjNWQ3Li4zZGUxNzAwZGNjOWYgMTAwNjQ0DQo+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvbWlzYy9tZWkvaGRjcC9tZWlfaGRjcC5jDQo+ID4gPiA+ICsr KyBiL2RyaXZlcnMvbWlzYy9tZWkvaGRjcC9tZWlfaGRjcC5jDQo+ID4gPiA+IEBAIC0yMywxMSAr MjMsMTQgQEANCj4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+ID4gPiA+ICAjaW5j bHVkZSA8bGludXgvdXVpZC5oPg0KPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L21laV9jbF9idXMu aD4NCj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4NCj4gPiA+ID4gICNpbmNs dWRlIDxkcm0vZHJtX2Nvbm5lY3Rvci5oPg0KPiA+ID4gPiAgI2luY2x1ZGUgPGRybS9pOTE1X2Nv bXBvbmVudC5oPg0KPiA+ID4gPg0KPiA+ID4gPiAgI2luY2x1ZGUgIm1laV9oZGNwLmgiDQo+ID4g PiA+DQo+ID4gPiA+ICtzdGF0aWMgYm9vbCBtZWlfaGRjcF9jb21wb25lbnRfcmVnaXN0ZXJlZDsN Cj4gPiA+ID4gKw0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ICAgKiBtZWlfaW5pdGlhdGVfaGRjcDJf c2Vzc2lvbigpIC0gSW5pdGlhdGUgYSBXaXJlZCBIRENQMi4yIFR4DQo+ID4gPiA+IFNlc3Npb24g aW4gTUUNCj4gPiA+IEZXDQo+ID4gPiA+ICAgKiBAZGV2OiBkZXZpY2UgY29ycmVzcG9uZGluZyB0 byB0aGUgbWVpX2NsX2RldmljZSBAQCAtNjkxLDgNCj4gPiA+ID4gKzY5NCw3IEBAIG1laV9jbG9z ZV9oZGNwX3Nlc3Npb24oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QNCj4gPiA+ID4gaGRjcF9w b3J0X2RhdGENCj4gPiA+ICpkYXRhKQ0KPiA+ID4gPiAgIHJldHVybiAwOw0KPiA+ID4gPiAgfQ0K PiA+ID4gPg0KPiA+ID4gPiAtc3RhdGljIF9fYXR0cmlidXRlX18oKHVudXNlZCkpDQo+ID4gPiA+ IC1zdHJ1Y3QgaTkxNV9oZGNwX2NvbXBvbmVudF9vcHMgbWVpX2hkY3Bfb3BzID0gew0KPiA+ID4g PiArc3RhdGljIHN0cnVjdCBpOTE1X2hkY3BfY29tcG9uZW50X29wcyBtZWlfaGRjcF9vcHMgPSB7 DQo+ID4gPiA+ICAgLm93bmVyID0gVEhJU19NT0RVTEUsDQo+ID4gPiA+ICAgLmluaXRpYXRlX2hk Y3AyX3Nlc3Npb24gPSBtZWlfaW5pdGlhdGVfaGRjcDJfc2Vzc2lvbiwNCj4gPiA+ID4gICAudmVy aWZ5X3JlY2VpdmVyX2NlcnRfcHJlcGFyZV9rbSA9DQo+ID4gPiA+IG1laV92ZXJpZnlfcmVjZWl2 ZXJfY2VydF9wcmVwYXJlX2ttLA0KPiA+ID4gPiBAQCAtNzA3LDIwICs3MDksNzcgQEAgc3RydWN0 IGk5MTVfaGRjcF9jb21wb25lbnRfb3BzDQo+IG1laV9oZGNwX29wcw0KPiA+ID4gPiA9DQo+ID4g PiB7DQo+ID4gPiA+ICAgLmNsb3NlX2hkY3Bfc2Vzc2lvbiA9IG1laV9jbG9zZV9oZGNwX3Nlc3Np b24sICB9Ow0KPiA+ID4gPg0KPiA+ID4gPiArc3RhdGljIGludCBtZWlfaGRjcF9jb21wb25lbnRf YmluZChzdHJ1Y3QgZGV2aWNlICptZWlfa2RldiwNCj4gPiA+ID4gKyAgIHN0cnVjdCBkZXZpY2Ug Kmk5MTVfa2Rldiwgdm9pZCAqZGF0YSkgeyAgc3RydWN0DQo+ID4gPiA+ICtpOTE1X2NvbXBvbmVu dF9tYXN0ZXIgKm1hc3Rlcl9jb21wID0gZGF0YTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArIGRldl9p bmZvKG1laV9rZGV2LCAiTUVJIEhEQ1AgY29tcCBiaW5kXG4iKTsNCj4gPiA+ID4gKyBXQVJOX09O KG1hc3Rlcl9jb21wLT5oZGNwX29wcyk7IG1hc3Rlcl9jb21wLT5oZGNwX29wcyA9DQo+ID4gPiA+ ICsgJm1laV9oZGNwX29wczsgbWFzdGVyX2NvbXAtPm1laV9kZXYgPSBtZWlfa2RldjsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArIHJldHVybiAwOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ ICtzdGF0aWMgdm9pZCBtZWlfaGRjcF9jb21wb25lbnRfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKm1l aV9rZGV2LA0KPiA+ID4gPiArICAgICAgc3RydWN0IGRldmljZSAqaTkxNV9rZGV2LCB2b2lkICpk YXRhKSB7ICBzdHJ1Y3QNCj4gPiA+ID4gK2k5MTVfY29tcG9uZW50X21hc3RlciAqbWFzdGVyX2Nv bXAgPSBkYXRhOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgZGV2X2luZm8obWVpX2tkZXYsICJNRUkg SERDUCBjb21wIHVuYmluZFxuIik7DQo+ID4gPiA+ICttYXN0ZXJfY29tcC0+aGRjcF9vcHMgPSBO VUxMOyAgbWFzdGVyX2NvbXAtPm1laV9kZXYgPSBOVUxMOyB9DQo+ID4gPiA+ICsNCj4gPiA+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyBtZWlfaGRjcF9jb21wb25lbnRfYmlu ZF9vcHMgPSB7DQo+ID4gPiA+ICsuYmluZCA9IG1laV9oZGNwX2NvbXBvbmVudF9iaW5kLCAgLnVu YmluZCA9DQo+ID4gPiA+ICttZWlfaGRjcF9jb21wb25lbnRfdW5iaW5kLCB9Ow0KPiA+ID4gPiAr DQo+ID4gPiA+ICtzdGF0aWMgdm9pZCBtZWlfaGRjcF9jb21wb25lbnRfaW5pdChzdHJ1Y3QgZGV2 aWNlICpkZXYpIHsgIGludA0KPiA+ID4gPiArcmV0Ow0KPiA+ID4gPiArDQo+ID4gPiA+ICsgZGV2 X2luZm8oZGV2LCAiTUVJIEhEQ1AgY29tcCBpbml0XG4iKTsgcmV0ID0gY29tcG9uZW50X2FkZChk ZXYsDQo+ID4gPiA+ICsgJm1laV9oZGNwX2NvbXBvbmVudF9iaW5kX29wcyk7IGlmIChyZXQgPCAw KSB7IGRldl9lcnIoZGV2LA0KPiA+ID4gPiArICJGYWlsZWQgdG8gYWRkIE1FSSBIRENQIGNvbXAg KCVkKVxuIiwgcmV0KTsgcmV0dXJuOyB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyBtZWlfaGRjcF9j b21wb25lbnRfcmVnaXN0ZXJlZCA9IHRydWU7IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArc3RhdGlj IHZvaWQgbWVpX2hkY3BfY29tcG9uZW50X2NsZWFudXAoc3RydWN0IGRldmljZSAqZGV2KSB7ICBp Zg0KPiA+ID4gPiArKCFtZWlfaGRjcF9jb21wb25lbnRfcmVnaXN0ZXJlZCkgIHJldHVybjsNCj4g PiA+ID4gKw0KPiA+ID4gPiArIGRldl9pbmZvKGRldiwgIk1FSSBIRENQIGNvbXAgY2xlYW51cFxu Iik7ICBjb21wb25lbnRfZGVsKGRldiwNCj4gPiA+ID4gKyZtZWlfaGRjcF9jb21wb25lbnRfYmlu ZF9vcHMpOyAgbWVpX2hkY3BfY29tcG9uZW50X3JlZ2lzdGVyZWQgPQ0KPiA+ID4gPiArZmFsc2U7 IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiAgc3RhdGljIGludCBtZWlfaGRjcF9wcm9iZShzdHJ1Y3Qg bWVpX2NsX2RldmljZSAqY2xkZXYsDQo+ID4gPiA+ICAgIGNvbnN0IHN0cnVjdCBtZWlfY2xfZGV2 aWNlX2lkICppZCkgIHsNCj4gPiA+ID4gICBpbnQgcmV0Ow0KPiA+ID4gPg0KPiA+ID4gPiAgIHJl dCA9IG1laV9jbGRldl9lbmFibGUoY2xkZXYpOw0KPiA+ID4gPiAtIGlmIChyZXQgPCAwKQ0KPiA+ ID4gPiArIGlmIChyZXQgPCAwKSB7DQo+ID4gPiA+ICAgZGV2X2VycigmY2xkZXYtPmRldiwgIm1l aV9jbGRldl9lbmFibGUgRmFpbGVkLiAlZFxuIiwgcmV0KTsNCj4gPiA+ID4gKyByZXR1cm4gcmV0 Ow0KPiA+ID4gPiArIH0NCj4gPiA+ID4gKyBtZWlfaGRjcF9jb21wb25lbnRfaW5pdCgmY2xkZXYt PmRldik7DQo+ID4gPiA+DQo+ID4gPiA+IC0gcmV0dXJuIHJldDsNCj4gPiA+ID4gKyByZXR1cm4g MDsNCj4gPiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gIHN0YXRpYyBpbnQgbWVpX2hkY3BfcmVt b3ZlKHN0cnVjdCBtZWlfY2xfZGV2aWNlICpjbGRldikgIHsNCj4gPiA+ID4gKyBtZWlfaGRjcF9j b21wb25lbnRfY2xlYW51cCgmY2xkZXYtPmRldik7DQo+ID4gPiA+ICsNCj4gPiA+ID4gICByZXR1 cm4gbWVpX2NsZGV2X2Rpc2FibGUoY2xkZXYpOyAgfQ0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ ID4gPg0KPiA+ID4gLS0NCj4gPiA+IERhbmllbCBWZXR0ZXINCj4gPiA+IFNvZnR3YXJlIEVuZ2lu ZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiA+ID4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRw Oi8vYmxvZy5mZndsbC5jaA0KPiANCj4gDQo+IA0KPiAtLQ0KPiBEYW5pZWwgVmV0dGVyDQo+IFNv ZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArNDEgKDApIDc5IDM2NSA1NyA0 OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK