From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clint Taylor Subject: Re: [PATCH 05/10] drm/i915: Compute display FIFO split dynamically for CHV Date: Fri, 26 Jun 2015 13:23:17 -0700 Message-ID: <558DB4B5.5080705@intel.com> References: <1435172410-9834-1-git-send-email-ville.syrjala@linux.intel.com> <1435172410-9834-6-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2DA486EE6E for ; Fri, 26 Jun 2015 13:25:38 -0700 (PDT) In-Reply-To: <1435172410-9834-6-git-send-email-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDYvMjQvMjAxNSAxMjowMCBQTSwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3Jv dGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPgo+IENvbnNpZGVyIHdoaWNoIHBsYW5lcyBhcmUgYWN0aXZlIGFuZCBjb21wdXRlIHRoZSBG SUZPIHNwbGl0IGJhc2VkIG9uIHRoZQo+IHJlbGF0aXZlIGRhdGEgcmF0ZXMuIFNpbmNlIHdlIG9u bHkgY29uc2lkZXIgdGhlIHBpcGUgc3JjIHdpZHRoIHJhdGhlcgo+IHRoYW4gdGhlIHBsYW5lIHdp ZHRoIHdoZW4gY29tcHV0aW5nIHdhdGVybWFya3MgaXQgc2VlbXMgYmVzdCB0byBkbyB0aGUKPiBz YW1lIHdoZW4gY29tcHV0aW5nIHRoZSBGSUZPIHNwbGl0IGFzIHdlbGwuIFRoaXMgbWVhbnMgdGhl IG9ubHkgdGhpbmcgd2UKPiBhY3R1YWxseSBoYXZlIHRvIGNvbnNpZGVyIGZvciB0aGUgRklGTyBz cGx1dCBpcyB0aGUgYnBwLCBhbmQgd2UgY2FuCj4gaWdub3JlIHRoZSByZXN0Lgo+Cj4gSSd2ZSBq dXN0IHN0dWZmZWQgdGhlIGxvZ2ljIGludG8gdGhlIHdhdGVybWFyayBjb2RlIGZvciBub3cuIEV2 ZW50dWFsbHkKPiBpdCdsbCBuZWVkIHRvIG1vdmUgaW50byB0aGUgYXRvbWljIHVwZGF0ZSBmb3Ig dGhlIGNydGMuCj4KPiBUaGVyZSdzIGFsc28gb25lIGV4dHJhIGNvbXBsaWNhdGlvbiBJJ3ZlIG5v dCB5ZXQgY29uc2lkZXJlZDsgU29tZSBvZiB0aGUKPiBEU1BBUkIgcmVnaXN0ZXJzIGNvbnRhaW4g Yml0cyByZWxhdGVkIHRvIG11bHRpcGxlIHBpcGVzLiBUaGUgcmVnaXN0ZXJzCj4gYXJlIGRvdWJs ZSBidWZmZXJlZCBidXQgYXBwYXJlbnRseSB0aGV5IHVwZGF0ZSBvbiB0aGUgdmJsYW5rIG9mIGFu eQo+IGFjdGl2ZSBwaXBlLiBTbyBkb2luZyB0aGUgRklGTyByZWNvbmZpZ3VyYXRpb24gcHJvcGVy bHkgd2hlbiBtdWx0aXBsZQo+IHBpcGVzIGFyZSBhY3RpdmUgaXMgbm90IGdvaW5nIHRvIGJlIGZ1 bi4gQnV0IGxldCdzIGlnbm9yZSB0aGF0IG1lc3MgZm9yCj4gbm93Lgo+Cj4gU2lnbmVkLW9mZi1i eTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggfCAgMjUgKysrKystCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwgMTc1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMTg5IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggYjlmNmI4 Yy4uZmE2NzgwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC00NDExLDkgKzQ0 MTEsMzIgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICAjZGVmaW5lICAgRFNQQVJC X0JTVEFSVF9TSElGVAkwCj4gICAjZGVmaW5lICAgRFNQQVJCX0JFTkRfU0hJRlQJOSAvKiBvbiA4 NTUgKi8KPiAgICNkZWZpbmUgICBEU1BBUkJfQUVORF9TSElGVAkwCj4gLQo+ICsjZGVmaW5lICAg RFNQQVJCX1NQUklURUFfU0hJRlRfVkxWCTAKPiArI2RlZmluZSAgIERTUEFSQl9TUFJJVEVBX01B U0tfVkxWCSgweGZmIDw8IDApCj4gKyNkZWZpbmUgICBEU1BBUkJfU1BSSVRFQl9TSElGVF9WTFYJ OAo+ICsjZGVmaW5lICAgRFNQQVJCX1NQUklURUJfTUFTS19WTFYJKDB4ZmYgPDwgOCkKPiArI2Rl ZmluZSAgIERTUEFSQl9TUFJJVEVDX1NISUZUX1ZMVgkxNgo+ICsjZGVmaW5lICAgRFNQQVJCX1NQ UklURUNfTUFTS19WTFYJKDB4ZmYgPDwgMTYpCj4gKyNkZWZpbmUgICBEU1BBUkJfU1BSSVRFRF9T SElGVF9WTFYJMjQKPiArI2RlZmluZSAgIERTUEFSQl9TUFJJVEVEX01BU0tfVkxWCSgweGZmIDw8 IDI0KQo+ICAgI2RlZmluZSBEU1BBUkIyCQkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDcwMDYwKSAv KiB2bHYvY2h2ICovCj4gKyNkZWZpbmUgICBEU1BBUkJfU1BSSVRFQV9ISV9TSElGVF9WTFYJMAo+ ICsjZGVmaW5lICAgRFNQQVJCX1NQUklURUFfSElfTUFTS19WTFYJKDB4MSA8PCAwKQo+ICsjZGVm aW5lICAgRFNQQVJCX1NQUklURUJfSElfU0hJRlRfVkxWCTQKPiArI2RlZmluZSAgIERTUEFSQl9T UFJJVEVCX0hJX01BU0tfVkxWCSgweDEgPDwgNCkKPiArI2RlZmluZSAgIERTUEFSQl9TUFJJVEVD X0hJX1NISUZUX1ZMVgk4Cj4gKyNkZWZpbmUgICBEU1BBUkJfU1BSSVRFQ19ISV9NQVNLX1ZMVgko MHgxIDw8IDgpCj4gKyNkZWZpbmUgICBEU1BBUkJfU1BSSVRFRF9ISV9TSElGVF9WTFYJMTIKPiAr I2RlZmluZSAgIERTUEFSQl9TUFJJVEVEX0hJX01BU0tfVkxWCSgweDEgPDwgMTIpCj4gKyNkZWZp bmUgICBEU1BBUkJfU1BSSVRFRV9ISV9TSElGVF9WTFYJMTYKPiArI2RlZmluZSAgIERTUEFSQl9T UFJJVEVFX0hJX01BU0tfVkxWCSgweDEgPDwgMTYpCj4gKyNkZWZpbmUgICBEU1BBUkJfU1BSSVRF Rl9ISV9TSElGVF9WTFYJMjAKPiArI2RlZmluZSAgIERTUEFSQl9TUFJJVEVGX0hJX01BU0tfVkxW CSgweDEgPDwgMjApCj4gICAjZGVmaW5lIERTUEFSQjMJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4 NzAwNmMpIC8qIGNodiAqLwo+ICsjZGVmaW5lICAgRFNQQVJCX1NQUklURUVfU0hJRlRfVkxWCTAK PiArI2RlZmluZSAgIERTUEFSQl9TUFJJVEVFX01BU0tfVkxWCSgweGZmIDw8IDApCj4gKyNkZWZp bmUgICBEU1BBUkJfU1BSSVRFRl9TSElGVF9WTFYJOAo+ICsjZGVmaW5lICAgRFNQQVJCX1NQUklU RUZfTUFTS19WTFYJKDB4ZmYgPDwgOCkKPgo+ICAgLyogcG52L2dlbjQvZzR4L3Zsdi9jaHYgKi8K PiAgICNkZWZpbmUgRFNQRlcxCQkJKGRldl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQg KyAweDcwMDM0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGQwNDZlNWYuLmZmZGNh NjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtMTE3MSw2ICsxMTcxLDczIEBA IHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgIAlkZXZfcHJpdi0+d20udmx2ID0gd207Cj4gICB9Cj4KPiArc3RhdGljIHZvaWQgdmx2X2Nv bXB1dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiArewo+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICsJc3RydWN0IHZsdl93bV9zdGF0ZSAqd21f c3RhdGUgPSAmY3J0Yy0+d21fc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+ ICsJdW5zaWduZWQgaW50IHRvdGFsX3JhdGUgPSAwOwo+ICsJY29uc3QgaW50IGZpZm9fc2l6ZSA9 IDUxMiAtIDE7Cj4gKwlpbnQgZmlmb19leHRyYSwgZmlmb19sZWZ0ID0gZmlmb19zaXplOwo+ICsK PiArCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewo+ICsJ CXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+ICsJCQl0b19pbnRlbF9wbGFuZV9z dGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7Cj4gKwo+ICsJCWlmIChwbGFuZS0+YmFzZS50eXBlID09 IERSTV9QTEFORV9UWVBFX0NVUlNPUikKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmIChzdGF0 ZS0+dmlzaWJsZSkgewo+ICsJCQl3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMrKzsKPiArCQkJ dG90YWxfcmF0ZSArPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChzdGF0ZS0+YmFzZS5mYi0+cGl4ZWxf Zm9ybWF0LCAwKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25f Y3J0YyhkZXYsIGNydGMsIHBsYW5lKSB7Cj4gKwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpz dGF0ZSA9Cj4gKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKPiAr CQl1bnNpZ25lZCBpbnQgcmF0ZTsKPiArCj4gKwkJaWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0gRFJN X1BMQU5FX1RZUEVfQ1VSU09SKSB7Cj4gKwkJCXBsYW5lLT53bS5maWZvX3NpemUgPSA2MzsKPiAr CQkJY29udGludWU7Cj4gKwkJfQo+ICsKPiArCQlpZiAoIXN0YXRlLT52aXNpYmxlKSB7Cj4gKwkJ CXBsYW5lLT53bS5maWZvX3NpemUgPSAwOwo+ICsJCQljb250aW51ZTsKPiArCQl9Cj4gKwo+ICsJ CXJhdGUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChzdGF0ZS0+YmFzZS5mYi0+cGl4ZWxfZm9ybWF0 LCAwKTsKPiArCQlwbGFuZS0+d20uZmlmb19zaXplID0gZmlmb19zaXplICogcmF0ZSAvIHRvdGFs X3JhdGU7Cj4gKwkJZmlmb19sZWZ0IC09IHBsYW5lLT53bS5maWZvX3NpemU7Cj4gKwl9Cj4gKwo+ ICsJZmlmb19leHRyYSA9IERJVl9ST1VORF9VUChmaWZvX2xlZnQsIHdtX3N0YXRlLT5udW1fYWN0 aXZlX3BsYW5lcyA/OiAxKTsKPiArCj4gKwkvKiBzcHJlYWQgdGhlIHJlbWFpbmRlciBldmVubHkg Ki8KPiArCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewo+ ICsJCWludCBwbGFuZV9leHRyYTsKPiArCj4gKwkJaWYgKGZpZm9fbGVmdCA9PSAwKQo+ICsJCQli cmVhazsKPiArCj4gKwkJaWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VS U09SKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJLyogZ2l2ZSBpdCBhbGwgdG8gdGhlIGZpcnN0 IHBsYW5lIGlmIG5vbmUgYXJlIGFjdGl2ZSAqLwo+ICsJCWlmIChwbGFuZS0+d20uZmlmb19zaXpl ID09IDAgJiYKPiArCQkgICAgd21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzKQo+ICsJCQljb250 aW51ZTsKPiArCj4gKwkJcGxhbmVfZXh0cmEgPSBtaW4oZmlmb19leHRyYSwgZmlmb19sZWZ0KTsK PiArCQlwbGFuZS0+d20uZmlmb19zaXplICs9IHBsYW5lX2V4dHJhOwo+ICsJCWZpZm9fbGVmdCAt PSBwbGFuZV9leHRyYTsKPiArCX0KPiArCj4gKwlXQVJOX09OKGZpZm9fbGVmdCAhPSAwKTsKPiAr fQo+ICsKPiAgIHN0YXRpYyB2b2lkIHZsdl9pbnZlcnRfd21zKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+ICAgewo+ICAgCXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGMtPndt X3N0YXRlOwo+IEBAIC0xMjIyLDE2ICsxMjg5LDggQEAgc3RhdGljIHZvaWQgX3Zsdl9jb21wdXRl X3dtKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAgCQl3bV9zdGF0ZS0+bnVtX2xldmVscyA9 IFZMVl9XTV9OVU1fTEVWRUxTOwo+Cj4gICAJd21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID0g MDsKPiAtCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewo+ IC0JCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+IC0JCQl0b19pbnRlbF9wbGFu ZV9zdGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7Cj4gLQo+IC0JCWlmIChwbGFuZS0+YmFzZS50eXBl ID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikKPiAtCQkJY29udGludWU7Cj4KPiAtCQlpZiAoc3Rh dGUtPnZpc2libGUpCj4gLQkJCXdtX3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcysrOwo+IC0JfQo+ ICsJdmx2X2NvbXB1dGVfZmlmbyhjcnRjKTsKPgo+ICAgCWlmICh3bV9zdGF0ZS0+bnVtX2FjdGl2 ZV9wbGFuZXMgIT0gMSkKPiAgIAkJd21fc3RhdGUtPmN4c3IgPSBmYWxzZTsKPiBAQCAtMTMxNSw2 ICsxMzc0LDk2IEBAIHN0YXRpYyB2b2lkIF92bHZfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKPiAgIAl2bHZfaW52ZXJ0X3dtcyhjcnRjKTsKPiAgIH0KPgo+ICsjZGVmaW5lIFZM Vl9GSUZPKHBsYW5lLCB2YWx1ZSkgXAo+ICsJKCgodmFsdWUpIDw8IERTUEFSQl8gIyMgcGxhbmUg IyMgX1NISUZUX1ZMVikgJiBEU1BBUkJfICMjIHBsYW5lICMjIF9NQVNLX1ZMVikKPiArCj4gK3N0 YXRpYyB2b2lkIHZsdl9waXBlX3NldF9maWZvX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMp Cj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVj dCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gKwlpbnQgc3ByaXRlMF9zdGFydCA9IDAsIHNwcml0ZTFf c3RhcnQgPSAwLCBmaWZvX3NpemUgPSAwOwo+ICsKPiArCWZvcl9lYWNoX2ludGVsX3BsYW5lX29u X2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewo+ICsJCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERS TV9QTEFORV9UWVBFX0NVUlNPUikgewo+ICsJCQlXQVJOX09OKHBsYW5lLT53bS5maWZvX3NpemUg IT0gNjMpOwo+ICsJCQljb250aW51ZTsKPiArCQl9Cj4gKwo+ICsJCWlmIChwbGFuZS0+YmFzZS50 eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpCj4gKwkJCXNwcml0ZTBfc3RhcnQgPSBwbGFu ZS0+d20uZmlmb19zaXplOwo+ICsJCWVsc2UgaWYgKHBsYW5lLT5wbGFuZSA9PSAwKQo+ICsJCQlz cHJpdGUxX3N0YXJ0ID0gc3ByaXRlMF9zdGFydCArIHBsYW5lLT53bS5maWZvX3NpemU7Cj4gKwkJ ZWxzZQo+ICsJCQlmaWZvX3NpemUgPSBzcHJpdGUxX3N0YXJ0ICsgcGxhbmUtPndtLmZpZm9fc2l6 ZTsKPiArCX0KPiArCj4gKwlXQVJOX09OKGZpZm9fc2l6ZSAhPSA1MTIgLSAxKTsKPiArCj4gKwlE Uk1fREVCVUdfS01TKCJQaXBlICVjIEZJRk8gc3BsaXQgJWQgLyAlZCAvICVkXG4iLAo+ICsJCSAg ICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSwgc3ByaXRlMF9zdGFydCwKPiArCQkgICAgICBzcHJp dGUxX3N0YXJ0LCBmaWZvX3NpemUpOwo+ICsKPiArCXN3aXRjaCAoY3J0Yy0+cGlwZSkgewo+ICsJ CXVpbnQzMl90IGRzcGFyYiwgZHNwYXJiMiwgZHNwYXJiMzsKPiArCWNhc2UgUElQRV9BOgo+ICsJ CWRzcGFyYiA9IEk5MTVfUkVBRChEU1BBUkIpOwo+ICsJCWRzcGFyYjIgPSBJOTE1X1JFQUQoRFNQ QVJCMik7Cj4gKwo+ICsJCWRzcGFyYiAmPSB+KFZMVl9GSUZPKFNQUklURUEsIDB4ZmYpIHwKPiAr CQkJICAgIFZMVl9GSUZPKFNQUklURUIsIDB4ZmYpKTsKPiArCQlkc3BhcmIgfD0gKFZMVl9GSUZP KFNQUklURUEsIHNwcml0ZTBfc3RhcnQpIHwKPiArCQkJICAgVkxWX0ZJRk8oU1BSSVRFQiwgc3By aXRlMV9zdGFydCkpOwo+ICsKPiArCQlkc3BhcmIyICY9IH4oVkxWX0ZJRk8oU1BSSVRFQV9ISSwg MHgxKSB8Cj4gKwkJCSAgICAgVkxWX0ZJRk8oU1BSSVRFQl9ISSwgMHgxKSk7Cj4gKwkJZHNwYXJi MiB8PSAoVkxWX0ZJRk8oU1BSSVRFQV9ISSwgc3ByaXRlMF9zdGFydCA+PiA4KSB8Cj4gKwkJCSAg IFZMVl9GSUZPKFNQUklURUJfSEksIHNwcml0ZTFfc3RhcnQgPj4gOCkpOwo+ICsKPiArCQlJOTE1 X1dSSVRFKERTUEFSQiwgZHNwYXJiKTsKPiArCQlJOTE1X1dSSVRFKERTUEFSQjIsIGRzcGFyYjIp Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBQSVBFX0I6Cj4gKwkJZHNwYXJiID0gSTkxNV9SRUFEKERT UEFSQik7Cj4gKwkJZHNwYXJiMiA9IEk5MTVfUkVBRChEU1BBUkIyKTsKPiArCj4gKwkJZHNwYXJi ICY9IH4oVkxWX0ZJRk8oU1BSSVRFQywgMHhmZikgfAo+ICsJCQkgICAgVkxWX0ZJRk8oU1BSSVRF RCwgMHhmZikpOwo+ICsJCWRzcGFyYiB8PSAoVkxWX0ZJRk8oU1BSSVRFQywgc3ByaXRlMF9zdGFy dCkgfAo+ICsJCQkgICBWTFZfRklGTyhTUFJJVEVELCBzcHJpdGUxX3N0YXJ0KSk7Cj4gKwo+ICsJ CWRzcGFyYjIgJj0gfihWTFZfRklGTyhTUFJJVEVDX0hJLCAweGZmKSB8Cj4gKwkJCSAgICAgVkxW X0ZJRk8oU1BSSVRFRF9ISSwgMHhmZikpOwo+ICsJCWRzcGFyYjIgfD0gKFZMVl9GSUZPKFNQUklU RUNfSEksIHNwcml0ZTBfc3RhcnQgPj4gOCkgfAo+ICsJCQkgICBWTFZfRklGTyhTUFJJVEVEX0hJ LCBzcHJpdGUxX3N0YXJ0ID4+IDgpKTsKPiArCj4gKwkJSTkxNV9XUklURShEU1BBUkIsIGRzcGFy Yik7Cj4gKwkJSTkxNV9XUklURShEU1BBUkIyLCBkc3BhcmIyKTsKPiArCQlicmVhazsKPiArCWNh c2UgUElQRV9DOgo+ICsJCWRzcGFyYjMgPSBJOTE1X1JFQUQoRFNQQVJCMyk7Cj4gKwkJZHNwYXJi MiA9IEk5MTVfUkVBRChEU1BBUkIyKTsKPiArCj4gKwkJZHNwYXJiMyAmPSB+KFZMVl9GSUZPKFNQ UklURUUsIDB4ZmYpIHwKPiArCQkJICAgICBWTFZfRklGTyhTUFJJVEVGLCAweGZmKSk7Cj4gKwkJ ZHNwYXJiMyB8PSAoVkxWX0ZJRk8oU1BSSVRFRSwgc3ByaXRlMF9zdGFydCkgfAo+ICsJCQkgICAg VkxWX0ZJRk8oU1BSSVRFRiwgc3ByaXRlMV9zdGFydCkpOwo+ICsKPiArCQlkc3BhcmIyICY9IH4o VkxWX0ZJRk8oU1BSSVRFRV9ISSwgMHhmZikgfAo+ICsJCQkgICAgIFZMVl9GSUZPKFNQUklURUZf SEksIDB4ZmYpKTsKPiArCQlkc3BhcmIyIHw9IChWTFZfRklGTyhTUFJJVEVFX0hJLCBzcHJpdGUw X3N0YXJ0ID4+IDgpIHwKPiArCQkJICAgVkxWX0ZJRk8oU1BSSVRFRl9ISSwgc3ByaXRlMV9zdGFy dCA+PiA4KSk7Cj4gKwo+ICsJCUk5MTVfV1JJVEUoRFNQQVJCMywgZHNwYXJiMyk7Cj4gKwkJSTkx NV9XUklURShEU1BBUkIyLCBkc3BhcmIyKTsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJ YnJlYWs7Cj4gKwl9Cj4gK30KPiArCj4gKyN1bmRlZiBWTFZfRklGTwo+ICsKPiAgIHN0YXRpYyB2 b2lkIHZsdl9tZXJnZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJIHN0cnVjdCB2 bHZfd21fdmFsdWVzICp3bSkKPiAgIHsKPiBAQCAtMTM3Miw4ICsxNTIxLDExIEBAIHN0YXRpYyB2 b2lkIHZsdl91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAgCV92bHZfY29tcHV0 ZV93bShpbnRlbF9jcnRjKTsKPiAgIAl2bHZfbWVyZ2Vfd20oZGV2LCAmd20pOwo+Cj4gLQlpZiAo bWVtY21wKCZkZXZfcHJpdi0+d20udmx2LCAmd20sIHNpemVvZih3bSkpID09IDApCj4gKwlpZiAo bWVtY21wKCZkZXZfcHJpdi0+d20udmx2LCAmd20sIHNpemVvZih3bSkpID09IDApIHsKPiArCQkv KiBGSVhNRSBzaG91bGQgYmUgcGFydCBvZiBjcnRjIGF0b21pYyBjb21taXQgKi8KPiArCQl2bHZf cGlwZV9zZXRfZmlmb19zaXplKGludGVsX2NydGMpOwo+ICAgCQlyZXR1cm47Cj4gKwl9Cj4KPiAg IAlpZiAod20ubGV2ZWwgPCBWTFZfV01fTEVWRUxfRERSX0RWRlMgJiYKPiAgIAkgICAgZGV2X3By aXYtPndtLnZsdi5sZXZlbCA+PSBWTFZfV01fTEVWRUxfRERSX0RWRlMpCj4gQEAgLTEzODgsNiAr MTU0MCw5IEBAIHN0YXRpYyB2b2lkIHZsdl91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRj KQo+ICAgCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBwaXBlKTsKPiAgIAl9Cj4KPiArCS8q IEZJWE1FIHNob3VsZCBiZSBwYXJ0IG9mIGNydGMgYXRvbWljIGNvbW1pdCAqLwo+ICsJdmx2X3Bp cGVfc2V0X2ZpZm9fc2l6ZShpbnRlbF9jcnRjKTsKPiArCj4gICAJdmx2X3dyaXRlX3dtX3ZhbHVl cyhpbnRlbF9jcnRjLCAmd20pOwo+Cj4gICAJRFJNX0RFQlVHX0tNUygiU2V0dGluZyBGSUZPIHdh dGVybWFya3MgLSAlYzogcGxhbmU9JWQsIGN1cnNvcj0lZCwgIgo+CgpSZXZpZXdlZC1ieTogQ2xp bnQgVGF5bG9yIDxDbGludG9uLkEuVGF5bG9yQGludGVsLmNvbT4KVGVzdGVkLWJ5OiBDbGludCBU YXlsb3IgPENsaW50b24uQS5UYXlsb3JAaW50ZWwuY29tPgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK