From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drm/i915/sdvo: Fix multi function encoder stuff Date: Mon, 17 Sep 2018 20:34:36 +0300 Message-ID: <20180917173436.GO5565@intel.com> References: <20180917151504.8754-1-ville.syrjala@linux.intel.com> <20180917171605.GE2309@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9D15B6E025 for ; Mon, 17 Sep 2018 17:35:30 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180917171605.GE2309@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBTZXAgMTcsIDIwMTggYXQgMTA6MTY6MDVBTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIE1vbiwgU2VwIDE3LCAyMDE4IGF0IDA2OjE1OjAzUE0gKzAzMDAsIFZpbGxlIFN5 cmphbGEgd3JvdGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+ID4gCj4gPiBTRFZPIGVuY29kZXJzIGNhbiBoYXZlIG11bHRpcGxlIGRp ZmZlcmVudCB0eXBlcyBvZiBvdXRwdXRzIGhhbmdpbmcgb2ZmCj4gPiB0aGVtLiBDdXJyZW50bHkg dGhlIGNvZGUgdHJpZXMgdG8gbXVjayBhcm91bmQgd2l0aCB2YXJpb3VzIGlzX2Zvbwo+ID4gZmxh Z3MgaW4gdGhlIGVuY29kZXIgdG8gZmlndXJlIG91dCB3aGljaCB0eXBlIGl0cyBkcml2aW5nLiBU aGF0IGRvZXNuJ3QKPiA+IHdvcmsgd2l0aCBhdG9taWMgYW5kIG90aGVyIHN0dWZmLCBzbyBsZXQn cyBudWtlIHRob3NlIGZsYWdzIGFuZCBqdXN0Cj4gPiBsb29rIGF0IHdoaWNoIHR5cGUgb2YgY29u bmVjdG9yIHdlJ3JlIGFjdHVhbGx5IGRlYWxpbmcgd2l0aC4KPiA+IAo+ID4gVGhlIGlzX2hkbWkg d2UnbGwgbmVlZCBhcyB0aGF0J3Mgbm90IGRpc2NvdmVyYWJsZSB2aWEgdGhlIG91dHB1dCBmbGFn cywKPiA+IGJ1dCB3ZSdsbCBqdXN0IG1vdmUgaXQgdW5kZXIgdGhlIGNvbm5lY3Rvci4KPiA+IAo+ ID4gV2UnbGwgYWxzbyBtb3ZlIHRoZSBzZHZvIGZpeGVkIG1vZGUgaGFuZGxpbmcgb3V0IGZyb20g dGhlIC5nZXRfbW9kZXMoKQo+ID4gaG9vayBpbnRvIHRoZSBzZHZvIGx2ZHMgaW5pdCBmdW5jdGlv biBzbyB0aGF0IHdlIGNhbiBiYWlsIG91dCBwcm9wZXJseQo+ID4gaWYgdGhlcmUgaXMgbm8gZml4 ZWQgbW9kZSB0byBiZSBmb3VuZC4KPiAKPiBJIHdvbmRlcmVkIGlmIHRoaXMgbGFzdCBwYXJ0IGRp ZG4ndCBkZXNlcnZlZCBhIHNlcGFyYXRlZCBwYXRjaC4gQnV0IG5vdCBzdXJlCj4gaG93IGNoaWNr ZW4tZWdnIGlzc3VlIHRoaXMgY291bGQgY2F1c2Ugc28gbWF5YmUgdGhlIHNhbWUgcGF0Y2ggaXMg YmV0dGVyCj4gaW5kZWVkLi4uCgpUaGVyZSBhcmUgYm90aCBjaGlja2VucyBhbmQgZWdncyBpbiB0 aGVyZSBmb3Igc3VyZS4gSSBzdXBwb3NlIGl0IG1pZ2h0CmhhdmUgYmVlbiBwb3NzaWJsZSB0byBo YW5kbGUgaXQgYnkgY2xlYXJpbmcgdGhlIExWRFMgYml0IGZyb20Kb3V0cHV0X2ZsYWcgaWYgd2Ug ZmFpbCB0byBmaW5kIHRoZSBtb2RlLiBCdXQgdGhlbiB3ZSdkIGJlIGxlZnQgd2l0aAphbiBMVkRT IGNvbm5lY3RvciB3aXRob3V0IHRoZSBmbGFnIGFuZCBJJ20gbm90IHF1aXRlIHN1cmUgd2hlcmUg dGhlCmNvZGUgd291bGQgbGVhZCBpZiB3ZSBldmVyIHRyaWVkIHRvIHVzZSBpdC4gQWx0aG91Z2gg b25lIGNhbiBhcmd1ZQp0aGF0IHRoZSBjdXJyZW50IGNvZGUgYWxyZWFkeSBoYXMgdGhhdCBzYW1l IGlzc3VlLCBtYXliZS4KCj4gCj4gUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52 aXZpQGludGVsLmNvbT4KPiAKPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nkdm8uYyB8IDEwMSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCA1NyBkZWxl dGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ID4gaW5kZXggODEy ZmU3YjA2Zjg3Li43MDEzNzJlNTEyYTggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zZHZvLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nk dm8uYwo+ID4gQEAgLTk5LDMxICs5OSwxMiBAQCBzdHJ1Y3QgaW50ZWxfc2R2byB7Cj4gPiAgCSAq Lwo+ID4gIAl1aW50MTZfdCBob3RwbHVnX2FjdGl2ZTsKPiA+ICAKPiA+IC0JLyoqCj4gPiAtCSAq IFRoaXMgaXMgc2V0IGlmIHdlJ3JlIGdvaW5nIHRvIHRyZWF0IHRoZSBkZXZpY2UgYXMgVFYtb3V0 Lgo+ID4gLQkgKgo+ID4gLQkgKiBXaGlsZSB3ZSBoYXZlIHRoZXNlIG5pY2UgZnJpZW5kbHkgZmxh Z3MgZm9yIG91dHB1dCB0eXBlcyB0aGF0IG91Z2h0Cj4gPiAtCSAqIHRvIGRlY2lkZSB0aGlzIGZv ciB1cywgdGhlIFMtVmlkZW8gb3V0cHV0IG9uIG91ciBIRE1JK1MtVmlkZW8gY2FyZAo+ID4gLQkg KiBzaG93cyB1cCBhcyBSR0IxIChWR0EpLgo+ID4gLQkgKi8KPiA+IC0JYm9vbCBpc190djsKPiA+ IC0KPiA+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gPiAgCj4gPiAtCS8qKgo+ID4gLQkgKiBUaGlzIGlz IHNldCBpZiB3ZSB0cmVhdCB0aGUgZGV2aWNlIGFzIEhETUksIGluc3RlYWQgb2YgRFZJLgo+ID4g LQkgKi8KPiA+IC0JYm9vbCBpc19oZG1pOwo+ID4gIAlib29sIGhhc19oZG1pX21vbml0b3I7Cj4g PiAgCWJvb2wgaGFzX2hkbWlfYXVkaW87Cj4gPiAgCWJvb2wgcmdiX3F1YW50X3JhbmdlX3NlbGVj dGFibGU7Cj4gPiAgCj4gPiAtCS8qKgo+ID4gLQkgKiBUaGlzIGlzIHNldCBpZiB3ZSBkZXRlY3Qg b3V0cHV0IG9mIHNkdm8gZGV2aWNlIGFzIExWRFMgYW5kCj4gPiAtCSAqIGhhdmUgYSB2YWxpZCBm aXhlZCBtb2RlIHRvIHVzZSB3aXRoIHRoZSBwYW5lbC4KPiA+IC0JICovCj4gPiAtCWJvb2wgaXNf bHZkczsKPiA+IC0KPiA+ICAJLyoqCj4gPiAgCSAqIFRoaXMgaXMgc2R2byBmaXhlZCBwYW5uZWwg bW9kZSBwb2ludGVyCj4gPiAgCSAqLwo+ID4gQEAgLTE3Miw2ICsxNTMsMTEgQEAgc3RydWN0IGlu dGVsX3Nkdm9fY29ubmVjdG9yIHsKPiA+ICAKPiA+ICAJLyogdGhpcyBpcyB0byBnZXQgdGhlIHJh bmdlIG9mIG1hcmdpbi4qLwo+ID4gIAl1MzIgbWF4X2hzY2FuLCBtYXhfdnNjYW47Cj4gPiArCj4g PiArCS8qKgo+ID4gKwkgKiBUaGlzIGlzIHNldCBpZiB3ZSB0cmVhdCB0aGUgZGV2aWNlIGFzIEhE TUksIGluc3RlYWQgb2YgRFZJLgo+ID4gKwkgKi8KPiA+ICsJYm9vbCBpc19oZG1pOwo+ID4gIH07 Cj4gPiAgCj4gPiAgc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlIHsKPiA+IEBAIC03 NjYsNiArNzUyLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b19nZXRfaW5wdXRfdGltaW5nKHN0 cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAo+ID4gIAo+ID4gIHN0YXRpYyBib29sCj4gPiAg aW50ZWxfc2R2b19jcmVhdGVfcHJlZmVycmVkX2lucHV0X3RpbWluZyhzdHJ1Y3QgaW50ZWxfc2R2 byAqaW50ZWxfc2R2bywKPiA+ICsJCQkJCSBzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0b3IgKmlu dGVsX3Nkdm9fY29ubmVjdG9yLAo+ID4gIAkJCQkJIHVpbnQxNl90IGNsb2NrLAo+ID4gIAkJCQkJ IHVpbnQxNl90IHdpZHRoLAo+ID4gIAkJCQkJIHVpbnQxNl90IGhlaWdodCkKPiA+IEBAIC03Nzgs NyArNzY1LDcgQEAgaW50ZWxfc2R2b19jcmVhdGVfcHJlZmVycmVkX2lucHV0X3RpbWluZyhzdHJ1 Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywKPiA+ICAJYXJncy5oZWlnaHQgPSBoZWlnaHQ7Cj4g PiAgCWFyZ3MuaW50ZXJsYWNlID0gMDsKPiA+ICAKPiA+IC0JaWYgKGludGVsX3Nkdm8tPmlzX2x2 ZHMgJiYKPiA+ICsJaWYgKElTX0xWRFMoaW50ZWxfc2R2b19jb25uZWN0b3IpICYmCj4gPiAgCSAg IChpbnRlbF9zZHZvLT5zZHZvX2x2ZHNfZml4ZWRfbW9kZS0+aGRpc3BsYXkgIT0gd2lkdGggfHwK PiA+ICAJICAgIGludGVsX3Nkdm8tPnNkdm9fbHZkc19maXhlZF9tb2RlLT52ZGlzcGxheSAhPSBo ZWlnaHQpKQo+ID4gIAkJYXJncy5zY2FsZWQgPSAxOwo+ID4gQEAgLTEwNjcsNiArMTA1NCw3IEBA IGludGVsX3Nkdm9fc2V0X291dHB1dF90aW1pbmdzX2Zyb21fbW9kZShzdHJ1Y3QgaW50ZWxfc2R2 byAqaW50ZWxfc2R2bywKPiA+ICAgKi8KPiA+ICBzdGF0aWMgYm9vbAo+ID4gIGludGVsX3Nkdm9f Z2V0X3ByZWZlcnJlZF9pbnB1dF9tb2RlKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAo+ ID4gKwkJCQkgICAgc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9yICppbnRlbF9zZHZvX2Nvbm5l Y3RvciwKPiA+ICAJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ ID4gIAkJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gPiAg ewo+ID4gQEAgLTEwNzcsNiArMTA2NSw3IEBAIGludGVsX3Nkdm9fZ2V0X3ByZWZlcnJlZF9pbnB1 dF9tb2RlKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAo+ID4gIAkJcmV0dXJuIGZhbHNl Owo+ID4gIAo+ID4gIAlpZiAoIWludGVsX3Nkdm9fY3JlYXRlX3ByZWZlcnJlZF9pbnB1dF90aW1p bmcoaW50ZWxfc2R2bywKPiA+ICsJCQkJCQkgICAgICBpbnRlbF9zZHZvX2Nvbm5lY3RvciwKPiA+ ICAJCQkJCQkgICAgICBtb2RlLT5jbG9jayAvIDEwLAo+ID4gIAkJCQkJCSAgICAgIG1vZGUtPmhk aXNwbGF5LAo+ID4gIAkJCQkJCSAgICAgIG1vZGUtPnZkaXNwbGF5KSkKPiA+IEBAIC0xMTI3LDYg KzExMTYsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9zZHZvX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAlzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2 byA9IHRvX3Nkdm8oZW5jb2Rlcik7Cj4gPiAgCXN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3Rvcl9z dGF0ZSAqaW50ZWxfc2R2b19zdGF0ZSA9Cj4gPiAgCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcl9z dGF0ZShjb25uX3N0YXRlKTsKPiA+ICsJc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9yICppbnRl bF9zZHZvX2Nvbm5lY3RvciA9Cj4gPiArCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcihjb25uX3N0 YXRlLT5jb25uZWN0b3IpOwo+ID4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5tb2RlOwo+ID4gIAo+ID4g QEAgLTExNDIsMjAgKzExMzMsMjIgQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b19jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJICogdGltaW5ncywgZXZl biB0aG91Z2ggdGhpcyBpc24ndCByZWFsbHkgdGhlIHJpZ2h0IHBsYWNlIGluCj4gPiAgCSAqIHRo ZSBzZXF1ZW5jZSB0byBkbyBpdC4gT2ggd2VsbC4KPiA+ICAJICovCj4gPiAtCWlmIChpbnRlbF9z ZHZvLT5pc190dikgewo+ID4gKwlpZiAoSVNfVFYoaW50ZWxfc2R2b19jb25uZWN0b3IpKSB7Cj4g PiAgCQlpZiAoIWludGVsX3Nkdm9fc2V0X291dHB1dF90aW1pbmdzX2Zyb21fbW9kZShpbnRlbF9z ZHZvLCBtb2RlKSkKPiA+ICAJCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCj4gPiAgCQkodm9pZCkgaW50 ZWxfc2R2b19nZXRfcHJlZmVycmVkX2lucHV0X21vZGUoaW50ZWxfc2R2bywKPiA+ICsJCQkJCQkJ ICAgaW50ZWxfc2R2b19jb25uZWN0b3IsCj4gPiAgCQkJCQkJCSAgIG1vZGUsCj4gPiAgCQkJCQkJ CSAgIGFkanVzdGVkX21vZGUpOwo+ID4gIAkJcGlwZV9jb25maWctPnNkdm9fdHZfY2xvY2sgPSB0 cnVlOwo+ID4gLQl9IGVsc2UgaWYgKGludGVsX3Nkdm8tPmlzX2x2ZHMpIHsKPiA+ICsJfSBlbHNl IGlmIChJU19MVkRTKGludGVsX3Nkdm9fY29ubmVjdG9yKSkgewo+ID4gIAkJaWYgKCFpbnRlbF9z ZHZvX3NldF9vdXRwdXRfdGltaW5nc19mcm9tX21vZGUoaW50ZWxfc2R2bywKPiA+ICAJCQkJCQkJ ICAgICBpbnRlbF9zZHZvLT5zZHZvX2x2ZHNfZml4ZWRfbW9kZSkpCj4gPiAgCQkJcmV0dXJuIGZh bHNlOwo+ID4gIAo+ID4gIAkJKHZvaWQpIGludGVsX3Nkdm9fZ2V0X3ByZWZlcnJlZF9pbnB1dF9t b2RlKGludGVsX3Nkdm8sCj4gPiArCQkJCQkJCSAgIGludGVsX3Nkdm9fY29ubmVjdG9yLAo+ID4g IAkJCQkJCQkgICBtb2RlLAo+ID4gIAkJCQkJCQkgICBhZGp1c3RlZF9tb2RlKTsKPiA+ICAJfQo+ ID4gQEAgLTExOTQsMTEgKzExODcsMTEgQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b19jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJfQo+ID4gIAo+ID4g IAkvKiBDbG9jayBjb21wdXRhdGlvbiBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIgcGl4ZWwgbXVsdGlw bGllci4gKi8KPiA+IC0JaWYgKGludGVsX3Nkdm8tPmlzX3R2KQo+ID4gKwlpZiAoSVNfVFYoaW50 ZWxfc2R2b19jb25uZWN0b3IpKQo+ID4gIAkJaTl4eF9hZGp1c3Rfc2R2b190dl9jbG9jayhwaXBl X2NvbmZpZyk7Cj4gPiAgCj4gPiAgCS8qIFNldCB1c2VyIHNlbGVjdGVkIFBBUiB0byBpbmNvbWlu ZyBtb2RlJ3MgbWVtYmVyICovCj4gPiAtCWlmIChpbnRlbF9zZHZvLT5pc19oZG1pKQo+ID4gKwlp ZiAoaW50ZWxfc2R2b19jb25uZWN0b3ItPmlzX2hkbWkpCj4gPiAgCQlhZGp1c3RlZF9tb2RlLT5w aWN0dXJlX2FzcGVjdF9yYXRpbyA9IGNvbm5fc3RhdGUtPnBpY3R1cmVfYXNwZWN0X3JhdGlvOwo+ ID4gIAo+ID4gIAlyZXR1cm4gdHJ1ZTsKPiA+IEBAIC0xMjc1LDYgKzEyNjgsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9zZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIsCj4gPiAgCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ICAJY29uc3Qgc3RydWN0IGlu dGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlICpzZHZvX3N0YXRlID0KPiA+ICAJCXRvX2ludGVsX3Nk dm9fY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+ID4gKwljb25zdCBzdHJ1Y3QgaW50ZWxf c2R2b19jb25uZWN0b3IgKmludGVsX3Nkdm9fY29ubmVjdG9yID0KPiA+ICsJCXRvX2ludGVsX3Nk dm9fY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gPiAgCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGNfc3RhdGUtPmJhc2UubW9kZTsKPiA+ICAJc3Ry dWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8gPSB0b19zZHZvKGludGVsX2VuY29kZXIpOwo+ID4g IAl1MzIgc2R2b3g7Cj4gPiBAQCAtMTMwNCw3ICsxMjk5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf c2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ID4g IAkJcmV0dXJuOwo+ID4gIAo+ID4gIAkvKiBsdmRzIGhhcyBhIHNwZWNpYWwgZml4ZWQgb3V0cHV0 IHRpbWluZy4gKi8KPiA+IC0JaWYgKGludGVsX3Nkdm8tPmlzX2x2ZHMpCj4gPiArCWlmIChJU19M VkRTKGludGVsX3Nkdm9fY29ubmVjdG9yKSkKPiA+ICAJCWludGVsX3Nkdm9fZ2V0X2R0ZF9mcm9t X21vZGUoJm91dHB1dF9kdGQsCj4gPiAgCQkJCQkgICAgIGludGVsX3Nkdm8tPnNkdm9fbHZkc19m aXhlZF9tb2RlKTsKPiA+ICAJZWxzZQo+ID4gQEAgLTEzMjUsMTMgKzEzMjAsMTMgQEAgc3RhdGlj IHZvaWQgaW50ZWxfc2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyLAo+ID4gIAl9IGVsc2UKPiA+ICAJCWludGVsX3Nkdm9fc2V0X2VuY29kZShpbnRlbF9z ZHZvLCBTRFZPX0VOQ09ERV9EVkkpOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfc2R2by0+aXNfdHYg JiYKPiA+ICsJaWYgKElTX1RWKGludGVsX3Nkdm9fY29ubmVjdG9yKSAmJgo+ID4gIAkgICAgIWlu dGVsX3Nkdm9fc2V0X3R2X2Zvcm1hdChpbnRlbF9zZHZvLCBjb25uX3N0YXRlKSkKPiA+ICAJCXJl dHVybjsKPiA+ICAKPiA+ICAJaW50ZWxfc2R2b19nZXRfZHRkX2Zyb21fbW9kZSgmaW5wdXRfZHRk LCBhZGp1c3RlZF9tb2RlKTsKPiA+ICAKPiA+IC0JaWYgKGludGVsX3Nkdm8tPmlzX3R2IHx8IGlu dGVsX3Nkdm8tPmlzX2x2ZHMpCj4gPiArCWlmIChJU19UVihpbnRlbF9zZHZvX2Nvbm5lY3Rvcikg fHwgSVNfTFZEUyhpbnRlbF9zZHZvX2Nvbm5lY3RvcikpCj4gPiAgCQlpbnB1dF9kdGQucGFydDIu c2R2b19mbGFncyA9IGludGVsX3Nkdm8tPmR0ZF9zZHZvX2ZsYWdzOwo+ID4gIAlpZiAoIWludGVs X3Nkdm9fc2V0X2lucHV0X3RpbWluZyhpbnRlbF9zZHZvLCAmaW5wdXRfZHRkKSkKPiA+ICAJCURS TV9JTkZPKCJTZXR0aW5nIGlucHV0IHRpbWluZ3Mgb24gJXMgZmFpbGVkXG4iLAo+ID4gQEAgLTE2 MzAsNiArMTYyNSw4IEBAIGludGVsX3Nkdm9fbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+ID4gIAkJICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUp Cj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2byA9IGludGVsX2F0dGFj aGVkX3Nkdm8oY29ubmVjdG9yKTsKPiA+ICsJc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9yICpp bnRlbF9zZHZvX2Nvbm5lY3RvciA9Cj4gPiArCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcihjb25u ZWN0b3IpOwo+ID4gIAlpbnQgbWF4X2RvdGNsayA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpLT5t YXhfZG90Y2xrX2ZyZXE7Cj4gPiAgCj4gPiAgCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZM QUdfREJMU0NBTikKPiA+IEBAIC0xNjQ0LDcgKzE2NDEsNyBAQCBpbnRlbF9zZHZvX21vZGVfdmFs aWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAJaWYgKG1vZGUtPmNsb2Nr ID4gbWF4X2RvdGNsaykKPiA+ICAJCXJldHVybiBNT0RFX0NMT0NLX0hJR0g7Cj4gPiAgCj4gPiAt CWlmIChpbnRlbF9zZHZvLT5pc19sdmRzKSB7Cj4gPiArCWlmIChJU19MVkRTKGludGVsX3Nkdm9f Y29ubmVjdG9yKSkgewo+ID4gIAkJaWYgKG1vZGUtPmhkaXNwbGF5ID4gaW50ZWxfc2R2by0+c2R2 b19sdmRzX2ZpeGVkX21vZGUtPmhkaXNwbGF5KQo+ID4gIAkJCXJldHVybiBNT0RFX1BBTkVMOwo+ ID4gIAo+ID4gQEAgLTE3NTksNiArMTc1Niw4IEBAIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jf c3RhdHVzCj4gPiAgaW50ZWxfc2R2b190bWRzX3NpbmtfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2 byA9IGludGVsX2F0dGFjaGVkX3Nkdm8oY29ubmVjdG9yKTsKPiA+ICsJc3RydWN0IGludGVsX3Nk dm9fY29ubmVjdG9yICppbnRlbF9zZHZvX2Nvbm5lY3RvciA9Cj4gPiArCQl0b19pbnRlbF9zZHZv X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ID4gIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0 YXR1czsKPiA+ICAJc3RydWN0IGVkaWQgKmVkaWQ7Cj4gPiAgCj4gPiBAQCAtMTc5Nyw3ICsxNzk2 LDcgQEAgaW50ZWxfc2R2b190bWRzX3NpbmtfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCj4gPiAgCQkvKiBEREMgYnVzIGlzIHNoYXJlZCwgbWF0Y2ggRURJRCB0byBjb25u ZWN0b3IgdHlwZSAqLwo+ID4gIAkJaWYgKGVkaWQtPmlucHV0ICYgRFJNX0VESURfSU5QVVRfRElH SVRBTCkgewo+ID4gIAkJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+ID4g LQkJCWlmIChpbnRlbF9zZHZvLT5pc19oZG1pKSB7Cj4gPiArCQkJaWYgKGludGVsX3Nkdm9fY29u bmVjdG9yLT5pc19oZG1pKSB7Cj4gPiAgCQkJCWludGVsX3Nkdm8tPmhhc19oZG1pX21vbml0b3Ig PSBkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihlZGlkKTsKPiA+ICAJCQkJaW50ZWxfc2R2by0+aGFz X2hkbWlfYXVkaW8gPSBkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7Cj4gPiAgCQkJCWlu dGVsX3Nkdm8tPnJnYl9xdWFudF9yYW5nZV9zZWxlY3RhYmxlID0KPiA+IEBAIC0xODc1LDE3ICsx ODc0LDYgQEAgaW50ZWxfc2R2b19kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwgYm9vbCBmb3JjZSkKPiA+ICAJCQlyZXQgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsK PiA+ICAJfQo+ID4gIAo+ID4gLQkvKiBNYXkgdXBkYXRlIGVuY29kZXIgZmxhZyBmb3IgbGlrZSBj bG9jayBmb3IgU0RWTyBUViwgZXRjLiovCj4gPiAtCWlmIChyZXQgPT0gY29ubmVjdG9yX3N0YXR1 c19jb25uZWN0ZWQpIHsKPiA+IC0JCWludGVsX3Nkdm8tPmlzX3R2ID0gZmFsc2U7Cj4gPiAtCQlp bnRlbF9zZHZvLT5pc19sdmRzID0gZmFsc2U7Cj4gPiAtCj4gPiAtCQlpZiAocmVzcG9uc2UgJiBT RFZPX1RWX01BU0spCj4gPiAtCQkJaW50ZWxfc2R2by0+aXNfdHYgPSB0cnVlOwo+ID4gLQkJaWYg KHJlc3BvbnNlICYgU0RWT19MVkRTX01BU0spCj4gPiAtCQkJaW50ZWxfc2R2by0+aXNfbHZkcyA9 IGludGVsX3Nkdm8tPnNkdm9fbHZkc19maXhlZF9tb2RlICE9IE5VTEw7Cj4gPiAtCX0KPiA+IC0K PiA+ICAJcmV0dXJuIHJldDsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtMjA1NCwxNiArMjA0Miw2IEBA IHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fZ2V0X2x2ZHNfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiA+ICAJICogYXJyYW5nZWQgaW4gcHJpb3JpdHkgb3JkZXIuCj4gPiAg CSAqLwo+ID4gIAlpbnRlbF9kZGNfZ2V0X21vZGVzKGNvbm5lY3RvciwgJmludGVsX3Nkdm8tPmRk Yyk7Cj4gPiAtCj4gPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkobmV3bW9kZSwgJmNvbm5lY3Rvci0+ cHJvYmVkX21vZGVzLCBoZWFkKSB7Cj4gPiAtCQlpZiAobmV3bW9kZS0+dHlwZSAmIERSTV9NT0RF X1RZUEVfUFJFRkVSUkVEKSB7Cj4gPiAtCQkJaW50ZWxfc2R2by0+c2R2b19sdmRzX2ZpeGVkX21v ZGUgPQo+ID4gLQkJCQlkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG5ld21vZGUp Owo+ID4gLQo+ID4gLQkJCWludGVsX3Nkdm8tPmlzX2x2ZHMgPSB0cnVlOwo+ID4gLQkJCWJyZWFr Owo+ID4gLQkJfQo+ID4gLQl9Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQgaW50ZWxfc2R2 b19nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+IEBAIC0yNTU1 LDcgKzI1MzMsNyBAQCBpbnRlbF9zZHZvX2R2aV9pbml0KHN0cnVjdCBpbnRlbF9zZHZvICppbnRl bF9zZHZvLCBpbnQgZGV2aWNlKQo+ID4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0ICYm Cj4gPiAgCSAgICBpbnRlbF9zZHZvX2lzX2hkbWlfY29ubmVjdG9yKGludGVsX3Nkdm8sIGRldmlj ZSkpIHsKPiA+ICAJCWNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPSBEUk1fTU9ERV9DT05ORUNU T1JfSERNSUE7Cj4gPiAtCQlpbnRlbF9zZHZvLT5pc19oZG1pID0gdHJ1ZTsKPiA+ICsJCWludGVs X3Nkdm9fY29ubmVjdG9yLT5pc19oZG1pID0gdHJ1ZTsKPiA+ICAJfQo+ID4gIAo+ID4gIAlpZiAo aW50ZWxfc2R2b19jb25uZWN0b3JfaW5pdChpbnRlbF9zZHZvX2Nvbm5lY3RvciwgaW50ZWxfc2R2 bykgPCAwKSB7Cj4gPiBAQCAtMjU2Myw3ICsyNTQxLDcgQEAgaW50ZWxfc2R2b19kdmlfaW5pdChz dHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywgaW50IGRldmljZSkKPiA+ICAJCXJldHVybiBm YWxzZTsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfc2R2by0+aXNfaGRtaSkKPiA+ICsJ aWYgKGludGVsX3Nkdm9fY29ubmVjdG9yLT5pc19oZG1pKQo+ID4gIAkJaW50ZWxfc2R2b19hZGRf aGRtaV9wcm9wZXJ0aWVzKGludGVsX3Nkdm8sIGludGVsX3Nkdm9fY29ubmVjdG9yKTsKPiA+ICAK PiA+ICAJcmV0dXJuIHRydWU7Cj4gPiBAQCAtMjU5MSw4ICsyNTY5LDYgQEAgaW50ZWxfc2R2b190 dl9pbml0KHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCBpbnQgdHlwZSkKPiA+ICAJaW50 ZWxfc2R2by0+Y29udHJvbGxlZF9vdXRwdXQgfD0gdHlwZTsKPiA+ICAJaW50ZWxfc2R2b19jb25u ZWN0b3ItPm91dHB1dF9mbGFnID0gdHlwZTsKPiA+ICAKPiA+IC0JaW50ZWxfc2R2by0+aXNfdHYg PSB0cnVlOwo+ID4gLQo+ID4gIAlpZiAoaW50ZWxfc2R2b19jb25uZWN0b3JfaW5pdChpbnRlbF9z ZHZvX2Nvbm5lY3RvciwgaW50ZWxfc2R2bykgPCAwKSB7Cj4gPiAgCQlrZnJlZShpbnRlbF9zZHZv X2Nvbm5lY3Rvcik7Cj4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiBAQCAtMjY1NCw2ICsyNjMwLDcg QEAgaW50ZWxfc2R2b19sdmRzX2luaXQoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sIGlu dCBkZXZpY2UpCj4gPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiAgCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcjsKPiA+ICAJc3RydWN0IGludGVs X3Nkdm9fY29ubmVjdG9yICppbnRlbF9zZHZvX2Nvbm5lY3RvcjsKPiA+ICsJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGU7Cj4gPiAgCj4gPiAgCURSTV9ERUJVR19LTVMoImluaXRpYWxpc2lu ZyBMVkRTIGRldmljZSAlZFxuIiwgZGV2aWNlKTsKPiA+ICAKPiA+IEBAIC0yNjgyLDYgKzI2NTks MTkgQEAgaW50ZWxfc2R2b19sdmRzX2luaXQoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8s IGludCBkZXZpY2UpCj4gPiAgCWlmICghaW50ZWxfc2R2b19jcmVhdGVfZW5oYW5jZV9wcm9wZXJ0 eShpbnRlbF9zZHZvLCBpbnRlbF9zZHZvX2Nvbm5lY3RvcikpCj4gPiAgCQlnb3RvIGVycjsKPiA+ ICAKPiA+ICsJaW50ZWxfc2R2b19nZXRfbHZkc19tb2Rlcyhjb25uZWN0b3IpOwo+ID4gKwo+ID4g KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPnByb2JlZF9tb2RlcywgaGVh ZCkgewo+ID4gKwkJaWYgKG1vZGUtPnR5cGUgJiBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRCkgewo+ ID4gKwkJCWludGVsX3Nkdm8tPnNkdm9fbHZkc19maXhlZF9tb2RlID0KPiA+ICsJCQkJZHJtX21v ZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCBtb2RlKTsKPiA+ICsJCQlicmVhazsKPiA+ICsJ CX0KPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAoIWludGVsX3Nkdm8tPnNkdm9fbHZkc19maXhlZF9t b2RlKQo+ID4gKwkJZ290byBlcnI7Cj4gPiArCj4gPiAgCXJldHVybiB0cnVlOwo+ID4gIAo+ID4g IGVycjoKPiA+IEBAIC0yNjkyLDkgKzI2ODIsNiBAQCBpbnRlbF9zZHZvX2x2ZHNfaW5pdChzdHJ1 Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywgaW50IGRldmljZSkKPiA+ICBzdGF0aWMgYm9vbAo+ ID4gIGludGVsX3Nkdm9fb3V0cHV0X3NldHVwKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZv LCB1aW50MTZfdCBmbGFncykKPiA+ICB7Cj4gPiAtCWludGVsX3Nkdm8tPmlzX3R2ID0gZmFsc2U7 Cj4gPiAtCWludGVsX3Nkdm8tPmlzX2x2ZHMgPSBmYWxzZTsKPiA+IC0KPiA+ICAJLyogU0RWTyBy ZXF1aXJlcyBYWFgxIGZ1bmN0aW9uIG1heSBub3QgZXhpc3QgdW5sZXNzIGl0IGhhcyBYWFgwIGZ1 bmN0aW9uLiovCj4gPiAgCj4gPiAgCWlmIChmbGFncyAmIFNEVk9fT1VUUFVUX1RNRFMwKQo+ID4g LS0gCj4gPiAyLjE2LjQKPiA+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=