From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 04/20] drm/i915: Allow fuzzy matching in pipe_config_compare, v2. Date: Tue, 14 Jul 2015 11:49:38 +0200 Message-ID: <20150714094938.GO3736@phenom.ffwll.local> References: <1436797833-11493-1-git-send-email-maarten.lankhorst@linux.intel.com> <1436797833-11493-5-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by gabe.freedesktop.org (Postfix) with ESMTPS id D761F6E5DD for ; Tue, 14 Jul 2015 02:46:57 -0700 (PDT) Received: by widjy10 with SMTP id jy10so93993370wid.1 for ; Tue, 14 Jul 2015 02:46:56 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1436797833-11493-5-git-send-email-maarten.lankhorst@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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdWwgMTMsIDIwMTUgYXQgMDQ6MzA6MTdQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSW5zdGVhZCBvZiBkb2luZyBhZC1ob2MgY2hlY2tzIHdlIGFscmVhZHkgaGF2 ZSBhIHdheSBvZiBjaGVja2luZwo+IGlmIHRoZSBzdGF0ZSBpcyBjb21wYXRpYmxlIG9yIG5vdC4g VXNlIHRoaXMgdG8gZm9yY2UgYSBtb2Rlc2V0Lgo+IAo+IE9ubHkgZHVyaW5nIG1vZGVzZXRzLCBv ciB3aXRoIFBJUEVfQ09ORklHX1FVSVJLX0lOSEVSSVRFRF9NT0RFCj4gd2Ugc2hvdWxkIGNoZWNr IGlmIGEgZnVsbCBtb2Rlc2V0IGlzIHJlYWxseSBuZWVkZWQuCj4gCj4gRmFzdGJvb3Qgd2lsbCBh bGxvdyB0aGUgYWRqdXN0IHBhcmFtZXRlciB0byBpZ25vcmUgc29tZSBzdHVmZgo+IHRvbywgYW5k IGl0IHdpbGwgZml4IHVwIGRpZmZlcmVuY2VzIGluIHN0YXRlIHRoYXQgYXJlIGlnbm9yZWQKPiBi eSB0aGUgY29tcGFyZSBmdW5jdGlvbi4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0gSW5jcmVh c2UgdGhlIHZhbHVlIG9mIHRoZSBsb3dlc3QgbS9uIHRvIHByZXZlbnQgdHJ1bmNhdGlvbi4KPiAt IER1bXAgcGlwZSBjb25maWcgd2hlbiBmYXN0Ym9vdCdzIHVzZWQsIHdpdGhvdXQgYSBtb2Rlc2V0 LgoKTmVlZHMgdG8gbWVudGlvbiB0aGF0IHRoZSBkcCBNL04gY29tcGFyaXNvbiBoZWxwZXIgZ3Jl dyB0aGUgImV4YWN0IgpwYXJhbWV0ZXIuCi1EYW5pZWwKCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMjE4ICsrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9u cygrKSwgNjEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IGluZGV4IDZlZWQ5MjVmMzMwMC4uYzNhM2QxMDg3Nzc3IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMjI5MCwxOSArMTIyOTAsNiBAQCBlbmNvZGVyX3Jl dHJ5Ogo+ICAJRFJNX0RFQlVHX0tNUygicGxhbmUgYnBwOiAlaSwgcGlwZSBicHA6ICVpLCBkaXRo ZXJpbmc6ICVpXG4iLAo+ICAJCSAgICAgIGJhc2VfYnBwLCBwaXBlX2NvbmZpZy0+cGlwZV9icHAs IHBpcGVfY29uZmlnLT5kaXRoZXIpOwo+ICAKPiAtCS8qIENoZWNrIGlmIHdlIG5lZWQgdG8gZm9y Y2UgYSBtb2Rlc2V0ICovCj4gLQlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbyAhPQo+IC0JICAg IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT5oYXNfYXVkaW8pIHsKPiAtCQlwaXBl X2NvbmZpZy0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+IC0JCXJldCA9IGRybV9hdG9taWNf YWRkX2FmZmVjdGVkX3BsYW5lcyhzdGF0ZSwgY3J0Yyk7Cj4gLQl9Cj4gLQo+IC0JLyoKPiAtCSAq IE5vdGUgd2UgaGF2ZSBhbiBpc3N1ZSBoZXJlIHdpdGggaW5mb2ZyYW1lczogY3VycmVudCBjb2Rl Cj4gLQkgKiBvbmx5IHVwZGF0ZXMgdGhlbSBvbiB0aGUgZnVsbCBtb2RlIHNldCBwYXRoIHBlciBo dwo+IC0JICogcmVxdWlyZW1lbnRzLiAgU28gaGVyZSB3ZSBzaG91bGQgYmUgY2hlY2tpbmcgZm9y IGFueQo+IC0JICogcmVxdWlyZWQgY2hhbmdlcyBhbmQgZm9yY2luZyBhIG1vZGUgc2V0Lgo+IC0J ICovCj4gIGZhaWw6Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gQEAgLTEyNDA2LDI3ICsxMjM5Mywx MzMgQEAgc3RhdGljIGJvb2wgaW50ZWxfZnV6enlfY2xvY2tfY2hlY2soaW50IGNsb2NrMSwgaW50 IGNsb2NrMikKPiAgCQkJICAgIGJhc2UuaGVhZCkgXAo+ICAJCWlmIChtYXNrICYgKDEgPDwoaW50 ZWxfY3J0YyktPnBpcGUpKQo+ICAKPiArCj4gK3N0YXRpYyBib29sCj4gK2ludGVsX2NvbXBhcmVf bV9uKHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbiwKPiArCQkgIHVuc2lnbmVkIGludCBt MiwgdW5zaWduZWQgaW50IG4yLAo+ICsJCSAgYm9vbCBleGFjdCkKPiArewo+ICsJaWYgKG0gPT0g bTIgJiYgbiA9PSBuMikKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlpZiAoZXhhY3QgfHwgIW0g fHwgIW4gfHwgIW0yIHx8ICFuMikKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJQlVJTERfQlVH X09OKERBVEFfTElOS19NX05fTUFTSyA+IElOVF9NQVgpOwo+ICsKPiArCWlmIChtID4gbTIpIHsK PiArCQl3aGlsZSAobSA+IG0yKSB7Cj4gKwkJCW0yIDw8PSAxOwo+ICsJCQluMiA8PD0gMTsKPiAr CQl9Cj4gKwl9IGVsc2UgaWYgKG0gPCBtMikgewo+ICsJCXdoaWxlIChtIDwgbTIpIHsKPiArCQkJ bSA8PD0gMTsKPiArCQkJbiA8PD0gMTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIG0gPT0g bTIgJiYgbiA9PSBuMjsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wKPiAraW50ZWxfY29tcGFyZV9s aW5rX21fbihjb25zdCBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbiwKPiArCQkgICAgICAgc3Ry dWN0IGludGVsX2xpbmtfbV9uICptMl9uMiwKPiArCQkgICAgICAgYm9vbCBhZGp1c3QpCj4gK3sK PiArCWlmIChtX24tPnR1ID09IG0yX24yLT50dSAmJgo+ICsJICAgIGludGVsX2NvbXBhcmVfbV9u KG1fbi0+Z21jaF9tLCBtX24tPmdtY2hfbiwKPiArCQkJICAgICAgbTJfbjItPmdtY2hfbSwgbTJf bjItPmdtY2hfbiwgIWFkanVzdCkgJiYKPiArCSAgICBpbnRlbF9jb21wYXJlX21fbihtX24tPmxp bmtfbSwgbV9uLT5saW5rX24sCj4gKwkJCSAgICAgIG0yX24yLT5saW5rX20sIG0yX24yLT5saW5r X24sICFhZGp1c3QpKSB7Cj4gKwkJaWYgKGFkanVzdCkKPiArCQkJKm0yX24yID0gKm1fbjsKPiAr Cj4gKwkJcmV0dXJuIHRydWU7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ ICBzdGF0aWMgYm9vbAo+ICBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmln LAo+IC0JCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiArCQkJICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gKwkJCSAgYm9vbCBhZGp1c3Qp Cj4gIHsKPiArCWJvb2wgcmV0ID0gdHJ1ZTsKPiArCj4gKyNkZWZpbmUgSU5URUxfRVJSX09SX0RC R19LTVMoZm10LCAuLi4pIFwKPiArCWRvIHsgXAo+ICsJCWlmICghYWRqdXN0KSBcCj4gKwkJCURS TV9FUlJPUihmbXQsICMjX19WQV9BUkdTX18pOyBcCj4gKwkJZWxzZSBcCj4gKwkJCURSTV9ERUJV R19LTVMoZm10LCAjI19fVkFfQVJHU19fKTsgXAo+ICsJfSB3aGlsZSAoMCkKPiArCj4gICNkZWZp bmUgUElQRV9DT05GX0NIRUNLX1gobmFtZSkJXAo+ICAJaWYgKGN1cnJlbnRfY29uZmlnLT5uYW1l ICE9IHBpcGVfY29uZmlnLT5uYW1lKSB7IFwKPiAtCQlEUk1fRVJST1IoIm1pc21hdGNoIGluICIg I25hbWUgIiAiIFwKPiArCQlJTlRFTF9FUlJfT1JfREJHX0tNUygibWlzbWF0Y2ggaW4gIiAjbmFt ZSAiICIgXAo+ICAJCQkgICIoZXhwZWN0ZWQgMHglMDh4LCBmb3VuZCAweCUwOHgpXG4iLCBcCj4g IAkJCSAgY3VycmVudF9jb25maWctPm5hbWUsIFwKPiAgCQkJICBwaXBlX2NvbmZpZy0+bmFtZSk7 IFwKPiAtCQlyZXR1cm4gZmFsc2U7IFwKPiArCQlyZXQgPSBmYWxzZTsgXAo+ICAJfQo+ICAKPiAg I2RlZmluZSBQSVBFX0NPTkZfQ0hFQ0tfSShuYW1lKQlcCj4gIAlpZiAoY3VycmVudF9jb25maWct Pm5hbWUgIT0gcGlwZV9jb25maWctPm5hbWUpIHsgXAo+IC0JCURSTV9FUlJPUigibWlzbWF0Y2gg aW4gIiAjbmFtZSAiICIgXAo+ICsJCUlOVEVMX0VSUl9PUl9EQkdfS01TKCJtaXNtYXRjaCBpbiAi ICNuYW1lICIgIiBcCj4gIAkJCSAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBcCj4gIAkJ CSAgY3VycmVudF9jb25maWctPm5hbWUsIFwKPiAgCQkJICBwaXBlX2NvbmZpZy0+bmFtZSk7IFwK PiAtCQlyZXR1cm4gZmFsc2U7IFwKPiArCQlyZXQgPSBmYWxzZTsgXAo+ICsJfQo+ICsKPiArI2Rl ZmluZSBQSVBFX0NPTkZfQ0hFQ0tfTV9OKG5hbWUpIFwKPiArCWlmICghaW50ZWxfY29tcGFyZV9s aW5rX21fbigmY3VycmVudF9jb25maWctPm5hbWUsIFwKPiArCQkJCSAgICAmcGlwZV9jb25maWct Pm5hbWUsXAo+ICsJCQkJICAgIGFkanVzdCkpIHsgXAo+ICsJCUlOVEVMX0VSUl9PUl9EQkdfS01T KCJtaXNtYXRjaCBpbiAiICNuYW1lICIgIiBcCj4gKwkJCSAgIihleHBlY3RlZCB0dSAlaSBnbWNo ICVpLyVpIGxpbmsgJWkvJWksICIgXAo+ICsJCQkgICJmb3VuZCB0dSAlaSwgZ21jaCAlaS8laSBs aW5rICVpLyVpKVxuIiwgXAo+ICsJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLnR1LCBcCj4gKwkJ CSAgY3VycmVudF9jb25maWctPm5hbWUuZ21jaF9tLCBcCj4gKwkJCSAgY3VycmVudF9jb25maWct Pm5hbWUuZ21jaF9uLCBcCj4gKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUubGlua19tLCBcCj4g KwkJCSAgY3VycmVudF9jb25maWctPm5hbWUubGlua19uLCBcCj4gKwkJCSAgcGlwZV9jb25maWct Pm5hbWUudHUsIFwKPiArCQkJICBwaXBlX2NvbmZpZy0+bmFtZS5nbWNoX20sIFwKPiArCQkJICBw aXBlX2NvbmZpZy0+bmFtZS5nbWNoX24sIFwKPiArCQkJICBwaXBlX2NvbmZpZy0+bmFtZS5saW5r X20sIFwKPiArCQkJICBwaXBlX2NvbmZpZy0+bmFtZS5saW5rX24pOyBcCj4gKwkJcmV0ID0gZmFs c2U7IFwKPiArCX0KPiArCj4gKyNkZWZpbmUgUElQRV9DT05GX0NIRUNLX01fTl9BTFQobmFtZSwg YWx0X25hbWUpIFwKPiArCWlmICghaW50ZWxfY29tcGFyZV9saW5rX21fbigmY3VycmVudF9jb25m aWctPm5hbWUsIFwKPiArCQkJCSAgICAmcGlwZV9jb25maWctPm5hbWUsIGFkanVzdCkgJiYgXAo+ ICsJICAgICFpbnRlbF9jb21wYXJlX2xpbmtfbV9uKCZjdXJyZW50X2NvbmZpZy0+YWx0X25hbWUs IFwKPiArCQkJCSAgICAmcGlwZV9jb25maWctPm5hbWUsIGFkanVzdCkpIHsgXAo+ICsJCUlOVEVM X0VSUl9PUl9EQkdfS01TKCJtaXNtYXRjaCBpbiAiICNuYW1lICIgIiBcCj4gKwkJCSAgIihleHBl Y3RlZCB0dSAlaSBnbWNoICVpLyVpIGxpbmsgJWkvJWksICIgXAo+ICsJCQkgICJvciB0dSAlaSBn bWNoICVpLyVpIGxpbmsgJWkvJWksICIgXAo+ICsJCQkgICJmb3VuZCB0dSAlaSwgZ21jaCAlaS8l aSBsaW5rICVpLyVpKVxuIiwgXAo+ICsJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLnR1LCBcCj4g KwkJCSAgY3VycmVudF9jb25maWctPm5hbWUuZ21jaF9tLCBcCj4gKwkJCSAgY3VycmVudF9jb25m aWctPm5hbWUuZ21jaF9uLCBcCj4gKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUubGlua19tLCBc Cj4gKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUubGlua19uLCBcCj4gKwkJCSAgY3VycmVudF9j b25maWctPmFsdF9uYW1lLnR1LCBcCj4gKwkJCSAgY3VycmVudF9jb25maWctPmFsdF9uYW1lLmdt Y2hfbSwgXAo+ICsJCQkgIGN1cnJlbnRfY29uZmlnLT5hbHRfbmFtZS5nbWNoX24sIFwKPiArCQkJ ICBjdXJyZW50X2NvbmZpZy0+YWx0X25hbWUubGlua19tLCBcCj4gKwkJCSAgY3VycmVudF9jb25m aWctPmFsdF9uYW1lLmxpbmtfbiwgXAo+ICsJCQkgIHBpcGVfY29uZmlnLT5uYW1lLnR1LCBcCj4g KwkJCSAgcGlwZV9jb25maWctPm5hbWUuZ21jaF9tLCBcCj4gKwkJCSAgcGlwZV9jb25maWctPm5h bWUuZ21jaF9uLCBcCj4gKwkJCSAgcGlwZV9jb25maWctPm5hbWUubGlua19tLCBcCj4gKwkJCSAg cGlwZV9jb25maWctPm5hbWUubGlua19uKTsgXAo+ICsJCXJldCA9IGZhbHNlOyBcCj4gIAl9Cj4g IAo+ICAvKiBUaGlzIGlzIHJlcXVpcmVkIGZvciBCRFcrIHdoZXJlIHRoZXJlIGlzIG9ubHkgb25l IHNldCBvZiByZWdpc3RlcnMgZm9yCj4gQEAgLTEyNDM3LDMwICsxMjUzMCwzMCBAQCBpbnRlbF9w aXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICNkZWZpbmUgUElQ RV9DT05GX0NIRUNLX0lfQUxUKG5hbWUsIGFsdF9uYW1lKSBcCj4gIAlpZiAoKGN1cnJlbnRfY29u ZmlnLT5uYW1lICE9IHBpcGVfY29uZmlnLT5uYW1lKSAmJiBcCj4gIAkJKGN1cnJlbnRfY29uZmln LT5hbHRfbmFtZSAhPSBwaXBlX2NvbmZpZy0+bmFtZSkpIHsgXAo+IC0JCQlEUk1fRVJST1IoIm1p c21hdGNoIGluICIgI25hbWUgIiAiIFwKPiArCQkJSU5URUxfRVJSX09SX0RCR19LTVMoIm1pc21h dGNoIGluICIgI25hbWUgIiAiIFwKPiAgCQkJCSAgIihleHBlY3RlZCAlaSBvciAlaSwgZm91bmQg JWkpXG4iLCBcCj4gIAkJCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLCBcCj4gIAkJCQkgIGN1cnJl bnRfY29uZmlnLT5hbHRfbmFtZSwgXAo+ICAJCQkJICBwaXBlX2NvbmZpZy0+bmFtZSk7IFwKPiAt CQkJcmV0dXJuIGZhbHNlOyBcCj4gKwkJCXJldCA9IGZhbHNlOyBcCj4gIAl9Cj4gIAo+ICAjZGVm aW5lIFBJUEVfQ09ORl9DSEVDS19GTEFHUyhuYW1lLCBtYXNrKQlcCj4gIAlpZiAoKGN1cnJlbnRf Y29uZmlnLT5uYW1lIF4gcGlwZV9jb25maWctPm5hbWUpICYgKG1hc2spKSB7IFwKPiAtCQlEUk1f RVJST1IoIm1pc21hdGNoIGluICIgI25hbWUgIigiICNtYXNrICIpICIJICAgXAo+ICsJCUlOVEVM X0VSUl9PUl9EQkdfS01TKCJtaXNtYXRjaCBpbiAiICNuYW1lICIoIiAjbWFzayAiKSAiIFwKPiAg CQkJICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIFwKPiAgCQkJICBjdXJyZW50X2NvbmZp Zy0+bmFtZSAmIChtYXNrKSwgXAo+ICAJCQkgIHBpcGVfY29uZmlnLT5uYW1lICYgKG1hc2spKTsg XAo+IC0JCXJldHVybiBmYWxzZTsgXAo+ICsJCXJldCA9IGZhbHNlOyBcCj4gIAl9Cj4gIAo+ICAj ZGVmaW5lIFBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWShuYW1lKSBcCj4gIAlpZiAoIWludGVs X2Z1enp5X2Nsb2NrX2NoZWNrKGN1cnJlbnRfY29uZmlnLT5uYW1lLCBwaXBlX2NvbmZpZy0+bmFt ZSkpIHsgXAo+IC0JCURSTV9FUlJPUigibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIgXAo+ICsJCUlO VEVMX0VSUl9PUl9EQkdfS01TKCJtaXNtYXRjaCBpbiAiICNuYW1lICIgIiBcCj4gIAkJCSAgIihl eHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBcCj4gIAkJCSAgY3VycmVudF9jb25maWctPm5hbWUs IFwKPiAgCQkJICBwaXBlX2NvbmZpZy0+bmFtZSk7IFwKPiAtCQlyZXR1cm4gZmFsc2U7IFwKPiAr CQlyZXQgPSBmYWxzZTsgXAo+ICAJfQo+ICAKPiAgI2RlZmluZSBQSVBFX0NPTkZfUVVJUksocXVp cmspCVwKPiBAQCAtMTI0NzAsMzUgKzEyNTYzLDE4IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBh cmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSShoYXNf cGNoX2VuY29kZXIpOwo+ICAJUElQRV9DT05GX0NIRUNLX0koZmRpX2xhbmVzKTsKPiAtCVBJUEVf Q09ORl9DSEVDS19JKGZkaV9tX24uZ21jaF9tKTsKPiAtCVBJUEVfQ09ORl9DSEVDS19JKGZkaV9t X24uZ21jaF9uKTsKPiAtCVBJUEVfQ09ORl9DSEVDS19JKGZkaV9tX24ubGlua19tKTsKPiAtCVBJ UEVfQ09ORl9DSEVDS19JKGZkaV9tX24ubGlua19uKTsKPiAtCVBJUEVfQ09ORl9DSEVDS19JKGZk aV9tX24udHUpOwo+ICsJUElQRV9DT05GX0NIRUNLX01fTihmZGlfbV9uKTsKPiAgCj4gIAlQSVBF X0NPTkZfQ0hFQ0tfSShoYXNfZHBfZW5jb2Rlcik7Cj4gIAo+ICAJaWYgKElOVEVMX0lORk8oZGV2 KS0+Z2VuIDwgOCkgewo+IC0JCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi5nbWNoX20pOwo+IC0J CVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi5nbWNoX24pOwo+IC0JCVBJUEVfQ09ORl9DSEVDS19J KGRwX21fbi5saW5rX20pOwo+IC0JCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi5saW5rX24pOwo+ IC0JCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi50dSk7Cj4gLQo+IC0JCWlmIChjdXJyZW50X2Nv bmZpZy0+aGFzX2RycnMpIHsKPiAtCQkJUElQRV9DT05GX0NIRUNLX0koZHBfbTJfbjIuZ21jaF9t KTsKPiAtCQkJUElQRV9DT05GX0NIRUNLX0koZHBfbTJfbjIuZ21jaF9uKTsKPiAtCQkJUElQRV9D T05GX0NIRUNLX0koZHBfbTJfbjIubGlua19tKTsKPiAtCQkJUElQRV9DT05GX0NIRUNLX0koZHBf bTJfbjIubGlua19uKTsKPiAtCQkJUElQRV9DT05GX0NIRUNLX0koZHBfbTJfbjIudHUpOwo+IC0J CX0KPiAtCX0gZWxzZSB7Cj4gLQkJUElQRV9DT05GX0NIRUNLX0lfQUxUKGRwX21fbi5nbWNoX20s IGRwX20yX24yLmdtY2hfbSk7Cj4gLQkJUElQRV9DT05GX0NIRUNLX0lfQUxUKGRwX21fbi5nbWNo X24sIGRwX20yX24yLmdtY2hfbik7Cj4gLQkJUElQRV9DT05GX0NIRUNLX0lfQUxUKGRwX21fbi5s aW5rX20sIGRwX20yX24yLmxpbmtfbSk7Cj4gLQkJUElQRV9DT05GX0NIRUNLX0lfQUxUKGRwX21f bi5saW5rX24sIGRwX20yX24yLmxpbmtfbik7Cj4gLQkJUElQRV9DT05GX0NIRUNLX0lfQUxUKGRw X21fbi50dSwgZHBfbTJfbjIudHUpOwo+IC0JfQo+ICsJCVBJUEVfQ09ORl9DSEVDS19NX04oZHBf bV9uKTsKPiArCj4gKwkJUElQRV9DT05GX0NIRUNLX0koaGFzX2RycnMpOwo+ICsJCWlmIChjdXJy ZW50X2NvbmZpZy0+aGFzX2RycnMpCj4gKwkJCVBJUEVfQ09ORl9DSEVDS19NX04oZHBfbTJfbjIp Owo+ICsJfSBlbHNlCj4gKwkJUElQRV9DT05GX0NIRUNLX01fTl9BTFQoZHBfbV9uLCBkcF9tMl9u Mik7Cj4gIAo+ICAJUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGRp c3BsYXkpOwo+ICAJUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRv dGFsKTsKPiBAQCAtMTI1OTQsOCArMTI2NzAsOSBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICN1bmRlZiBQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MK PiAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWQo+ICAjdW5kZWYgUElQRV9DT05G X1FVSVJLCj4gKyN1bmRlZiBJTlRFTF9FUlJfT1JfREJHX0tNUwo+ICAKPiAtCXJldHVybiB0cnVl Owo+ICsJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgY2hlY2tfd21fc3RhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBAQCAtMTI3ODcsOCArMTI4NjQsMTEgQEAgY2hlY2tf Y3J0Y19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCSAgICAgInRyYW5zaXRpb25h bCBhY3RpdmUgc3RhdGUgZG9lcyBub3QgbWF0Y2ggYXRvbWljIGh3IHN0YXRlICIKPiAgCQkgICAg ICIoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwgY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlLCBj cnRjLT5hY3RpdmUpOwo+ICAKPiAtCQlpZiAoYWN0aXZlICYmCj4gLQkJICAgICFpbnRlbF9waXBl X2NvbmZpZ19jb21wYXJlKGRldiwgY3J0Yy0+Y29uZmlnLCAmcGlwZV9jb25maWcpKSB7Cj4gKwkJ aWYgKCFhY3RpdmUpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoIWludGVsX3BpcGVfY29u ZmlnX2NvbXBhcmUoZGV2LCBjcnRjLT5jb25maWcsCj4gKwkJCQkJICAgICAgICZwaXBlX2NvbmZp ZywgZmFsc2UpKSB7Cj4gIAkJCUk5MTVfU1RBVEVfV0FSTigxLCAicGlwZSBzdGF0ZSBkb2Vzbid0 IG1hdGNoIVxuIik7Cj4gIAkJCWludGVsX2R1bXBfcGlwZV9jb25maWcoY3J0YywgJnBpcGVfY29u ZmlnLAo+ICAJCQkJCSAgICAgICAiW2h3IHN0YXRlXSIpOwo+IEBAIC0xMzA4OSwxNCArMTMxNjks MTcgQEAgaW50ZWxfbW9kZXNldF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAlmb3JfZWFjaF9jcnRjX2luX3N0YXRl KHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnID0KPiArCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsK PiArCQlib29sIG1vZGVzZXQsIHJlY2FsYzsKPiArCj4gIAkJaWYgKCFjcnRjX3N0YXRlLT5lbmFi bGUpIHsKPiAgCQkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCj4gIAkJCQlhbnlfbXMg PSB0cnVlOwo+ICAJCQljb250aW51ZTsKPiAgCQl9Cj4gIAo+IC0JCWlmICh0b19pbnRlbF9jcnRj X3N0YXRlKGNydGNfc3RhdGUpLT5xdWlya3MgJgo+IC0JCSAgICBQSVBFX0NPTkZJR19RVUlSS19J TklUSUFMX1BMQU5FUykgewo+ICsJCWlmIChwaXBlX2NvbmZpZy0+cXVpcmtzICYgUElQRV9DT05G SUdfUVVJUktfSU5JVElBTF9QTEFORVMpIHsKPiAgCQkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZm ZWN0ZWRfcGxhbmVzKHN0YXRlLCBjcnRjKTsKPiAgCQkJaWYgKHJldCkKPiAgCQkJCXJldHVybiBy ZXQ7Cj4gQEAgLTEzMTA5LDIzICsxMzE5MiwzNiBAQCBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQkJICovCj4gIAkJfQo+ICAK PiAtCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpIHsKPiArCQltb2Rlc2V0ID0gbmVl ZHNfbW9kZXNldChjcnRjX3N0YXRlKTsKPiArCQlyZWNhbGMgPSBwaXBlX2NvbmZpZy0+cXVpcmtz ICYgUElQRV9DT05GSUdfUVVJUktfSU5IRVJJVEVEX01PREU7Cj4gKwo+ICsJCWlmICghbW9kZXNl dCAmJiAhcmVjYWxjKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWYgKHJlY2FsYykgewo+ICAJ CQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRlLCBjcnRjKTsK PiAgCQkJaWYgKHJldCkKPiAgCQkJCXJldHVybiByZXQ7Cj4gIAkJfQo+ICAKPiAtCQlyZXQgPSBp bnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKGNydGMsCj4gLQkJCQkJdG9faW50ZWxfY3J0Y19zdGF0 ZShjcnRjX3N0YXRlKSk7Cj4gKwkJcmV0ID0gaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhjcnRj LCBwaXBlX2NvbmZpZyk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiAgCj4gLQkJ aWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCj4gLQkJCWFueV9tcyA9IHRydWU7Cj4gKwkJ aWYgKHJlY2FsYyAmJiAhaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdGF0ZS0+ZGV2LAo+ICsJ CQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLAo+ICsJCQkJCXBpcGVfY29uZmln LCB0cnVlKSkgewo+ICsJCQltb2Rlc2V0ID0gY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1 ZTsKPiArCj4gKwkJCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdGF0ZSwg Y3J0Yyk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPiAgCj4gKwkJ YW55X21zID0gbW9kZXNldDsKPiAgCQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHRvX2ludGVsX2Ny dGMoY3J0YyksCj4gLQkJCQkgICAgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKSwK PiAtCQkJCSAgICAgICAiW21vZGVzZXRdIik7Cj4gKwkJCQkgICAgICAgcGlwZV9jb25maWcsCj4g KwkJCQkgICAgICAgbW9kZXNldCA/ICJbbW9kZXNldF0iIDogIltmYXN0Ym9vdF0iKTsKPiAgCX0K PiAgCj4gIAlpZiAoYW55X21zKSB7Cj4gLS0gCj4gMi4xLjAKPiAKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==