From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 01/13] drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code Date: Wed, 26 Aug 2015 16:23:39 +0300 Message-ID: <20150826132339.GR5176@intel.com> References: <1440119524-13867-1-git-send-email-matthew.d.roper@intel.com> <1440119524-13867-2-git-send-email-matthew.d.roper@intel.com> <1440593132.2519.1.camel@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 91FA36EA3F for ; Wed, 26 Aug 2015 06:23:59 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1440593132.2519.1.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Conselvan De Oliveira, Ander" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBdWcgMjYsIDIwMTUgYXQgMTI6NDU6MzJQTSArMDAwMCwgQ29uc2VsdmFuIERlIE9s aXZlaXJhLCBBbmRlciB3cm90ZToKPiBPbiBUaHUsIDIwMTUtMDgtMjAgYXQgMTg6MTEgLTA3MDAs IE1hdHQgUm9wZXIgd3JvdGU6Cj4gPiBKdXN0IHB1bGwgdGhlIGluZm8gb3V0IG9mIHRoZSBwbGFu ZSBzdGF0ZSBzdHJ1Y3R1cmUgcmF0aGVyIHRoYW4gc3RhZ2luZwo+ID4gaXQgaW4gYW4gYWRkaXRp b25hbCBzdHJ1Y3R1cmUuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRo ZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gCj4gUmV2aWV3ZWQtYnk6IEFuZGVyIENvbnNlbHZhbiBk ZSBPbGl2ZWlyYSA8Y29uc2VsdmFuMkBnbWFpbC5jb20+Cj4gCj4gPiAtLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwgMTMzICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgNjMg ZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gaW5kZXggZmZm MGMyMi4uYzljZjdjZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IEBAIC0x NzkxLDkgKzE3OTEsNiBAQCBzdHJ1Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVycyB7Cj4gPiAgCWJv b2wgYWN0aXZlOwo+ID4gIAl1aW50MzJfdCBwaXBlX2h0b3RhbDsKPiA+ICAJdWludDMyX3QgcGl4 ZWxfcmF0ZTsKPiA+IC0Jc3RydWN0IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgcHJpOwo+ID4g LQlzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVycyBzcHI7Cj4gPiAtCXN0cnVjdCBpbnRl bF9wbGFuZV93bV9wYXJhbWV0ZXJzIGN1cjsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVjdCBpbGtf d21fbWF4aW11bXMgewo+ID4gQEAgLTE4MTUsMjUgKzE4MTIsMjUgQEAgc3RydWN0IGludGVsX3dt X2NvbmZpZyB7Cj4gPiAgICogbWVtX3ZhbHVlIG11c3QgYmUgaW4gMC4xdXMgdW5pdHMuCj4gPiAg ICovCj4gPiAgc3RhdGljIHVpbnQzMl90IGlsa19jb21wdXRlX3ByaV93bShjb25zdCBzdHJ1Y3Qg aWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcGFyYW1zLAo+ID4gKwkJCQkgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSwKPiA+ICAJCQkJICAgdWludDMyX3QgbWVtX3ZhbHVl LAo+ID4gIAkJCQkgICBib29sIGlzX2xwKQo+ID4gIHsKPiA+ICsJaW50IGJwcCA9IHBzdGF0ZS0+ YmFzZS5mYiA/IHBzdGF0ZS0+YmFzZS5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4IDogMDsKPiA+ICAJ dWludDMyX3QgbWV0aG9kMSwgbWV0aG9kMjsKPiA+ICAKPiA+IC0JaWYgKCFwYXJhbXMtPmFjdGl2 ZSB8fCAhcGFyYW1zLT5wcmkuZW5hYmxlZCkKPiA+ICsJaWYgKCFwYXJhbXMtPmFjdGl2ZSB8fCAh cHN0YXRlLT52aXNpYmxlKQo+ID4gIAkJcmV0dXJuIDA7Cj4gPiAgCj4gPiAtCW1ldGhvZDEgPSBp bGtfd21fbWV0aG9kMShwYXJhbXMtPnBpeGVsX3JhdGUsCj4gPiAtCQkJCSBwYXJhbXMtPnByaS5i eXRlc19wZXJfcGl4ZWwsCj4gPiAtCQkJCSBtZW1fdmFsdWUpOwo+ID4gKwltZXRob2QxID0gaWxr X3dtX21ldGhvZDEocGFyYW1zLT5waXhlbF9yYXRlLCBicHAsIG1lbV92YWx1ZSk7Cj4gPiAgCj4g PiAgCWlmICghaXNfbHApCj4gPiAgCQlyZXR1cm4gbWV0aG9kMTsKPiA+ICAKPiA+ICAJbWV0aG9k MiA9IGlsa193bV9tZXRob2QyKHBhcmFtcy0+cGl4ZWxfcmF0ZSwKPiA+ICAJCQkJIHBhcmFtcy0+ cGlwZV9odG90YWwsCj4gPiAtCQkJCSBwYXJhbXMtPnByaS5ob3Jpel9waXhlbHMsCj4gPiAtCQkJ CSBwYXJhbXMtPnByaS5ieXRlc19wZXJfcGl4ZWwsCj4gPiArCQkJCSBkcm1fcmVjdF93aWR0aCgm cHN0YXRlLT5kc3QpLAo+ID4gKwkJCQkgYnBwLAo+ID4gIAkJCQkgbWVtX3ZhbHVlKTsKPiA+ICAK PiA+ICAJcmV0dXJuIG1pbihtZXRob2QxLCBtZXRob2QyKTsKPiA+IEBAIC0xODQ0LDIwICsxODQx LDIwIEBAIHN0YXRpYyB1aW50MzJfdCBpbGtfY29tcHV0ZV9wcmlfd20oY29uc3Qgc3RydWN0IGls a19waXBlX3dtX3BhcmFtZXRlcnMgCj4gPiAqcGFyYW1zLAo+ID4gICAqIG1lbV92YWx1ZSBtdXN0 IGJlIGluIDAuMXVzIHVuaXRzLgo+ID4gICAqLwo+ID4gIHN0YXRpYyB1aW50MzJfdCBpbGtfY29t cHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgKnBhcmFtcywK PiA+ICsJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUsCj4gPiAg CQkJCSAgIHVpbnQzMl90IG1lbV92YWx1ZSkKPiA+ICB7Cj4gPiArCWludCBicHAgPSBwc3RhdGUt PmJhc2UuZmIgPyBwc3RhdGUtPmJhc2UuZmItPmJpdHNfcGVyX3BpeGVsIC8gOCA6IDA7Cj4gPiAg CXVpbnQzMl90IG1ldGhvZDEsIG1ldGhvZDI7Cj4gPiAgCj4gPiAtCWlmICghcGFyYW1zLT5hY3Rp dmUgfHwgIXBhcmFtcy0+c3ByLmVuYWJsZWQpCj4gPiArCWlmICghcGFyYW1zLT5hY3RpdmUgfHwg IXBzdGF0ZS0+dmlzaWJsZSkKPiA+ICAJCXJldHVybiAwOwo+ID4gIAo+ID4gLQltZXRob2QxID0g aWxrX3dtX21ldGhvZDEocGFyYW1zLT5waXhlbF9yYXRlLAo+ID4gLQkJCQkgcGFyYW1zLT5zcHIu Ynl0ZXNfcGVyX3BpeGVsLAo+ID4gLQkJCQkgbWVtX3ZhbHVlKTsKPiA+ICsJbWV0aG9kMSA9IGls a193bV9tZXRob2QxKHBhcmFtcy0+cGl4ZWxfcmF0ZSwgYnBwLCBtZW1fdmFsdWUpOwo+ID4gIAlt ZXRob2QyID0gaWxrX3dtX21ldGhvZDIocGFyYW1zLT5waXhlbF9yYXRlLAo+ID4gIAkJCQkgcGFy YW1zLT5waXBlX2h0b3RhbCwKPiA+IC0JCQkJIHBhcmFtcy0+c3ByLmhvcml6X3BpeGVscywKPiA+ IC0JCQkJIHBhcmFtcy0+c3ByLmJ5dGVzX3Blcl9waXhlbCwKPiA+ICsJCQkJIGRybV9yZWN0X3dp ZHRoKCZwc3RhdGUtPmRzdCksCj4gPiArCQkJCSBicHAsCj4gPiAgCQkJCSBtZW1fdmFsdWUpOwo+ ID4gIAlyZXR1cm4gbWluKG1ldGhvZDEsIG1ldGhvZDIpOwo+ID4gIH0KPiA+IEBAIC0xODY3LDI4 ICsxODY0LDMyIEBAIHN0YXRpYyB1aW50MzJfdCBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3Ry dWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgCj4gPiAqcGFyYW1zLAo+ID4gICAqIG1lbV92YWx1 ZSBtdXN0IGJlIGluIDAuMXVzIHVuaXRzLgo+ID4gICAqLwo+ID4gIHN0YXRpYyB1aW50MzJfdCBp bGtfY29tcHV0ZV9jdXJfd20oY29uc3Qgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgKnBh cmFtcywKPiA+ICsJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUs Cj4gPiAgCQkJCSAgIHVpbnQzMl90IG1lbV92YWx1ZSkKPiA+ICB7Cj4gPiAtCWlmICghcGFyYW1z LT5hY3RpdmUgfHwgIXBhcmFtcy0+Y3VyLmVuYWJsZWQpCj4gPiArCWludCBicHAgPSBwc3RhdGUt PmJhc2UuZmIgPyBwc3RhdGUtPmJhc2UuZmItPmJpdHNfcGVyX3BpeGVsIC8gOCA6IDA7Cj4gPiAr Cj4gPiArCWlmICghcGFyYW1zLT5hY3RpdmUgfHwgIXBzdGF0ZS0+dmlzaWJsZSkKPiA+ICAJCXJl dHVybiAwOwo+ID4gIAo+ID4gIAlyZXR1cm4gaWxrX3dtX21ldGhvZDIocGFyYW1zLT5waXhlbF9y YXRlLAo+ID4gIAkJCSAgICAgIHBhcmFtcy0+cGlwZV9odG90YWwsCj4gPiAtCQkJICAgICAgcGFy YW1zLT5jdXIuaG9yaXpfcGl4ZWxzLAo+ID4gLQkJCSAgICAgIHBhcmFtcy0+Y3VyLmJ5dGVzX3Bl cl9waXhlbCwKPiA+ICsJCQkgICAgICBkcm1fcmVjdF93aWR0aCgmcHN0YXRlLT5kc3QpLAo+ID4g KwkJCSAgICAgIGJwcCwKPiA+ICAJCQkgICAgICBtZW1fdmFsdWUpOwo+ID4gIH0KPiA+ICAKPiA+ ICAvKiBPbmx5IGZvciBXTV9MUC4gKi8KPiA+ICBzdGF0aWMgdWludDMyX3QgaWxrX2NvbXB1dGVf ZmJjX3dtKGNvbnN0IHN0cnVjdCBpbGtfcGlwZV93bV9wYXJhbWV0ZXJzICpwYXJhbXMsCj4gPiAr CQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlLAo+ID4gIAkJCQkg ICB1aW50MzJfdCBwcmlfdmFsKQo+ID4gIHsKPiA+IC0JaWYgKCFwYXJhbXMtPmFjdGl2ZSB8fCAh cGFyYW1zLT5wcmkuZW5hYmxlZCkKPiA+ICsJaW50IGJwcCA9IHBzdGF0ZS0+YmFzZS5mYiA/IHBz dGF0ZS0+YmFzZS5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4IDogMDsKPiA+ICsKPiA+ICsJaWYgKCFw YXJhbXMtPmFjdGl2ZSB8fCAhcHN0YXRlLT52aXNpYmxlKQo+ID4gIAkJcmV0dXJuIDA7Cj4gPiAg Cj4gPiAtCXJldHVybiBpbGtfd21fZmJjKHByaV92YWwsCj4gPiAtCQkJICBwYXJhbXMtPnByaS5o b3Jpel9waXhlbHMsCj4gPiAtCQkJICBwYXJhbXMtPnByaS5ieXRlc19wZXJfcGl4ZWwpOwo+ID4g KwlyZXR1cm4gaWxrX3dtX2ZiYyhwcmlfdmFsLCBkcm1fcmVjdF93aWR0aCgmcHN0YXRlLT5kc3Qp LCBicHApOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdW5zaWduZWQgaW50IGlsa19kaXNwbGF5 X2ZpZm9fc2l6ZShjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gQEAgLTIwNTMsMTAg KzIwNTQsMTIgQEAgc3RhdGljIGJvb2wgaWxrX3ZhbGlkYXRlX3dtX2xldmVsKGludCBsZXZlbCwK PiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJCQkgY29uc3Qgc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gPiAgCQkJCSBpbnQgbGV2ZWwsCj4gPiAgCQkJCSBj b25zdCBzdHJ1Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcCwKPiA+ICAJCQkJIHN0cnVjdCBp bnRlbF93bV9sZXZlbCAqcmVzdWx0KQo+ID4gIHsKPiA+ICsJc3RydWN0IGludGVsX3BsYW5lICpp bnRlbF9wbGFuZTsKPiA+ICAJdWludDE2X3QgcHJpX2xhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJp X2xhdGVuY3lbbGV2ZWxdOwo+ID4gIAl1aW50MTZfdCBzcHJfbGF0ZW5jeSA9IGRldl9wcml2LT53 bS5zcHJfbGF0ZW5jeVtsZXZlbF07Cj4gPiAgCXVpbnQxNl90IGN1cl9sYXRlbmN5ID0gZGV2X3By aXYtPndtLmN1cl9sYXRlbmN5W2xldmVsXTsKPiA+IEBAIC0yMDY4LDEwICsyMDcxLDI5IEBAIHN0 YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiA+ICAJCWN1cl9sYXRlbmN5ICo9IDU7Cj4gPiAgCX0KPiA+ICAKPiA+ IC0JcmVzdWx0LT5wcmlfdmFsID0gaWxrX2NvbXB1dGVfcHJpX3dtKHAsIHByaV9sYXRlbmN5LCBs ZXZlbCk7Cj4gPiAtCXJlc3VsdC0+c3ByX3ZhbCA9IGlsa19jb21wdXRlX3Nwcl93bShwLCBzcHJf bGF0ZW5jeSk7Cj4gPiAtCXJlc3VsdC0+Y3VyX3ZhbCA9IGlsa19jb21wdXRlX2N1cl93bShwLCBj dXJfbGF0ZW5jeSk7Cj4gPiAtCXJlc3VsdC0+ZmJjX3ZhbCA9IGlsa19jb21wdXRlX2ZiY193bShw LCByZXN1bHQtPnByaV92YWwpOwo+ID4gKwlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRl dl9wcml2LT5kZXYsIGludGVsX2NydGMsIGludGVsX3BsYW5lKSB7Cj4gPiArCQlzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSA9Cj4gPiArCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoaW50 ZWxfcGxhbmUtPmJhc2Uuc3RhdGUpOwo+ID4gKwo+ID4gKwkJc3dpdGNoIChpbnRlbF9wbGFuZS0+ YmFzZS50eXBlKSB7Cj4gPiArCQljYXNlIERSTV9QTEFORV9UWVBFX1BSSU1BUlk6Cj4gPiArCQkJ cmVzdWx0LT5wcmlfdmFsID0gaWxrX2NvbXB1dGVfcHJpX3dtKHAsIHBzdGF0ZSwKPiA+ICsJCQkJ CQkJICAgICBwcmlfbGF0ZW5jeSwKPiA+ICsJCQkJCQkJICAgICBsZXZlbCk7Cj4gPiArCQkJcmVz dWx0LT5mYmNfdmFsID0gaWxrX2NvbXB1dGVfZmJjX3dtKHAsIHBzdGF0ZSwKPiA+ICsJCQkJCQkJ ICAgICByZXN1bHQtPnByaV92YWwpOwo+ID4gKwkJCWJyZWFrOwo+ID4gKwkJY2FzZSBEUk1fUExB TkVfVFlQRV9PVkVSTEFZOgo+ID4gKwkJCXJlc3VsdC0+c3ByX3ZhbCA9IGlsa19jb21wdXRlX3Nw cl93bShwLCBwc3RhdGUsCj4gPiArCQkJCQkJCSAgICAgc3ByX2xhdGVuY3kpOwo+ID4gKwkJCWJy ZWFrOwo+ID4gKwkJY2FzZSBEUk1fUExBTkVfVFlQRV9DVVJTT1I6Cj4gPiArCQkJcmVzdWx0LT5j dXJfdmFsID0gaWxrX2NvbXB1dGVfY3VyX3dtKHAsIHBzdGF0ZSwKPiA+ICsJCQkJCQkJICAgICBj dXJfbGF0ZW5jeSk7Cj4gPiArCQkJYnJlYWs7Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsKPiA+ICAJ cmVzdWx0LT5lbmFibGUgPSB0cnVlOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0yMzMzLDEwICsyMzU1 LDcgQEAgc3RhdGljIHZvaWQgc2tsX3NldHVwX3dtX2xhdGVuY3koc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiA+ICBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9wYXJhbWV0ZXJzKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiA+ICAJCQkJICAgICAgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRl cnMgKnApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 Cj4gPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+IC0Jc3RydWN0IGRy bV9wbGFuZSAqcGxhbmU7Cj4gPiAgCj4gPiAgCWlmICghaW50ZWxfY3J0Yy0+YWN0aXZlKQo+ID4g IAkJcmV0dXJuOwo+ID4gQEAgLTIzNDQsMzIgKzIzNjMsNiBAQCBzdGF0aWMgdm9pZCBpbGtfY29t cHV0ZV93bV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJcC0+YWN0aXZl ID0gdHJ1ZTsKPiA+ICAJcC0+cGlwZV9odG90YWwgPSBpbnRlbF9jcnRjLT5jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKPiA+ICAJcC0+cGl4ZWxfcmF0ZSA9IGlsa19waXBl X3BpeGVsX3JhdGUoaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiA+IC0KPiA+IC0JaWYgKGNydGMtPnBy aW1hcnktPnN0YXRlLT5mYikKPiA+IC0JCXAtPnByaS5ieXRlc19wZXJfcGl4ZWwgPQo+ID4gLQkJ CWNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ID4gLQllbHNl Cj4gPiAtCQlwLT5wcmkuYnl0ZXNfcGVyX3BpeGVsID0gNDsKPiA+IC0KPiA+IC0JcC0+Y3VyLmJ5 dGVzX3Blcl9waXhlbCA9IDQ7Cj4gPiAtCS8qCj4gPiAtCSAqIFRPRE86IGZvciBub3csIGFzc3Vt ZSBwcmltYXJ5IGFuZCBjdXJzb3IgcGxhbmVzIGFyZSBhbHdheXMgZW5hYmxlZC4KPiA+IC0JICog U2V0dGluZyB0aGVtIHRvIGZhbHNlIG1ha2VzIHRoZSBzY3JlZW4gZmxpY2tlci4KPiA+IC0JICov Cj4gPiAtCXAtPnByaS5lbmFibGVkID0gdHJ1ZTsKPiA+IC0JcC0+Y3VyLmVuYWJsZWQgPSB0cnVl Owo+ID4gLQo+ID4gLQlwLT5wcmkuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5w aXBlX3NyY193Owo+ID4gLQlwLT5jdXIuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0Yy0+YmFzZS5j dXJzb3ItPnN0YXRlLT5jcnRjX3c7Cj4gPiAtCj4gPiAtCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxh bmUocGxhbmUsIGRldikgewo+ID4gLQkJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9 IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiA+IC0KPiA+IC0JCWlmIChpbnRlbF9wbGFuZS0+cGlw ZSA9PSBwaXBlKSB7Cj4gPiAtCQkJcC0+c3ByID0gaW50ZWxfcGxhbmUtPndtOwo+ID4gLQkJCWJy ZWFrOwo+ID4gLQkJfQo+ID4gLQl9Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGlsa19j b21wdXRlX3dtX2NvbmZpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gQEAgLTIzOTcsMjgg KzIzOTAsNDIgQEAgc3RhdGljIGJvb2wgaW50ZWxfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7Cj4gPiAgCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKPiA+ICsJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKPiA+ ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzcHJzdGF0ZSA9IE5VTEw7Cj4gPiAgCWludCBs ZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwo+ID4gIAkvKiBMUDAgd2F0 ZXJtYXJrIG1heGltdW1zIGRlcGVuZCBvbiB0aGlzIHBpcGUgYWxvbmUgKi8KPiA+ICAJc3RydWN0 IGludGVsX3dtX2NvbmZpZyBjb25maWcgPSB7Cj4gPiAgCQkubnVtX3BpcGVzX2FjdGl2ZSA9IDEs Cj4gPiAtCQkuc3ByaXRlc19lbmFibGVkID0gcGFyYW1zLT5zcHIuZW5hYmxlZCwKPiA+IC0JCS5z cHJpdGVzX3NjYWxlZCA9IHBhcmFtcy0+c3ByLnNjYWxlZCwKPiA+ICAJfTsKPiA+ICAJc3RydWN0 IGlsa193bV9tYXhpbXVtcyBtYXg7Cj4gPiAgCj4gPiArCWZvcl9lYWNoX2ludGVsX3BsYW5lX29u X2NydGMoZGV2LCBpbnRlbF9jcnRjLCBpbnRlbF9wbGFuZSkgewo+ID4gKwkJaWYgKGludGVsX3Bs YW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkgewo+ID4gKwkJCXNwcnN0 YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoaW50ZWxfcGxhbmUtPmJhc2Uuc3RhdGUpOwo+ID4g KwkJCWJyZWFrOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiArCWNvbmZpZy5zcHJpdGVzX2Vu YWJsZWQgPSBzcHJzdGF0ZS0+dmlzaWJsZTsKPiA+ICsJY29uZmlnLnNwcml0ZXNfc2NhbGVkID0K PiA+ICsJCWRybV9yZWN0X3dpZHRoKCZzcHJzdGF0ZS0+ZHN0KSAhPSBkcm1fcmVjdF93aWR0aCgm c3Byc3RhdGUtPnNyYykgPj4gMTYgfHwKPiA+ICsJCWRybV9yZWN0X2hlaWdodCgmc3Byc3RhdGUt PmRzdCkgIT0gZHJtX3JlY3RfaGVpZ2h0KCZzcHJzdGF0ZS0+c3JjKSA+PiAxNjsKClRoaXMgd2ls bCBub3cgYXNzdW1lIHRoZSByZWN0cyB3aWxsIG1hdGNoIHdoZW4gdGhlIHNwcml0ZSBpcyBpbnZp c2libGUuCk5vdCBzdXJlIHRoYXQgd291bGQgYmUgdGhlIGNhc2UsIHNvIEknZCBhZGQgYSAndmlz aWJsZSAmJicgaGVyZSB0byBtYWtlCnN1cmUgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IGxpbWl0ZSB0 aGUgd20gbGV2ZWwgd2hlbiB0aGUgc3ByaXRlIGlzbid0CmV2ZW4gZW5hYmxlZC4KCj4gPiArCj4g PiArCj4gPiAgCXBpcGVfd20tPnBpcGVfZW5hYmxlZCA9IHBhcmFtcy0+YWN0aXZlOwo+ID4gLQlw aXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQgPSBwYXJhbXMtPnNwci5lbmFibGVkOwo+ID4gLQlwaXBl X3dtLT5zcHJpdGVzX3NjYWxlZCA9IHBhcmFtcy0+c3ByLnNjYWxlZDsKPiA+ICsJcGlwZV93bS0+ c3ByaXRlc19lbmFibGVkID0gc3Byc3RhdGUtPnZpc2libGU7Cj4gPiArCXBpcGVfd20tPnNwcml0 ZXNfc2NhbGVkID0gY29uZmlnLnNwcml0ZXNfc2NhbGVkOwo+ID4gIAo+ID4gIAkvKiBJTEsvU05C OiBMUDIrIHdhdGVybWFya3Mgb25seSB3L28gc3ByaXRlcyAqLwo+ID4gLQlpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPD0gNiAmJiBwYXJhbXMtPnNwci5lbmFibGVkKQo+ID4gKwlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPD0gNiAmJiBzcHJzdGF0ZS0+dmlzaWJsZSkKPiA+ICAJCW1heF9sZXZl bCA9IDE7Cj4gPiAgCj4gPiAgCS8qIElMSy9TTkIvSVZCOiBMUDErIHdhdGVybWFya3Mgb25seSB3 L28gc2NhbGluZyAqLwo+ID4gLQlpZiAocGFyYW1zLT5zcHIuc2NhbGVkKQo+ID4gKwlpZiAoY29u ZmlnLnNwcml0ZXNfc2NhbGVkKQo+ID4gIAkJbWF4X2xldmVsID0gMDsKPiA+ICAKPiA+IC0JaWxr X2NvbXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIDAsIHBhcmFtcywgJnBpcGVfd20tPndtWzBdKTsK PiA+ICsJaWxrX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIGludGVsX2NydGMsIDAsIHBhcmFt cywgJnBpcGVfd20tPndtWzBdKTsKPiA+ICAKPiA+ICAJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJ U19CUk9BRFdFTEwoZGV2KSkKPiA+ICAJCXBpcGVfd20tPmxpbmV0aW1lID0gaHN3X2NvbXB1dGVf bGluZXRpbWVfd20oZGV2LCBjcnRjKTsKPiA+IEBAIC0yNDM1LDcgKzI0NDIsNyBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAlm b3IgKGxldmVsID0gMTsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7Cj4gPiAgCQlzdHJ1 Y3QgaW50ZWxfd21fbGV2ZWwgd20gPSB7fTsKPiA+ICAKPiA+IC0JCWlsa19jb21wdXRlX3dtX2xl dmVsKGRldl9wcml2LCBsZXZlbCwgcGFyYW1zLCAmd20pOwo+ID4gKwkJaWxrX2NvbXB1dGVfd21f bGV2ZWwoZGV2X3ByaXYsIGludGVsX2NydGMsIGxldmVsLCBwYXJhbXMsICZ3bSk7Cj4gPiAgCj4g PiAgCQkvKgo+ID4gIAkJICogRGlzYWJsZSBhbnkgd2F0ZXJtYXJrIGxldmVsIHRoYXQgZXhjZWVk cyB0aGUKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBJbnRlbCBGaW5sYW5kIE95Cj4gUmVnaXN0ZXJlZCBBZGRy ZXNzOiBQTCAyODEsIDAwMTgxIEhlbHNpbmtpIAo+IEJ1c2luZXNzIElkZW50aXR5IENvZGU6IDAz NTc2MDYgLSA0IAo+IERvbWljaWxlZCBpbiBIZWxzaW5raSAKPiAKPiBUaGlzIGUtbWFpbCBhbmQg YW55IGF0dGFjaG1lbnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBtYXRlcmlhbCBmb3IKPiB0 aGUgc29sZSB1c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBk aXN0cmlidXRpb24KPiBieSBvdGhlcnMgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gSWYgeW91IGFy ZSBub3QgdGhlIGludGVuZGVkCj4gcmVjaXBpZW50LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVy IGFuZCBkZWxldGUgYWxsIGNvcGllcy4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK