From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH 3/3] drm/i915: Enable polling when we don't have hpd Date: Mon, 20 Jun 2016 15:09:19 +0200 Message-ID: <20160620130919.GE23520@phenom.ffwll.local> References: <1466200705-9405-1-git-send-email-cpaul@redhat.com> <1466200705-9405-4-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1466200705-9405-4-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lyude Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, stable@vger.kernel.org, "open list:INTEL DRM DRIVERS excluding Poulsbo, Moorestow..., linux-kernel@vger.kernel.org open list" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMTcsIDIwMTYgYXQgMDU6NTg6MjRQTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Cj4g VW5mb3J0dW5hdGVseSwgdGhlcmUncyB0d28gc2l0dWF0aW9ucyB3aGVyZSB3ZSBsb3NlIGhwZCBy aWdodCBub3c6Cj4gLSBSdW50aW1lIHN1c3BlbmQKPiAtIFdoZW4gd2UndmUgc2h1dCBvZmYgYWxs IG9mIHRoZSBwb3dlciB3ZWxscyBvbiBWYWxsZXl2aWV3L0NoZXJyeXZpZXcKPiAKPiBXaGlsZSBp dCB3b3VsZCBiZSBuaWNlIGlmIHRoaXMgZGlkbid0IGNhdXNlIGlzc3VlcywgdGhpcyBoYXMgdGhl Cj4gYWJpbGl0eSB0byBnZXQgdXMgaW4gc29tZSBhd2t3YXJkIHN0YXRlcyB3aGVyZSBhIHVzZXIg d29uJ3QgYmUgYWJsZSB0bwo+IGdldCB0aGVpciBkaXNwbGF5IHRvIHR1cm4gb24uIEZvciBpbnN0 YW5jZTsgaWYgd2UgYm9vdCBhIFZhbGxleXZpZXcKPiBzeXN0ZW0gd2l0aG91dCBhbnkgbW9uaXRv cnMgY29ubmVjdGVkLCBpdCB3b24ndCBuZWVkIGFueSBvZiBpdCdzIHBvd2VyCj4gd2VsbHMgYW5k IHRodXMgc2h1dCB0aGVtIG9mZi4gU2luY2UgdGhpcyBjYXVzZXMgdXMgdG8gbG9zZSBIUEQsIHRo aXMKPiBtZWFucyB0aGF0IHVubGVzcyB0aGUgdXNlciBrbm93cyBob3cgdG8gc3NoIGludG8gdGhl aXIgbWFjaGluZSBhbmQgZG8gYQo+IG1hbnVhbCByZXByb2JlIGZvciBtb25pdG9ycywgbm9uZSBv ZiB0aGUgbW9uaXRvcnMgdGhleSBjb25uZWN0IGFmdGVyCj4gYm9vdGluZyB3aWxsIGFjdHVhbGx5 IHdvcmsuCj4gCj4gRXZlbnR1YWxseSB3ZSBzaG91bGQgY29tZSB1cCB3aXRoIGEgYmV0dGVyIGZp eCB0aGVuIGhhdmluZyB0byBlbmFibGUKPiBwb2xsaW5nIGZvciB0aGlzLCBzaW5jZSB0aGlzIG1h a2VzIHJwbSBhIGxvdCBsZXNzIHVzZWZ1bCwgYnV0IGZvciBub3cKPiB0aGUgaW5mcmFzdHJ1Y3R1 cmUgaW4gaTkxNSBqdXN0IGlzbid0IHRoZXJlIHlldCB0byBnZXQgaHBkIGluIHRoZXNlCj4gc2l0 dWF0aW9ucy4KPiAKPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+IENjOiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSA8Y3BhdWxA cmVkaGF0LmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAg ICAgIHwgIDcgKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAg fCAgMyArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgfCAgMiAr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYyAgICB8IDY5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMgfCAgMyArKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IGYzMTNi NGQuLmE1OTM4ODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtMTU3NCw2ICsx NTc0LDkgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAq ZGV2aWNlKQo+ICAKPiAgCWFzc2VydF9mb3JjZXdha2VzX2luYWN0aXZlKGRldl9wcml2KTsKPiAg Cj4gKwlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8ICFJU19DSEVSUllWSUVXKGRldl9w cml2KSkKPiArCQlpbnRlbF9ocGRfcG9sbF9lbmFibGUoZGV2X3ByaXYsIHRydWUpOwo+ICsKPiAg CURSTV9ERUJVR19LTVMoIkRldmljZSBzdXNwZW5kZWRcbiIpOwo+ICAJcmV0dXJuIDA7Cj4gIH0K PiBAQCAtMTYyOSw4ICsxNjMyLDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9yZXN1bWUo c3RydWN0IGRldmljZSAqZGV2aWNlKQo+ICAJICogcG93ZXIgd2VsbCwgc28gaHBkIGlzIHJlaW5p dGlhbGl6ZWQgZnJvbSB0aGVyZS4gRm9yCj4gIAkgKiBldmVyeW9uZSBlbHNlIGRvIGl0IGhlcmUu Cj4gIAkgKi8KPiAtCWlmICghSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYgIUlTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKQo+ICsJaWYgKCFJU19WQUxMRVlWSUVXKGRldl9wcml2KSAmJiAhSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQlpbnRlbF9ocGRfaW5pdChkZXZfcHJpdik7Cj4gKwkJ aW50ZWxfaHBkX3BvbGxfZW5hYmxlKGRldl9wcml2LCBmYWxzZSk7Cj4gKwl9Cj4gIAo+ICAJaW50 ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShkZXYpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiBpbmRleCA3YzMzNGU5Li4zMDYyZDU1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g QEAgLTI4MSw2ICsyODEsOSBAQCBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKPiAgCXUzMiBzaG9ydF9w b3J0X21hc2s7Cj4gIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZGlnX3BvcnRfd29yazsKPiAgCj4gKwlz dHJ1Y3Qgd29ya19zdHJ1Y3QgcG9sbF9lbmFibGVfd29yazsKPiArCWJvb2wgcG9sbF9lbmFibGVk Owo+ICsKPiAgCS8qCj4gIAkgKiBpZiB3ZSBnZXQgYSBIUEQgaXJxIGZyb20gRFAgYW5kIGEgSFBE IGlycSBmcm9tIG5vbi1EUAo+ICAJICogdGhlIG5vbi1EUCBIUEQgY291bGQgYmxvY2sgdGhlIHdv cmtxdWV1ZSBvbiBhIG1vZGUgY29uZmlnCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRl eCBmZGVjNDVkLi44MGNkNjI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAt MTM0OCw2ICsxMzQ4LDggQEAgdm9pZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiAgCj4gIC8qIGludGVsX2R2by5jICovCj4gIHZvaWQgaW50ZWxfZHZvX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7Cj4gKy8qIGludGVsX2hvdHBsdWcuYyAqLwo+ICt2b2lkIGlu dGVsX2hwZF9wb2xsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJv b2wgZW5hYmxlZCk7Cj4gIAo+ICAKPiAgLyogbGVnYWN5IGZiZGV2IGVtdWxhdGlvbiBpbiBpbnRl bF9mYmRldi5jICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hv dHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+IGluZGV4IGJl ZTY3MzAuLjBmYzJmZTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aG90cGx1Zy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4g QEAgLTQ2NSwyMCArNDY1LDI1IEBAIHZvaWQgaW50ZWxfaHBkX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCWRldl9wcml2LT5ob3RwbHVnLnN0YXRzW2ldLmNvdW50 ID0gMDsKPiAgCQlkZXZfcHJpdi0+aG90cGx1Zy5zdGF0c1tpXS5zdGF0ZSA9IEhQRF9FTkFCTEVE Owo+ICAJfQo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZtb2RlX2NvbmZpZy0+ Y29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRl bF9jb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAtCQljb25uZWN0 b3ItPnBvbGxlZCA9IGludGVsX2Nvbm5lY3Rvci0+cG9sbGVkOwo+ICsJaWYgKCFtb2RlX2NvbmZp Zy0+cG9sbF9ydW5uaW5nKSB7CgpXaHkgZG8gd2UgbmVlZCB0aGlzIG5ldyBjb25kaXRpb24/Cgo+ ICsJCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmbW9kZV9jb25maWctPmNvbm5lY3Rv cl9saXN0LCBoZWFkKSB7Cj4gKwkJCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5l Y3RvciA9Cj4gKwkJCQl0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiArCQkJY29ubmVj dG9yLT5wb2xsZWQgPSBpbnRlbF9jb25uZWN0b3ItPnBvbGxlZDsKPiAgCj4gLQkJLyogTVNUIGhh cyBhIGR5bmFtaWMgaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyIGFuZCBpdCdzIHJlcHJvYmluZwo+ IC0JCSAqIGlzIGFsbCBoYW5kbGVkIGJ5IHRoZSBNU1QgaGVscGVycy4gKi8KPiAtCQlpZiAoaW50 ZWxfY29ubmVjdG9yLT5tc3RfcG9ydCkKPiAtCQkJY29udGludWU7Cj4gKwkJCS8qIE1TVCBoYXMg YSBkeW5hbWljIGludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlciBhbmQgaXQncwo+ICsJCQkgKiByZXBy b2JpbmcgaXMgYWxsIGhhbmRsZWQgYnkgdGhlIE1TVCBoZWxwZXJzLiAqLwo+ICsJCQlpZiAoaW50 ZWxfY29ubmVjdG9yLT5tc3RfcG9ydCkKPiArCQkJCWNvbnRpbnVlOwo+ICAKPiAtCQlpZiAoIWNv bm5lY3Rvci0+cG9sbGVkICYmIEk5MTVfSEFTX0hPVFBMVUcoZGV2KSAmJgo+IC0JCSAgICBpbnRl bF9jb25uZWN0b3ItPmVuY29kZXItPmhwZF9waW4gPiBIUERfTk9ORSkKPiAtCQkJY29ubmVjdG9y LT5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ICsJCQlpZiAoIWNvbm5lY3Rvci0+ cG9sbGVkICYmIEk5MTVfSEFTX0hPVFBMVUcoZGV2KSAmJgo+ICsJCQkgICAgaW50ZWxfY29ubmVj dG9yLT5lbmNvZGVyLT5ocGRfcGluID4gSFBEX05PTkUpCj4gKwkJCQljb25uZWN0b3ItPnBvbGxl ZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7Cj4gKwkJfQo+ICAJfQo+ICAKPiArCWludGVsX2hw ZF9wb2xsX2VuYWJsZShkZXZfcHJpdiwgZmFsc2UpOwo+ICsKPiAgCS8qCj4gIAkgKiBJbnRlcnJ1 cHQgc2V0dXAgaXMgYWxyZWFkeSBndWFyYW50ZWVkIHRvIGJlIHNpbmdsZS10aHJlYWRlZCwgdGhp cyBpcwo+ICAJICoganVzdCB0byBtYWtlIHRoZSBhc3NlcnRfc3Bpbl9sb2NrZWQgY2hlY2tzIGhh cHB5Lgo+IEBAIC00ODksMTAgKzQ5NCw1NCBAQCB2b2lkIGludGVsX2hwZF9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYt PmlycV9sb2NrKTsKPiAgfQo+ICAKPiArdm9pZCBpOTE1X2hwZF9wb2xsX2luaXRfd29yayhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9Cj4gKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLAo+ ICsJCQkgICAgIGhvdHBsdWcucG9sbF9lbmFibGVfd29yayk7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVs X2Nvbm5lY3RvcjsKPiArCj4gKwkvKiBEb24ndCBsZXQgdGhpcyBydW4gYmVmb3JlIHdlIHNldHVw IHBvbGxpbmcgaW4gdGhlIGRyaXZlciAqLwo+ICsJaWYgKCFkZXYtPm1vZGVfY29uZmlnLnBvbGxf ZW5hYmxlZCkKPiArCQlyZXR1cm47CgpTYW1lIGhlcmUsIHdoeSB0aGlzIGNoZWNrPyBycG0vcG93 ZXItd2VsbCBoYW5kbGluZyBvbmx5IHN0YXJ0cyBvbmNlIHRoZQpkcml2ZXIgaXMgZnVsbHkgbG9h ZGVkLiBXZSB1bmNvbmRpdGlvbmFsbHkgaG9sZCBhIHJlZiB0byBldmVyeSBwb3dlciB3ZWxsCndo aWxlIGxvYWRpbmcgdGhlIGRyaXZlciwgdG8gYXZvaWQgc3VjaCBjb21wbGljYXRpb25zLgoKPiAr Cj4gKwltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKCk9uZSBpc3N1ZSBWaWxs ZSBub3RpY2VkOiBXaGVuIHdlIGdvIGZyb20gcG9sbGluZy0+aHBkIHdlIG1pZ2h0IGhhdmUgbWlz c2VkCmEgaG90cGx1ZyBiZXR3ZWVuIHRoZSBsYXN0IHBvbGwgcm91bmQgYW5kIGJlZm9yZSBocGQg d2FzIHdvcmtpbmcgYWdhaW4uIFNvCmZvciB0aGF0IGNhc2UgSSB0aGluayB3ZSBuZWVkIHRvIG1h bnVhbGx5IHByb2JlIGV2ZXJ5dGhpbmcgb25jZSBtb3JlLgpDYWxsaW5nIGRybV9oZWxwZXJfaHBk X2lycV9ldmVudCgpIHNob3VsZCBnZXQgdGhlIGpvYiBkb25lLgoKPiArCj4gKwlmb3JfZWFjaF9p bnRlbF9jb25uZWN0b3IoZGV2LCBpbnRlbF9jb25uZWN0b3IpIHsKPiArCQlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPiArCj4gKwkJaWYg KGRldl9wcml2LT5ob3RwbHVnLnBvbGxfZW5hYmxlZCkgewo+ICsJCQljb25uZWN0b3ItPnBvbGxl ZCA9IERSTV9DT05ORUNUT1JfUE9MTF9DT05ORUNUIHwKPiArCQkJCURSTV9DT05ORUNUT1JfUE9M TF9ESVNDT05ORUNUOwo+ICsKPiArCQl9IGVsc2UgaWYgKCFpbnRlbF9jb25uZWN0b3ItPnBvbGxl ZCAmJiBJOTE1X0hBU19IT1RQTFVHKGRldikgJiYKPiArCQkJICAgaW50ZWxfY29ubmVjdG9yLT5l bmNvZGVyLT5ocGRfcGluID4gSFBEX05PTkUpIHsKPiArCQkJY29ubmVjdG9yLT5wb2xsZWQgPSBE Uk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZiAoZGV2X3ByaXYt PmhvdHBsdWcucG9sbF9lbmFibGVkKQo+ICsJCWRybV9rbXNfaGVscGVyX3BvbGxfZW5hYmxlX2xv Y2tlZChkZXYpOwo+ICsKPiArCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7 Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfaHBkX3BvbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgYm9vbCBlbmFibGVkKQo+ICt7Cj4gKwlkZXZfcHJpdi0+aG90cGx1 Zy5wb2xsX2VuYWJsZWQgPSBlbmFibGVkOwo+ICsKPiArCS8qCj4gKwkgKiBXZSBtaWdodCBhbHJl YWR5IGJlIGhvbGRpbmcgZGV2LT5tb2RlX2NvbmZpZy5tdXRleCwgc28gZG8gdGhpcyBpbiBhCj4g KwkgKiBzZXBlcmF0ZSB3b3JrZXIKPiArCSAqLwo+ICsJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYt PmhvdHBsdWcucG9sbF9lbmFibGVfd29yayk7CgpOZWVkIGEgY2FuY2VsX3dvcmtfc3luYyBpbiBz eXN0ZW0gc3VzcGVuZCBhbmQgZHJpdmVyIHVubG9hZCBwYXRocyB0byBtYWtlCnN1cmUgd2UgZG9u J3QgbGVhayB0aGlzIG9uZSBoZXJlIGFjY2lkZW50bGx5LgoKQmVzaWRlIHRoZXNlIG5pdHBpY2tz IGxvb2tzIGdvb2QsIGFuZCBpZiBpdCB3b3JrcyB3b3VsZCBiZSBzdXJwcmlzaW5nbHkKc2ltcGxl IGluZGVlZC4gSSdkIHNheSBzbyBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LCBhbmQgd2Ugc2hvdWxk IHNvYWsgdGhpcwpmb3IgYXQgbGVhc3QgMSB3ZWVrIGluIC1uZXh0IGJlZm9yZSBjaGVycnktcGlj a2luZyBvdmVyIHRvIC1maXhlcy4gSXQgaXMKcmF0aGVyIHJpc2t5LCBhbmQgdGhlIGJ1ZyBoYXMg YmVlbiBhcm91bmQgc2luY2UgYSBsb25nIHRpbWUgc28gbm90IHdvcnRoCml0IG11Y2ggdG8gcnVz aCB0b28gbXVjaC4KCkFsc28sIEknbGwgYmUgZ29pbmcgb24gdmFjYXRpb24uIFdpdGggdGhlIGFi b3ZlIGlzc3VlcyBhZGRyZXNzcywKQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAZmZ3bGwuY2g+IG9uIHRoZSBlbnRpcmUgc2VyaWVzLgotRGFuaWVsCgo+ICt9Cj4gKwo+ICB2 b2lkIGludGVsX2hwZF9pbml0X3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICB7Cj4gIAlJTklUX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yaywgaTkx NV9ob3RwbHVnX3dvcmtfZnVuYyk7Cj4gIAlJTklUX1dPUksoJmRldl9wcml2LT5ob3RwbHVnLmRp Z19wb3J0X3dvcmssIGk5MTVfZGlncG9ydF93b3JrX2Z1bmMpOwo+ICsJSU5JVF9XT1JLKCZkZXZf cHJpdi0+aG90cGx1Zy5wb2xsX2VuYWJsZV93b3JrLCBpOTE1X2hwZF9wb2xsX2luaXRfd29yayk7 Cj4gIAlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYtPmhvdHBsdWcucmVlbmFibGVfd29yaywK PiAgCQkJICBpbnRlbF9ocGRfaXJxX3N0b3JtX3JlZW5hYmxlX3dvcmspOwo+ICB9Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IDRhM2ZkM2EuLjAwOTBlODgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gQEAgLTk4Niw2 ICs5ODYsNyBAQCBzdGF0aWMgdm9pZCB2bHZfZGlzcGxheV9wb3dlcl93ZWxsX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJaWYgKGRldl9wcml2LT5wb3dlcl9kb21h aW5zLmluaXRpYWxpemluZykKPiAgCQlyZXR1cm47Cj4gIAo+ICsJaW50ZWxfaHBkX3BvbGxfZW5h YmxlKGRldl9wcml2LCBmYWxzZSk7Cj4gIAlpbnRlbF9ocGRfaW5pdChkZXZfcHJpdik7Cj4gIAo+ ICAJLyogUmUtZW5hYmxlIHRoZSBBRFBBLCBpZiB3ZSBoYXZlIG9uZSAqLwo+IEBAIC0xMDA3LDYg KzEwMDgsOCBAQCBzdGF0aWMgdm9pZCB2bHZfZGlzcGxheV9wb3dlcl93ZWxsX2RlaW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlzeW5jaHJvbml6ZV9pcnEoZGV2X3By aXYtPmRldi0+aXJxKTsKPiAgCj4gIAl2bHZfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0KGRldl9wcml2 KTsKPiArCj4gKwlpbnRlbF9ocGRfcG9sbF9lbmFibGUoZGV2X3ByaXYsIHRydWUpOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdm9pZCB2bHZfZGlzcGxheV9wb3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLS0gCj4gMi41LjUKPiAKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxp c3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVy ClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5j aApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK