From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [RFC 2/2] [INCOMPLETE] drm/i915: Split up crtc_state into uapi and hw Date: Mon, 17 Jun 2019 13:45:30 -0700 Message-ID: <20190617204530.GA14321@intel.com> References: <20190614202115.14098-1-maarten.lankhorst@linux.intel.com> <20190614202115.14098-3-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id E467189450 for ; Mon, 17 Jun 2019 20:43:36 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190614202115.14098-3-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 SGVyZSBpdCBsb29rcyBsaWtlLCB3ZSBhcmUgY2hhbmdpbmcgYWxsIHRoZSBoZWxwZXJzIHRvIGFj Y2VwdCBpbnRlbF9jcnRjX3N0YXRlIGFzIGFuIGFyZ3VtZW50CmFuZCB0aGVuIHVzZSB0aGUgaW50 ZWxfY3J0Y19zdGF0ZS0+aHcgYW5kIC0+dWFwaSB3aGVyZWV2ZXIgbmVlZGVkIGluc2lkZSB0aGUg ZnVuY3Rpb24uCgpCdXQgd2l0aCBzZXBlcmF0aW5nIHRoZSBkcm1fY3J0Y19zdGF0ZSBub3cgaW50 byBodyBhbmQgdWFwaSwgd2FzbnQgb25lIG9mIHRoZSBnb2Fscwp0byByZXRhaW4gdGVoIGhlbHBl cnMgdGFraW5nIGRybV9jcnRjX3N0YXRlIGFzIGFuIGFyZ3VtZW50IGFuZCBub3QgaGF2aW5nIHRv IGNoYW5nZQp0aGF0IGFsbCB0aHJvdWdoIHRoZSBpOTE1IGRyaXZlcj8KCk1hbmFzaQoKT24gRnJp LCBKdW4gMTQsIDIwMTkgYXQgMTA6MjE6MTVQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3Jv dGU6Cj4gIFVzZSB1YXBpIGZvciBkcm0sIGFuZCBrZWVwIHRoZSBpbnRlcm5hbCBzdGF0ZSBpbiBo dy4KPiAgCj4gIFRoaXMgcGF0Y2ggaXMgaW5jb21wbGV0ZSwganVzdCB3YW50IGZlZWRiYWNrIG9u IHRoZSBkaXJlY3Rpb24gSSdtIGdvaW5nLgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWMuYyAgfCAxMyArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8IDg4ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDIgKy0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA1NyBp bnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWMuYwo+IGluZGV4IDFmODkxYjU1NGVhZC4uMzZmYmQ0MDhiYTgxIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiBAQCAtMTg1LDEyICsxODUsMTQgQEAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICoKPiAgaW50ZWxfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9j cnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK PiArCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9IHRvX2lu dGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ICAKPiAtCWNydGNfc3RhdGUgPSBrbWVtZHVw KGNydGMtPnN0YXRlLCBzaXplb2YoKmNydGNfc3RhdGUpLCBHRlBfS0VSTkVMKTsKPiArCWNydGNf c3RhdGUgPSBrbWVtZHVwKG9sZF9jcnRjX3N0YXRlLCBzaXplb2YoKmNydGNfc3RhdGUpLCBHRlBf S0VSTkVMKTsKPiAgCWlmICghY3J0Y19zdGF0ZSkKPiAgCQlyZXR1cm4gTlVMTDsKPiAgCj4gLQlf X2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKGNydGMsICZjcnRjX3N0YXRl LT5odyk7Cj4gKwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKGNydGMs ICZjcnRjX3N0YXRlLT51YXBpKTsKPiArCW1lbXNldCgmY3J0Y19zdGF0ZS0+aHcsIDAsIHNpemVv ZihjcnRjX3N0YXRlLT5odykpOwo+ICAKPiAgCWNydGNfc3RhdGUtPnVwZGF0ZV9waXBlID0gZmFs c2U7Cj4gIAljcnRjX3N0YXRlLT5kaXNhYmxlX2xwX3dtID0gZmFsc2U7Cj4gQEAgLTIwMyw3ICsy MDUsNyBAQCBpbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIAljcnRjX3N0YXRlLT5mYl9iaXRzID0gMDsKPiAgCWNydGNfc3RhdGUtPnVwZGF0ZV9wbGFu ZXMgPSAwOwo+ICAKPiAtCXJldHVybiAmY3J0Y19zdGF0ZS0+aHc7Cj4gKwlyZXR1cm4gJmNydGNf c3RhdGUtPnVhcGk7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC0yMTgsNyArMjIwLDEwIEBAIHZvaWQK PiAgaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJ IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCWRybV9hdG9taWNfaGVscGVy X2NydGNfZGVzdHJveV9zdGF0ZShjcnRjLCBzdGF0ZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoc3RhdGUpOwo+ICsKPiArCV9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMsICZjcnRjX3N0YXRlLT51 YXBpKTsKPiArCWtmcmVlKGNydGNfc3RhdGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRl bF9hdG9taWNfc2V0dXBfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2Nh bGVyX3N0YXRlLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA5YWEy NzNmYjU0MTUuLjJkZTk3OGFiOGZjMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiBAQCAtNTE0LDkgKzUxNCw5IEBAIGljbF93YV9zY2FsZXJjbGtnYXRpbmcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKPiAgfQo+ICAKPiAg c3RhdGljIGJvb2wKPiAtbmVlZHNfbW9kZXNldChjb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KnN0YXRlKQo+ICtuZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpz dGF0ZSkKPiAgewo+IC0JcmV0dXJuIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KHN0YXRl KTsKPiArCXJldHVybiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmc3RhdGUtPmh3KTsK PiAgfQo+ICAKPiAgLyoKPiBAQCAtNTc5NSw3ICs1Nzk1LDcgQEAgc3RhdGljIGJvb2wgaHN3X3By ZV91cGRhdGVfZGlzYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9j cnRjX3MKPiAgCWlmICghb2xkX2NydGNfc3RhdGUtPmlwc19lbmFibGVkKQo+ICAJCXJldHVybiBm YWxzZTsKPiAgCj4gLQlpZiAobmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KSkKPiAr CWlmIChuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKPiAgCQlyZXR1cm4gdHJ1ZTsKPiAg Cj4gIAkvKgo+IEBAIC01ODIyLDcgKzU4MjIsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcG9zdF91cGRh dGVfZW5hYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfcwo+ ICAJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ ICAKPiAtCWlmIChuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpKQo+ICsJaWYgKG5l ZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQo+ICAJCXJldHVybiB0cnVlOwo+ICAKPiAgCS8q Cj4gQEAgLTU4OTksNyArNTg5OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bvc3RfcGxhbmVfdXBk YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiAgCQlpbnRlbF9m YmNfcG9zdF91cGRhdGUoY3J0Yyk7Cj4gIAo+ICAJCWlmIChuZXdfcHJpbWFyeV9zdGF0ZS0+dmlz aWJsZSAmJgo+IC0JCSAgICAobmVlZHNfbW9kZXNldCgmcGlwZV9jb25maWctPmh3KSB8fAo+ICsJ CSAgICAobmVlZHNfbW9kZXNldChwaXBlX2NvbmZpZykgfHwKPiAgCQkgICAgICFvbGRfcHJpbWFy eV9zdGF0ZS0+dmlzaWJsZSkpCj4gIAkJCWludGVsX3Bvc3RfZW5hYmxlX3ByaW1hcnkoJmNydGMt PmJhc2UsIHBpcGVfY29uZmlnKTsKPiAgCX0KPiBAQCAtNTkyMyw3ICs1OTIzLDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUsCj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0Yy0+YmFzZS5w cmltYXJ5Owo+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3ByaW1hcnlfc3RhdGUgPQo+ ICAJCWRybV9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShvbGRfc3RhdGUsIHByaW1hcnkpOwo+ IC0JYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldCgmcGlwZV9jb25maWctPmh3KTsKPiArCWJv b2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQocGlwZV9jb25maWcpOwo+ICAJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KPiAgCQl0b19pbnRlbF9hdG9taWNfc3Rh dGUob2xkX3N0YXRlKTsKPiAgCj4gQEAgLTU5ODMsNyArNTk4Myw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlLAo+ICAJICogSWYgd2UncmUgZG9pbmcgYSBtb2Rlc2V0LCB3ZSdyZSBkb25lLiAgTm8gbmVl ZCB0byBkbyBhbnkgcHJlLXZibGFuawo+ICAJICogd2F0ZXJtYXJrIHByb2dyYW1taW5nIGhlcmUu Cj4gIAkgKi8KPiAtCWlmIChuZWVkc19tb2Rlc2V0KCZwaXBlX2NvbmZpZy0+aHcpKQo+ICsJaWYg KG5lZWRzX21vZGVzZXQocGlwZV9jb25maWcpKQo+ICAJCXJldHVybjsKPiAgCj4gIAkvKgo+IEBA IC0xMTMzOCw3ICsxMTMzOCw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2Vz KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0Cj4gIAlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPnBsYW5lKTsK PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQlib29sIG1vZGVfY2hhbmdl ZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7Cj4gKwlib29sIG1vZGVfY2hhbmdlZCA9IG5l ZWRzX21vZGVzZXQocGlwZV9jb25maWcpOwo+ICAJYm9vbCB3YXNfY3J0Y19lbmFibGVkID0gb2xk X2NydGNfc3RhdGUtPmh3LmFjdGl2ZTsKPiAgCWJvb2wgaXNfY3J0Y19lbmFibGVkID0gY3J0Y19z dGF0ZS0+YWN0aXZlOwo+ICAJYm9vbCB0dXJuX29mZiwgdHVybl9vbiwgdmlzaWJsZSwgd2FzX3Zp c2libGU7Cj4gQEAgLTExNjA3LDcgKzExNjA3LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcgPQo+ICAJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7 Cj4gIAlpbnQgcmV0Owo+IC0JYm9vbCBtb2RlX2NoYW5nZWQgPSBuZWVkc19tb2Rlc2V0KGNydGNf c3RhdGUpOwo+ICsJYm9vbCBtb2RlX2NoYW5nZWQgPSBuZWVkc19tb2Rlc2V0KHBpcGVfY29uZmln KTsKPiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDUgJiYgIUlTX0c0WChkZXZfcHJp dikgJiYKPiAgCSAgICBtb2RlX2NoYW5nZWQgJiYgIWNydGNfc3RhdGUtPmFjdGl2ZSkKPiBAQCAt MTMwOTUsNyArMTMwOTUsNyBAQCBpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9jcnRjKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiAgCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSwKPiAg CQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19zdGF0ZSkKPiAgewo+IC0JaWYgKCFuZWVk c19tb2Rlc2V0KG5ld19zdGF0ZSkgJiYKPiArCWlmICghbmVlZHNfbW9kZXNldCh0b19pbnRlbF9j cnRjX3N0YXRlKG5ld19zdGF0ZSkpICYmCj4gIAkgICAgIXRvX2ludGVsX2NydGNfc3RhdGUobmV3 X3N0YXRlKS0+dXBkYXRlX3BpcGUpCj4gIAkJcmV0dXJuOwo+ICAKPiBAQCAtMTMxODcsNyArMTMx ODcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X2NsZWFyX3BsbHMoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpvbGRf ZHBsbCA9Cj4gIAkJCW9sZF9jcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKPiAgCj4gLQkJaWYgKCFu ZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpKQo+ICsJCWlmICghbmVlZHNfbW9kZXNl dChuZXdfY3J0Y19zdGF0ZSkpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQluZXdfY3J0Y19zdGF0 ZS0+c2hhcmVkX2RwbGwgPSBOVUxMOwo+IEBAIC0xMzIxNyw3ICsxMzIxNyw3IEBAIHN0YXRpYyBp bnQgaGFzd2VsbF9tb2RlX3NldF9wbGFuZXNfd29ya2Fyb3VuZChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiAgCS8qIGxvb2sgYXQgYWxsIGNydGMncyB0aGF0IGFyZSBnb2luZyB0 byBiZSBlbmFibGVkIGluIGR1cmluZyBtb2Rlc2V0ICovCj4gIAlmb3JfZWFjaF9uZXdfaW50ZWxf Y3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ICAJCWlmICghY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlIHx8Cj4gLQkJICAgICFuZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRl LT5odykpCj4gKwkJICAgICFuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+ICAJCQljb250aW51 ZTsKPiAgCj4gIAkJaWYgKGZpcnN0X2NydGNfc3RhdGUpIHsKPiBAQCAtMTMyNDIsNyArMTMyNDIs NyBAQCBzdGF0aWMgaW50IGhhc3dlbGxfbW9kZV9zZXRfcGxhbmVzX3dvcmthcm91bmQoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJY3J0Y19zdGF0ZS0+aHN3X3dvcmthcm91 bmRfcGlwZSA9IElOVkFMSURfUElQRTsKPiAgCj4gIAkJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3Rp dmUgfHwKPiAtCQkgICAgbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+aHcpKQo+ICsJCSAgICBu ZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJLyogMiBv ciBtb3JlIGVuYWJsZWQgY3J0Y3MgbWVhbnMgbm8gbmVlZCBmb3Igdy9hICovCj4gQEAgLTEzMjc2 LDMyICsxMzI3NiwzMiBAQCBzdGF0aWMgaW50IGludGVsX2xvY2tfYWxsX3BpcGVzKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMg aW50IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKPiArc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmNydGM7Cj4gIAo+ICAJLyoKPiAgCSAqIEFkZCBhbGwgcGlwZXMgdG8g dGhlIHN0YXRlLCBhbmQgZm9yY2UKPiAgCSAqIGEgbW9kZXNldCBvbiBhbGwgdGhlIGFjdGl2ZSBv bmVzLgo+ICAJICovCj4gIAlmb3JfZWFjaF9jcnRjKHN0YXRlLT5kZXYsIGNydGMpIHsKPiAtCQlz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwkJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGU7Cj4gIAkJaW50IHJldDsKPiAgCj4gLQkJY3J0Y19zdGF0ZSA9IGRy bV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJCWNydGNfc3RhdGUgPSBp bnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICAJCWlmIChJU19FUlIo Y3J0Y19zdGF0ZSkpCj4gIAkJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwo+ICAKPiAtCQlp ZiAoIWNydGNfc3RhdGUtPmFjdGl2ZSB8fCBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+ICsJ CWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkp Cj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVl Owo+ICAKPiAtCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRl LCBjcnRjKTsKPiArCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKCZz dGF0ZS0+YmFzZSwgJmNydGMtPmJhc2UpOwo+ICAJCWlmIChyZXQpCj4gIAkJCXJldHVybiByZXQ7 Cj4gIAo+IC0JCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdGF0ZSwgY3J0 Yyk7Cj4gKwkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKCZzdGF0ZS0+YmFz ZSwgJmNydGMtPmJhc2UpOwo+ICAJCWlmIChyZXQpCj4gIAkJCXJldHVybiByZXQ7Cj4gIAl9Cj4g QEAgLTEzMzY5LDEyICsxMzM2OSwxMiBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tz KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCX0KPiAgCj4gIAkJaWYgKGlz X3Bvd2VyX29mXzIoc3RhdGUtPmFjdGl2ZV9jcnRjcykpIHsKPiAtCQkJc3RydWN0IGRybV9jcnRj ICpjcnRjOwo+IC0JCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwkJCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+ICsJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZTsKPiAgCj4gIAkJCXBpcGUgPSBpbG9nMihzdGF0ZS0+YWN0aXZlX2NydGNzKTsKPiAt CQkJY3J0YyA9ICZpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwgcGlwZSktPmJhc2U7 Cj4gLQkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZSgmc3RhdGUt PmJhc2UsIGNydGMpOwo+ICsJCQljcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3By aXYsIHBpcGUpOwo+ICsJCQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3Rh dGUoc3RhdGUsIGNydGMpOwo+ICAJCQlpZiAoY3J0Y19zdGF0ZSAmJiBuZWVkc19tb2Rlc2V0KGNy dGNfc3RhdGUpKQo+ICAJCQkJcGlwZSA9IElOVkFMSURfUElQRTsKPiAgCQl9IGVsc2Ugewo+IEBA IC0xMzM5Myw3ICsxMzM5Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJCXN0YXRlLT5jZGNsay5waXBlID0g cGlwZTsKPiAgCQl9IGVsc2UgaWYgKGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2 LT5jZGNsay5hY3R1YWwsCj4gIAkJCQkJCSAgICAgJnN0YXRlLT5jZGNsay5hY3R1YWwpKSB7Cj4g LQkJCXJldCA9IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKCZzdGF0ZS0+YmFzZSk7Cj4gKwkJCXJl dCA9IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKPiAgCQkJaWYgKHJldCA8IDApCj4g IAkJCQlyZXR1cm4gcmV0Owo+ICAKPiBAQCAtMTM0NTEsNiArMTM0NTEsOCBAQCBzdGF0aWMgaW50 IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJLyogQ2F0Y2gg STkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEICovCj4gIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0 Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCj4gIAkJCQkJICAgIG5ld19j cnRjX3N0YXRlLCBpKSB7Cj4gKwkJbmV3X2ludGVsX2NydGNfc3RhdGUtPmh3ID0gbmV3X2ludGVs X2NydGNfc3RhdGUtPnVhcGk7Cj4gKwo+ICAJCWlmIChuZXdfY3J0Y19zdGF0ZS0+aHcubW9kZS5w cml2YXRlX2ZsYWdzICE9Cj4gIAkJICAgIG9sZF9jcnRjX3N0YXRlLT5ody5tb2RlLnByaXZhdGVf ZmxhZ3MpCj4gIAkJCW5ld19jcnRjX3N0YXRlLT5ody5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+IEBA IC0xMzQ2Miw3ICsxMzQ2NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ICAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5f c3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAo+ICAJCQkJCSAgICBuZXdfY3J0Y19z dGF0ZSwgaSkgewo+IC0JCWlmICghbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KSkK PiArCQlpZiAoIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQo+ICAJCQljb250aW51ZTsK PiAgCj4gIAkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKSB7Cj4gQEAgLTEzNDgwLDcg KzEzNDgyLDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgCQkJbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlID0gdHJ1ZTsKPiAgCQl9 Cj4gIAo+IC0JCWlmIChuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpKQo+ICsJCWlm IChuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKPiAgCQkJYW55X21zID0gdHJ1ZTsKPiAg CX0KPiAgCj4gQEAgLTEzNTE1LDEyICsxMzUxNywxMiBAQCBzdGF0aWMgaW50IGludGVsX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCWZvcl9lYWNoX29sZG5ld19p bnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJCQkg ICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKPiAtCQlpZiAoIW5lZWRzX21vZGVzZXQoJm5ld19jcnRj X3N0YXRlLT5odykgJiYKPiArCQlpZiAoIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpICYm Cj4gIAkJICAgICFuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCj4gIAkJCWNvbnRpbnVlOwo+ ICAKPiAgCQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKG5ld19jcnRjX3N0YXRlLCBzdGF0ZSwKPiAt CQkJCSAgICAgICBuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpID8KPiArCQkJCSAg ICAgICBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSA/Cj4gIAkJCQkgICAgICAgIlttb2Rl c2V0XSIgOiAiW2Zhc3RzZXRdIik7Cj4gIAl9Cj4gIAo+IEBAIC0xMzU2Nyw3ICsxMzU2OSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUo bmV3X2NydGNfc3RhdGUpOwo+IC0JYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChuZXdfY3J0 Y19zdGF0ZSk7Cj4gKwlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KHBpcGVfY29uZmlnKTsK PiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlID0KPiAgCQlpbnRl bF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZSh0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp LAo+ICAJCQkJCQkgdG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSkpOwo+IEBAIC0xMzc3Niwy MCArMTM3NzgsMjMgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQluZXdfaW50ZWxfY3J0Y19zdGF0ZSA9IHRv X2ludGVsX2NydGNfc3RhdGUobmV3X2NydGNfc3RhdGUpOwo+ICAJCWludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwo+ICAKPiAtCQlpZiAobmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0 ZSkgfHwKPiAtCQkgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSktPnVwZGF0 ZV9waXBlKSB7Cj4gKwkJLyogQ29weSBmb3IgZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0 KCkgKi8KPiArCQluZXdfaW50ZWxfY3J0Y19zdGF0ZS0+aHcgPSBuZXdfaW50ZWxfY3J0Y19zdGF0 ZS0+dWFwaTsKPiArCj4gKwkJaWYgKG5lZWRzX21vZGVzZXQobmV3X2ludGVsX2NydGNfc3RhdGUp IHx8Cj4gKwkJICAgIG5ld19pbnRlbF9jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkgewo+ICAKPiAg CQkJcHV0X2RvbWFpbnNbaW50ZWxfY3J0Yy0+cGlwZV0gPQo+ICAJCQkJbW9kZXNldF9nZXRfY3J0 Y19wb3dlcl9kb21haW5zKGNydGMsCj4gIAkJCQkJbmV3X2ludGVsX2NydGNfc3RhdGUpOwo+ICAJ CX0KPiAgCj4gLQkJaWYgKCFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKPiArCQlpZiAo IW5lZWRzX21vZGVzZXQobmV3X2ludGVsX2NydGNfc3RhdGUpKQo+ICAJCQljb250aW51ZTsKPiAg Cj4gIAkJaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShvbGRfaW50ZWxfY3J0Y19zdGF0ZSwgbmV3X2lu dGVsX2NydGNfc3RhdGUpOwo+ICAKPiAtCQlpZiAob2xkX2NydGNfc3RhdGUtPmFjdGl2ZSkgewo+ ICsJCWlmIChuZXdfaW50ZWxfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7Cj4gIAkJCWludGVsX2Ny dGNfZGlzYWJsZV9wbGFuZXMoaW50ZWxfc3RhdGUsIGludGVsX2NydGMpOwo+ICAKPiAgCQkJLyoK PiBAQCAtMTM4NzgsOCArMTM4ODMsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0 X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJZm9yX2VhY2hfbmV3X2Ny dGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gIAkJbmV3X2lu dGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKPiAg Cj4gLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5hY3RpdmUgJiYKPiAtCQkgICAgIW5lZWRzX21vZGVz ZXQobmV3X2NydGNfc3RhdGUpICYmCj4gKwkJaWYgKG5ld19pbnRlbF9jcnRjX3N0YXRlLT5ody5h Y3RpdmUgJiYKPiArCQkgICAgIW5lZWRzX21vZGVzZXQobmV3X2ludGVsX2NydGNfc3RhdGUpICYm Cj4gIAkJICAgIChuZXdfaW50ZWxfY3J0Y19zdGF0ZS0+aHcuY29sb3JfbWdtdF9jaGFuZ2VkIHx8 Cj4gIAkJICAgICBuZXdfaW50ZWxfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpKQo+ICAJCQlpbnRl bF9jb2xvcl9sb2FkX2x1dHMobmV3X2ludGVsX2NydGNfc3RhdGUpOwo+IEBAIC0xNDIzOCw5ICsx NDI0Myw5IEBAIGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWlmIChvbGRfb2JqKSB7Cj4gLQkJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlID0KPiAtCQkJZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUo bmV3X3N0YXRlLT5zdGF0ZSwKPiAtCQkJCQkJICAgICAgcGxhbmUtPnN0YXRlLT5jcnRjKTsKPiAr CQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9Cj4gKwkJCWludGVsX2F0b21p Y19nZXRfbmV3X2NydGNfc3RhdGUoaW50ZWxfc3RhdGUsCj4gKwkJCQkJCQlwbGFuZS0+c3RhdGUt PmNydGMpOwo+ICAKPiAgCQkvKiBCaWcgSGFtbWVyLCB3ZSBhbHNvIG5lZWQgdG8gZW5zdXJlIHRo YXQgYW55IHBlbmRpbmcKPiAgCQkgKiBNSV9XQUlUX0ZPUl9FVkVOVCBpbnNpZGUgYSB1c2VyIGJh dGNoIGJ1ZmZlciBvbiB0aGUKPiBAQCAtMTQ0MDEsNyArMTQ0MDYsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK PiAgCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiAgCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSA9Cj4gIAkJaW50ZWxfYXRvbWlj X2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gLQlib29sIG1vZGVzZXQgPSBuZWVk c19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpOwo+ICsJYm9vbCBtb2Rlc2V0ID0gbmVlZHNf bW9kZXNldChuZXdfY3J0Y19zdGF0ZSk7Cj4gIAo+ICAJLyogUGVyZm9ybSB2YmxhbmsgZXZhc2lv biBhcm91bmQgY29tbWl0IG9wZXJhdGlvbiAqLwo+ICAJaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQo bmV3X2NydGNfc3RhdGUpOwo+IEBAIC0xNDQ1NCw3ICsxNDQ1OSw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK PiAgCWludGVsX3BpcGVfdXBkYXRlX2VuZChuZXdfY3J0Y19zdGF0ZSk7Cj4gIAo+ICAJaWYgKG5l d19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSAmJgo+IC0JICAgICFuZWVkc19tb2Rlc2V0KCZuZXdf Y3J0Y19zdGF0ZS0+aHcpICYmCj4gKwkgICAgIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUp ICYmCj4gIAkgICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVf TU9ERV9GTEFHX0lOSEVSSVRFRCkKPiAgCQlpbnRlbF9jcnRjX2FybV9maWZvX3VuZGVycnVuKGNy dGMsIG5ld19jcnRjX3N0YXRlKTsKPiAgfQo+IEBAIC0xNDYwOCw2ICsxNDYxMyw3IEBAIGludGVs X2xlZ2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXJldCA9 IC1FTk9NRU07Cj4gIAkJZ290byBvdXRfZnJlZTsKPiAgCX0KPiArCW5ld19jcnRjX3N0YXRlLT5o dyA9IG5ld19jcnRjX3N0YXRlLT51YXBpOwo+ICAKPiAgCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9w bGFuZShuZXdfcGxhbmVfc3RhdGUsIGZiKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBpbmRleCBlYzUwZjkxNjcxNjEuLmQzOWVmMjQ0M2NlOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gQEAgLTcxMyw3ICs3MTMsNyBAQCBlbnVtIGludGVsX291dHB1dF9mb3JtYXQg ewo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+IC0Jc3RydWN0IGRybV9j cnRjX3N0YXRlIGh3Owo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlIHVhcGksIGh3Owo+ICAKPiAg CS8qKgo+ICAJICogcXVpcmtzIC0gYml0ZmllbGQgd2l0aCBodyBzdGF0ZSByZWFkb3V0IHF1aXJr cwo+IC0tIAo+IDIuMjAuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=