From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: set proper N/M in modeset Date: Thu, 28 Jul 2016 10:41:40 +0300 Message-ID: <20160728074140.GO4329@intel.com> References: <1468479981-738-1-git-send-email-libin.yang@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id B2C3A6E764 for ; Thu, 28 Jul 2016 07:41:44 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1468479981-738-1-git-send-email-libin.yang@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: libin.yang@linux.intel.com Cc: tiwai@suse.de, daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMTQsIDIwMTYgYXQgMDM6MDY6MjFQTSArMDgwMCwgbGliaW4ueWFuZ0BsaW51 eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogTGliaW4gWWFuZyA8bGliaW4ueWFuZ0BsaW51eC5p bnRlbC5jb20+Cj4gCj4gV2hlbiBtb2Rlc2V0IG9jY3VycyBhbmQgdGhlIExTX0NMSyBpcyBzZXQg dG8gc29tZQo+IHNwZWNpYWwgdmFsdWVzIGluIERQIG1vZGUsIHRoZSBOL00gbmVlZCB0byBiZSBz ZXQKPiBtYW51YWxseSBpZiBhdWRpbyBpcyBwbGF5aW5nLgo+IAo+IEFsc28sIHRoZSBwYXRjaCBh cHBsaWVzCj4gY29tbWl0IDdlODI3NWMyZjJiYiAoImRybS9pOTE1OiBzZXQgcHJvcGVyIE4vQ1RT IGluIG1vZGVzZXQiKQo+IHRvIEFQTCBwbGF0Zm9ybS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBMaWJp biBZYW5nIDxsaWJpbi55YW5nQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaCAgICB8ICAgNiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdWRpby5jIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K PiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggOGJmZGU3NS4uMmY5ZDAwZSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC03MzUxLDYgKzczNTEsMTIgQEAgZW51bSB7Cj4g ICNkZWZpbmUgX0hTV19BVURfQ09ORklHX0IJCTB4NjUxMDAKPiAgI2RlZmluZSBIU1dfQVVEX0NG RyhwaXBlKQkJX01NSU9fUElQRShwaXBlLCBfSFNXX0FVRF9DT05GSUdfQSwgX0hTV19BVURfQ09O RklHX0IpCj4gIAo+ICsjZGVmaW5lIF9IU1dfQVVEX01fQ1RTX0VOQUJMRV9BCQkweDY1MDI4Cj4g KyNkZWZpbmUgX0hTV19BVURfTV9DVFNfRU5BQkxFX0IJCTB4NjUxMjgKPiArI2RlZmluZSBIU1df QVVEX01fQ1RTX0VOQUJMRShwaXBlKQkJX01NSU9fUElQRShwaXBlLCBfSFNXX0FVRF9NX0NUU19F TkFCTEVfQSwgX0hTV19BVURfTV9DVFNfRU5BQkxFX0IpCj4gKyNkZWZpbmUgICBBVURfTV9DVFNf TV9WQUxVRV9JTkRFWAkoMSA8PCAyMSkKPiArI2RlZmluZSAgIEFVRF9NX0NUU19NX1BST0dfRU5B QkxFCSgxIDw8IDIwKQo+ICsKPiAgI2RlZmluZSBfSFNXX0FVRF9NSVNDX0NUUkxfQQkJMHg2NTAx MAo+ICAjZGVmaW5lIF9IU1dfQVVEX01JU0NfQ1RSTF9CCQkweDY1MTEwCj4gICNkZWZpbmUgSFNX X0FVRF9NSVNDX0NUUkwocGlwZSkJCV9NTUlPX1BJUEUocGlwZSwgX0hTV19BVURfTUlTQ19DVFJM X0EsIF9IU1dfQVVEX01JU0NfQ1RSTF9CKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ IGluZGV4IDY3MDBhN2IuLmUyZTRkNGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXVkaW8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlv LmMKPiBAQCAtOTgsNiArOTgsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gIAl7IDE5MjAw MCwgVE1EU18yOTdNLCAyMDQ4MCwgMjQ3NTAwIH0sCj4gIH07Cj4gIAo+ICsjZGVmaW5lIExDXzUz M00gNTMzMjUwCj4gKyNkZWZpbmUgTENfMTQ4TSAxNDg1MDAKPiArc3RhdGljIGNvbnN0IHN0cnVj dCB7Cj4gKwlpbnQgc2FtcGxlX3JhdGU7Cj4gKwlpbnQgY2xvY2s7Cj4gKwlpbnQgbjsKPiArCWlu dCBtOwo+ICt9IGF1ZF9ubVtdID0gewo+ICsJezQ4MDAwLCBMQ181MzNNLCA4ODg3NSwgNDA5Nn0s Cj4gKwl7NDQxMDAsIExDXzUzM00sIDE0ODEyNSwgNjI3Mn0sCj4gKwl7MzIwMDAsIExDXzUzM00s IDI2NjYyNSwgODE5Mn0sCj4gKwl7NDgwMDAsIExDXzE0OE0sIDEyMzc1LCAyMDQ4fSwKPiArCXs0 NDEwMCwgTENfMTQ4TSwgMjA2MjUsIDMxMzZ9LAo+ICsJezMyMDAwLCBMQ18xNDhNLCAzNzEyNSwg NDA5Nn0sCj4gK307Cj4gKwo+ICAvKiBnZXQgQVVEX0NPTkZJR19QSVhFTF9DTE9DS19IRE1JXyog dmFsdWUgZm9yIG1vZGUgKi8KPiAgc3RhdGljIHUzMiBhdWRpb19jb25maWdfaGRtaV9waXhlbF9j bG9jayhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiAgewo+ IEBAIC0xMjEsMjAgKzEzNyw1MCBAQCBzdGF0aWMgdTMyIGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVs X2Nsb2NrKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZAo+ICAJcmV0dXJu IGhkbWlfYXVkaW9fY2xvY2tbaV0uY29uZmlnOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGF1ZGlv X2NvbmZpZ19nZXRfbihjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwgaW50IHJh dGUpCj4gK3N0YXRpYyBpbnQgYXVkaW9fY29uZmlnX2dldF9uKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAo+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwgaW50 IHJhdGUpCj4gK3sKPiArCWludCBpOwo+ICsKPiArCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNy dGMtPmNvbmZpZywgSU5URUxfT1VUUFVUX0hETUkpKSB7Cj4gKwkJZm9yIChpID0gMDsgaSA8IEFS UkFZX1NJWkUoYXVkX25jdHMpOyBpKyspIHsKPiArCQkJaWYgKChyYXRlID09IGF1ZF9uY3RzW2ld LnNhbXBsZV9yYXRlKSAmJgo+ICsJCQkJKG1vZGUtPmNsb2NrID09IGF1ZF9uY3RzW2ldLmNsb2Nr KSkgewo+ICsJCQkJcmV0dXJuIGF1ZF9uY3RzW2ldLm47Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4g Kwo+ICsJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQVVRf RFApKSB7Cj4gKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXVkX25tKTsgaSsrKSB7Cj4g KwkJCWlmICgocmF0ZSA9PSBhdWRfbm1baV0uc2FtcGxlX3JhdGUpICYmCj4gKwkJCQkobW9kZS0+ Y2xvY2sgPT0gYXVkX25tW2ldLmNsb2NrKSkgewoKU28gdGhlIHNwZWMgc2F5cyB3ZSBzaG91bGQg aGF2ZSAiTWF1ZCAvIE5hdWQgPSA1MTIgKiBmcyAvIGZfTFNfQ2xrIiwKd2hlcmUgZnMgaXMgdGhl IGF1ZGlvIHNhbXBsZSByYXRlLCBhbmQgZl9MU19DTEsgaXMgdGhlIGxpbmsgc3ltYm9sIGNsb2Nr LgpXaXRoIHRoYXQgaW4gbWluZCB0aGlzIHNob3VsZCBub3QgYmUgbG9va2luZyBhdCBtb2RlLT5j bG9jayBidXQKY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrLgoKU28gSSBkb24ndCBhY3R1YWxseSB1 bmRlcnN0YW5kIHdoeSB5b3Ugc2F5IExTX0NMSyBoYXMgInNwZWNpYWwiIHZhbHVlcy4KSXQgc2hv dWxkbid0LiBJdCdzIGFsd2F5cyBlaXRoZXIgMTYyLCAyNzAsIG9yIDU0MCBNSHouCgpBY3R1YWxs eSBldmVuIHRoZSBIRE1JIGNhc2UgaXMgd3JvbmcgaW4gdGhlIGNvZGUsIGl0IHNob3VsZCBiZQps b29raW5nIGF0IG1vZGUtPmNydGNfY2xvY2sgaW5zdGVhZCBvZiBtb2RlLT5jbG9jay4gT3IgcGVy aGFwcyBldmVuCnBvcnRfY2xvY2ssIGlmIG15IHJlYWRpbmcgb2YgdGhlIEhETUkgc3BlYyBpcyBj b3JyZWN0LCBidXQgSSBuZXZlciBnb3QKYW55IHNhbmUgYW5zd2VyIGZyb20gYW55IGh3IGZvbGtz IHRvIG15IHF1ZXN0aW9ucyBhYm91dCB0aGlzIDooCgo+ICsJCQkJcmV0dXJuIGF1ZF9ubVtpXS5u Owo+ICsJCQl9Cj4gKwkJfQo+ICsJfQo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgYXVkaW9fY29uZmlnX2dldF9tKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkgICAg ICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwgaW50IHJhdGUpCj4gIHsKPiAg CWludCBpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGF1ZF9uY3RzKTsgaSsr KSB7Cj4gLQkJaWYgKChyYXRlID09IGF1ZF9uY3RzW2ldLnNhbXBsZV9yYXRlKSAmJgo+IC0JCQko bW9kZS0+Y2xvY2sgPT0gYXVkX25jdHNbaV0uY2xvY2spKSB7Cj4gLQkJCXJldHVybiBhdWRfbmN0 c1tpXS5uOwo+ICsJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmlnLCBJTlRFTF9P VVRQVVRfRFApKSB7Cj4gKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYXVkX25tKTsgaSsr KSB7Cj4gKwkJCWlmICgocmF0ZSA9PSBhdWRfbm1baV0uc2FtcGxlX3JhdGUpICYmCj4gKwkJCQko bW9kZS0+Y2xvY2sgPT0gYXVkX25tW2ldLmNsb2NrKSkgewo+ICsJCQkJcmV0dXJuIGF1ZF9ubVtp XS5tOwo+ICsJCQl9Cj4gIAkJfQo+ICAJfQo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1z dGF0aWMgdWludDMyX3QgYXVkaW9fY29uZmlnX3NldHVwX25fcmVnKGludCBuLCB1aW50MzJfdCB2 YWwpCj4gK3N0YXRpYyB1aW50MzJfdCBhdWRpb19jb25maWdfc2V0dXBfbl9yZWcoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCj4gKwkJCQkJIGludCBuLCB1aW50MzJfdCB2YWwpCj4gIHsKPiAgCWlu dCBuX2xvdywgbl91cDsKPiAgCXVpbnQzMl90IHRtcCA9IHZhbDsKPiBAQCAtMTQ1LDYgKzE5MSwy MyBAQCBzdGF0aWMgdWludDMyX3QgYXVkaW9fY29uZmlnX3NldHVwX25fcmVnKGludCBuLCB1aW50 MzJfdCB2YWwpCj4gIAl0bXAgfD0gKChuX3VwIDw8IEFVRF9DT05GSUdfVVBQRVJfTl9TSElGVCkg fAo+ICAJCQkobl9sb3cgPDwgQVVEX0NPTkZJR19MT1dFUl9OX1NISUZUKSB8Cj4gIAkJCUFVRF9D T05GSUdfTl9QUk9HX0VOQUJMRSk7Cj4gKwlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjLT5j b25maWcsIElOVEVMX09VVFBVVF9EUCkpCj4gKwkJdG1wIHw9IEFVRF9DT05GSUdfTl9WQUxVRV9J TkRFWDsKPiArCXJldHVybiB0bXA7Cj4gK30KPiArCj4gK3N0YXRpYyB1aW50MzJfdCBhdWRpb19j b25maWdfc2V0dXBfbV9yZWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCQkJIGludCBt LCB1aW50MzJfdCB2YWwpCj4gK3sKPiArCXVpbnQzMl90IHRtcCA9IHZhbDsKPiArCj4gKwlpZiAo IWludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFApKQo+ICsJ CXJldHVybiAwOwo+ICsKPiArCXRtcCB8PSBtOwo+ICsJdG1wIHw9IEFVRF9NX0NUU19NX1ZBTFVF X0lOREVYOwo+ICsJdG1wIHw9IEFVRF9NX0NUU19NX1BST0dfRU5BQkxFOwo+ICsKPiAgCXJldHVy biB0bXA7Cj4gIH0KPiAgCj4gQEAgLTE1Niw2ICsyMTksMTAgQEAgc3RhdGljIGJvb2wgYXVkaW9f cmF0ZV9uZWVkX3Byb2coc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJIChtb2RlLT5jbG9j ayA9PSBUTURTXzI5Nk0pKSAmJgo+ICAJCWludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmln LCBJTlRFTF9PVVRQVVRfSERNSSkpCj4gIAkJcmV0dXJuIHRydWU7Cj4gKwllbHNlIGlmICgoKG1v ZGUtPmNsb2NrID09IExDXzUzM00pIHx8Cj4gKwkJICAgKG1vZGUtPmNsb2NrID09IExDXzE0OE0p KSAmJgo+ICsJCSAgaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjLT5jb25maWcsIElOVEVMX09VVFBV VF9EUCkpCj4gKwkJcmV0dXJuIHRydWU7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICB9 Cj4gQEAgLTI4Nyw3ICszNTQsNyBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gIAkJZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5i YXNlKTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gLQl1aW50 MzJfdCB0bXA7Cj4gKwl1aW50MzJfdCB0bXAsIG07Cj4gIAlpbnQgbGVuLCBpOwo+ICAJaW50IG4s IHJhdGU7Cj4gIAo+IEBAIC0zNDMsMTUgKzQxMCwyNSBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9f Y29kZWNfZW5hYmxlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCURSTV9F UlJPUigiaW52YWxpZCBwb3J0OiAlZFxuIiwgcG9ydCk7Cj4gIAkJCXJhdGUgPSAwOwo+ICAJCX0K PiAtCQluID0gYXVkaW9fY29uZmlnX2dldF9uKGFkanVzdGVkX21vZGUsIHJhdGUpOwo+ICsJCW4g PSBhdWRpb19jb25maWdfZ2V0X24oaW50ZWxfY3J0YywgYWRqdXN0ZWRfbW9kZSwgcmF0ZSk7Cj4g IAkJaWYgKG4gIT0gMCkKPiAtCQkJdG1wID0gYXVkaW9fY29uZmlnX3NldHVwX25fcmVnKG4sIHRt cCk7Cj4gKwkJCXRtcCA9IGF1ZGlvX2NvbmZpZ19zZXR1cF9uX3JlZyhpbnRlbF9jcnRjLCBuLCB0 bXApOwo+ICAJCWVsc2UKPiAgCQkJRFJNX0RFQlVHX0tNUygibm8gc3VpdGFibGUgTiB2YWx1ZSBp cyBmb3VuZFxuIik7Cj4gIAl9Cj4gIAo+ICAJSTkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwg dG1wKTsKPiAgCj4gKwkvKiBzZXR1cCBtIHZhbHVlIGZvciBEUCAqLwo+ICsJaWYgKGludGVsX2Ny dGNfaGFzX3R5cGUoaW50ZWxfY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFApKSB7Cj4gKwkJ bSA9IGF1ZGlvX2NvbmZpZ19nZXRfbShpbnRlbF9jcnRjLCBhZGp1c3RlZF9tb2RlLCByYXRlKTsK PiArCQlpZiAobSAhPSAwKSB7Cj4gKwkJCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX01fQ1RTX0VO QUJMRShwaXBlKSk7Cj4gKwkJCXRtcCA9IGF1ZGlvX2NvbmZpZ19zZXR1cF9tX3JlZyhpbnRlbF9j cnRjLCBtLCB0bXApOwo+ICsJCQlJOTE1X1dSSVRFKEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUp LCB0bXApOwo+ICsJCX0KPiArCX0KPiArCj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9t dXRleCk7Cj4gIH0KPiAgCj4gQEAgLTYzNyw3ICs3MTQsNyBAQCBzdGF0aWMgaW50IGk5MTVfYXVk aW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVu dCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Owo+ICAJZW51bSBwaXBlIHBpcGUg PSBJTlZBTElEX1BJUEU7Cj4gLQl1MzIgdG1wOwo+ICsJdTMyIHRtcCwgbTsKPiAgCWludCBuOwo+ ICAJaW50IGVyciA9IDA7Cj4gIAo+IEBAIC02NDUsNyArNzIyLDggQEAgc3RhdGljIGludCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICAJ aWYgKCFJU19TS1lMQUtFKGRldl9wcml2KSAmJgo+ICAJICAgICFJU19LQUJZTEFLRShkZXZfcHJp dikgJiYKPiAgCSAgICAhSVNfQlJPQURXRUxMKGRldl9wcml2KSAmJgo+IC0JICAgICFJU19IQVNX RUxMKGRldl9wcml2KSkKPiArCSAgICAhSVNfSEFTV0VMTChkZXZfcHJpdikgJiYKPiArCSAgICAh SVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPmF2X211dGV4KTsKPiBAQCAtNjUzLDcgKzczMSw4IEBAIHN0YXRpYyBpbnQgaTkx NV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAg CWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ICAJLyogaW50 ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8KPiAgCWlmICghaW50ZWxfZW5j b2RlciB8fCAhaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjIHx8Cj4gLQkgICAgaW50ZWxfZW5jb2Rl ci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ICsJICAgICgoaW50ZWxfZW5jb2Rlci0+ dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkgJiYKPiArCSAgICAgKGludGVsX2VuY29kZXItPnR5 cGUgIT0gSU5URUxfT1VUUFVUX0RQKSkpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBw b3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwo+ICAJCWVyciA9IC1FTk9ERVY7Cj4gIAkJZ290 byB1bmxvY2s7Cj4gQEAgLTY4MSw3ICs3NjAsNyBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29t cG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAkJZ290byB1bmxv Y2s7Cj4gIAl9Cj4gIAo+IC0JbiA9IGF1ZGlvX2NvbmZpZ19nZXRfbihtb2RlLCByYXRlKTsKPiAr CW4gPSBhdWRpb19jb25maWdfZ2V0X24oY3J0YywgbW9kZSwgcmF0ZSk7Cj4gIAlpZiAobiA9PSAw KSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiVXNpbmcgYXV0b21hdGljIG1vZGUgZm9yIE4gdmFsdWUg b24gcG9ydCAlY1xuIiwKPiAgCQkJCQkgIHBvcnRfbmFtZShwb3J0KSk7Cj4gQEAgLTY5Myw4ICs3 NzIsMTcgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUo c3RydWN0IGRldmljZSAqZGV2LAo+ICAKPiAgCS8qIDMuIHNldCB0aGUgTi9DVFMvTSAqLwo+ICAJ dG1wID0gSTkxNV9SRUFEKEhTV19BVURfQ0ZHKHBpcGUpKTsKPiAtCXRtcCA9IGF1ZGlvX2NvbmZp Z19zZXR1cF9uX3JlZyhuLCB0bXApOwo+ICsJdG1wID0gYXVkaW9fY29uZmlnX3NldHVwX25fcmVn KGNydGMsIG4sIHRtcCk7Cj4gIAlJOTE1X1dSSVRFKEhTV19BVURfQ0ZHKHBpcGUpLCB0bXApOwo+ ICsJLyogc2V0dXAgbSB2YWx1ZSBmb3IgRFAgKi8KPiArCWlmIChpbnRlbF9jcnRjX2hhc190eXBl KGNydGMtPmNvbmZpZywgSU5URUxfT1VUUFVUX0RQKSkgewo+ICsJCW0gPSBhdWRpb19jb25maWdf Z2V0X20oY3J0YywgbW9kZSwgcmF0ZSk7Cj4gKwkJaWYgKG0gPT0gMCkKPiArCQkJZ290byB1bmxv Y2s7Cj4gKwkJdG1wID0gSTkxNV9SRUFEKEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUpKTsKPiAr CQl0bXAgPSBhdWRpb19jb25maWdfc2V0dXBfbV9yZWcoY3J0YywgbSwgdG1wKTsKPiArCQlJOTE1 X1dSSVRFKEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUpLCB0bXApOwo+ICsJfQo+ICAKPiAgIHVu bG9jazoKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAtLSAKPiAxLjku MQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==