From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 1/2] drm/i915/sdvo: Fix multi function encoder stuff Date: Mon, 17 Sep 2018 10:16:05 -0700 Message-ID: <20180917171605.GE2309@intel.com> References: <20180917151504.8754-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 091DF89483 for ; Mon, 17 Sep 2018 17:16:06 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180917151504.8754-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBTZXAgMTcsIDIwMTggYXQgMDY6MTU6MDNQTSArMDMwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFNEVk8gZW5jb2RlcnMgY2FuIGhhdmUgbXVsdGlwbGUgZGlmZmVyZW50IHR5cGVz IG9mIG91dHB1dHMgaGFuZ2luZyBvZmYKPiB0aGVtLiBDdXJyZW50bHkgdGhlIGNvZGUgdHJpZXMg dG8gbXVjayBhcm91bmQgd2l0aCB2YXJpb3VzIGlzX2Zvbwo+IGZsYWdzIGluIHRoZSBlbmNvZGVy IHRvIGZpZ3VyZSBvdXQgd2hpY2ggdHlwZSBpdHMgZHJpdmluZy4gVGhhdCBkb2Vzbid0Cj4gd29y ayB3aXRoIGF0b21pYyBhbmQgb3RoZXIgc3R1ZmYsIHNvIGxldCdzIG51a2UgdGhvc2UgZmxhZ3Mg YW5kIGp1c3QKPiBsb29rIGF0IHdoaWNoIHR5cGUgb2YgY29ubmVjdG9yIHdlJ3JlIGFjdHVhbGx5 IGRlYWxpbmcgd2l0aC4KPiAKPiBUaGUgaXNfaGRtaSB3ZSdsbCBuZWVkIGFzIHRoYXQncyBub3Qg ZGlzY292ZXJhYmxlIHZpYSB0aGUgb3V0cHV0IGZsYWdzLAo+IGJ1dCB3ZSdsbCBqdXN0IG1vdmUg aXQgdW5kZXIgdGhlIGNvbm5lY3Rvci4KPiAKPiBXZSdsbCBhbHNvIG1vdmUgdGhlIHNkdm8gZml4 ZWQgbW9kZSBoYW5kbGluZyBvdXQgZnJvbSB0aGUgLmdldF9tb2RlcygpCj4gaG9vayBpbnRvIHRo ZSBzZHZvIGx2ZHMgaW5pdCBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBiYWlsIG91dCBwcm9wZXJs eQo+IGlmIHRoZXJlIGlzIG5vIGZpeGVkIG1vZGUgdG8gYmUgZm91bmQuCgpJIHdvbmRlcmVkIGlm IHRoaXMgbGFzdCBwYXJ0IGRpZG4ndCBkZXNlcnZlZCBhIHNlcGFyYXRlZCBwYXRjaC4gQnV0IG5v dCBzdXJlCmhvdyBjaGlja2VuLWVnZyBpc3N1ZSB0aGlzIGNvdWxkIGNhdXNlIHNvIG1heWJlIHRo ZSBzYW1lIHBhdGNoIGlzIGJldHRlcgppbmRlZWQuLi4KClJldmlld2VkLWJ5OiBSb2RyaWdvIFZp dmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cgo+IAo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyB8IDEwMSArKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgNTcgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nk dm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IGluZGV4IDgxMmZlN2Iw NmY4Ny4uNzAxMzcyZTUxMmE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nkdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IEBA IC05OSwzMSArOTksMTIgQEAgc3RydWN0IGludGVsX3Nkdm8gewo+ICAJICovCj4gIAl1aW50MTZf dCBob3RwbHVnX2FjdGl2ZTsKPiAgCj4gLQkvKioKPiAtCSAqIFRoaXMgaXMgc2V0IGlmIHdlJ3Jl IGdvaW5nIHRvIHRyZWF0IHRoZSBkZXZpY2UgYXMgVFYtb3V0Lgo+IC0JICoKPiAtCSAqIFdoaWxl IHdlIGhhdmUgdGhlc2UgbmljZSBmcmllbmRseSBmbGFncyBmb3Igb3V0cHV0IHR5cGVzIHRoYXQg b3VnaHQKPiAtCSAqIHRvIGRlY2lkZSB0aGlzIGZvciB1cywgdGhlIFMtVmlkZW8gb3V0cHV0IG9u IG91ciBIRE1JK1MtVmlkZW8gY2FyZAo+IC0JICogc2hvd3MgdXAgYXMgUkdCMSAoVkdBKS4KPiAt CSAqLwo+IC0JYm9vbCBpc190djsKPiAtCj4gIAllbnVtIHBvcnQgcG9ydDsKPiAgCj4gLQkvKioK PiAtCSAqIFRoaXMgaXMgc2V0IGlmIHdlIHRyZWF0IHRoZSBkZXZpY2UgYXMgSERNSSwgaW5zdGVh ZCBvZiBEVkkuCj4gLQkgKi8KPiAtCWJvb2wgaXNfaGRtaTsKPiAgCWJvb2wgaGFzX2hkbWlfbW9u aXRvcjsKPiAgCWJvb2wgaGFzX2hkbWlfYXVkaW87Cj4gIAlib29sIHJnYl9xdWFudF9yYW5nZV9z ZWxlY3RhYmxlOwo+ICAKPiAtCS8qKgo+IC0JICogVGhpcyBpcyBzZXQgaWYgd2UgZGV0ZWN0IG91 dHB1dCBvZiBzZHZvIGRldmljZSBhcyBMVkRTIGFuZAo+IC0JICogaGF2ZSBhIHZhbGlkIGZpeGVk IG1vZGUgdG8gdXNlIHdpdGggdGhlIHBhbmVsLgo+IC0JICovCj4gLQlib29sIGlzX2x2ZHM7Cj4g LQo+ICAJLyoqCj4gIAkgKiBUaGlzIGlzIHNkdm8gZml4ZWQgcGFubmVsIG1vZGUgcG9pbnRlcgo+ ICAJICovCj4gQEAgLTE3Miw2ICsxNTMsMTEgQEAgc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9y IHsKPiAgCj4gIAkvKiB0aGlzIGlzIHRvIGdldCB0aGUgcmFuZ2Ugb2YgbWFyZ2luLiovCj4gIAl1 MzIgbWF4X2hzY2FuLCBtYXhfdnNjYW47Cj4gKwo+ICsJLyoqCj4gKwkgKiBUaGlzIGlzIHNldCBp ZiB3ZSB0cmVhdCB0aGUgZGV2aWNlIGFzIEhETUksIGluc3RlYWQgb2YgRFZJLgo+ICsJICovCj4g Kwlib29sIGlzX2hkbWk7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0b3Jf c3RhdGUgewo+IEBAIC03NjYsNiArNzUyLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b19nZXRf aW5wdXRfdGltaW5nKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAo+ICAKPiAgc3RhdGlj IGJvb2wKPiAgaW50ZWxfc2R2b19jcmVhdGVfcHJlZmVycmVkX2lucHV0X3RpbWluZyhzdHJ1Y3Qg aW50ZWxfc2R2byAqaW50ZWxfc2R2bywKPiArCQkJCQkgc3RydWN0IGludGVsX3Nkdm9fY29ubmVj dG9yICppbnRlbF9zZHZvX2Nvbm5lY3RvciwKPiAgCQkJCQkgdWludDE2X3QgY2xvY2ssCj4gIAkJ CQkJIHVpbnQxNl90IHdpZHRoLAo+ICAJCQkJCSB1aW50MTZfdCBoZWlnaHQpCj4gQEAgLTc3OCw3 ICs3NjUsNyBAQCBpbnRlbF9zZHZvX2NyZWF0ZV9wcmVmZXJyZWRfaW5wdXRfdGltaW5nKHN0cnVj dCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAo+ICAJYXJncy5oZWlnaHQgPSBoZWlnaHQ7Cj4gIAlh cmdzLmludGVybGFjZSA9IDA7Cj4gIAo+IC0JaWYgKGludGVsX3Nkdm8tPmlzX2x2ZHMgJiYKPiAr CWlmIChJU19MVkRTKGludGVsX3Nkdm9fY29ubmVjdG9yKSAmJgo+ICAJICAgKGludGVsX3Nkdm8t PnNkdm9fbHZkc19maXhlZF9tb2RlLT5oZGlzcGxheSAhPSB3aWR0aCB8fAo+ICAJICAgIGludGVs X3Nkdm8tPnNkdm9fbHZkc19maXhlZF9tb2RlLT52ZGlzcGxheSAhPSBoZWlnaHQpKQo+ICAJCWFy Z3Muc2NhbGVkID0gMTsKPiBAQCAtMTA2Nyw2ICsxMDU0LDcgQEAgaW50ZWxfc2R2b19zZXRfb3V0 cHV0X3RpbWluZ3NfZnJvbV9tb2RlKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAo+ICAg Ki8KPiAgc3RhdGljIGJvb2wKPiAgaW50ZWxfc2R2b19nZXRfcHJlZmVycmVkX2lucHV0X21vZGUo c3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sCj4gKwkJCQkgICAgc3RydWN0IGludGVsX3Nk dm9fY29ubmVjdG9yICppbnRlbF9zZHZvX2Nvbm5lY3RvciwKPiAgCQkJCSAgICBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAgCQkJCSAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiAgewo+IEBAIC0xMDc3LDYgKzEwNjUsNyBAQCBpbnRlbF9z ZHZvX2dldF9wcmVmZXJyZWRfaW5wdXRfbW9kZShzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2 bywKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJaWYgKCFpbnRlbF9zZHZvX2NyZWF0ZV9wcmVm ZXJyZWRfaW5wdXRfdGltaW5nKGludGVsX3Nkdm8sCj4gKwkJCQkJCSAgICAgIGludGVsX3Nkdm9f Y29ubmVjdG9yLAo+ICAJCQkJCQkgICAgICBtb2RlLT5jbG9jayAvIDEwLAo+ICAJCQkJCQkgICAg ICBtb2RlLT5oZGlzcGxheSwKPiAgCQkJCQkJICAgICAgbW9kZS0+dmRpc3BsYXkpKQo+IEBAIC0x MTI3LDYgKzExMTYsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9zZHZvX2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGludGVsX3Nkdm8gKmludGVs X3Nkdm8gPSB0b19zZHZvKGVuY29kZXIpOwo+ICAJc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9y X3N0YXRlICppbnRlbF9zZHZvX3N0YXRlID0KPiAgCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcl9z dGF0ZShjb25uX3N0YXRlKTsKPiArCXN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3RvciAqaW50ZWxf c2R2b19jb25uZWN0b3IgPQo+ICsJCXRvX2ludGVsX3Nkdm9fY29ubmVjdG9yKGNvbm5fc3RhdGUt PmNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUgPSAmcGlwZV9jb25maWctPmJhc2UubW9kZTsKPiAgCj4gQEAgLTExNDIsMjAg KzExMzMsMjIgQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b19jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCSAqIHRpbWluZ3MsIGV2ZW4gdGhvdWdoIHRoaXMg aXNuJ3QgcmVhbGx5IHRoZSByaWdodCBwbGFjZSBpbgo+ICAJICogdGhlIHNlcXVlbmNlIHRvIGRv IGl0LiBPaCB3ZWxsLgo+ICAJICovCj4gLQlpZiAoaW50ZWxfc2R2by0+aXNfdHYpIHsKPiArCWlm IChJU19UVihpbnRlbF9zZHZvX2Nvbm5lY3RvcikpIHsKPiAgCQlpZiAoIWludGVsX3Nkdm9fc2V0 X291dHB1dF90aW1pbmdzX2Zyb21fbW9kZShpbnRlbF9zZHZvLCBtb2RlKSkKPiAgCQkJcmV0dXJu IGZhbHNlOwo+ICAKPiAgCQkodm9pZCkgaW50ZWxfc2R2b19nZXRfcHJlZmVycmVkX2lucHV0X21v ZGUoaW50ZWxfc2R2bywKPiArCQkJCQkJCSAgIGludGVsX3Nkdm9fY29ubmVjdG9yLAo+ICAJCQkJ CQkJICAgbW9kZSwKPiAgCQkJCQkJCSAgIGFkanVzdGVkX21vZGUpOwo+ICAJCXBpcGVfY29uZmln LT5zZHZvX3R2X2Nsb2NrID0gdHJ1ZTsKPiAtCX0gZWxzZSBpZiAoaW50ZWxfc2R2by0+aXNfbHZk cykgewo+ICsJfSBlbHNlIGlmIChJU19MVkRTKGludGVsX3Nkdm9fY29ubmVjdG9yKSkgewo+ICAJ CWlmICghaW50ZWxfc2R2b19zZXRfb3V0cHV0X3RpbWluZ3NfZnJvbV9tb2RlKGludGVsX3Nkdm8s Cj4gIAkJCQkJCQkgICAgIGludGVsX3Nkdm8tPnNkdm9fbHZkc19maXhlZF9tb2RlKSkKPiAgCQkJ cmV0dXJuIGZhbHNlOwo+ICAKPiAgCQkodm9pZCkgaW50ZWxfc2R2b19nZXRfcHJlZmVycmVkX2lu cHV0X21vZGUoaW50ZWxfc2R2bywKPiArCQkJCQkJCSAgIGludGVsX3Nkdm9fY29ubmVjdG9yLAo+ ICAJCQkJCQkJICAgbW9kZSwKPiAgCQkJCQkJCSAgIGFkanVzdGVkX21vZGUpOwo+ICAJfQo+IEBA IC0xMTk0LDExICsxMTg3LDExIEBAIHN0YXRpYyBib29sIGludGVsX3Nkdm9fY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl9Cj4gIAo+ICAJLyogQ2xvY2sg Y29tcHV0YXRpb24gbmVlZHMgdG8gaGFwcGVuIGFmdGVyIHBpeGVsIG11bHRpcGxpZXIuICovCj4g LQlpZiAoaW50ZWxfc2R2by0+aXNfdHYpCj4gKwlpZiAoSVNfVFYoaW50ZWxfc2R2b19jb25uZWN0 b3IpKQo+ICAJCWk5eHhfYWRqdXN0X3Nkdm9fdHZfY2xvY2socGlwZV9jb25maWcpOwo+ICAKPiAg CS8qIFNldCB1c2VyIHNlbGVjdGVkIFBBUiB0byBpbmNvbWluZyBtb2RlJ3MgbWVtYmVyICovCj4g LQlpZiAoaW50ZWxfc2R2by0+aXNfaGRtaSkKPiArCWlmIChpbnRlbF9zZHZvX2Nvbm5lY3Rvci0+ aXNfaGRtaSkKPiAgCQlhZGp1c3RlZF9tb2RlLT5waWN0dXJlX2FzcGVjdF9yYXRpbyA9IGNvbm5f c3RhdGUtPnBpY3R1cmVfYXNwZWN0X3JhdGlvOwo+ICAKPiAgCXJldHVybiB0cnVlOwo+IEBAIC0x Mjc1LDYgKzEyNjgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX3ByZV9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7 Cj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0b3Jfc3RhdGUgKnNkdm9fc3RhdGUg PQo+ICAJCXRvX2ludGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+ICsJY29u c3Qgc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9yICppbnRlbF9zZHZvX2Nvbm5lY3RvciA9Cj4g KwkJdG9faW50ZWxfc2R2b19jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKPiAgCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGNfc3RhdGUtPmJhc2UubW9k ZTsKPiAgCXN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvID0gdG9fc2R2byhpbnRlbF9lbmNv ZGVyKTsKPiAgCXUzMiBzZHZveDsKPiBAQCAtMTMwNCw3ICsxMjk5LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfc2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy LAo+ICAJCXJldHVybjsKPiAgCj4gIAkvKiBsdmRzIGhhcyBhIHNwZWNpYWwgZml4ZWQgb3V0cHV0 IHRpbWluZy4gKi8KPiAtCWlmIChpbnRlbF9zZHZvLT5pc19sdmRzKQo+ICsJaWYgKElTX0xWRFMo aW50ZWxfc2R2b19jb25uZWN0b3IpKQo+ICAJCWludGVsX3Nkdm9fZ2V0X2R0ZF9mcm9tX21vZGUo Jm91dHB1dF9kdGQsCj4gIAkJCQkJICAgICBpbnRlbF9zZHZvLT5zZHZvX2x2ZHNfZml4ZWRfbW9k ZSk7Cj4gIAllbHNlCj4gQEAgLTEzMjUsMTMgKzEzMjAsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxf c2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJ fSBlbHNlCj4gIAkJaW50ZWxfc2R2b19zZXRfZW5jb2RlKGludGVsX3Nkdm8sIFNEVk9fRU5DT0RF X0RWSSk7Cj4gIAo+IC0JaWYgKGludGVsX3Nkdm8tPmlzX3R2ICYmCj4gKwlpZiAoSVNfVFYoaW50 ZWxfc2R2b19jb25uZWN0b3IpICYmCj4gIAkgICAgIWludGVsX3Nkdm9fc2V0X3R2X2Zvcm1hdChp bnRlbF9zZHZvLCBjb25uX3N0YXRlKSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJaW50ZWxfc2R2b19n ZXRfZHRkX2Zyb21fbW9kZSgmaW5wdXRfZHRkLCBhZGp1c3RlZF9tb2RlKTsKPiAgCj4gLQlpZiAo aW50ZWxfc2R2by0+aXNfdHYgfHwgaW50ZWxfc2R2by0+aXNfbHZkcykKPiArCWlmIChJU19UVihp bnRlbF9zZHZvX2Nvbm5lY3RvcikgfHwgSVNfTFZEUyhpbnRlbF9zZHZvX2Nvbm5lY3RvcikpCj4g IAkJaW5wdXRfZHRkLnBhcnQyLnNkdm9fZmxhZ3MgPSBpbnRlbF9zZHZvLT5kdGRfc2R2b19mbGFn czsKPiAgCWlmICghaW50ZWxfc2R2b19zZXRfaW5wdXRfdGltaW5nKGludGVsX3Nkdm8sICZpbnB1 dF9kdGQpKQo+ICAJCURSTV9JTkZPKCJTZXR0aW5nIGlucHV0IHRpbWluZ3Mgb24gJXMgZmFpbGVk XG4iLAo+IEBAIC0xNjMwLDYgKzE2MjUsOCBAQCBpbnRlbF9zZHZvX21vZGVfdmFsaWQoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSkKPiAgewo+ICAJc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8gPSBpbnRl bF9hdHRhY2hlZF9zZHZvKGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0 b3IgKmludGVsX3Nkdm9fY29ubmVjdG9yID0KPiArCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcihj b25uZWN0b3IpOwo+ICAJaW50IG1heF9kb3RjbGsgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KS0+ bWF4X2RvdGNsa19mcmVxOwo+ICAKPiAgCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdf REJMU0NBTikKPiBAQCAtMTY0NCw3ICsxNjQxLDcgQEAgaW50ZWxfc2R2b19tb2RlX3ZhbGlkKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlpZiAobW9kZS0+Y2xvY2sgPiBtYXhf ZG90Y2xrKQo+ICAJCXJldHVybiBNT0RFX0NMT0NLX0hJR0g7Cj4gIAo+IC0JaWYgKGludGVsX3Nk dm8tPmlzX2x2ZHMpIHsKPiArCWlmIChJU19MVkRTKGludGVsX3Nkdm9fY29ubmVjdG9yKSkgewo+ ICAJCWlmIChtb2RlLT5oZGlzcGxheSA+IGludGVsX3Nkdm8tPnNkdm9fbHZkc19maXhlZF9tb2Rl LT5oZGlzcGxheSkKPiAgCQkJcmV0dXJuIE1PREVfUEFORUw7Cj4gIAo+IEBAIC0xNzU5LDYgKzE3 NTYsOCBAQCBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ICBpbnRlbF9zZHZvX3Rt ZHNfc2lua19kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJ c3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8gPSBpbnRlbF9hdHRhY2hlZF9zZHZvKGNvbm5l Y3Rvcik7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0b3IgKmludGVsX3Nkdm9fY29ubmVj dG9yID0KPiArCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7Cj4gIAlzdHJ1Y3QgZWRpZCAqZWRpZDsKPiAgCj4g QEAgLTE3OTcsNyArMTc5Niw3IEBAIGludGVsX3Nkdm9fdG1kc19zaW5rX2RldGVjdChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJCS8qIEREQyBidXMgaXMgc2hhcmVkLCBtYXRj aCBFRElEIHRvIGNvbm5lY3RvciB0eXBlICovCj4gIAkJaWYgKGVkaWQtPmlucHV0ICYgRFJNX0VE SURfSU5QVVRfRElHSVRBTCkgewo+ICAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5l Y3RlZDsKPiAtCQkJaWYgKGludGVsX3Nkdm8tPmlzX2hkbWkpIHsKPiArCQkJaWYgKGludGVsX3Nk dm9fY29ubmVjdG9yLT5pc19oZG1pKSB7Cj4gIAkJCQlpbnRlbF9zZHZvLT5oYXNfaGRtaV9tb25p dG9yID0gZHJtX2RldGVjdF9oZG1pX21vbml0b3IoZWRpZCk7Cj4gIAkJCQlpbnRlbF9zZHZvLT5o YXNfaGRtaV9hdWRpbyA9IGRybV9kZXRlY3RfbW9uaXRvcl9hdWRpbyhlZGlkKTsKPiAgCQkJCWlu dGVsX3Nkdm8tPnJnYl9xdWFudF9yYW5nZV9zZWxlY3RhYmxlID0KPiBAQCAtMTg3NSwxNyArMTg3 NCw2IEBAIGludGVsX3Nkdm9fZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IGJvb2wgZm9yY2UpCj4gIAkJCXJldCA9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+ICAJ fQo+ICAKPiAtCS8qIE1heSB1cGRhdGUgZW5jb2RlciBmbGFnIGZvciBsaWtlIGNsb2NrIGZvciBT RFZPIFRWLCBldGMuKi8KPiAtCWlmIChyZXQgPT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQp IHsKPiAtCQlpbnRlbF9zZHZvLT5pc190diA9IGZhbHNlOwo+IC0JCWludGVsX3Nkdm8tPmlzX2x2 ZHMgPSBmYWxzZTsKPiAtCj4gLQkJaWYgKHJlc3BvbnNlICYgU0RWT19UVl9NQVNLKQo+IC0JCQlp bnRlbF9zZHZvLT5pc190diA9IHRydWU7Cj4gLQkJaWYgKHJlc3BvbnNlICYgU0RWT19MVkRTX01B U0spCj4gLQkJCWludGVsX3Nkdm8tPmlzX2x2ZHMgPSBpbnRlbF9zZHZvLT5zZHZvX2x2ZHNfZml4 ZWRfbW9kZSAhPSBOVUxMOwo+IC0JfQo+IC0KPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gQEAg LTIwNTQsMTYgKzIwNDIsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2dldF9sdmRzX21vZGVz KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAkgKiBhcnJhbmdlZCBpbiBwcmlv cml0eSBvcmRlci4KPiAgCSAqLwo+ICAJaW50ZWxfZGRjX2dldF9tb2Rlcyhjb25uZWN0b3IsICZp bnRlbF9zZHZvLT5kZGMpOwo+IC0KPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkobmV3bW9kZSwgJmNv bm5lY3Rvci0+cHJvYmVkX21vZGVzLCBoZWFkKSB7Cj4gLQkJaWYgKG5ld21vZGUtPnR5cGUgJiBE Uk1fTU9ERV9UWVBFX1BSRUZFUlJFRCkgewo+IC0JCQlpbnRlbF9zZHZvLT5zZHZvX2x2ZHNfZml4 ZWRfbW9kZSA9Cj4gLQkJCQlkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG5ld21v ZGUpOwo+IC0KPiAtCQkJaW50ZWxfc2R2by0+aXNfbHZkcyA9IHRydWU7Cj4gLQkJCWJyZWFrOwo+ IC0JCX0KPiAtCX0KPiAgfQo+ICAKPiAgc3RhdGljIGludCBpbnRlbF9zZHZvX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IEBAIC0yNTU1LDcgKzI1MzMsNyBAQCBp bnRlbF9zZHZvX2R2aV9pbml0KHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCBpbnQgZGV2 aWNlKQo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCAmJgo+ICAJICAgIGludGVsX3Nk dm9faXNfaGRtaV9jb25uZWN0b3IoaW50ZWxfc2R2bywgZGV2aWNlKSkgewo+ICAJCWNvbm5lY3Rv ci0+Y29ubmVjdG9yX3R5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUE7Cj4gLQkJaW50ZWxf c2R2by0+aXNfaGRtaSA9IHRydWU7Cj4gKwkJaW50ZWxfc2R2b19jb25uZWN0b3ItPmlzX2hkbWkg PSB0cnVlOwo+ICAJfQo+ICAKPiAgCWlmIChpbnRlbF9zZHZvX2Nvbm5lY3Rvcl9pbml0KGludGVs X3Nkdm9fY29ubmVjdG9yLCBpbnRlbF9zZHZvKSA8IDApIHsKPiBAQCAtMjU2Myw3ICsyNTQxLDcg QEAgaW50ZWxfc2R2b19kdmlfaW5pdChzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywgaW50 IGRldmljZSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IC0JaWYgKGludGVsX3Nkdm8t PmlzX2hkbWkpCj4gKwlpZiAoaW50ZWxfc2R2b19jb25uZWN0b3ItPmlzX2hkbWkpCj4gIAkJaW50 ZWxfc2R2b19hZGRfaGRtaV9wcm9wZXJ0aWVzKGludGVsX3Nkdm8sIGludGVsX3Nkdm9fY29ubmVj dG9yKTsKPiAgCj4gIAlyZXR1cm4gdHJ1ZTsKPiBAQCAtMjU5MSw4ICsyNTY5LDYgQEAgaW50ZWxf c2R2b190dl9pbml0KHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCBpbnQgdHlwZSkKPiAg CWludGVsX3Nkdm8tPmNvbnRyb2xsZWRfb3V0cHV0IHw9IHR5cGU7Cj4gIAlpbnRlbF9zZHZvX2Nv bm5lY3Rvci0+b3V0cHV0X2ZsYWcgPSB0eXBlOwo+ICAKPiAtCWludGVsX3Nkdm8tPmlzX3R2ID0g dHJ1ZTsKPiAtCj4gIAlpZiAoaW50ZWxfc2R2b19jb25uZWN0b3JfaW5pdChpbnRlbF9zZHZvX2Nv bm5lY3RvciwgaW50ZWxfc2R2bykgPCAwKSB7Cj4gIAkJa2ZyZWUoaW50ZWxfc2R2b19jb25uZWN0 b3IpOwo+ICAJCXJldHVybiBmYWxzZTsKPiBAQCAtMjY1NCw2ICsyNjMwLDcgQEAgaW50ZWxfc2R2 b19sdmRzX2luaXQoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sIGludCBkZXZpY2UpCj4g IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubmVjdG9yOwo+ICAJc3RydWN0IGludGVsX3Nkdm9fY29ubmVjdG9yICpp bnRlbF9zZHZvX2Nvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+ ICAKPiAgCURSTV9ERUJVR19LTVMoImluaXRpYWxpc2luZyBMVkRTIGRldmljZSAlZFxuIiwgZGV2 aWNlKTsKPiAgCj4gQEAgLTI2ODIsNiArMjY1OSwxOSBAQCBpbnRlbF9zZHZvX2x2ZHNfaW5pdChz dHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywgaW50IGRldmljZSkKPiAgCWlmICghaW50ZWxf c2R2b19jcmVhdGVfZW5oYW5jZV9wcm9wZXJ0eShpbnRlbF9zZHZvLCBpbnRlbF9zZHZvX2Nvbm5l Y3RvcikpCj4gIAkJZ290byBlcnI7Cj4gIAo+ICsJaW50ZWxfc2R2b19nZXRfbHZkc19tb2Rlcyhj b25uZWN0b3IpOwo+ICsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkobW9kZSwgJmNvbm5lY3Rvci0+ cHJvYmVkX21vZGVzLCBoZWFkKSB7Cj4gKwkJaWYgKG1vZGUtPnR5cGUgJiBEUk1fTU9ERV9UWVBF X1BSRUZFUlJFRCkgewo+ICsJCQlpbnRlbF9zZHZvLT5zZHZvX2x2ZHNfZml4ZWRfbW9kZSA9Cj4g KwkJCQlkcm1fbW9kZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG1vZGUpOwo+ICsJCQlicmVh azsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJaWYgKCFpbnRlbF9zZHZvLT5zZHZvX2x2ZHNfZml4ZWRf bW9kZSkKPiArCQlnb3RvIGVycjsKPiArCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgCj4gIGVycjoKPiBA QCAtMjY5Miw5ICsyNjgyLDYgQEAgaW50ZWxfc2R2b19sdmRzX2luaXQoc3RydWN0IGludGVsX3Nk dm8gKmludGVsX3Nkdm8sIGludCBkZXZpY2UpCj4gIHN0YXRpYyBib29sCj4gIGludGVsX3Nkdm9f b3V0cHV0X3NldHVwKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLCB1aW50MTZfdCBmbGFn cykKPiAgewo+IC0JaW50ZWxfc2R2by0+aXNfdHYgPSBmYWxzZTsKPiAtCWludGVsX3Nkdm8tPmlz X2x2ZHMgPSBmYWxzZTsKPiAtCj4gIAkvKiBTRFZPIHJlcXVpcmVzIFhYWDEgZnVuY3Rpb24gbWF5 IG5vdCBleGlzdCB1bmxlc3MgaXQgaGFzIFhYWDAgZnVuY3Rpb24uKi8KPiAgCj4gIAlpZiAoZmxh Z3MgJiBTRFZPX09VVFBVVF9UTURTMCkKPiAtLSAKPiAyLjE2LjQKPiAKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxp c3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==