From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukas Wunner Subject: Re: [PATCH] drm/i915: Retry port as HDMI if dp_is_edp turns out to be false Date: Sun, 9 Aug 2015 16:09:23 +0200 Message-ID: <20150809140923.GA4871@wunner.de> References: <1439122373-16425-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.hostsharing.net (mailout1.hostsharing.net [83.223.95.204]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2DA706E759 for ; Sun, 9 Aug 2015 07:09:41 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1439122373-16425-1-git-send-email-chris@chris-wilson.co.uk> 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 SGksCgpPbiBTdW4sIEF1ZyAwOSwgMjAxNSBhdCAwMToxMjo1M1BNICswMTAwLCBDaHJpcyBXaWxz b24gd3JvdGU6Cj4gV2UgZm9sbG93IHRoZSBWQlQgYXMgdG8gd2hldGhlciBhIERESSBwb3J0IGlz IHVzZWQgZm9yIGVEUCBhbmQgaWYgc28sIGRvCj4gbm90IGF0dGFjaCBhIEhETUkgZW5jb2RlciB0 byBpdC4gSG93ZXZlciB0aGVyZSBhcmUgbWFjaGluZXMgZm9yIHdoaWNoCj4gdGhlIFZCVCBlRFAg ZmxhZyBpcyBhIGxpZSAoc2hvY2tpbmchKSBhbmQgd2UgZmFpbCB0byBkZXRlY3QgYSBlRFAgbGlu ay4KPiBGdXJ0aGVybW9yZSwgb24gdGhvc2UgbWFjaGluZXMgdGhlIEhETUkgaXMgY29ubmVjdGVk IHRvIHRoYXQgRERJIHBvcnQKPiBidXQgd2UgaWdub3JlIGl0Lgo+IAo+IElmIHdlIHJlb3JkZXIg b3VyIHBvcnQgaW5pdGlhbGlzYXRpb24gdG8gdHJ5IHRoZSBlRFAgc2V0dXAgZmlyc3QgYW5kCj4g aWYgdGhhdCBmYWlscyB3ZSBjYW4gdHJlYXQgaXQgYXMgYSBub3JtYWwgRFAgcG9ydCBhbG9uZyB3 aXRoIGEgSERNSQo+IG91dHB1dC4gVG8gYWNjb21wbGlzaCB0aGlzLCB3ZSBoYXZlIHRvIGRlbGF5 IHJlZ2lzdGVyaW5nIHRoZSBEUAo+IGNvbm5lY3Rvci9lbmNvZGVyIHVudGlsIGFmdGVyIHdlIGVz dGFibGlzaCBpdHMgZmluYWwgdHlwZS4KPiAKPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVk ZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgzMzEKClRoZSBleGlzdGluZyBjb2RlIHNlZW1z IHZlcnkgY2FyZWZ1bGx5IGNyYWZ0ZWQsIHRha2luZyBpbnRvIGFjY291bnQKdGhlIGRpZmZlcmVu Y2VzIGJldHdlZW0gdmFyaW91cyBHUFUgZ2VuZXJhdGlvbnMgZXRjLCBzaHVmZmxpbmcgdGhhdAph cm91bmQgbWlnaHQgcmlzayBicmVha2FnZS4gRldJVywgSSdtIHdvbmRlcmluZyBpZiBqdXN0IGFk ZGluZyBhIHF1aXJrCmZvciB0aGlzIHNpbmdsZSBEZWxsIHdvcmtzdGF0aW9uIG1pZ2h0IGJlIGp1 c3RpZmllZD8KCkJlc3QgcmVnYXJkcywKCkx1a2FzCgoKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogSmVzc2UgQmFybmVzIDxqYmFy bmVzQHZpcnR1b3VzZ2Vlay5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyB8ICAyNyArKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jICAgICAgfCAxMjcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICA2ICstCj4gIDMgZmlsZXMgY2hh bmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDBiY2QxYjFhYmE0Zi4uYWFiOGRmZDFmOGE1IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMzk0MSw3ICsxMzk0 MSw2IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+IC0JYm9vbCBk cGRfaXNfZWRwID0gZmFsc2U7Cj4gIAo+ICAJaW50ZWxfbHZkc19pbml0KGRldik7Cj4gIAo+IEBA IC0xMzk4MywzMSArMTM5ODIsMzMgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQlpbnRlbF9kZGlfaW5pdChkZXYsIFBPUlRfRCk7 Cj4gIAl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewo+ICAJCWludCBmb3VuZDsKPiAt CQlkcGRfaXNfZWRwID0gaW50ZWxfZHBfaXNfZWRwKGRldiwgUE9SVF9EKTsKPiAgCj4gIAkJaWYg KGhhc19lZHBfYShkZXYpKQo+ICAJCQlpbnRlbF9kcF9pbml0KGRldiwgRFBfQSwgUE9SVF9BKTsK PiAgCj4gKwkJZm91bmQgPSAwOwo+ICsJCS8qIFBDSCBTRFZPQiBtdWx0aXBsZXggd2l0aCBIRE1J QiAqLwo+ICAJCWlmIChJOTE1X1JFQUQoUENIX0hETUlCKSAmIFNEVk9fREVURUNURUQpIHsKPiAt CQkJLyogUENIIFNEVk9CIG11bHRpcGxleCB3aXRoIEhETUlCICovCj4gIAkJCWZvdW5kID0gaW50 ZWxfc2R2b19pbml0KGRldiwgUENIX1NEVk9CLCB0cnVlKTsKPiAgCQkJaWYgKCFmb3VuZCkKPiAg CQkJCWludGVsX2hkbWlfaW5pdChkZXYsIFBDSF9IRE1JQiwgUE9SVF9CKTsKPiAtCQkJaWYgKCFm b3VuZCAmJiAoSTkxNV9SRUFEKFBDSF9EUF9CKSAmIERQX0RFVEVDVEVEKSkKPiAtCQkJCWludGVs X2RwX2luaXQoZGV2LCBQQ0hfRFBfQiwgUE9SVF9CKTsKPiAgCQl9Cj4gKwkJaWYgKCFmb3VuZCAm JiBJOTE1X1JFQUQoUENIX0RQX0IpICYgRFBfREVURUNURUQpCj4gKwkJCWludGVsX2RwX2luaXQo ZGV2LCBQQ0hfRFBfQiwgUE9SVF9CKTsKPiAgCj4gLQkJaWYgKEk5MTVfUkVBRChQQ0hfSERNSUMp ICYgU0RWT19ERVRFQ1RFRCkKPiAtCQkJaW50ZWxfaGRtaV9pbml0KGRldiwgUENIX0hETUlDLCBQ T1JUX0MpOwo+IC0KPiAtCQlpZiAoIWRwZF9pc19lZHAgJiYgSTkxNV9SRUFEKFBDSF9IRE1JRCkg JiBTRFZPX0RFVEVDVEVEKQo+IC0JCQlpbnRlbF9oZG1pX2luaXQoZGV2LCBQQ0hfSERNSUQsIFBP UlRfRCk7Cj4gLQo+ICsJCWZvdW5kID0gMDsKPiAgCQlpZiAoSTkxNV9SRUFEKFBDSF9EUF9DKSAm IERQX0RFVEVDVEVEKQo+IC0JCQlpbnRlbF9kcF9pbml0KGRldiwgUENIX0RQX0MsIFBPUlRfQyk7 Cj4gKwkJCWZvdW5kID0gaW50ZWxfZHBfaW5pdChkZXYsIFBDSF9EUF9DLCBQT1JUX0MpOwo+ICsJ CWlmIChmb3VuZCAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQICYmCj4gKwkJICAgIEk5MTVfUkVB RChQQ0hfSERNSUMpICYgU0RWT19ERVRFQ1RFRCkKPiArCQkJaW50ZWxfaGRtaV9pbml0KGRldiwg UENIX0hETUlDLCBQT1JUX0MpOwo+ICAKPiArCQlmb3VuZCA9IDA7Cj4gIAkJaWYgKEk5MTVfUkVB RChQQ0hfRFBfRCkgJiBEUF9ERVRFQ1RFRCkKPiAtCQkJaW50ZWxfZHBfaW5pdChkZXYsIFBDSF9E UF9ELCBQT1JUX0QpOwo+ICsJCQlmb3VuZCA9IGludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBfRCwg UE9SVF9EKTsKPiArCQlpZiAoZm91bmQgIT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCAmJgo+ICsJ CSAgICBJOTE1X1JFQUQoUENIX0hETUlEKSAmIFNEVk9fREVURUNURUQpCj4gKwkJCWludGVsX2hk bWlfaW5pdChkZXYsIFBDSF9IRE1JRCwgUE9SVF9EKTsKPiAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZ VklFVyhkZXYpKSB7Cj4gIAkJLyoKPiAgCQkgKiBUaGUgRFBfREVURUNURUQgYml0IGlzIHRoZSBs YXRjaGVkIHN0YXRlIG9mIHRoZSBEREMKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCAx ZTY0YThjMWU3Y2IuLjhhZGY1MDBmMzk4OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ IEBAIC0xMDMxLDE0ICsxMDMxLDEzIEBAIGludGVsX2RwX2F1eF90cmFuc2ZlcihzdHJ1Y3QgZHJt X2RwX2F1eCAqYXV4LCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykKPiAgCXJldHVybiByZXQ7 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkCj4gK3N0YXRpYyBpbnQKPiAgaW50ZWxfZHBfYXV4X2lu aXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9k aWdfcG9ydC0+cG9ydDsKPiAgCWNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwo+IC0JaW50IHJldDsK PiAgCj4gIAlzd2l0Y2ggKHBvcnQpIHsKPiAgCWNhc2UgUE9SVF9BOgo+IEBAIC0xMDgwLDIwICsx MDc5LDcgQEAgaW50ZWxfZHBfYXV4X2luaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJRFJNX0RFQlVHX0tNUygicmVnaXN0 ZXJpbmcgJXMgYnVzIGZvciAlc1xuIiwgbmFtZSwKPiAgCQkgICAgICBjb25uZWN0b3ItPmJhc2Uu a2Rldi0+a29iai5uYW1lKTsKPiAgCj4gLQlyZXQgPSBkcm1fZHBfYXV4X3JlZ2lzdGVyKCZpbnRl bF9kcC0+YXV4KTsKPiAtCWlmIChyZXQgPCAwKSB7Cj4gLQkJRFJNX0VSUk9SKCJkcm1fZHBfYXV4 X3JlZ2lzdGVyKCkgZm9yICVzIGZhaWxlZCAoJWQpXG4iLAo+IC0JCQkgIG5hbWUsIHJldCk7Cj4g LQkJcmV0dXJuOwo+IC0JfQo+IC0KPiAtCXJldCA9IHN5c2ZzX2NyZWF0ZV9saW5rKCZjb25uZWN0 b3ItPmJhc2Uua2Rldi0+a29iaiwKPiAtCQkJCSZpbnRlbF9kcC0+YXV4LmRkYy5kZXYua29iaiwK PiAtCQkJCWludGVsX2RwLT5hdXguZGRjLmRldi5rb2JqLm5hbWUpOwo+IC0JaWYgKHJldCA8IDAp IHsKPiAtCQlEUk1fRVJST1IoInN5c2ZzX2NyZWF0ZV9saW5rKCkgZm9yICVzIGZhaWxlZCAoJWQp XG4iLCBuYW1lLCByZXQpOwo+IC0JCWRybV9kcF9hdXhfdW5yZWdpc3RlcigmaW50ZWxfZHAtPmF1 eCk7Cj4gLQl9Cj4gKwlyZXR1cm4gZHJtX2RwX2F1eF9yZWdpc3RlcigmaW50ZWxfZHAtPmF1eCk7 Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAgLTUwMTksNiArNTAwNSwxMCBAQCBib29sIGlu dGVsX2RwX2lzX2VkcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCkKPiAg CQlbUE9SVF9EXSA9IFBPUlRfSURQRCwKPiAgCX07Cj4gIAo+ICsJLyogZURQIG9ubHkgb24gcG9y dCBCIGFuZC9vciBDIG9uIHZsdi9jaHYgKi8KPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 KSAmJiAhKHBvcnQgPT0gUE9SVF9CIHx8IHBvcnQgPT0gUE9SVF9DKSkKPiArCQlyZXR1cm4gZmFs c2U7Cj4gKwo+ICAJaWYgKHBvcnQgPT0gUE9SVF9BKQo+ICAJCXJldHVybiB0cnVlOwo+ICAKPiBA QCAtNTY3MCw5ICs1NjYwLDYgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9y KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlzdHJ1Y3QgZWRpZCAqZWRpZDsKPiAgCWVu dW0gcGlwZSBwaXBlID0gSU5WQUxJRF9QSVBFOwo+ICAKPiAtCWlmICghaXNfZWRwKGludGVsX2Rw KSkKPiAtCQlyZXR1cm4gdHJ1ZTsKPiAtCj4gIAlwcHNfbG9jayhpbnRlbF9kcCk7Cj4gIAlpbnRl bF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKGludGVsX2RwKTsKPiAgCXBwc191bmxvY2soaW50ZWxf ZHApOwo+IEBAIC01NzYyLDcgKzU3NDksNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9j b25uZWN0b3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCXJldHVybiB0cnVlOwo+ICB9 Cj4gIAo+IC1ib29sCj4gK2ludAo+ICBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQkJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICB7Cj4gQEAgLTU3NzIsNiArNTc1OSw3IEBAIGludGVs X2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LAo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2VuY29kZXItPmJhc2UuZGV2 Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gKwlpbnQgcmV0 Owo+ICAJaW50IHR5cGU7Cj4gIAo+ICAJaW50ZWxfZHAtPnBwc19waXBlID0gSU5WQUxJRF9QSVBF Owo+IEBAIC01ODAyLDM0ICs1NzkwLDE0IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAJZWxzZQo+ICAJCXR5cGUg PSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ7Cj4gIAo+IC0JLyoKPiAtCSAqIEZvciBl RFAgd2UgYWx3YXlzIHNldCB0aGUgZW5jb2RlciB0eXBlIHRvIElOVEVMX09VVFBVVF9FRFAsIGJ1 dAo+IC0JICogZm9yIERQIHRoZSBlbmNvZGVyIHR5cGUgY2FuIGJlIHNldCBieSB0aGUgY2FsbGVy IHRvCj4gLQkgKiBJTlRFTF9PVVRQVVRfVU5LTk9XTiBmb3IgRERJLCBzbyBkb24ndCByZXdyaXRl IGl0Lgo+IC0JICovCj4gLQlpZiAodHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+IC0J CWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRURQOwo+IC0KPiAtCS8qIGVEUCBv bmx5IG9uIHBvcnQgQiBhbmQvb3IgQyBvbiB2bHYvY2h2ICovCj4gLQlpZiAoV0FSTl9PTihJU19W QUxMRVlWSUVXKGRldikgJiYgaXNfZWRwKGludGVsX2RwKSAmJgo+IC0JCSAgICBwb3J0ICE9IFBP UlRfQiAmJiBwb3J0ICE9IFBPUlRfQykpCj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAgCURSTV9E RUJVR19LTVMoIkFkZGluZyAlcyBjb25uZWN0b3Igb24gcG9ydCAlY1xuIiwKPiAgCQkJdHlwZSA9 PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQID8gImVEUCIgOiAiRFAiLAo+ICAJCQlwb3J0X25hbWUo cG9ydCkpOwo+ICAKPiAtCWRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgJmludGVs X2RwX2Nvbm5lY3Rvcl9mdW5jcywgdHlwZSk7Cj4gLQlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQo Y29ubmVjdG9yLCAmaW50ZWxfZHBfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gLQo+ICAJY29u bmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IHRydWU7Cj4gIAljb25uZWN0b3ItPmRvdWJsZXNj YW5fYWxsb3dlZCA9IDA7Cj4gIAo+IC0JSU5JVF9ERUxBWUVEX1dPUksoJmludGVsX2RwLT5wYW5l bF92ZGRfd29yaywKPiAtCQkJICBlZHBfcGFuZWxfdmRkX3dvcmspOwo+IC0KPiAtCWludGVsX2Nv bm5lY3Rvcl9hdHRhY2hfZW5jb2RlcihpbnRlbF9jb25uZWN0b3IsIGludGVsX2VuY29kZXIpOwo+ IC0JZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+ICsJSU5JVF9ERUxBWUVEX1dP UksoJmludGVsX2RwLT5wYW5lbF92ZGRfd29yaywgZWRwX3BhbmVsX3ZkZF93b3JrKTsKPiAgCj4g IAlpZiAoSEFTX0RESShkZXYpKQo+ICAJCWludGVsX2Nvbm5lY3Rvci0+Z2V0X2h3X3N0YXRlID0g aW50ZWxfZGRpX2Nvbm5lY3Rvcl9nZXRfaHdfc3RhdGU7Cj4gQEAgLTU4NTUsNyArNTgyMyw3IEBA IGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0LAo+ICAJCUJVRygpOwo+ICAJfQo+ICAKPiAtCWlmIChpc19lZHAoaW50ZWxfZHAp KSB7Cj4gKwlpZiAodHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKSB7Cj4gIAkJcHBzX2xv Y2soaW50ZWxfZHApOwo+ICAJCWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfdGltZXN0YW1wcyhp bnRlbF9kcCk7Cj4gIAkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKPiBAQCAtNTg2NSw3ICs1ODMz LDQ5IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0LAo+ICAJCXBwc191bmxvY2soaW50ZWxfZHApOwo+ICAJfQo+ICAKPiAt CWludGVsX2RwX2F1eF9pbml0KGludGVsX2RwLCBpbnRlbF9jb25uZWN0b3IpOwo+ICsJcmV0ID0g aW50ZWxfZHBfYXV4X2luaXQoaW50ZWxfZHAsIGludGVsX2Nvbm5lY3Rvcik7Cj4gKwlpZiAocmV0 IDwgMCkgewo+ICsJCURSTV9FUlJPUigicmVnaXN0ZXJpbmcgRFAtQVVYIGNoYW5uZWwgZm9yICVz IGZhaWxlZCAoJWQpXG4iLAo+ICsJCQkgIGludGVsX2RwLT5hdXgubmFtZSwgcmV0KTsKPiArCQly ZXR1cm4gMDsKPiArCX0KPiArCj4gKwlpZiAodHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQ ICYmCj4gKwkgICAgIWludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihpbnRlbF9kcCwgaW50ZWxfY29u bmVjdG9yKSkgewo+ICsJCWRybV9kcF9hdXhfdW5yZWdpc3RlcigmaW50ZWxfZHAtPmF1eCk7Cj4g KwkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpbnRlbF9kcC0+cGFuZWxfdmRkX3dvcmspOwo+ ICsJCS8qCj4gKwkJICogdmRkIG1pZ2h0IHN0aWxsIGJlIGVuYWJsZWQgZG8gdG8gdGhlIGRlbGF5 ZWQgdmRkIG9mZi4KPiArCQkgKiBNYWtlIHN1cmUgdmRkIGlzIGFjdHVhbGx5IHR1cm5lZCBvZmYg aGVyZS4KPiArCQkgKi8KPiArCQlwcHNfbG9jayhpbnRlbF9kcCk7Cj4gKwkJZWRwX3BhbmVsX3Zk ZF9vZmZfc3luYyhpbnRlbF9kcCk7Cj4gKwkJcHBzX3VubG9jayhpbnRlbF9kcCk7Cj4gKwo+ICsJ CS8qIERvd25ncmFkZSB0byBhIG5vcm1hbCBEUCBsaW5rICovCj4gKwkJdHlwZSA9IERSTV9NT0RF X0NPTk5FQ1RPUl9EaXNwbGF5UG9ydDsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogRm9yIGVEUCB3 ZSBhbHdheXMgc2V0IHRoZSBlbmNvZGVyIHR5cGUgdG8gSU5URUxfT1VUUFVUX0VEUCwgYnV0Cj4g KwkgKiBmb3IgRFAgdGhlIGVuY29kZXIgdHlwZSBjYW4gYmUgc2V0IGJ5IHRoZSBjYWxsZXIgdG8K PiArCSAqIElOVEVMX09VVFBVVF9VTktOT1dOIGZvciBEREksIHNvIGRvbid0IHJld3JpdGUgaXQu Cj4gKwkgKi8KPiArCWlmICh0eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApCj4gKwkJaW50 ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9FRFA7Cj4gKwo+ICsJZHJtX2Nvbm5lY3Rv cl9pbml0KGRldiwgY29ubmVjdG9yLCAmaW50ZWxfZHBfY29ubmVjdG9yX2Z1bmNzLCB0eXBlKTsK PiArCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZpbnRlbF9kcF9jb25uZWN0 b3JfaGVscGVyX2Z1bmNzKTsKPiArCj4gKwlpbnRlbF9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIo aW50ZWxfY29ubmVjdG9yLCBpbnRlbF9lbmNvZGVyKTsKPiArCWRybV9jb25uZWN0b3JfcmVnaXN0 ZXIoY29ubmVjdG9yKTsKPiArCj4gKwlyZXQgPSBzeXNmc19jcmVhdGVfbGluaygmY29ubmVjdG9y LT5rZGV2LT5rb2JqLAo+ICsJCQkJJmludGVsX2RwLT5hdXguZGRjLmRldi5rb2JqLAo+ICsJCQkJ aW50ZWxfZHAtPmF1eC5kZGMuZGV2LmtvYmoubmFtZSk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlE Uk1fRVJST1IoInN5c2ZzX2NyZWF0ZV9saW5rKCkgZm9yICVzIGZhaWxlZCAoJWQpXG4iLAo+ICsJ CQkgIGludGVsX2RwLT5hdXgubmFtZSwgcmV0KTsKPiAgCj4gIAkvKiBpbml0IE1TVCBvbiBwb3J0 cyB0aGF0IGNhbiBzdXBwb3J0IGl0ICovCj4gIAlpZiAoSEFTX0RQX01TVChkZXYpICYmCj4gQEAg LTU4NzMsMjMgKzU4ODMsNiBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQlpbnRlbF9kcF9tc3RfZW5jb2Rlcl9p bml0KGludGVsX2RpZ19wb3J0LAo+ICAJCQkJCSAgaW50ZWxfY29ubmVjdG9yLT5iYXNlLmJhc2Uu aWQpOwo+ICAKPiAtCWlmICghaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKGludGVsX2RwLCBpbnRl bF9jb25uZWN0b3IpKSB7Cj4gLQkJZHJtX2RwX2F1eF91bnJlZ2lzdGVyKCZpbnRlbF9kcC0+YXV4 KTsKPiAtCQlpZiAoaXNfZWRwKGludGVsX2RwKSkgewo+IC0JCQljYW5jZWxfZGVsYXllZF93b3Jr X3N5bmMoJmludGVsX2RwLT5wYW5lbF92ZGRfd29yayk7Cj4gLQkJCS8qCj4gLQkJCSAqIHZkZCBt aWdodCBzdGlsbCBiZSBlbmFibGVkIGRvIHRvIHRoZSBkZWxheWVkIHZkZCBvZmYuCj4gLQkJCSAq IE1ha2Ugc3VyZSB2ZGQgaXMgYWN0dWFsbHkgdHVybmVkIG9mZiBoZXJlLgo+IC0JCQkgKi8KPiAt CQkJcHBzX2xvY2soaW50ZWxfZHApOwo+IC0JCQllZHBfcGFuZWxfdmRkX29mZl9zeW5jKGludGVs X2RwKTsKPiAtCQkJcHBzX3VubG9jayhpbnRlbF9kcCk7Cj4gLQkJfQo+IC0JCWRybV9jb25uZWN0 b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+IC0JCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25u ZWN0b3IpOwo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gIAlpbnRlbF9kcF9hZGRfcHJv cGVydGllcyhpbnRlbF9kcCwgY29ubmVjdG9yKTsKPiAgCj4gIAkvKiBGb3IgRzRYIGRlc2t0b3Ag Y2hpcCwgUEVHX0JBTkRfR0FQX0RBVEEgMzowIG11c3QgZmlyc3QgYmUgd3JpdHRlbgo+IEBAIC01 OTAzLDEwICs1ODk2LDEwIEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAKPiAgCWk5MTVfZGVidWdmc19jb25uZWN0 b3JfYWRkKGNvbm5lY3Rvcik7Cj4gIAo+IC0JcmV0dXJuIHRydWU7Cj4gKwlyZXR1cm4gdHlwZTsK PiAgfQo+ICAKPiAtdm9pZAo+ICtpbnQKPiAgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBpbnQgb3V0cHV0X3JlZywgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTU5MTQs MTUgKzU5MDcsMTYgQEAgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQg b3V0cHV0X3JlZywgZW51bSBwb3J0IHBvcnQpCj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlcjsKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiAgCXN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcjsKPiArCWludCByZXQ7Cj4gIAo+ICAJaW50 ZWxfZGlnX3BvcnQgPSBremFsbG9jKHNpemVvZigqaW50ZWxfZGlnX3BvcnQpLCBHRlBfS0VSTkVM KTsKPiAgCWlmICghaW50ZWxfZGlnX3BvcnQpCj4gLQkJcmV0dXJuOwo+ICsJCXJldHVybiAwOwo+ ICAKPiAgCWludGVsX2Nvbm5lY3RvciA9IGludGVsX2Nvbm5lY3Rvcl9hbGxvYygpOwo+ICAJaWYg KCFpbnRlbF9jb25uZWN0b3IpIHsKPiAgCQlrZnJlZShpbnRlbF9kaWdfcG9ydCk7Cj4gLQkJcmV0 dXJuOwo+ICsJCXJldHVybiAwOwo+ICAJfQo+ICAKPiAgCWludGVsX2VuY29kZXIgPSAmaW50ZWxf ZGlnX3BvcnQtPmJhc2U7Cj4gQEAgLTU5NzAsMTEgKzU5NjQsMTQgQEAgaW50ZWxfZHBfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb3V0cHV0X3JlZywgZW51bSBwb3J0IHBvcnQpCj4g IAlpbnRlbF9kaWdfcG9ydC0+aHBkX3B1bHNlID0gaW50ZWxfZHBfaHBkX3B1bHNlOwo+ICAJZGV2 X3ByaXYtPmhvdHBsdWcuaXJxX3BvcnRbcG9ydF0gPSBpbnRlbF9kaWdfcG9ydDsKPiAgCj4gLQlp ZiAoIWludGVsX2RwX2luaXRfY29ubmVjdG9yKGludGVsX2RpZ19wb3J0LCBpbnRlbF9jb25uZWN0 b3IpKSB7Cj4gKwlyZXQgPSBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihpbnRlbF9kaWdfcG9ydCwg aW50ZWxfY29ubmVjdG9yKTsKPiArCWlmIChyZXQgPT0gMCkgewo+ICAJCWRybV9lbmNvZGVyX2Ns ZWFudXAoZW5jb2Rlcik7Cj4gIAkJa2ZyZWUoaW50ZWxfZGlnX3BvcnQpOwo+ICAJCWtmcmVlKGlu dGVsX2Nvbm5lY3Rvcik7Cj4gIAl9Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAgdm9p ZCBpbnRlbF9kcF9tc3Rfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMThmZTZkOGI3ZDkzLi5hZGUxY2U4NTM1ODMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xMTc5LDkgKzExNzksOSBAQCB2b2lkIGlu dGVsX2Nzcl91Y29kZV9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIGFzc2Vy dF9jc3JfbG9hZGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIAo+ICAv KiBpbnRlbF9kcC5jICovCj4gLXZvaWQgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgb3V0cHV0X3JlZywgZW51bSBwb3J0IHBvcnQpOwo+IC1ib29sIGludGVsX2RwX2lu aXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ IC0JCQkgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4gK2lu dCBpbnRlbF9kcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBvdXRwdXRfcmVnLCBl bnVtIHBvcnQgcG9ydCk7Cj4gK2ludCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiArCQkJICAgIHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4gIHZvaWQgaW50ZWxfZHBfc3RhcnRfbGlua190 cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiAgdm9pZCBpbnRlbF9kcF9jb21wbGV0 ZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICB2b2lkIGludGVsX2Rw X3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiAtLSAKPiAyLjUu MAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==