From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v5] vga_switcheroo: Add helper for deferred probing Date: Mon, 23 May 2016 10:58:38 +0300 Message-ID: <87wpmldx3l.fsf@intel.com> References: <2a9191ad5a42e797928bebc46cb2ad2ff73e7b95.1463837809.git.lukas@wunner.de> <20160523072314.GV27098@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160523072314.GV27098@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Lukas Wunner Cc: nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMyBNYXkgMjAxNiwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPiBPbiBTYXQsIE1heSAyMSwgMjAxNiBhdCAwMzo1OToxNlBNICswMTAwLCBMdWthcyBXdW5u ZXIgd3JvdGU6Cj4+IFNvIGZhciB3ZSd2ZSBnb3Qgb25lIGNvbmRpdGlvbiB3aGVuIERSTSBkcml2 ZXJzIG5lZWQgdG8gZGVmZXIgcHJvYmluZwo+PiBvbiBhIGR1YWwgR1BVIHN5c3RlbSBhbmQgaXQn cyBjb2RlZCBzZXBhcmF0ZWx5IGludG8gZWFjaCBvZiB0aGUgcmVsZXZhbnQKPj4gZHJpdmVycy4g QXMgc3VnZ2VzdGVkIGJ5IERhbmllbCBWZXR0ZXIsIGRlZHVwbGljYXRlIHRoYXQgY29kZSBpbiB0 aGUKPj4gZHJpdmVycyBhbmQgbW92ZSBpdCB0byBhIG5ldyB2Z2Ffc3dpdGNoZXJvbyBoZWxwZXIu IFRoaXMgeWllbGRzIGJldHRlcgo+PiBlbmNhcHN1bGF0aW9uIG9mIGNvbmNlcHRzIGFuZCBsZXRz IHVzIGFkZCBmdXJ0aGVyIGNoZWNrcyBpbiBhIGNlbnRyYWwKPj4gcGxhY2UuIChUaGUgZXhpc3Rp bmcgY2hlY2sgcGVydGFpbnMgdG8gcHJlLXJldGluYSBNYWNCb29rIFByb3MgYW5kIGFuCj4+IGFk ZGl0aW9uYWwgY2hlY2sgaXMgZXhwZWN0ZWQgdG8gYmUgbmVlZGVkIGZvciByZXRpbmFzLikKPj4g Cj4+IHYyOiBUaGlzIGhlbHBlciBjb3VsZCBldmVudHVhbGx5IGJlIHVzZWQgYnkgYXVkaW8gY2xp ZW50cyBhcyB3ZWxsLAo+PiAgICAgc28gcmVwaHJhc2Uga2VybmVsZG9jIHRvIHJlZmVyIHRvICJj bGllbnQiIGluc3RlYWQgb2YgIkdQVSIKPj4gICAgIGFuZCBtb3ZlIHRoZSBzaW5nbGUgZXhpc3Rp bmcgY2hlY2sgaW4gYW4gaWYgYmxvY2sgc3BlY2lmaWMKPj4gICAgIHRvIFBDSV9DTEFTU19ESVNQ TEFZX1ZHQSBkZXZpY2VzLiBNb3ZlIGRvY3VtZW50YXRpb24gb24KPj4gICAgIHRoYXQgY2hlY2sg ZnJvbSBrZXJuZWxkb2MgdG8gYSBjb21tZW50LiAoRGFuaWVsIFZldHRlcikKPj4gCj4+IHYzOiBN YW5kYXRlIGluIGtlcm5lbGRvYyB0aGF0IHJlZ2lzdHJhdGlvbiBvZiBjbGllbnQgc2hhbGwgb25s eQo+PiAgICAgaGFwcGVuIGFmdGVyIGNhbGxpbmcgdGhpcyBoZWxwZXIuIChEYW5pZWwgVmV0dGVy KQo+PiAKPj4gdjQ6IFJlYmFzZSBvbiA0MTJjOGY3ZGUwMTEgKCJkcm0vcmFkZW9uOiBSZXR1cm4g LUVQUk9CRV9ERUZFUiB3aGVuCj4+ICAgICBhbWRrZmQgbm90IGxvYWRlZCIpCj4+IAo+PiB2NTog U29tZSBPcHRpbXVzIEdQVXMgdXNlIFBDSV9DTEFTU19ESVNQTEFZXzNELCBtYWtlIHN1cmUgdGhv c2UgYXJlCj4+ICAgICBtYXRjaGVkIGFzIHdlbGwuIChFbWlsIFZlbGlrb3YpCj4+IAo+PiBDYzog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPj4gQ2M6IEJlbiBTa2VnZ3Mg PGJza2VnZ3NAcmVkaGF0LmNvbT4KPj4gQ2M6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNo ZXJAYW1kLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIu ZGU+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICB8IDEw ICstLS0tLS0tLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMgfCAx MCArLS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYyAgIHwg MTAgKy0tLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvdmdhL3ZnYV9zd2l0Y2hlcm9vLmMgICAgICB8 IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPj4gIGluY2x1ZGUvbGludXgv dmdhX3N3aXRjaGVyb28uaCAgICAgICAgfCAgMiArKwo+PiAgNSBmaWxlcyBjaGFuZ2VkLCAzNyBp bnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu Ywo+PiBpbmRleCBkMzdjMGE2Li4yMGQ1ODk4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKPj4gQEAgLTM1LDExICszNSw5IEBACj4+ICAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgo+PiAg I2luY2x1ZGUgImludGVsX2Rydi5oIgo+PiAgCj4+IC0jaW5jbHVkZSA8bGludXgvYXBwbGUtZ211 eC5oPgo+PiAgI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KPj4gICNpbmNsdWRlIDxsaW51eC9t b2R1bGUuaD4KPj4gICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+Cj4+IC0jaW5jbHVkZSA8 bGludXgvdmdhYXJiLmg+Cj4+ICAjaW5jbHVkZSA8bGludXgvdmdhX3N3aXRjaGVyb28uaD4KPj4g ICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4+ICAKPj4gQEAgLTEwMjUsMTMgKzEw MjMsNyBAQCBzdGF0aWMgaW50IGk5MTVfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBj b25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQo+PiAgCWlmIChQQ0lfRlVOQyhwZGV2LT5k ZXZmbikpCj4+ICAJCXJldHVybiAtRU5PREVWOwo+PiAgCj4+IC0JLyoKPj4gLQkgKiBhcHBsZS1n bXV4IGlzIG5lZWRlZCBvbiBkdWFsIEdQVSBNYWNCb29rIFBybwo+PiAtCSAqIHRvIHByb2JlIHRo ZSBwYW5lbCBpZiB3ZSdyZSB0aGUgaW5hY3RpdmUgR1BVLgo+PiAtCSAqLwo+PiAtCWlmIChJU19F TkFCTEVEKENPTkZJR19WR0FfQVJCKSAmJiBJU19FTkFCTEVEKENPTkZJR19WR0FfU1dJVENIRVJP TykgJiYKPj4gLQkgICAgYXBwbGVfZ211eF9wcmVzZW50KCkgJiYgcGRldiAhPSB2Z2FfZGVmYXVs dF9kZXZpY2UoKSAmJgo+PiAtCSAgICAhdmdhX3N3aXRjaGVyb29faGFuZGxlcl9mbGFncygpKQo+ PiArCWlmICh2Z2Ffc3dpdGNoZXJvb19jbGllbnRfcHJvYmVfZGVmZXIocGRldikpCj4+ICAJCXJl dHVybiAtRVBST0JFX0RFRkVSOwo+PiAgCj4+ICAJcmV0dXJuIGRybV9nZXRfcGNpX2RldihwZGV2 LCBlbnQsICZkcml2ZXIpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9kcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKPj4g aW5kZXggMTFmOGRkOS4uNWM0ZDRkZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9kcm0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2RybS5jCj4+IEBAIC0yMiwxMyArMjIsMTEgQEAKPj4gICAqIEF1dGhvcnM6IEJlbiBTa2Vn Z3MKPj4gICAqLwo+PiAgCj4+IC0jaW5jbHVkZSA8bGludXgvYXBwbGUtZ211eC5oPgo+PiAgI2lu Y2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KPj4gICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+PiAg I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+PiAgI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgo+PiAg I2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KPj4gLSNpbmNsdWRlIDxsaW51eC92Z2FhcmIu aD4KPj4gICNpbmNsdWRlIDxsaW51eC92Z2Ffc3dpdGNoZXJvby5oPgo+PiAgCj4+ICAjaW5jbHVk ZSAiZHJtUC5oIgo+PiBAQCAtMzE1LDEzICszMTMsNyBAQCBzdGF0aWMgaW50IG5vdXZlYXVfZHJt X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+PiAgCWJvb2wgYm9vdCA9IGZhbHNlOwo+PiAg CWludCByZXQ7Cj4+ICAKPj4gLQkvKgo+PiAtCSAqIGFwcGxlLWdtdXggaXMgbmVlZGVkIG9uIGR1 YWwgR1BVIE1hY0Jvb2sgUHJvCj4+IC0JICogdG8gcHJvYmUgdGhlIHBhbmVsIGlmIHdlJ3JlIHRo ZSBpbmFjdGl2ZSBHUFUuCj4+IC0JICovCj4+IC0JaWYgKElTX0VOQUJMRUQoQ09ORklHX1ZHQV9B UkIpICYmIElTX0VOQUJMRUQoQ09ORklHX1ZHQV9TV0lUQ0hFUk9PKSAmJgo+PiAtCSAgICBhcHBs ZV9nbXV4X3ByZXNlbnQoKSAmJiBwZGV2ICE9IHZnYV9kZWZhdWx0X2RldmljZSgpICYmCj4+IC0J ICAgICF2Z2Ffc3dpdGNoZXJvb19oYW5kbGVyX2ZsYWdzKCkpCj4+ICsJaWYgKHZnYV9zd2l0Y2hl cm9vX2NsaWVudF9wcm9iZV9kZWZlcihwZGV2KSkKPj4gIAkJcmV0dXJuIC1FUFJPQkVfREVGRVI7 Cj4+ICAKPj4gIAkvKiByZW1vdmUgY29uZmxpY3RpbmcgZHJpdmVycyAodmVzYWZiLCBlZmlmYiBl dGMpICovCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCj4+IGluZGV4IGI1NWFhNzQu LmE0NTVkYzcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Ry di5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCj4+IEBAIC0z NCwxMSArMzQsOSBAQAo+PiAgI2luY2x1ZGUgInJhZGVvbl9kcnYuaCIKPj4gIAo+PiAgI2luY2x1 ZGUgPGRybS9kcm1fcGNpaWRzLmg+Cj4+IC0jaW5jbHVkZSA8bGludXgvYXBwbGUtZ211eC5oPgo+ PiAgI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KPj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KPj4gICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+Cj4+IC0jaW5jbHVkZSA8bGludXgv dmdhYXJiLmg+Cj4+ICAjaW5jbHVkZSA8bGludXgvdmdhX3N3aXRjaGVyb28uaD4KPj4gICNpbmNs dWRlIDxkcm0vZHJtX2dlbS5oPgo+PiAgCj4+IEBAIC0zNDAsMTMgKzMzOCw3IEBAIHN0YXRpYyBp bnQgcmFkZW9uX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPj4gIAlpZiAocmV0ID09 IC1FUFJPQkVfREVGRVIpCj4+ICAJCXJldHVybiByZXQ7Cj4+ICAKPj4gLQkvKgo+PiAtCSAqIGFw cGxlLWdtdXggaXMgbmVlZGVkIG9uIGR1YWwgR1BVIE1hY0Jvb2sgUHJvCj4+IC0JICogdG8gcHJv YmUgdGhlIHBhbmVsIGlmIHdlJ3JlIHRoZSBpbmFjdGl2ZSBHUFUuCj4+IC0JICovCj4+IC0JaWYg KElTX0VOQUJMRUQoQ09ORklHX1ZHQV9BUkIpICYmIElTX0VOQUJMRUQoQ09ORklHX1ZHQV9TV0lU Q0hFUk9PKSAmJgo+PiAtCSAgICBhcHBsZV9nbXV4X3ByZXNlbnQoKSAmJiBwZGV2ICE9IHZnYV9k ZWZhdWx0X2RldmljZSgpICYmCj4+IC0JICAgICF2Z2Ffc3dpdGNoZXJvb19oYW5kbGVyX2ZsYWdz KCkpCj4+ICsJaWYgKHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9wcm9iZV9kZWZlcihwZGV2KSkKPj4g IAkJcmV0dXJuIC1FUFJPQkVfREVGRVI7Cj4+ICAKPj4gIAkvKiBHZXQgcmlkIG9mIHRoaW5ncyBs aWtlIG9mZmIgKi8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L3ZnYS92Z2Ffc3dpdGNoZXJv by5jIGIvZHJpdmVycy9ncHUvdmdhL3ZnYV9zd2l0Y2hlcm9vLmMKPj4gaW5kZXggY2JkN2M5OC4u MmRmMjE2YjMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L3ZnYS92Z2Ffc3dpdGNoZXJvby5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L3ZnYS92Z2Ffc3dpdGNoZXJvby5jCj4+IEBAIC0zMCw2ICsz MCw3IEBACj4+ICAKPj4gICNkZWZpbmUgcHJfZm10KGZtdCkgInZnYV9zd2l0Y2hlcm9vOiAiIGZt dAo+PiAgCj4+ICsjaW5jbHVkZSA8bGludXgvYXBwbGUtZ211eC5oPgo+PiAgI2luY2x1ZGUgPGxp bnV4L2NvbnNvbGUuaD4KPj4gICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Cj4+ICAjaW5jbHVk ZSA8bGludXgvZmIuaD4KPj4gQEAgLTMwOCw3ICszMDksOCBAQCBzdGF0aWMgaW50IHJlZ2lzdGVy X2NsaWVudChzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPj4gICAqCj4+ICAgKiBSZWdpc3RlciB2Z2Eg Y2xpZW50IChHUFUpLiBFbmFibGUgdmdhX3N3aXRjaGVyb28gaWYgYW5vdGhlciBHUFUgYW5kIGEK Pj4gICAqIGhhbmRsZXIgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQuIFRoZSBwb3dlciBzdGF0ZSBv ZiB0aGUgY2xpZW50IGlzIGFzc3VtZWQKPj4gLSAqIHRvIGJlIE9OLgo+PiArICogdG8gYmUgT04u IEJlZm9yZWhhbmQsIHZnYV9zd2l0Y2hlcm9vX2NsaWVudF9wcm9iZV9kZWZlcigpIHNoYWxsIGJl IGNhbGxlZAo+PiArICogdG8gZW5zdXJlIHRoYXQgYWxsIHByZXJlcXVpc2l0ZXMgYXJlIG1ldC4K Pgo+ICJzaGFsbCIgb3IgIm11c3QiPyBJdCB0aG91Z2h0IGl0J3MgdGhlIGxhdHRlciAuLi4KClRo ZSBtZWFuaW5nIG9mIG11c3QuLi4gUkZDIDIxMTkgc2F5cyBNVVNUIGlzIGVxdWl2YWxlbnQgdG8g UkVRVUlSRUQgb3IKU0hBTEwsIGFuZCBJIHRoaW5rIGZvciBvdXIgcHVycG9zZXMgdGhhdCBTSE9V TEQgbWF0dGVyIG1vcmUgdGhhbgpkaWN0aW9uYXJpZXMuIDspCgpKLgoKCj4gLURhbmllbAo+PiAg ICoKPj4gICAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAtRU5PTUVNIG9uIG1lbW9yeSBhbGxvY2F0 aW9uIGVycm9yLgo+PiAgICovCj4+IEBAIC0zMjksNyArMzMxLDggQEAgRVhQT1JUX1NZTUJPTCh2 Z2Ffc3dpdGNoZXJvb19yZWdpc3Rlcl9jbGllbnQpOwo+PiAgICogQGlkOiBjbGllbnQgaWRlbnRp Zmllcgo+PiAgICoKPj4gICAqIFJlZ2lzdGVyIGF1ZGlvIGNsaWVudCAoYXVkaW8gZGV2aWNlIG9u IGEgR1BVKS4gVGhlIHBvd2VyIHN0YXRlIG9mIHRoZQo+PiAtICogY2xpZW50IGlzIGFzc3VtZWQg dG8gYmUgT04uCj4+ICsgKiBjbGllbnQgaXMgYXNzdW1lZCB0byBiZSBPTi4gQmVmb3JlaGFuZCwg dmdhX3N3aXRjaGVyb29fY2xpZW50X3Byb2JlX2RlZmVyKCkKPj4gKyAqIHNoYWxsIGJlIGNhbGxl ZCB0byBlbnN1cmUgdGhhdCBhbGwgcHJlcmVxdWlzaXRlcyBhcmUgbWV0Lgo+PiAgICoKPj4gICAq IFJldHVybjogMCBvbiBzdWNjZXNzLCAtRU5PTUVNIG9uIG1lbW9yeSBhbGxvY2F0aW9uIGVycm9y Lgo+PiAgICovCj4+IEBAIC0zNzYsNiArMzc5LDMzIEBAIGZpbmRfYWN0aXZlX2NsaWVudChzdHJ1 Y3QgbGlzdF9oZWFkICpoZWFkKQo+PiAgfQo+PiAgCj4+ICAvKioKPj4gKyAqIHZnYV9zd2l0Y2hl cm9vX2NsaWVudF9wcm9iZV9kZWZlcigpIC0gd2hldGhlciB0byBkZWZlciBwcm9iaW5nIGEgZ2l2 ZW4gY2xpZW50Cj4+ICsgKiBAcGRldjogY2xpZW50IHBjaSBkZXZpY2UKPj4gKyAqCj4+ICsgKiBE ZXRlcm1pbmUgd2hldGhlciBhbnkgcHJlcmVxdWlzaXRlcyBhcmUgbm90IGZ1bGZpbGxlZCB0byBw cm9iZSBhIGdpdmVuCj4+ICsgKiBjbGllbnQuIERyaXZlcnMgc2hhbGwgaW52b2tlIHRoaXMgZWFy bHkgb24gaW4gdGhlaXIgLT5wcm9iZSBjYWxsYmFjawo+PiArICogYW5kIHJldHVybiAlLUVQUk9C RV9ERUZFUiBpZiBpdCBldmFsdWF0ZXMgdG8gJXRydWUuIFRob3Ugc2hhbHQgbm90Cj4+ICsgKiBy ZWdpc3RlciB0aGUgY2xpZW50IGVyZSB0aG91IGhhc3QgY2FsbGVkIHRoaXMuCj4KPiBJIHN0aWxs IHRoaW5rIHdlIHNob3VsZCBqdXN0IHNtYXNoIHRoaXMgaW50byB0aGUgcmVsZXZhbnQgX3JlZ2lz dGVyCj4gZnVuY3Rpb25zKCksIGZvciBzYWZldHkuIEJ1dCBJIGZvcmdvdCB0aGUgYWN0dWFsIHJl c3VsdCBvZiB0aGUgcHJldmlvdXMKPiBkaXNjdXNzaW9uIC4uLgo+Cj4gSW1vIGlmIHlvdSBjYW4g cmVwbGFjZSBhIGJpdCBvZiBkb2N1bWVudGF0aW9uIHdpdGggY29kZSB0byBlbmZvcmNlIGFuCj4g aW52YXJpYW50LCBhbHdheXMgZG8gaXQuCj4gLURhbmllbAo+Cj4+ICsgKgo+PiArICogUmV0dXJu OiAldHJ1ZSBpZiBwcm9iaW5nIHNob3VsZCBiZSBkZWZlcnJlZCwgb3RoZXJ3aXNlICVmYWxzZS4K Pj4gKyAqLwo+PiArYm9vbCB2Z2Ffc3dpdGNoZXJvb19jbGllbnRfcHJvYmVfZGVmZXIoc3RydWN0 IHBjaV9kZXYgKnBkZXYpCj4+ICt7Cj4+ICsJaWYgKChwZGV2LT5jbGFzcyA+PiAxNikgPT0gUENJ X0JBU0VfQ0xBU1NfRElTUExBWSkgewo+PiArCQkvKgo+PiArCQkgKiBhcHBsZS1nbXV4IGlzIG5l ZWRlZCBvbiBwcmUtcmV0aW5hIE1hY0Jvb2sgUHJvCj4+ICsJCSAqIHRvIHByb2JlIHRoZSBwYW5l bCBpZiBwZGV2IGlzIHRoZSBpbmFjdGl2ZSBHUFUuCj4+ICsJCSAqLwo+PiArCQlpZiAoYXBwbGVf Z211eF9wcmVzZW50KCkgJiYgcGRldiAhPSB2Z2FfZGVmYXVsdF9kZXZpY2UoKSAmJgo+PiArCQkg ICAgIXZnYXNyX3ByaXYuaGFuZGxlcl9mbGFncykKPj4gKwkJCXJldHVybiB0cnVlOwo+PiArCX0K Pj4gKwo+PiArCXJldHVybiBmYWxzZTsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0wodmdhX3N3aXRj aGVyb29fY2xpZW50X3Byb2JlX2RlZmVyKTsKPj4gKwo+PiArLyoqCj4+ICAgKiB2Z2Ffc3dpdGNo ZXJvb19nZXRfY2xpZW50X3N0YXRlKCkgLSBvYnRhaW4gcG93ZXIgc3RhdGUgb2YgYSBnaXZlbiBj bGllbnQKPj4gICAqIEBwZGV2OiBjbGllbnQgcGNpIGRldmljZQo+PiAgICoKPj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvdmdhX3N3aXRjaGVyb28uaCBiL2luY2x1ZGUvbGludXgvdmdhX3N3 aXRjaGVyb28uaAo+PiBpbmRleCBiMzlhNWYzLi45NjBiZWRiIDEwMDY0NAo+PiAtLS0gYS9pbmNs dWRlL2xpbnV4L3ZnYV9zd2l0Y2hlcm9vLmgKPj4gKysrIGIvaW5jbHVkZS9saW51eC92Z2Ffc3dp dGNoZXJvby5oCj4+IEBAIC0xNjUsNiArMTY1LDcgQEAgaW50IHZnYV9zd2l0Y2hlcm9vX3VubG9j a19kZGMoc3RydWN0IHBjaV9kZXYgKnBkZXYpOwo+PiAgCj4+ICBpbnQgdmdhX3N3aXRjaGVyb29f cHJvY2Vzc19kZWxheWVkX3N3aXRjaCh2b2lkKTsKPj4gIAo+PiArYm9vbCB2Z2Ffc3dpdGNoZXJv b19jbGllbnRfcHJvYmVfZGVmZXIoc3RydWN0IHBjaV9kZXYgKnBkZXYpOwo+PiAgZW51bSB2Z2Ff c3dpdGNoZXJvb19zdGF0ZSB2Z2Ffc3dpdGNoZXJvb19nZXRfY2xpZW50X3N0YXRlKHN0cnVjdCBw Y2lfZGV2ICpkZXYpOwo+PiAgCj4+ICB2b2lkIHZnYV9zd2l0Y2hlcm9vX3NldF9keW5hbWljX3N3 aXRjaChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZW51bSB2Z2Ffc3dpdGNoZXJvb19zdGF0ZSBkeW5h bWljKTsKPj4gQEAgLTE4OCw2ICsxODksNyBAQCBzdGF0aWMgaW5saW5lIGVudW0gdmdhX3N3aXRj aGVyb29faGFuZGxlcl9mbGFnc190IHZnYV9zd2l0Y2hlcm9vX2hhbmRsZXJfZmxhZ3Modgo+PiAg c3RhdGljIGlubGluZSBpbnQgdmdhX3N3aXRjaGVyb29fbG9ja19kZGMoc3RydWN0IHBjaV9kZXYg KnBkZXYpIHsgcmV0dXJuIC1FTk9ERVY7IH0KPj4gIHN0YXRpYyBpbmxpbmUgaW50IHZnYV9zd2l0 Y2hlcm9vX3VubG9ja19kZGMoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgcmV0dXJuIC1FTk9ERVY7 IH0KPj4gIHN0YXRpYyBpbmxpbmUgaW50IHZnYV9zd2l0Y2hlcm9vX3Byb2Nlc3NfZGVsYXllZF9z d2l0Y2godm9pZCkgeyByZXR1cm4gMDsgfQo+PiArc3RhdGljIGlubGluZSBib29sIHZnYV9zd2l0 Y2hlcm9vX2NsaWVudF9wcm9iZV9kZWZlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikgeyByZXR1cm4g ZmFsc2U7IH0KPj4gIHN0YXRpYyBpbmxpbmUgZW51bSB2Z2Ffc3dpdGNoZXJvb19zdGF0ZSB2Z2Ff c3dpdGNoZXJvb19nZXRfY2xpZW50X3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgcmV0dXJu IFZHQV9TV0lUQ0hFUk9PX09OOyB9Cj4+ICAKPj4gIHN0YXRpYyBpbmxpbmUgdm9pZCB2Z2Ffc3dp dGNoZXJvb19zZXRfZHluYW1pY19zd2l0Y2goc3RydWN0IHBjaV9kZXYgKnBkZXYsIGVudW0gdmdh X3N3aXRjaGVyb29fc3RhdGUgZHluYW1pYykge30KPj4gLS0gCj4+IDIuOC4xCj4+IAo+PiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZngg bWFpbGluZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==