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 11:06:43 +0100 Message-ID: <20151210100643.GO20822@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> <20151210093814.GJ20822@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f45.google.com (mail-wm0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id B77FA6E415 for ; Thu, 10 Dec 2015 02:06:48 -0800 (PST) Received: by wmww144 with SMTP id w144so17442683wmw.0 for ; Thu, 10 Dec 2015 02:06:46 -0800 (PST) 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: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTAsIDIwMTUgYXQgMTA6NDc6NTBBTSArMDEwMCwgVGFrYXNoaSBJd2FpIHdy b3RlOgo+IE9uIFRodSwgMTAgRGVjIDIwMTUgMTA6Mzg6MTQgKzAxMDAsCj4gRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+IAo+ID4gT24gVHVlLCBEZWMgMDgsIDIwMTUgYXQgMDY6NDI6MDlQTSArMDEw MCwgVGFrYXNoaSBJd2FpIHdyb3RlOgo+ID4gPiBPbiBNb24sIDA3IERlYyAyMDE1IDEwOjQxOjUx ICswMTAwLAo+ID4gPiBUYWthc2hpIEl3YWkgd3JvdGU6Cj4gPiA+ID4gCj4gPiA+ID4gT24gTW9u LCAwNyBEZWMgMjAxNSAwOTo0NDo0NSArMDEwMCwKPiA+ID4gPiBEYW5pZWwgVmV0dGVyIHdyb3Rl Ogo+ID4gPiA+ID4gCj4gPiA+ID4gPiBPbiBGcmksIERlYyAwNCwgMjAxNSBhdCAwNjoxMjo0N1BN ICswMTAwLCBUYWthc2hpIEl3YWkgd3JvdGU6Cj4gPiA+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBh IHJldmVyc2UgbWFwcGluZyBmcm9tIGEgZGlnaXRhbCBwb3J0IG51bWJlciB0bwo+ID4gPiA+ID4g PiBpbnRlbF9lbmNvZGVyIG9iamVjdCBjb250YWluaW5nIHRoZSBjb3JyZXNwb25kaW5nIGludGVs X2RpZ2l0YWxfcG9ydC4KPiA+ID4gPiA+ID4gSXQgc2ltcGxpZmllcyB0aGUgcXVlcnkgb2YgdGhl IGVuY29kZXIgYSBsb3QuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBU YWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+Cj4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiB2 Mi0+djM6Cj4gPiA+ID4gPiA+ICogU3F1YXNoZWQgcHJldmlvdXNseSB0d28gY2xlYW51cCBwYXRj aGVzIHRvIGEgc2luZ2xlIHBhdGNoCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAyICsrCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIHwgMzkgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j ICAgfCAgMSArCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAg IHwgIDEgKwo+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jICB8 ICAyICsrCj4gPiA+ID4gPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDI4 IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gPiA+ID4gPiA+IGluZGV4IDE1YzZkYzBiNGYzNy4uOWRiYzE0M2NhYzI3IDEwMDY0NAo+ ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ID4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+ID4gQEAg LTE5NDQsNiArMTk0NCw4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiA+ID4gPiA+ID4g IAkvKiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLwo+ID4gPiA+ID4gPiAgCWJv b2wgY2h2X3BoeV9hc3NlcnRbMl07Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gKwlzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRTXTsKPiA+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gPiAgCS8qCj4gPiA+ID4gPiA+ICAJICogTk9URTogVGhpcyBpcyB0aGUgZHJp MS91bXMgZHVuZ2VvbiwgZG9uJ3QgYWRkIHN0dWZmIGhlcmUuIFlvdXIgcGF0Y2gKPiA+ID4gPiA+ ID4gIAkgKiB3aWxsIGJlIHJlamVjdGVkLiBJbnN0ZWFkIGxvb2sgZm9yIGEgYmV0dGVyIHBsYWNl Lgo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVk aW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+ID4gPiA+ID4gaW5k ZXggZWVhYzlmNzYzMTEwLi4wNWYwOGI0NDVkZDYgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gPiA+ID4gPiBAQCAtNjM2LDEzICs2MzYs MTEgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3Ry dWN0IGRldmljZSAqZGV2LAo+ID4gPiA+ID4gPiAgCQkJCQkJaW50IHBvcnQsIGludCByYXRlKQo+ ID4gPiA+ID4gPiAgewo+ID4gPiA+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldl90b19pOTE1KGRldik7Cj4gPiA+ID4gPiA+IC0Jc3RydWN0IGRybV9kZXZpY2Ug KmRybV9kZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ID4gPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyOwo+ID4gPiA+ID4gPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0Owo+ID4gPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj Owo+ID4gPiA+ID4gPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+ID4gPiA+ID4g PiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9f Y29tcG9uZW50Owo+ID4gPiA+ID4gPiAtCWVudW0gcGlwZSBwaXBlID0gLTE7Cj4gPiA+ID4gPiA+ ICsJZW51bSBwaXBlIHBpcGUgPSBJTlZBTElEX1BJUEU7Cj4gPiA+ID4gPiA+ICAJdTMyIHRtcDsK PiA+ID4gPiA+ID4gIAlpbnQgbjsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiBAQCAtNjU1LDIx ICs2NTMsMTIgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3Jh dGUoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICAJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gPiA+ID4gIAkvKiAxLiBnZXQgdGhlIHBp cGUgKi8KPiA+ID4gPiA+ID4gLQlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRybV9kZXYsIGludGVs X2VuY29kZXIpIHsKPiA+ID4gPiA+ID4gLQkJaWYgKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5U RUxfT1VUUFVUX0hETUkpCj4gPiA+ID4gPiA+IC0JCQljb250aW51ZTsKPiA+ID4gPiA+ID4gLQkJ aW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2VuY29kZXItPmJhc2UpOwo+ ID4gPiA+ID4gPiAtCQlpZiAocG9ydCA9PSBpbnRlbF9kaWdfcG9ydC0+cG9ydCkgewo+ID4gPiA+ ID4gPiAtCQkJY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsK PiA+ID4gPiA+ID4gLQkJCWlmICghY3J0Yykgewo+ID4gPiA+ID4gPiAtCQkJCURSTV9ERUJVR19L TVMoIiVzOiBjcnRjIGlzIE5VTExcbiIsIF9fZnVuY19fKTsKPiA+ID4gPiA+ID4gLQkJCQljb250 aW51ZTsKPiA+ID4gPiA+ID4gLQkJCX0KPiA+ID4gPiA+ID4gLQkJCXBpcGUgPSBjcnRjLT5waXBl Owo+ID4gPiA+ID4gPiAtCQkJYnJlYWs7Cj4gPiA+ID4gPiA+IC0JCX0KPiA+ID4gPiA+ID4gKwlp bnRlbF9lbmNvZGVyID0gZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsKPiA+ID4gPiA+ID4g KwlpZiAoaW50ZWxfZW5jb2RlciAmJiBpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBV VF9IRE1JICYmCj4gPiA+ID4gPiAKPiA+ID4gPiA+IElzIGl0IHJlYWxseSBsZWdpdCB0byBjYWxs IHRoZXNlIGZ1bmN0aW9ucyB3aXRoIGEgcG9ydCBmb3Igd2hpY2ggd2UgZG9uJ3QKPiA+ID4gPiA+ IGhhdmUgYW4gZW5jb2Rlcj8gV0FSTl9PTighZW5jb2RlcikgaGVyZSBhbmQgaW4gdGhlIG90aGVy IHBsYWNlcz8KPiA+ID4gPiAKPiA+ID4gPiBDdXJyZW50bHkgdGhlcmUgYXJlIGxpdHRsZSBjaGVj a3MgaW4gdGhlIGNhbGxlciBzaWRlLiAgU28gSSBndWVzcyBvbmx5Cj4gPiA+ID4gYSBmZXcgb2Yg dGhlbSBkZXNlcnZlIFdBUk5fT04oKS4gIFRoZSBlbXB0eSBlbmNvZGVyIGFuZCBlbXB0eSBjcnRj Cj4gPiA+ID4gd291bGQgYmUgZ29vZCB3aXRoIFdBUk5fT04oKSwgYXMgdGhlIHBvcnQgaXMgc3Vw cG9zZWQgdG8gYmUgcmVhbC4gCj4gPiA+ID4gVGhlIEhETUkgY2hlY2sgbWF5IGJlIHNpbGVudCBh cyBpcy4KPiA+ID4gPiAKPiA+ID4gPiA+IE9yIHdvdWxkCj4gPiA+ID4gPiB0aGF0IHJlcXVpcmUg c29tZSBmdW5jdGlvbiBmb3Igc25kLWhkYSB0byBpbnF1aXJlIGk5MTUgd2hpY2ggcG9ydHMgYXJl Cj4gPiA+ID4gPiBlbmFibGVkICh3aGljaCB3ZSBwcm9iYWJseSBzaG91bGQgaGF2ZSB0byBhdm9p ZCByZWdpc3RlcmluZyBhdWRpbyBwb3J0cwo+ID4gPiA+ID4gdGhhdCBhcmVuJ3QgdGhlcmUpPwo+ ID4gPiA+ID4gCj4gPiA+ID4gPiBPdGhlcndpc2UgbGd0bS4KPiA+ID4gPiAKPiA+ID4gPiBPSywg SSdsbCBhZGQgV0FSTl9PTigpIHRvIHRoZW0uCj4gPiA+IAo+ID4gPiBJdCB0dXJuZWQgb3V0IHRo YXQgdGhlIGVuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3IgTVNULCBhcyBjdXJyZW50bHkKPiA+ID4g aXQncyBub3Qgc2V0IHByb3Blcmx5IHlldC4gIFNvIFdBUk5fT04oKSB3aWxsIHNwbGF0IHRvbyBt dWNoCj4gPiA+IHVubmVjZXNzYXJpbHkuCj4gPiA+IAo+ID4gPiBUaG91Z2gsIEkgcmV3cm90ZSBh IGJpdCBhYm91dCB0aGUgY2hlY2sgYW5kIGdpdmUgYSBiaXQgbW9yZSBtZXNzYWdlcy4KPiA+ID4g QmVsb3cgaXMgdGhlIHJldmlzZWQgcGF0Y2guICBTbyBmYXIsIEkgaGF2ZSBvbmx5IHRoaXMgY2hh bmdlLCBzbyBJCj4gPiA+IGhlc2l0YXRlIHRvIHJlc3VibWl0IHRoZSB3aG9sZSBwYXRjaHNldC4g IElmIGEgZnVsbCBwYXRjaHNldCBpcwo+ID4gPiBzdGlsbCBwcmVmZXJyZWQsIGxldCBtZSBrbm93 Lgo+ID4gCj4gPiBJbW8gdGhpcyBub3RlIGFib3V0IG1zdCBzaG91bGQgYmUgaW4gdGhlIGNvbW1p dCBtZXNzYWdlLiBsZ3RtIG90aGVyd2lzZS4KPiAKPiBPSywgSSdsbCB1cGRhdGUgdGhlIGNoYW5n ZWxvZy4KPiAKPiA+IERvIHlvdSBwbGFuIHRvIHByZXAgYSB0b3BpYyBicmFuY2ggd2l0aCBhbGwg dGhlIHBhdGNoZXMgdGhhdCB3ZSBjb3VsZCBwdWxsCj4gPiBpbnRvIGJvdGggc25kIGFuZCBkcm0t aW50ZWwgdHJlZXM/Cj4gCj4gWWVzLCBjdXJyZW50bHkgdGVzdC9oZG1pLWphY2sgYnJhbmNoIGNv bnRhaW5zIHRoZXNlIGJhc2VkIG9uIGRybS1uZXh0Cj4gYW5kIHNvbWUgc291bmQgdXBkYXRlcy4K PiAKPiA+IE5vdGUgdGhhdCBmb3IgNC41IGZlYXR1cmVzIGRybS1pbnRlbCBjbG9zZXMgbmV4dCB3 ZWVrLCBzbyBub3QgdGhhdCBtdWNoCj4gPiB0aW1lIGxlZnQuCj4gCj4gWWVhaCwgSSdkIGxpa2Ug dG8gbWVyZ2UgdGhpcyBzdHVmZiBzb29uaXNobHksIHRvby4KCkdyZWF0LiBXaGVuIGl0J3MgYWxs IHJlYWR5IGNhbiB5b3UgcGxzIHNlbmQgbWUgYSBwdWxsIHJlcT8KClRoYW5rcywgRGFuaWVsCgo+ IAo+IAo+IHRoYW5rcywKPiAKPiBUYWthc2hpCj4gCj4gPiAtRGFuaWVsCj4gPiAKPiA+ID4gCj4g PiA+IAo+ID4gPiB0aGFua3MsCj4gPiA+IAo+ID4gPiBUYWthc2hpCj4gPiA+IAo+ID4gPiAtLSA4 PCAtLQo+ID4gPiBGcm9tOiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+Cj4gPiA+IFN1Ympl Y3Q6IFtQQVRDSCB2NF0gZHJtL2k5MTU6IEFkZCByZXZlcnNlIG1hcHBpbmcgYmV0d2VlbiBwb3J0 IGFuZCBpbnRlbF9lbmNvZGVyCj4gPiA+IAo+ID4gPiBUaGlzIHBhdGNoIGFkZHMgYSByZXZlcnNl IG1hcHBpbmcgZnJvbSBhIGRpZ2l0YWwgcG9ydCBudW1iZXIgdG8KPiA+ID4gaW50ZWxfZW5jb2Rl ciBvYmplY3QgY29udGFpbmluZyB0aGUgY29ycmVzcG9uZGluZyBpbnRlbF9kaWdpdGFsX3BvcnQu Cj4gPiA+IEl0IHNpbXBsaWZpZXMgdGhlIHF1ZXJ5IG9mIHRoZSBlbmNvZGVyIGEgbG90Lgo+ID4g PiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogVGFrYXNoaSBJd2FpIDx0aXdhaUBzdXNlLmRlPgo+ID4g PiAtLS0KPiA+ID4gdjMtPnY0OiBhZGQgYSBiaXQgbW9yZSB2ZXJib3NlIGNoZWNrIGZvciBOVUxM IGVuY29kZXIsIGV0Yy4KPiA+ID4gCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgIHwgIDIgKysKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMg fCA1NyArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICB8ICAxICsKPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgICAgfCAgMSArCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMgIHwgIDIgKysKPiA+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9u cygrKSwgMzUgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiA+ID4gaW5kZXggMTVjNmRjMGI0ZjM3Li45ZGJjMTQzY2FjMjcgMTAwNjQ0Cj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBAQCAtMTk0NCw2ICsxOTQ0LDggQEAgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgewo+ID4gPiAgCS8qIHBlcmZvcm0gUEhZIHN0YXRlIHNhbml0eSBjaGVj a3M/ICovCj4gPiA+ICAJYm9vbCBjaHZfcGh5X2Fzc2VydFsyXTsKPiA+ID4gIAo+ID4gPiArCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICpkaWdfcG9ydF9tYXBbSTkxNV9NQVhfUE9SVFNdOwo+ID4gPiAr Cj4gPiA+ICAJLyoKPiA+ID4gIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9u LCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4gWW91ciBwYXRjaAo+ID4gPiAgCSAqIHdpbGwgYmUgcmVq ZWN0ZWQuIEluc3RlYWQgbG9vayBmb3IgYSBiZXR0ZXIgcGxhY2UuCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXVkaW8uYwo+ID4gPiBpbmRleCBlZWFjOWY3NjMxMTAuLjYzODBiMjQwMDQ0OCAx MDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiA+IEBAIC02MzYs MTUgKzYzNiwxNCBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9f cmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiA+ICAJCQkJCQlpbnQgcG9ydCwgaW50IHJhdGUp Cj4gPiA+ICB7Cj4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 X3RvX2k5MTUoZGV2KTsKPiA+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl9w cml2LT5kZXY7Cj4gPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4g PiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7Cj4gPiA+ICAJ c3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGU7Cj4gPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9w cml2LT5hdWRpb19jb21wb25lbnQ7Cj4gPiA+IC0JZW51bSBwaXBlIHBpcGUgPSAtMTsKPiA+ID4g KwllbnVtIHBpcGUgcGlwZSA9IElOVkFMSURfUElQRTsKPiA+ID4gIAl1MzIgdG1wOwo+ID4gPiAg CWludCBuOwo+ID4gPiArCWludCBlcnIgPSAwOwo+ID4gPiAgCj4gPiA+ICAJLyogSFNXLCBCRFcs IFNLTCwgS0JMIG5lZWQgdGhpcyBmaXggKi8KPiA+ID4gIAlpZiAoIUlTX1NLWUxBS0UoZGV2X3By aXYpICYmCj4gPiA+IEBAIC02NTUsMjYgKzY1NCwyMSBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9f Y29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiA+ICAKPiA+ ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiAgCS8qIDEuIGdldCB0 aGUgcGlwZSAqLwo+ID4gPiAtCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZHJtX2RldiwgaW50ZWxf ZW5jb2Rlcikgewo+ID4gPiAtCQlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQ VVRfSERNSSkKPiA+ID4gLQkJCWNvbnRpbnVlOwo+ID4gPiAtCQlpbnRlbF9kaWdfcG9ydCA9IGVu Y190b19kaWdfcG9ydCgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gPiA+IC0JCWlmIChwb3J0ID09 IGludGVsX2RpZ19wb3J0LT5wb3J0KSB7Cj4gPiA+IC0JCQljcnRjID0gdG9faW50ZWxfY3J0Yyhp bnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOwo+ID4gPiAtCQkJaWYgKCFjcnRjKSB7Cj4gPiA+IC0J CQkJRFJNX0RFQlVHX0tNUygiJXM6IGNydGMgaXMgTlVMTFxuIiwgX19mdW5jX18pOwo+ID4gPiAt CQkJCWNvbnRpbnVlOwo+ID4gPiAtCQkJfQo+ID4gPiAtCQkJcGlwZSA9IGNydGMtPnBpcGU7Cj4g PiA+IC0JCQlicmVhazsKPiA+ID4gLQkJfQo+ID4gPiArCWludGVsX2VuY29kZXIgPSBkZXZfcHJp di0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ID4gPiArCWlmICghaW50ZWxfZW5jb2RlciB8fCAhaW50 ZWxfZW5jb2Rlci0+YmFzZS5jcnRjIHx8Cj4gPiA+ICsJICAgIGludGVsX2VuY29kZXItPnR5cGUg IT0gSU5URUxfT1VUUFVUX0hETUkpIHsKPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygibm8gdmFsaWQg cG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKPiA+ID4gKwkJZXJyID0gLUVOT0RFVjsKPiA+ ID4gKwkJZ290byB1bmxvY2s7Cj4gPiA+ICAJfQo+ID4gPiAtCj4gPiA+ICsJY3J0YyA9IHRvX2lu dGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiA+ID4gKwlwaXBlID0gY3J0Yy0+ cGlwZTsKPiA+ID4gIAlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKPiA+ID4gIAkJRFJNX0RF QlVHX0tNUygibm8gcGlwZSBmb3IgdGhlIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7Cj4g PiA+IC0JCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gLQkJcmV0dXJu IC1FTk9ERVY7Cj4gPiA+ICsJCWVyciA9IC1FTk9ERVY7Cj4gPiA+ICsJCWdvdG8gdW5sb2NrOwo+ ID4gPiAgCX0KPiA+ID4gKwo+ID4gPiAgCURSTV9ERUJVR19LTVMoInBpcGUgJWMgY29ubmVjdHMg cG9ydCAlY1xuIiwKPiA+ID4gIAkJCQkgIHBpcGVfbmFtZShwaXBlKSwgcG9ydF9uYW1lKHBvcnQp KTsKPiA+ID4gIAltb2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4g PiBAQCAtNjg3LDggKzY4MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3lu Y19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ID4gIAkJdG1wID0gSTkxNV9SRUFE KEhTV19BVURfQ0ZHKHBpcGUpKTsKPiA+ID4gIAkJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19F TkFCTEU7Cj4gPiA+ICAJCUk5MTVfV1JJVEUoSFNXX0FVRF9DRkcocGlwZSksIHRtcCk7Cj4gPiA+ IC0JCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gLQkJcmV0dXJuIDA7 Cj4gPiA+ICsJCWdvdG8gdW5sb2NrOwo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAgCW4gPSBhdWRp b19jb25maWdfZ2V0X24obW9kZSwgcmF0ZSk7Cj4gPiA+IEBAIC02OTgsOCArNjkxLDcgQEAgc3Rh dGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmlj ZSAqZGV2LAo+ID4gPiAgCQl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOwo+ID4g PiAgCQl0bXAgJj0gfkFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRTsKPiA+ID4gIAkJSTkxNV9XUklU RShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKPiA+ID4gLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+YXZfbXV0ZXgpOwo+ID4gPiAtCQlyZXR1cm4gMDsKPiA+ID4gKwkJZ290byB1bmxvY2s7Cj4g PiA+ICAJfQo+ID4gPiAgCj4gPiA+ICAJLyogMy4gc2V0IHRoZSBOL0NUUy9NICovCj4gPiA+IEBA IC03MDcsOCArNjk5LDkgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1 ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gPiAgCXRtcCA9IGF1ZGlvX2NvbmZpZ19z ZXR1cF9uX3JlZyhuLCB0bXApOwo+ID4gPiAgCUk5MTVfV1JJVEUoSFNXX0FVRF9DRkcocGlwZSks IHRtcCk7Cj4gPiA+ICAKPiA+ID4gKyB1bmxvY2s6Cj4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+YXZfbXV0ZXgpOwo+ID4gPiAtCXJldHVybiAwOwo+ID4gPiArCXJldHVybiBlcnI7Cj4g PiA+ICB9Cj4gPiA+ICAKPiA+ID4gIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0 X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAo+ID4gPiBAQCAtNzE2LDI3ICs3MDks MjEgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZp Y2UgKmRldiwgaW50IHBvcnQsCj4gPiA+ICAJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1h eF9ieXRlcykKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXZfdG9faTkxNShkZXYpOwo+ID4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2 ID0gZGV2X3ByaXYtPmRldjsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlcjsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsK PiA+ID4gIAljb25zdCB1OCAqZWxkOwo+ID4gPiAgCWludCByZXQgPSAtRUlOVkFMOwo+ID4gPiAg Cj4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gLQlmb3JfZWFj aF9pbnRlbF9lbmNvZGVyKGRybV9kZXYsIGludGVsX2VuY29kZXIpIHsKPiA+ID4gLQkJaWYgKGlu dGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUICYmCj4gPiA+IC0J CSAgICBpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9IRE1JKQo+ID4gPiAtCQkJ Y29udGludWU7Cj4gPiA+ICsJaW50ZWxfZW5jb2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9tYXBb cG9ydF07Cj4gPiA+ICsJaWYgKGludGVsX2VuY29kZXIpIHsKPiA+ID4gKwkJcmV0ID0gMDsKPiA+ ID4gIAkJaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2VuY29kZXItPmJh c2UpOwo+ID4gPiAtCQlpZiAocG9ydCA9PSBpbnRlbF9kaWdfcG9ydC0+cG9ydCkgewo+ID4gPiAt CQkJcmV0ID0gMDsKPiA+ID4gLQkJCSplbmFibGVkID0gaW50ZWxfZGlnX3BvcnQtPmF1ZGlvX2Nv bm5lY3RvciAhPSBOVUxMOwo+ID4gPiAtCQkJaWYgKCEqZW5hYmxlZCkKPiA+ID4gLQkJCQlicmVh azsKPiA+ID4gKwkJKmVuYWJsZWQgPSBpbnRlbF9kaWdfcG9ydC0+YXVkaW9fY29ubmVjdG9yICE9 IE5VTEw7Cj4gPiA+ICsJCWlmICgqZW5hYmxlZCkgewo+ID4gPiAgCQkJZWxkID0gaW50ZWxfZGln X3BvcnQtPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOwo+ID4gPiAgCQkJcmV0ID0gZHJtX2VsZF9zaXpl KGVsZCk7Cj4gPiA+ICAJCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwo+ ID4gPiAtCQkJYnJlYWs7Cj4gPiA+ICAJCX0KPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4gaW5kZXggNzZjZTdjMjk2MGI2Li41OWRlYjBkODU1MzMg MTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+IEBAIC0zMjk1LDYg KzMyOTUsNyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVu dW0gcG9ydCBwb3J0KQo+ID4gPiAgCWludGVsX2VuY29kZXItPmdldF9jb25maWcgPSBpbnRlbF9k ZGlfZ2V0X2NvbmZpZzsKPiA+ID4gIAo+ID4gPiAgCWludGVsX2RpZ19wb3J0LT5wb3J0ID0gcG9y dDsKPiA+ID4gKwlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdID0gaW50ZWxfZW5jb2RlcjsK PiA+ID4gIAlpbnRlbF9kaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzID0gSTkxNV9SRUFEKERESV9C VUZfQ1RMKHBvcnQpKSAmCj4gPiA+ICAJCQkJCSAgKERESV9CVUZfUE9SVF9SRVZFUlNBTCB8Cj4g PiA+ICAJCQkJCSAgIERESV9BXzRfTEFORVMpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK PiA+ID4gaW5kZXggZTFjZWZmN2FiMjY1Li5lMTQ1NmVhZDVjNTMgMTAwNjQ0Cj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiBAQCAtNjAwMyw2ICs2MDAzLDcgQEAgaW50ZWxfZHBf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAgCWlu dGVsX2RpZ19wb3J0LT5wb3J0ID0gcG9ydDsKPiA+ID4gKwlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFw W3BvcnRdID0gaW50ZWxfZW5jb2RlcjsKPiA+ID4gIAlpbnRlbF9kaWdfcG9ydC0+ZHAub3V0cHV0 X3JlZyA9IG91dHB1dF9yZWc7Cj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9lbmNvZGVyLT50eXBlID0g SU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j Cj4gPiA+IGluZGV4IGJkZDQ2MmU3YzY5MC4uYzA0NjAxN2JlNzg2IDEwMDY0NAo+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiA+IEBAIC0yMTQ4LDYgKzIxNDgsNyBAQCB2b2lk IGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsCj4gPiA+ICB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ID4gPiAgCQkgICAgIGk5MTVfcmVnX3QgaGRtaV9yZWcsIGVudW0gcG9ydCBwb3J0 KQo+ID4gPiAgewo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQ7Cj4gPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4g PiA+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwo+ID4gPiBAQCAt MjIxNiw2ICsyMjE3LDcgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiA+ID4gIAkJaW50ZWxfZW5jb2Rlci0+Y2xvbmVhYmxlIHw9IDEgPDwgSU5URUxfT1VU UFVUX0hETUk7Cj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9kaWdfcG9ydC0+cG9ydCA9IHBvcnQ7Cj4g PiA+ICsJZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7Cj4gPiA+ ICAJaW50ZWxfZGlnX3BvcnQtPmhkbWkuaGRtaV9yZWcgPSBoZG1pX3JlZzsKPiA+ID4gIAlpbnRl bF9kaWdfcG9ydC0+ZHAub3V0cHV0X3JlZyA9IElOVkFMSURfTU1JT19SRUc7Cj4gPiA+ICAKPiA+ ID4gLS0gCj4gPiA+IDIuNi4zCj4gPiA+IAo+ID4gCj4gPiAtLSAKPiA+IERhbmllbCBWZXR0ZXIK PiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKPiA+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVs IENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==