From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v9 35/39] misc/mei/hdcp: Component framework for I915 Interface Date: Mon, 17 Dec 2018 10:39:07 +0100 Message-ID: <20181217093907.GY21184@phenom.ffwll.local> 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> <5B8DA87D05A7694D9FA63FD143655C1B9DA53C91@hasmsx108.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <5B8DA87D05A7694D9FA63FD143655C1B9DA53C91@hasmsx108.ger.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Winkler, Tomas" Cc: "Rafael J. Wysocki" , 'Daniel Vetter' , intel-gfx , dri-devel , Sean Paul , Greg KH List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCBEZWMgMTUsIDIwMTggYXQgMDk6MjA6MzhQTSArMDAwMCwgV2lua2xlciwgVG9tYXMg d3JvdGU6Cj4gPiAKPiA+IE9uIFRodSwgRGVjIDEzLCAyMDE4IGF0IDU6MjcgUE0gV2lua2xlciwg VG9tYXMgPHRvbWFzLndpbmtsZXJAaW50ZWwuY29tPgo+ID4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4g T24gVGh1LCBEZWMgMTMsIDIwMTggYXQgMTozNiBQTSBDLCBSYW1hbGluZ2FtCj4gPiA+ID4gPHJh bWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4g VG9tYXMgYW5kIERhbmllbCwKPiA+ID4gPiA+Cj4gPiA+ID4gPiBXZSBnb3QgYW4gaXNzdWUgaGVy ZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGUgcmVsYXRpb25zaGlwIHRoYXQgd2UgdHJ5IHRvIGJ1 aWxkIGJldHdlZW4gSTkxNSBhbmQgbWVpX2hkY3AgaXMgYXMKPiA+IGZvbGxvd3M6Cj4gPiA+ID4g Pgo+ID4gPiA+ID4gV2UgYXJlIHVzaW5nIHRoZSBjb21wb25lbnRzIHRvIGVzdGFibGlzaCB0aGUg cmVsYXRpb25zaGlwLgo+ID4gPiA+ID4gSTkxNSBpcyBjb21wb25lbnQgbWFzdGVyIHdoZXJlIGFz IG1laV9oZGNwIGlzIGNvbXBvbmVudC4KPiA+ID4gPiA+IEk5MTUgYWRkcyB0aGUgY29tcG9uZW50 IG1hc3RlciBkdXJpbmcgdGhlIG1vZHVsZSBsb2FkLiBtZWlfaGRjcAo+ID4gPiA+ID4gYWRkcyB0 aGUKPiA+ID4gPiBjb21wb25lbnQgd2hlbiB0aGUgZHJpdmVyLT5wcm9iZSBpcyBjYWxsZWQgKG9u IGRldmljZSBkcml2ZXIgYmluZGluZykuCj4gPiA+ID4gPiBJOTE1IGZvcmNlcyBpdHNlbGYgc3Vj aCB0aGF0IHVudGlsIG1laV9oZGNwIGNvbXBvbmVudCBpcyBhZGRlZAo+ID4gPiA+ID4gSTkxNV9s b2FkCj4gPiA+ID4gd29udCBiZSBjb21wbGV0ZS4KPiA+ID4gPiA+IFNpbWlsYXJseSBvbiBjb21w bGV0ZSBzeXN0ZW0sIGlmIG1laV9oZGNwIGNvbXBvbmVudCBpcyByZW1vdmVkLAo+ID4gPiA+IGlt bWVkaWF0ZWx5IEk5MTUgdW5yZWdpc3RlciBpdHNlbGYgYW5kIEhXIHdpbGwgYmUgc2h1dGRvd24u Cj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhpcyBpcyBjb21wbGV0ZWx5IGZpbmUgd2hlbiB0aGUgbW9k dWxlcyBhcmUgbG9hZGVkIGFuZCB1bmxvYWRlZC4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBCdXQgZHVy aW5nIHN1c3BlbmQsIG1laSBkZXZpY2UgZGlzYXBwZWFycyBhbmQgbWVpIGJ1cyBoYW5kbGVzIGl0 Cj4gPiA+ID4gPiBieQo+ID4gPiA+IHVuYmluZGluZyBkZXZpY2UgYW5kIGRyaXZlciBieSBjYWxs aW5nIGRyaXZlci0+cmVtb3ZlLgo+ID4gPiA+ID4gVGhpcyBpbi10dXJuIHJlbW92ZXMgdGhlIGNv bXBvbmVudCBhbmQgdHJpZ2dlcnMgdGhlIG1hc3RlciB1bmJpbmQKPiA+ID4gPiA+IG9mIEk5MTUK PiA+ID4gPiB3aGVyZSwgSTkxNSB1bnJlZ2lzdGVyIGl0c2VsZi4KPiA+ID4gPiA+IFRoaXMgY2F1 c2UgdGhlIEhXIHN0YXRlIG1pc21hdGNoIGR1cmluZyB0aGUgc3VzcGVuZCBhbmQgcmVzdW1lLgo+ ID4gPiA+ID4KPiA+ID4gPiA+IFBsZWFzZSBjaGVjayB0aGUgcG93ZXJ3ZWxsIG1pc21hdGNoIGVy cm9ycyBhdCBDSSByZXBvcnQgZm9yIHY5Cj4gPiA+ID4gPiBodHRwczovL2ludGVsLWdmeC1jaS4w MS5vcmcvdHJlZS9kcm0tdGlwL1RyeWJvdF8zNDEyL2ZpLWdsay1qNDAwNS8KPiA+ID4gPiA+IGln dEAKPiA+ID4gPiA+IGdlbV9leGVjX3N1c3BlbmRAYmFzaWMtczMuaHRtbAo+ID4gPiA+ID4KPiA+ ID4gPiA+IE1vcmUgb3ZlciB1bnJlZ2lzdGVyaW5nIEk5MTUgZHVyaW5nIHRoZSBzdXNwZW5kIGlz IG5vdCBleHBlY3RlZC4KPiA+ID4gPiA+IFNvIGhvdyBkbwo+ID4gPiA+IHdlIGhhbmRsZSB0aGlz Pwo+ID4gPiA+Cj4gPiA+ID4gQml0IG1vcmUgY29udGV4dCBmcm9tIG91ciBpcmMgZGlzY3Vzc2lv biB3aXRoIFJhbToKPiA+ID4gPgo+ID4gPiA+IEkgZm91bmQgdGhpcyB2ZXJ5IHN1cnByaXNpbmcs IHNpbmNlIEkgZG9uJ3Qga25vdyBvZiBhbnkgb3RoZXIKPiA+ID4gPiBzdWJzeXN0ZW1zIHdoZXJl IHRoZSBkZXZpY2VzIGdldCBvdXRyaWdodCByZW1vdmVkIHdoZW4gZ29pbmcgdGhyb3VnaCBhCj4g PiBzdXNwZW5kL3Jlc3VtZSBjeWNsZS4KPiA+ID4gPiBUaGUgZGV2aWNlIG1vZGVsIHdhcyBidWls dCB0byBoYW5kbGUgdGhpcyBzdHVmZgo+ID4gPiA+IGNvcnJlY3RseTogRmlyc3QgY2xpZW50cy9k ZXZpY2VzL2ludGVyZmFjZXMgZ2V0IHN1c3BlbmQsIHRoZW4gdGhlCj4gPiA+ID4gcGFyZW50L2Jy aWRnZS9idXMuIFNhbWUgZGFuY2UgaW4gcmV2ZXJzZSB3aGVuIHJlc3VtaW5nLiBUaGlzIGV2ZW4K PiA+ID4gPiBob2xkcyBmb3IgbG90cyBvZiBob3RwbHVnZ2FibGUgYnVzZXMsIHdoZXJlIGNoaWxk IGRldmljZXMgY291bGQKPiA+ID4gPiBpbmRlZWQgZGlzYXBwZWFyIG9uIHJlc3VtZSwgYnV0IGFz IGxvbmcgYXMgdGhleSBkb24ndCwgZXZlcnl0aGluZwo+ID4gPiA+IHN0YXlzIHRoZSBzYW1lLiBJ dCdzIHJlYWxseSBzdXJwcmlzaW5nIGZvciBzb21ldGhpbmcgdGhhdCdzIHNvbGRlcmVkIG9udG8g dGhlCj4gPiBib2FyZCBsaWtlIE1FLgo+ID4gPgo+ID4gPiBIRENQIGlzIGFuIGFwcGxpY2F0aW9u IGluIHRoZSBNRSBpdCdzIG5vdCBNRSBpdHNlbGYuLiAgT24gdGhlIGxpbnV4Cj4gPiA+IHNpZGUg SERDUDIgaXMgYSB2aXJ0dWFsIGRldmljZSAgb24gbWVpIGNsaWVudCB2aXJ0dWFsIGJ1cywgdGhl IGJ1cyAgaXMgdGVhcmVkCj4gPiBkb3duIG9uIE1FIHJlc2V0LCB3aGljaCBtb3N0bHkgaGFwcGVu ICBvbiBwb3dlciB0cmFuc2l0aW9ucy4KPiA+ID4gVGhlb3JldGljYWxseSwgIHdlIGNvdWxkIGtl ZXAgaXQgdXAgZHVyaW5nIHBvd2VyIHRyYW5zaXRpb25zLCBidXQgc28KPiA+ID4gZmFyZSBpdCB3 YXMgbm90IG5lY2Vzc2FyeSBhbmQgc2Vjb25kIGl0J3Mgbm90IGd1YXJhbnRpZSB0aGF0IHRoZSBh bGwgTUUKPiA+IGFwcGxpY2F0aW9ucyB3aWxsIHJlYXBwZWFyIGFmdGVyIHJlc2V0Lgo+ID4gCj4g PiBXaGVuIGRvZXMgdGhpcyBoYXBwZW4gdGhhdCBhbiBNRSBhcHBsaWNhdGlvbiBkb2Vzbid0IGNv bWUgYmFjayBhZnRlciBlLmcuCj4gPiBzdXNwZW5kL3Jlc3VtZT8KPiBObywgdGhpcyBjYW4gaGFw cGVuIGluIHNwZWNpYWwgZmxvd3Mgc3VjaCBhcyAgZncgdXBkYXRlcyBhbmQgZXJyb3IgY29uZGl0 aW9ucywgYnV0IGlzIGhhcyB0byBiZSBzdXBwb3J0ZWQgYXMgd2VsbC4gCj4gIAo+ID4gCj4gPiBB bHNvLCB3aGF0J3MgYWxsIHRoZSBwbGFjZSB3aGVyZSB0aGlzIHJlc2V0IGNhbiBoYXBwZW4/IEp1 c3QKPiA+IHN1c3BlbmQvcmVzdW1lL2hpYmVybmF0ZSBhbmQgYWxsIHRoZXNlLCBvciBhbHNvIGF0 IG90aGVyIHRpbWVzPwo+IAo+IEFsc28gb24gZXJyb3JzIGFuZCBmdyB1cGRhdGUsICB0aGUgYmFz aWMgYXNzdW1wdGlvbiBpcyBoZXJlIHRoYXQgaXQgY2FuIGhhcHBlbiBhbnkgdGltZS4gCgpJZiB0 aGlzIGNhbiBoYXBwZW4gYW55IHRpbWUsIHdoYXQgYXJlIHdlIHN1cHBvc2VkIHRvIGRvIGlmIHRo aXMgaGFwcGVucwp3aGlsZSB3ZSdyZSBkb2luZyBzb21ldGhpbmcgd2l0aCB0aGUgaGRjcCBtZWk/ IElmIHRoaXMgaXMgc3VjaCBhIGNvbW1vbgpvY2N1cmVuY2UgSSBndWVzcyB3ZSBuZWVkIHRvIHNv bWVob3cgd2FpdCB1bnRpbCBldmVyeXRpbmcgaXMgcmVib3VuZCBhbmQKd29ya2luZyBhZ2Fpbi4g SSB0aGluayBpZGVhbGx5IG1laSBjb3JlIHdvdWxkIGhhbmRsZSB0aGF0IGZvciB1cywgYnV0IEkK Z3Vlc3MgaWYgdGhpcyBqdXN0IHJhbmRvbWx5IGhhcHBlbnMgdGhlbiB3ZSBuZWVkIHRvIHJlZG8g YWxsIHRoZQp0cmFuc2FjdGlvbnMuIFNvIGRvZXMgbmVlZCBzb21lIGludm9sdmVtZW50IG9mIHRo ZSBoaWdoZXIgbGV2ZWxzLgoKQWxzbywgaG93IGxpa2VseSBpcyBpdCB0aGF0IHRoZSBoZGNwIG1l aSB3aWxsIG91dHJpZ2h0IGRpc2FwcGVhciBhbmQgbm90CmNvbWUgYmFjayBhZnRlciBhIHJlc2V0 PwoKPiA+IEhvdyBkb2VzIHVzZXJzcGFjZSBkZWFsIHdpdGggdGhlIHJlc2V0IG92ZXIgcy9yPyBJ J20gYXNzdW1pbmcgdGhhdCBhdCBsZWFzdCB0aGUKPiA+IGRldmljZSBub2RlIGZpbGUgd2lsbCBi ZWNvbWUgaW52YWxpZCAob3Igd2hhdGV2ZXIgeW91J3JlIHVzaW5nIGFzIHVzZXJzcGFjZQo+ID4g YXBpKSwgc28gaWYgdXNlcnNwYWNlIGlzIGFjY2Vzc2luZyBzdHVmZiBvbiB0aGUgbWUgYXQgdGhl IHNhbWUgdGltZSBhcyB3ZSBkbyBhCj4gPiBzdXNwZW5kL3Jlc3VtZSwgd2hhdCBoYXBwZW5zPwoK QWxzbywgYW5zd2VyIHRvIGhvdyBvdGhlciB1c2VycyBoYW5kbGUgdGhpcyB3b3VsZCBiZSBlbmxp Z2h0aW5nLgoKPiA+ID4gPiBBc2lkZTogV2UnbGwgcHJvYmFibHkgbmVlZCBhIGRldmljZV9saW5r IHRvIG1ha2Ugc3VyZSBtZWlfaGRjcCBpcwo+ID4gPiA+IGZ1bGx5IHJlc3VtZWQgYmVmb3JlIGk5 MTUgZ2V0cyByZXN1bWVkLCBidXQgdGhhdCdzIGtpbmRhIGEgZGV0YWlsIGZvciBsYXRlcgo+ID4g b24uCj4gPiA+Cj4gPiA+IEZyYW5rbHkgSSBkb27igJl0IGJlbGlldmUgdGhlcmUgaXMgY3VycmVu dGx5IGV4YWN0IGFic3RyYWN0aW9uIHRoYXQKPiA+ID4gc3VwcG9ydHMgdGhpcyBtb2RlbCwgbmVp dGhlciBjb21wb25lbnRzIG5vciBkZXZpY2VfbGluayAuCj4gPiA+IFNvIGZhcmUgd2UgdXNlZCBj bGFzcyBpbnRlcmZhY2UgZm9yIG90aGVyIHB1cnBvc2VzLCBpdCB3b3JrZWQgd2VsbC4KPiA+IAo+ ID4gSSdtIG5vdCBjbGVhciBvbiB3aGF0IGNsYXNzIGludGVyZmFjZSBoYXMgdG8gZG8gd2l0aCBj b21wb25lbnQgb3IgZGV2aWNlIGxpbmsuCj4gPiBUaGV5IGFsbCBzb2x2ZSBkaWZmZXJlbnQgcHJv YmxlbXMsIGF0IGxlYXN0IGFzIGZhciBhcyBJIHVuZGVyc3RhbmQgYWxsIHRoaXMgc3R1ZmYgLi4u Cj4gPiAtRGFuaWVsCj4gCj4gSXQgY29tZXMgaW5zdGVhZCBvZiBpdCwgZGV2aWNlX2xpbmsgaXMg bW9zdGx5IHVzZWQgZm9yIHBvd2VyIG1hbmFnZW1lbnQgYW5kIGNvbXBvbmVudCBhcyB3ZSBzZWUg a25vdyBpcyBub3Qgd2hhdCB3ZSBuZWVkIGFzIEhEQ1AgCj4gSXMgYSBiIGl0IHZvbGl0bGUuIAo+ IGNsYXNzX2ludGVyZmFjZSAgZ2l2ZXMgeW91IHR3byBoYW5kbGVyczogYWRkIGFuZCByZW1vdmUg ZGV2aWNlLCB0aGF0J3MgYWxsIHdoYXQgaXMgbmVlZGVkIGZvciB0aGUgY3VycmVudCBpbXBsZW1l bnRhdGlvbi4gCgpXZWxsIHNvbWVvbmUgbmVlZHMgdG8gaGFuZGxlIHRoZSB2b2xhdGlsaXR5IG9m IGhkY3AsIGFuZCBhdG0gd2Ugc2VlbSB0byBiZQpwbGF5aW5nIGEgZ2FtZSBvZiBwYXNzIHRoZSBi dWNrZXQuIEkgc3RpbGwgdGhpbmsgdGhhdCBtZWlfaGRjcCBzaG91bGQKc3VwcGx5IGEgY2xlYW4g aW50ZXJmYWNlIHRvIGk5MTUsIHdpdGggYWxsIHRoZSByZXNldCBtYWRuZXNzIGhhbmRsZWQKaW50 ZXJuYWxseS4gQnV0IGRlcGVuZGluZyB1cG9uIGhvdyBiYWRseSB0aGlzIGFsbCBsZWFrcyB3ZSBt aWdodCBuZWVkIHRvCmhhdmUgYSByZXRyeSBsb2dpYyBpbiB0aGUgaTkxNSBoZGNwIGZsb3cgdG9v LgoKZGV2aWNlIGxpbmtlIHdlJ2xsIHByb2JhYmx5IG5lZWQgYW55d2F5LCBzaW5jZSBpOTE1IHJl c3VtaW5nIHdoZW4gaGRjcCBpcwpub3QgeWV0IHVwIGlzIG5vdCBhIGdvb2QgaWRlYSBubyBtYXR0 ZXIgd2hhdCdzIGdvw65uZyBvbi4KLURhbmllbAoKPiA+IAo+ID4gPiA+IFRvbWFzLCBjYW4geW91 IHBscyBleHBsYWluIHdoeSBtZWkgaXMgZGVzaWduZWQgbGlrZSB0aGlzPyBPciBpcwo+ID4gPiA+ IHRoZXJlIHNvbWV0aGluZyBlbHNlIHdlJ3JlIG1pc3NpbmcgKEkgZGlkbid0IGRpZyB0aHJvdWdo IHRoZSBtZWkgYnVzCj4gPiA+ID4gaW4gZGV0YWlsIGF0IGFsbCwgc28gbm90IGNsZWFyIG9uIHdo YXQgZXhhY3RseSBpcyBnb2luZyBvbiB0aGVyZSkuCj4gPiA+IEFib3ZlLgo+ID4gPiA+Cj4gPiA+ ID4gQWxzbyBwdWxsaW5nIGluIGRldmljZSBtb2RlbCBhbmQgc3VzcGVuZC9yZXN1bWUgZXhwZXJ0 cy4KPiA+ID4gPgo+ID4gPiA+IFRoYW5rcywgRGFuaWVsCj4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ ID4gPiAtUmFtCj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gMTIvMTMvMjAxOCA5OjMxIEFNLCBSYW1h bGluZ2FtIEMgd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gTWVpIGhkY3AgZHJpdmVyIGlzIGRl c2lnbmVkIGFzIGNvbXBvbmVudCBzbGF2ZSBmb3IgdGhlIEk5MTUKPiA+ID4gPiA+IGNvbXBvbmVu dCBtYXN0ZXIuCj4gPiA+ID4gPgo+ID4gPiA+ID4gdjI6IFJlYmFzZWQuCj4gPiA+ID4gPiB2MzoK PiA+ID4gPiA+ICAgTm90aWZpZXIgY2hhaW4gaXMgYWRvcHRlZCBmb3IgY2xkZXYgc3RhdGUgdXBk YXRlIFtUb21hc10KPiA+ID4gPiA+IHY0Ogo+ID4gPiA+ID4gICBNYWRlIHN0YXRpYyBkdW1teSBm dW5jdGlvbnMgYXMgaW5saW5lIGluIG1laV9oZGNwLmgKPiA+ID4gPiA+ICAgQVBJIGZvciBwb2xs aW5nIGNsaWVudCBkZXZpY2Ugc3RhdHVzCj4gPiA+ID4gPiAgIElTX0VOQUJMRUQgdXNlZCBpbiBo ZWFkZXIsIGZvciBjb25maWcgc3RhdHVzIGZvciBtZWlfaGRjcC4KPiA+ID4gPiA+IHY1Ogo+ID4g PiA+ID4gICBSZXBsYWNpbmcgdGhlIG5vdGlmaWVyIHdpdGggY29tcG9uZW50IGZyYW1ld29yay4g W0RhbmllbF0KPiA+ID4gPiA+IHY2Ogo+ID4gPiA+ID4gICBSZWJhc2VkIG9uIHRoZSBJOTE1IGNv bXAgbWFzdGVyIHJlZGVzaWduLgo+ID4gPiA+ID4gdjc6Cj4gPiA+ID4gPiAgIG1laV9oZGNwX2Nv bXBvbmVudF9yZWdpc3RlcmVkIGlzIG1hZGUgc3RhdGljIFtVbWFdCj4gPiA+ID4gPiAgIE5lZWQg Zm9yIGdsb2JhbCBzdGF0aWMgdmFyaWFibGUgbWVpX2NsZGV2IGlzIHJlbW92ZWQuCj4gPiA+ID4g Pgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50 ZWwuY29tPgo+ID4gPiA+ID4gUmV2aWV3ZWQtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBp bnRlbC5jb20+Cj4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ICBkcml2ZXJzL21pc2MvbWVpL2hkY3Av bWVpX2hkY3AuYyB8IDY3Cj4gPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tCj4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCj4gPiA+ID4gPgo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlz Yy9tZWkvaGRjcC9tZWlfaGRjcC5jCj4gPiA+ID4gPiBiL2RyaXZlcnMvbWlzYy9tZWkvaGRjcC9t ZWlfaGRjcC5jCj4gPiA+ID4gPiBpbmRleCBiMjJhNzFlOGM1ZDcuLjNkZTE3MDBkY2M5ZiAxMDA2 NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbWlzYy9tZWkvaGRjcC9tZWlfaGRjcC5jCj4gPiA+ ID4gPiArKysgYi9kcml2ZXJzL21pc2MvbWVpL2hkY3AvbWVpX2hkY3AuYwo+ID4gPiA+ID4gQEAg LTIzLDExICsyMywxNCBAQAo+ID4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPiA+ ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3V1aWQuaD4KPiA+ID4gPiA+ICAjaW5jbHVkZSA8bGludXgv bWVpX2NsX2J1cy5oPgo+ID4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KPiA+ ID4gPiA+ICAjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KPiA+ID4gPiA+ICAjaW5jbHVk ZSA8ZHJtL2k5MTVfY29tcG9uZW50Lmg+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gICNpbmNsdWRlICJt ZWlfaGRjcC5oIgo+ID4gPiA+ID4KPiA+ID4gPiA+ICtzdGF0aWMgYm9vbCBtZWlfaGRjcF9jb21w b25lbnRfcmVnaXN0ZXJlZDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICAvKioKPiA+ID4gPiA+ICAg KiBtZWlfaW5pdGlhdGVfaGRjcDJfc2Vzc2lvbigpIC0gSW5pdGlhdGUgYSBXaXJlZCBIRENQMi4y IFR4Cj4gPiA+ID4gPiBTZXNzaW9uIGluIE1FCj4gPiA+ID4gRlcKPiA+ID4gPiA+ICAgKiBAZGV2 OiBkZXZpY2UgY29ycmVzcG9uZGluZyB0byB0aGUgbWVpX2NsX2RldmljZSBAQCAtNjkxLDgKPiA+ ID4gPiA+ICs2OTQsNyBAQCBtZWlfY2xvc2VfaGRjcF9zZXNzaW9uKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0Cj4gPiA+ID4gPiBoZGNwX3BvcnRfZGF0YQo+ID4gPiA+ICpkYXRhKQo+ID4gPiA+ ID4gICByZXR1cm4gMDsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLXN0YXRpYyBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+ID4gPiA+ID4gLXN0cnVjdCBpOTE1X2hkY3BfY29tcG9u ZW50X29wcyBtZWlfaGRjcF9vcHMgPSB7Cj4gPiA+ID4gPiArc3RhdGljIHN0cnVjdCBpOTE1X2hk Y3BfY29tcG9uZW50X29wcyBtZWlfaGRjcF9vcHMgPSB7Cj4gPiA+ID4gPiAgIC5vd25lciA9IFRI SVNfTU9EVUxFLAo+ID4gPiA+ID4gICAuaW5pdGlhdGVfaGRjcDJfc2Vzc2lvbiA9IG1laV9pbml0 aWF0ZV9oZGNwMl9zZXNzaW9uLAo+ID4gPiA+ID4gICAudmVyaWZ5X3JlY2VpdmVyX2NlcnRfcHJl cGFyZV9rbSA9Cj4gPiA+ID4gPiBtZWlfdmVyaWZ5X3JlY2VpdmVyX2NlcnRfcHJlcGFyZV9rbSwK PiA+ID4gPiA+IEBAIC03MDcsMjAgKzcwOSw3NyBAQCBzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBvbmVu dF9vcHMKPiA+IG1laV9oZGNwX29wcwo+ID4gPiA+ID4gPQo+ID4gPiA+IHsKPiA+ID4gPiA+ICAg LmNsb3NlX2hkY3Bfc2Vzc2lvbiA9IG1laV9jbG9zZV9oZGNwX3Nlc3Npb24sICB9Owo+ID4gPiA+ ID4KPiA+ID4gPiA+ICtzdGF0aWMgaW50IG1laV9oZGNwX2NvbXBvbmVudF9iaW5kKHN0cnVjdCBk ZXZpY2UgKm1laV9rZGV2LAo+ID4gPiA+ID4gKyAgIHN0cnVjdCBkZXZpY2UgKmk5MTVfa2Rldiwg dm9pZCAqZGF0YSkgeyAgc3RydWN0Cj4gPiA+ID4gPiAraTkxNV9jb21wb25lbnRfbWFzdGVyICpt YXN0ZXJfY29tcCA9IGRhdGE7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArIGRldl9pbmZvKG1laV9r ZGV2LCAiTUVJIEhEQ1AgY29tcCBiaW5kXG4iKTsKPiA+ID4gPiA+ICsgV0FSTl9PTihtYXN0ZXJf Y29tcC0+aGRjcF9vcHMpOyBtYXN0ZXJfY29tcC0+aGRjcF9vcHMgPQo+ID4gPiA+ID4gKyAmbWVp X2hkY3Bfb3BzOyBtYXN0ZXJfY29tcC0+bWVpX2RldiA9IG1laV9rZGV2Owo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gKyByZXR1cm4gMDsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAr c3RhdGljIHZvaWQgbWVpX2hkY3BfY29tcG9uZW50X3VuYmluZChzdHJ1Y3QgZGV2aWNlICptZWlf a2RldiwKPiA+ID4gPiA+ICsgICAgICBzdHJ1Y3QgZGV2aWNlICppOTE1X2tkZXYsIHZvaWQgKmRh dGEpIHsgIHN0cnVjdAo+ID4gPiA+ID4gK2k5MTVfY29tcG9uZW50X21hc3RlciAqbWFzdGVyX2Nv bXAgPSBkYXRhOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyBkZXZfaW5mbyhtZWlfa2RldiwgIk1F SSBIRENQIGNvbXAgdW5iaW5kXG4iKTsKPiA+ID4gPiA+ICttYXN0ZXJfY29tcC0+aGRjcF9vcHMg PSBOVUxMOyAgbWFzdGVyX2NvbXAtPm1laV9kZXYgPSBOVUxMOyB9Cj4gPiA+ID4gPiArCj4gPiA+ ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIG1laV9oZGNwX2NvbXBvbmVu dF9iaW5kX29wcyA9IHsKPiA+ID4gPiA+ICsuYmluZCA9IG1laV9oZGNwX2NvbXBvbmVudF9iaW5k LCAgLnVuYmluZCA9Cj4gPiA+ID4gPiArbWVpX2hkY3BfY29tcG9uZW50X3VuYmluZCwgfTsKPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBtZWlfaGRjcF9jb21wb25lbnRfaW5pdChz dHJ1Y3QgZGV2aWNlICpkZXYpIHsgIGludAo+ID4gPiA+ID4gK3JldDsKPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICsgZGV2X2luZm8oZGV2LCAiTUVJIEhEQ1AgY29tcCBpbml0XG4iKTsgcmV0ID0gY29t cG9uZW50X2FkZChkZXYsCj4gPiA+ID4gPiArICZtZWlfaGRjcF9jb21wb25lbnRfYmluZF9vcHMp OyBpZiAocmV0IDwgMCkgeyBkZXZfZXJyKGRldiwKPiA+ID4gPiA+ICsgIkZhaWxlZCB0byBhZGQg TUVJIEhEQ1AgY29tcCAoJWQpXG4iLCByZXQpOyByZXR1cm47IH0KPiA+ID4gPiA+ICsKPiA+ID4g PiA+ICsgbWVpX2hkY3BfY29tcG9uZW50X3JlZ2lzdGVyZWQgPSB0cnVlOyB9Cj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiArc3RhdGljIHZvaWQgbWVpX2hkY3BfY29tcG9uZW50X2NsZWFudXAoc3RydWN0 IGRldmljZSAqZGV2KSB7ICBpZgo+ID4gPiA+ID4gKyghbWVpX2hkY3BfY29tcG9uZW50X3JlZ2lz dGVyZWQpICByZXR1cm47Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArIGRldl9pbmZvKGRldiwgIk1F SSBIRENQIGNvbXAgY2xlYW51cFxuIik7ICBjb21wb25lbnRfZGVsKGRldiwKPiA+ID4gPiA+ICsm bWVpX2hkY3BfY29tcG9uZW50X2JpbmRfb3BzKTsgIG1laV9oZGNwX2NvbXBvbmVudF9yZWdpc3Rl cmVkID0KPiA+ID4gPiA+ICtmYWxzZTsgfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0YXRpYyBp bnQgbWVpX2hkY3BfcHJvYmUoc3RydWN0IG1laV9jbF9kZXZpY2UgKmNsZGV2LAo+ID4gPiA+ID4g ICAgY29uc3Qgc3RydWN0IG1laV9jbF9kZXZpY2VfaWQgKmlkKSAgewo+ID4gPiA+ID4gICBpbnQg cmV0Owo+ID4gPiA+ID4KPiA+ID4gPiA+ICAgcmV0ID0gbWVpX2NsZGV2X2VuYWJsZShjbGRldik7 Cj4gPiA+ID4gPiAtIGlmIChyZXQgPCAwKQo+ID4gPiA+ID4gKyBpZiAocmV0IDwgMCkgewo+ID4g PiA+ID4gICBkZXZfZXJyKCZjbGRldi0+ZGV2LCAibWVpX2NsZGV2X2VuYWJsZSBGYWlsZWQuICVk XG4iLCByZXQpOwo+ID4gPiA+ID4gKyByZXR1cm4gcmV0Owo+ID4gPiA+ID4gKyB9Cj4gPiA+ID4g PiArIG1laV9oZGNwX2NvbXBvbmVudF9pbml0KCZjbGRldi0+ZGV2KTsKPiA+ID4gPiA+Cj4gPiA+ ID4gPiAtIHJldHVybiByZXQ7Cj4gPiA+ID4gPiArIHJldHVybiAwOwo+ID4gPiA+ID4gIH0KPiA+ ID4gPiA+Cj4gPiA+ID4gPiAgc3RhdGljIGludCBtZWlfaGRjcF9yZW1vdmUoc3RydWN0IG1laV9j bF9kZXZpY2UgKmNsZGV2KSAgewo+ID4gPiA+ID4gKyBtZWlfaGRjcF9jb21wb25lbnRfY2xlYW51 cCgmY2xkZXYtPmRldik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgIHJldHVybiBtZWlfY2xkZXZf ZGlzYWJsZShjbGRldik7ICB9Cj4gPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPgo+ID4g PiA+IC0tCj4gPiA+ID4gRGFuaWVsIFZldHRlcgo+ID4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJ bnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiA+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Js b2cuZmZ3bGwuY2gKPiA+IAo+ID4gCj4gPiAKPiA+IC0tCj4gPiBEYW5pZWwgVmV0dGVyCj4gPiBT b2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+ICs0MSAoMCkgNzkgMzY1IDU3 IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK