From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 2/4] drm/i915: Add reverse mapping between port and intel_encoder Date: Thu, 10 Dec 2015 10:38:14 +0100 Message-ID: <20151210093814.GJ20822@phenom.ffwll.local> References: <1449249169-20602-1-git-send-email-tiwai@suse.de> <1449249169-20602-3-git-send-email-tiwai@suse.de> <20151207084445.GB10243@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Takashi Iwai Cc: alsa-devel@alsa-project.org, Mengdong Lin , Vinod Koul , intel-gfx@lists.freedesktop.org, Daniel Vetter , David Henningsson List-Id: alsa-devel@alsa-project.org T24gVHVlLCBEZWMgMDgsIDIwMTUgYXQgMDY6NDI6MDlQTSArMDEwMCwgVGFrYXNoaSBJd2FpIHdy b3RlOgo+IE9uIE1vbiwgMDcgRGVjIDIwMTUgMTA6NDE6NTEgKzAxMDAsCj4gVGFrYXNoaSBJd2Fp IHdyb3RlOgo+ID4gCj4gPiBPbiBNb24sIDA3IERlYyAyMDE1IDA5OjQ0OjQ1ICswMTAwLAo+ID4g RGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gCj4gPiA+IE9uIEZyaSwgRGVjIDA0LCAyMDE1IGF0 IDA2OjEyOjQ3UE0gKzAxMDAsIFRha2FzaGkgSXdhaSB3cm90ZToKPiA+ID4gPiBUaGlzIHBhdGNo IGFkZHMgYSByZXZlcnNlIG1hcHBpbmcgZnJvbSBhIGRpZ2l0YWwgcG9ydCBudW1iZXIgdG8KPiA+ ID4gPiBpbnRlbF9lbmNvZGVyIG9iamVjdCBjb250YWluaW5nIHRoZSBjb3JyZXNwb25kaW5nIGlu dGVsX2RpZ2l0YWxfcG9ydC4KPiA+ID4gPiBJdCBzaW1wbGlmaWVzIHRoZSBxdWVyeSBvZiB0aGUg ZW5jb2RlciBhIGxvdC4KPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBUYWthc2hpIEl3 YWkgPHRpd2FpQHN1c2UuZGU+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gdjItPnYzOgo+ID4gPiA+ICog U3F1YXNoZWQgcHJldmlvdXNseSB0d28gY2xlYW51cCBwYXRjaGVzIHRvIGEgc2luZ2xlIHBhdGNo Cj4gPiA+ID4gCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgfCAg MiArKwo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIHwgMzkgKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgICB8ICAxICsKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgICB8ICAxICsKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRtaS5jICB8ICAyICsrCj4gPiA+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9u cygrKSwgMjggZGVsZXRpb25zKC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gPiA+ID4gaW5kZXggMTVjNmRjMGI0ZjM3Li45ZGJjMTQzY2FjMjcgMTAwNjQ0Cj4gPiA+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiBAQCAtMTk0NCw2ICsxOTQ0LDgg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gPiA+ICAJLyogcGVyZm9ybSBQSFkgc3Rh dGUgc2FuaXR5IGNoZWNrcz8gKi8KPiA+ID4gPiAgCWJvb2wgY2h2X3BoeV9hc3NlcnRbMl07Cj4g PiA+ID4gIAo+ID4gPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmRpZ19wb3J0X21hcFtJOTE1 X01BWF9QT1JUU107Cj4gPiA+ID4gKwo+ID4gPiA+ICAJLyoKPiA+ID4gPiAgCSAqIE5PVEU6IFRo aXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZb3VyIHBh dGNoCj4gPiA+ID4gIAkgKiB3aWxsIGJlIHJlamVjdGVkLiBJbnN0ZWFkIGxvb2sgZm9yIGEgYmV0 dGVyIHBsYWNlLgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gPiA+IGlu ZGV4IGVlYWM5Zjc2MzExMC4uMDVmMDhiNDQ1ZGQ2IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiA+ID4gQEAgLTYzNiwxMyArNjM2LDExIEBAIHN0YXRp YyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2Ug KmRldiwKPiA+ID4gPiAgCQkJCQkJaW50IHBvcnQsIGludCByYXRlKQo+ID4gPiA+ICB7Cj4gPiA+ ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYp Owo+ID4gPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ ID4gPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4gPiA+ID4gLQlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKPiA+ID4gPiAgCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjOwo+ID4gPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGU7Cj4gPiA+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3By aXYtPmF1ZGlvX2NvbXBvbmVudDsKPiA+ID4gPiAtCWVudW0gcGlwZSBwaXBlID0gLTE7Cj4gPiA+ ID4gKwllbnVtIHBpcGUgcGlwZSA9IElOVkFMSURfUElQRTsKPiA+ID4gPiAgCXUzMiB0bXA7Cj4g PiA+ID4gIAlpbnQgbjsKPiA+ID4gPiAgCj4gPiA+ID4gQEAgLTY1NSwyMSArNjUzLDEyIEBAIHN0 YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZp Y2UgKmRldiwKPiA+ID4gPiAgCj4gPiA+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0 ZXgpOwo+ID4gPiA+ICAJLyogMS4gZ2V0IHRoZSBwaXBlICovCj4gPiA+ID4gLQlmb3JfZWFjaF9p bnRlbF9lbmNvZGVyKGRybV9kZXYsIGludGVsX2VuY29kZXIpIHsKPiA+ID4gPiAtCQlpZiAoaW50 ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkKPiA+ID4gPiAtCQkJY29udGlu dWU7Cj4gPiA+ID4gLQkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2Vu Y29kZXItPmJhc2UpOwo+ID4gPiA+IC0JCWlmIChwb3J0ID09IGludGVsX2RpZ19wb3J0LT5wb3J0 KSB7Cj4gPiA+ID4gLQkJCWNydGMgPSB0b19pbnRlbF9jcnRjKGludGVsX2VuY29kZXItPmJhc2Uu Y3J0Yyk7Cj4gPiA+ID4gLQkJCWlmICghY3J0Yykgewo+ID4gPiA+IC0JCQkJRFJNX0RFQlVHX0tN UygiJXM6IGNydGMgaXMgTlVMTFxuIiwgX19mdW5jX18pOwo+ID4gPiA+IC0JCQkJY29udGludWU7 Cj4gPiA+ID4gLQkJCX0KPiA+ID4gPiAtCQkJcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiA+ID4gLQkJ CWJyZWFrOwo+ID4gPiA+IC0JCX0KPiA+ID4gPiArCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ID4gPiA+ICsJaWYgKGludGVsX2VuY29kZXIgJiYgaW50ZWxf ZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSAmJgo+ID4gPiAKPiA+ID4gSXMgaXQg cmVhbGx5IGxlZ2l0IHRvIGNhbGwgdGhlc2UgZnVuY3Rpb25zIHdpdGggYSBwb3J0IGZvciB3aGlj aCB3ZSBkb24ndAo+ID4gPiBoYXZlIGFuIGVuY29kZXI/IFdBUk5fT04oIWVuY29kZXIpIGhlcmUg YW5kIGluIHRoZSBvdGhlciBwbGFjZXM/Cj4gPiAKPiA+IEN1cnJlbnRseSB0aGVyZSBhcmUgbGl0 dGxlIGNoZWNrcyBpbiB0aGUgY2FsbGVyIHNpZGUuICBTbyBJIGd1ZXNzIG9ubHkKPiA+IGEgZmV3 IG9mIHRoZW0gZGVzZXJ2ZSBXQVJOX09OKCkuICBUaGUgZW1wdHkgZW5jb2RlciBhbmQgZW1wdHkg Y3J0Ywo+ID4gd291bGQgYmUgZ29vZCB3aXRoIFdBUk5fT04oKSwgYXMgdGhlIHBvcnQgaXMgc3Vw cG9zZWQgdG8gYmUgcmVhbC4gCj4gPiBUaGUgSERNSSBjaGVjayBtYXkgYmUgc2lsZW50IGFzIGlz Lgo+ID4gCj4gPiA+IE9yIHdvdWxkCj4gPiA+IHRoYXQgcmVxdWlyZSBzb21lIGZ1bmN0aW9uIGZv ciBzbmQtaGRhIHRvIGlucXVpcmUgaTkxNSB3aGljaCBwb3J0cyBhcmUKPiA+ID4gZW5hYmxlZCAo d2hpY2ggd2UgcHJvYmFibHkgc2hvdWxkIGhhdmUgdG8gYXZvaWQgcmVnaXN0ZXJpbmcgYXVkaW8g cG9ydHMKPiA+ID4gdGhhdCBhcmVuJ3QgdGhlcmUpPwo+ID4gPiAKPiA+ID4gT3RoZXJ3aXNlIGxn dG0uCj4gPiAKPiA+IE9LLCBJJ2xsIGFkZCBXQVJOX09OKCkgdG8gdGhlbS4KPiAKPiBJdCB0dXJu ZWQgb3V0IHRoYXQgdGhlIGVuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3IgTVNULCBhcyBjdXJyZW50 bHkKPiBpdCdzIG5vdCBzZXQgcHJvcGVybHkgeWV0LiAgU28gV0FSTl9PTigpIHdpbGwgc3BsYXQg dG9vIG11Y2gKPiB1bm5lY2Vzc2FyaWx5Lgo+IAo+IFRob3VnaCwgSSByZXdyb3RlIGEgYml0IGFi b3V0IHRoZSBjaGVjayBhbmQgZ2l2ZSBhIGJpdCBtb3JlIG1lc3NhZ2VzLgo+IEJlbG93IGlzIHRo ZSByZXZpc2VkIHBhdGNoLiAgU28gZmFyLCBJIGhhdmUgb25seSB0aGlzIGNoYW5nZSwgc28gSQo+ IGhlc2l0YXRlIHRvIHJlc3VibWl0IHRoZSB3aG9sZSBwYXRjaHNldC4gIElmIGEgZnVsbCBwYXRj aHNldCBpcwo+IHN0aWxsIHByZWZlcnJlZCwgbGV0IG1lIGtub3cuCgpJbW8gdGhpcyBub3RlIGFi b3V0IG1zdCBzaG91bGQgYmUgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLiBsZ3RtIG90aGVyd2lzZS4K RG8geW91IHBsYW4gdG8gcHJlcCBhIHRvcGljIGJyYW5jaCB3aXRoIGFsbCB0aGUgcGF0Y2hlcyB0 aGF0IHdlIGNvdWxkIHB1bGwKaW50byBib3RoIHNuZCBhbmQgZHJtLWludGVsIHRyZWVzPwoKTm90 ZSB0aGF0IGZvciA0LjUgZmVhdHVyZXMgZHJtLWludGVsIGNsb3NlcyBuZXh0IHdlZWssIHNvIG5v dCB0aGF0IG11Y2gKdGltZSBsZWZ0LgotRGFuaWVsCgo+IAo+IAo+IHRoYW5rcywKPiAKPiBUYWth c2hpCj4gCj4gLS0gODwgLS0KPiBGcm9tOiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+Cj4g U3ViamVjdDogW1BBVENIIHY0XSBkcm0vaTkxNTogQWRkIHJldmVyc2UgbWFwcGluZyBiZXR3ZWVu IHBvcnQgYW5kIGludGVsX2VuY29kZXIKPiAKPiBUaGlzIHBhdGNoIGFkZHMgYSByZXZlcnNlIG1h cHBpbmcgZnJvbSBhIGRpZ2l0YWwgcG9ydCBudW1iZXIgdG8KPiBpbnRlbF9lbmNvZGVyIG9iamVj dCBjb250YWluaW5nIHRoZSBjb3JyZXNwb25kaW5nIGludGVsX2RpZ2l0YWxfcG9ydC4KPiBJdCBz aW1wbGlmaWVzIHRoZSBxdWVyeSBvZiB0aGUgZW5jb2RlciBhIGxvdC4KPiAKPiBTaWduZWQtb2Zm LWJ5OiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+Cj4gLS0tCj4gdjMtPnY0OiBhZGQgYSBi aXQgbW9yZSB2ZXJib3NlIGNoZWNrIGZvciBOVUxMIGVuY29kZXIsIGV0Yy4KPiAKPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAyICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMgfCA1NyArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgIHwgIDEgKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMgIHwgIDIgKysKPiAgNSBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCAzNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRl eCAxNWM2ZGMwYjRmMzcuLjlkYmMxNDNjYWMyNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IEBAIC0xOTQ0LDYgKzE5NDQsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAkv KiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLwo+ICAJYm9vbCBjaHZfcGh5X2Fz c2VydFsyXTsKPiAgCj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVf TUFYX1BPUlRTXTsKPiArCj4gIAkvKgo+ICAJICogTk9URTogVGhpcyBpcyB0aGUgZHJpMS91bXMg ZHVuZ2VvbiwgZG9uJ3QgYWRkIHN0dWZmIGhlcmUuIFlvdXIgcGF0Y2gKPiAgCSAqIHdpbGwgYmUg cmVqZWN0ZWQuIEluc3RlYWQgbG9vayBmb3IgYSBiZXR0ZXIgcGxhY2UuCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdWRpby5jCj4gaW5kZXggZWVhYzlmNzYzMTEwLi42MzgwYjI0MDA0NDggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiBAQCAtNjM2LDE1ICs2MzYsMTQgQEAgc3Rh dGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmlj ZSAqZGV2LAo+ICAJCQkJCQlpbnQgcG9ydCwgaW50IHJhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZHJtX2RldiA9IGRldl9wcml2LT5kZXY7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlcjsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0Owo+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBk ZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+IC0JZW51bSBwaXBlIHBpcGUgPSAtMTsKPiArCWVu dW0gcGlwZSBwaXBlID0gSU5WQUxJRF9QSVBFOwo+ICAJdTMyIHRtcDsKPiAgCWludCBuOwo+ICsJ aW50IGVyciA9IDA7Cj4gIAo+ICAJLyogSFNXLCBCRFcsIFNLTCwgS0JMIG5lZWQgdGhpcyBmaXgg Ki8KPiAgCWlmICghSVNfU0tZTEFLRShkZXZfcHJpdikgJiYKPiBAQCAtNjU1LDI2ICs2NTQsMjEg QEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0 IGRldmljZSAqZGV2LAo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4g IAkvKiAxLiBnZXQgdGhlIHBpcGUgKi8KPiAtCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZHJtX2Rl diwgaW50ZWxfZW5jb2Rlcikgewo+IC0JCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVM X09VVFBVVF9IRE1JKQo+IC0JCQljb250aW51ZTsKPiAtCQlpbnRlbF9kaWdfcG9ydCA9IGVuY190 b19kaWdfcG9ydCgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gLQkJaWYgKHBvcnQgPT0gaW50ZWxf ZGlnX3BvcnQtPnBvcnQpIHsKPiAtCQkJY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZW5jb2Rl ci0+YmFzZS5jcnRjKTsKPiAtCQkJaWYgKCFjcnRjKSB7Cj4gLQkJCQlEUk1fREVCVUdfS01TKCIl czogY3J0YyBpcyBOVUxMXG4iLCBfX2Z1bmNfXyk7Cj4gLQkJCQljb250aW51ZTsKPiAtCQkJfQo+ IC0JCQlwaXBlID0gY3J0Yy0+cGlwZTsKPiAtCQkJYnJlYWs7Cj4gLQkJfQo+ICsJaW50ZWxfZW5j b2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF07Cj4gKwlpZiAoIWludGVsX2VuY29k ZXIgfHwgIWludGVsX2VuY29kZXItPmJhc2UuY3J0YyB8fAo+ICsJICAgIGludGVsX2VuY29kZXIt PnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJubyB2YWxp ZCBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwo+ICsJCWVyciA9IC1FTk9ERVY7Cj4gKwkJ Z290byB1bmxvY2s7Cj4gIAl9Cj4gLQo+ICsJY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZW5j b2Rlci0+YmFzZS5jcnRjKTsKPiArCXBpcGUgPSBjcnRjLT5waXBlOwo+ICAJaWYgKHBpcGUgPT0g SU5WQUxJRF9QSVBFKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygibm8gcGlwZSBmb3IgdGhlIHBvcnQg JWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7Cj4gLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZf bXV0ZXgpOwo+IC0JCXJldHVybiAtRU5PREVWOwo+ICsJCWVyciA9IC1FTk9ERVY7Cj4gKwkJZ290 byB1bmxvY2s7Cj4gIAl9Cj4gKwo+ICAJRFJNX0RFQlVHX0tNUygicGlwZSAlYyBjb25uZWN0cyBw b3J0ICVjXG4iLAo+ICAJCQkJICBwaXBlX25hbWUocGlwZSksIHBvcnRfbmFtZShwb3J0KSk7Cj4g IAltb2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+IEBAIC02ODcsOCAr NjgxLDcgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUo c3RydWN0IGRldmljZSAqZGV2LAo+ICAJCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhwaXBl KSk7Cj4gIAkJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7Cj4gIAkJSTkxNV9XUklU RShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKPiAtCQltdXRleF91bmxvY2soJmRldl9wcml2LT5h dl9tdXRleCk7Cj4gLQkJcmV0dXJuIDA7Cj4gKwkJZ290byB1bmxvY2s7Cj4gIAl9Cj4gIAo+ICAJ biA9IGF1ZGlvX2NvbmZpZ19nZXRfbihtb2RlLCByYXRlKTsKPiBAQCAtNjk4LDggKzY5MSw3IEBA IHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBk ZXZpY2UgKmRldiwKPiAgCQl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOwo+ICAJ CXRtcCAmPSB+QVVEX0NPTkZJR19OX1BST0dfRU5BQkxFOwo+ICAJCUk5MTVfV1JJVEUoSFNXX0FV RF9DRkcocGlwZSksIHRtcCk7Cj4gLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgp Owo+IC0JCXJldHVybiAwOwo+ICsJCWdvdG8gdW5sb2NrOwo+ICAJfQo+ICAKPiAgCS8qIDMuIHNl dCB0aGUgTi9DVFMvTSAqLwo+IEBAIC03MDcsOCArNjk5LDkgQEAgc3RhdGljIGludCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICAJdG1w ID0gYXVkaW9fY29uZmlnX3NldHVwX25fcmVnKG4sIHRtcCk7Cj4gIAlJOTE1X1dSSVRFKEhTV19B VURfQ0ZHKHBpcGUpLCB0bXApOwo+ICAKPiArIHVubG9jazoKPiAgCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmF2X211dGV4KTsKPiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIGVycjsKPiAgfQo+ICAK PiAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2Ug KmRldiwgaW50IHBvcnQsCj4gQEAgLTcxNiwyNyArNzA5LDIxIEBAIHN0YXRpYyBpbnQgaTkxNV9h dWRpb19jb21wb25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAo+ICAJ CQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcykKPiAgewo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBk cm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X3ByaXYtPmRldjsKPiAgCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQ7Cj4gIAljb25zdCB1OCAqZWxkOwo+ICAJaW50IHJldCA9IC1FSU5WQUw7Cj4gIAo+ ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAtCWZvcl9lYWNoX2ludGVsX2Vu Y29kZXIoZHJtX2RldiwgaW50ZWxfZW5jb2Rlcikgewo+IC0JCWlmIChpbnRlbF9lbmNvZGVyLT50 eXBlICE9IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCAmJgo+IC0JCSAgICBpbnRlbF9lbmNvZGVy LT50eXBlICE9IElOVEVMX09VVFBVVF9IRE1JKQo+IC0JCQljb250aW51ZTsKPiArCWludGVsX2Vu Y29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ICsJaWYgKGludGVsX2VuY29k ZXIpIHsKPiArCQlyZXQgPSAwOwo+ICAJCWludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKPiAtCQlpZiAocG9ydCA9PSBpbnRlbF9kaWdfcG9ydC0+ cG9ydCkgewo+IC0JCQlyZXQgPSAwOwo+IC0JCQkqZW5hYmxlZCA9IGludGVsX2RpZ19wb3J0LT5h dWRpb19jb25uZWN0b3IgIT0gTlVMTDsKPiAtCQkJaWYgKCEqZW5hYmxlZCkKPiAtCQkJCWJyZWFr Owo+ICsJCSplbmFibGVkID0gaW50ZWxfZGlnX3BvcnQtPmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxM Owo+ICsJCWlmICgqZW5hYmxlZCkgewo+ICAJCQllbGQgPSBpbnRlbF9kaWdfcG9ydC0+YXVkaW9f Y29ubmVjdG9yLT5lbGQ7Cj4gIAkJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOwo+ICAJCQltZW1j cHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwo+IC0JCQlicmVhazsKPiAgCQl9Cj4g IAl9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggNzZjZTdjMjk2MGI2Li41 OWRlYjBkODU1MzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0zMjk1LDYg KzMyOTUsNyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVu dW0gcG9ydCBwb3J0KQo+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVsX2RkaV9n ZXRfY29uZmlnOwo+ICAKPiAgCWludGVsX2RpZ19wb3J0LT5wb3J0ID0gcG9ydDsKPiArCWRldl9w cml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBpbnRlbF9lbmNvZGVyOwo+ICAJaW50ZWxfZGlnX3Bv cnQtPnNhdmVkX3BvcnRfYml0cyA9IEk5MTVfUkVBRChERElfQlVGX0NUTChwb3J0KSkgJgo+ICAJ CQkJCSAgKERESV9CVUZfUE9SVF9SRVZFUlNBTCB8Cj4gIAkJCQkJICAgRERJX0FfNF9MQU5FUyk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggZTFjZWZmN2FiMjY1Li5lMTQ1NmVhZDVj NTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNjAwMyw2ICs2MDAzLDcgQEAg aW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJfQo+ICAKPiAgCWludGVs X2RpZ19wb3J0LT5wb3J0ID0gcG9ydDsKPiArCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0g PSBpbnRlbF9lbmNvZGVyOwo+ICAJaW50ZWxfZGlnX3BvcnQtPmRwLm91dHB1dF9yZWcgPSBvdXRw dXRfcmVnOwo+ICAKPiAgCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRElTUExB WVBPUlQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IGluZGV4IGJkZDQ2MmU3YzY5MC4u YzA0NjAxN2JlNzg2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IEBAIC0yMTQ4 LDYgKzIxNDgsNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIHZvaWQgaW50ZWxfaGRtaV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJICAgICBpOTE1X3JlZ190IGhkbWlfcmVnLCBlbnVt IHBvcnQgcG9ydCkKPiAgewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0Owo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4gIAlzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7Cj4gQEAgLTIyMTYsNiArMjIxNyw3 IEBAIHZvaWQgaW50ZWxfaGRtaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJaW50 ZWxfZW5jb2Rlci0+Y2xvbmVhYmxlIHw9IDEgPDwgSU5URUxfT1VUUFVUX0hETUk7Cj4gIAo+ICAJ aW50ZWxfZGlnX3BvcnQtPnBvcnQgPSBwb3J0Owo+ICsJZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtw b3J0XSA9IGludGVsX2VuY29kZXI7Cj4gIAlpbnRlbF9kaWdfcG9ydC0+aGRtaS5oZG1pX3JlZyA9 IGhkbWlfcmVnOwo+ICAJaW50ZWxfZGlnX3BvcnQtPmRwLm91dHB1dF9yZWcgPSBJTlZBTElEX01N SU9fUkVHOwo+ICAKPiAtLSAKPiAyLjYuMwo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==