From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Pitoiset Subject: Re: [PATCH 7/8] acpi: Add support for Apple Gmux _DMS Date: Tue, 26 May 2015 10:13:57 +0200 Message-ID: <55642B45.3020509@gmail.com> References: <1432592573-13743-1-git-send-email-pierre.morrow@free.fr> <1432592573-13743-7-git-send-email-pierre.morrow@free.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1432592573-13743-7-git-send-email-pierre.morrow-GANU6spQydw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Pierre Moreau , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org CgpPbiAwNS8yNi8yMDE1IDEyOjIyIEFNLCBQaWVycmUgTW9yZWF1IHdyb3RlOgo+IFNpZ25lZC1v ZmYtYnk6IFBpZXJyZSBNb3JlYXUgPHBpZXJyZS5tb3Jyb3dAZnJlZS5mcj4KPiAtLS0KPiAgIGRy bS9ub3V2ZWF1L25vdXZlYXVfYWNwaS5jIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQo+ICAgZHJtL25vdXZlYXUvbm91dmVhdV9hY3BpLmggfCAgMiAr Kwo+ICAgZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYyAgfCAgNiArKysrLS0KPiAgIGRybS9ub3V2 ZWF1L25vdXZlYXVfdmdhLmMgIHwgMTAgKysrKystLS0tCj4gICA0IGZpbGVzIGNoYW5nZWQsIDYz IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZl YXUvbm91dmVhdV9hY3BpLmMgYi9kcm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYwo+IGluZGV4IDEw NGQyOTEuLjNkNmExZWEgMTAwNjQ0Cj4gLS0tIGEvZHJtL25vdXZlYXUvbm91dmVhdV9hY3BpLmMK PiArKysgYi9kcm0vbm91dmVhdS9ub3V2ZWF1X2FjcGkuYwo+IEBAIC0yOSw2ICsyOSwxMCBAQAo+ ICAgCj4gICAjZGVmaW5lIE5PVVZFQVVfRFNNX09QVElNVVNfU0VUX1BPV0VSRE9XTiAoTk9VVkVB VV9EU01fT1BUSU1VU19QT1dFUkRPV05fUFMzIHwgTk9VVkVBVV9EU01fT1BUSU1VU19GTEFHU19D SEFOR0VEKQo+ICAgCj4gKyNkZWZpbmUgTk9VVkVBVV9EU01fR01VWF9WMV9DQVBTICgzIDw8IDYp Cj4gKwo+ICsjZGVmaW5lIE5PVVZFQVVfRFNNX0dNVVhfVjJfQ0FQUyAoMSA8PCAxKQo+ICsKPiAg IC8qIHJlc3VsdCBvZiB0aGUgb3B0aW11cyBjYXBzIGZ1bmN0aW9uICovCj4gICAjZGVmaW5lIE9Q VElNVVNfRU5BQkxFRCAoMSA8PCAwKQo+ICAgI2RlZmluZSBPUFRJTVVTX1NUQVRVU19NQVNLICgz IDw8IDMpCj4gQEAgLTQ1LDYgKzQ5LDcgQEAKPiAgIHN0YXRpYyBzdHJ1Y3Qgbm91dmVhdV9kc21f cHJpdiB7Cj4gICAJYm9vbCBtdXhfZGV0ZWN0ZWQ7Cj4gICAJYm9vbCBvcHRpbXVzX2RldGVjdGVk Owo+ICsJYm9vbCBnbXV4X2RldGVjdGVkOwo+ICAgCWFjcGlfaGFuZGxlIGRoYW5kbGU7Cj4gICAJ YWNwaV9oYW5kbGUgcm9tX2hhbmRsZTsKPiAgIH0gbm91dmVhdV9kc21fcHJpdjsKPiBAQCAtNTcs OCArNjIsMTMgQEAgYm9vbCBub3V2ZWF1X2hhc19tdXgodm9pZCkgewo+ICAgCXJldHVybiBub3V2 ZWF1X2RzbV9wcml2Lm11eF9kZXRlY3RlZDsKPiAgIH0KPiAgIAo+ICtib29sIG5vdXZlYXVfaGFz X2dtdXgodm9pZCkgewo+ICsJcmV0dXJuIG5vdXZlYXVfZHNtX3ByaXYuZ211eF9kZXRlY3RlZDsK PiArfQo+ICsKPiAgICNkZWZpbmUgTk9VVkVBVV9EU01fSEFTX01VWCAweDEKPiAgICNkZWZpbmUg Tk9VVkVBVV9EU01fSEFTX09QVCAweDIKPiArI2RlZmluZSBOT1VWRUFVX0RTTV9IQVNfR01VWCAw eDQKPiAgIAo+ICAgI2lmZGVmIENPTkZJR19WR0FfU1dJVENIRVJPTwo+ICAgc3RhdGljIGNvbnN0 IHVpbnQzMl90IG5vdXZlYXVfbXV4X2RzbV9yaWQgPSAweDAwMDAwMTAyOwo+IEBAIC03Myw2ICs4 MywxOCBAQCBzdGF0aWMgY29uc3QgY2hhciBub3V2ZWF1X29wX2RzbV9tdWlkW10gPSB7Cj4gICAJ MHhBNywgMHgyQiwgMHg2MCwgMHg0MiwgMHhBNiwgMHhCNSwgMHhCRSwgMHhFMCwKPiAgIH07Cj4g ICAKPiArc3RhdGljIGNvbnN0IHVpbnQzMl90IG5vdXZlYXVfZ211eF92MV9kc21fcmlkID0gMHgw MDAwMTAxOwo+ICtzdGF0aWMgY29uc3QgY2hhciBub3V2ZWF1X2dtdXhfdjFfZHNtX211aWRbXSA9 IHsKPiArCTB4QTYsIDB4NjksIDB4ODYsIDB4OTksIDB4RTksIDB4OEIsIDB4RkIsIDB4NDksCj4g KwkweEJELCAweERCLCAweDUxLCAweEExLCAweEVGLCAweEUxLCAweDlDLCAweDNELAo+ICt9Owo+ ICsKPiArc3RhdGljIGNvbnN0IHVpbnQzMl90IG5vdXZlYXVfZ211eF92Ml9kc21fcmlkID0gMHgw MDAwMDAxOwo+ICtzdGF0aWMgY29uc3QgY2hhciBub3V2ZWF1X2dtdXhfdjJfZHNtX211aWRbXSA9 IHsKPiArCTB4QzYsIDB4QjcsIDB4QjUsIDB4QTAsIDB4MTgsIDB4MTMsIDB4MUMsIDB4NDQsCj4g KwkweEIwLCAweEM5LCAweEZFLCAweDY5LCAweDVFLCAweEFGLCAweDk0LCAweDlCLAo+ICt9Owo+ ICsKPiAgIHN0YXRpYyBpbnQgbm91dmVhdV9ldmFsdWF0ZV9vcHRpbXVzX2RzbShhY3BpX2hhbmRs ZSBoYW5kbGUsIGludCBmdW5jLCBpbnQgYXJnLCB1aW50MzJfdCAqcmVzdWx0KQo+ICAgewo+ICAg CWludCBpOwo+IEBAIC0xNjEsNiArMTgzLDE3IEBAIHN0YXRpYyBpbnQgbm91dmVhdV9ldmFsdWF0 ZV9tdXhfZHNtKGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50IGZ1bmMsIGludCBhcmcpCj4gICAJcmV0 dXJuIHJldDsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50IG5vdXZlYXVfY2hlY2tfZ211eF9kc20o YWNwaV9oYW5kbGUgaGFuZGxlKQo+ICt7Cj4gKwlib29sIGhhc192MSA9IGFjcGlfY2hlY2tfZHNt KGhhbmRsZSwgbm91dmVhdV9nbXV4X3YxX2RzbV9tdWlkLAo+ICsJCQkgICAgICAgICAgICAgbm91 dmVhdV9nbXV4X3YxX2RzbV9yaWQsCj4gKwkJCSAgICAgICAgICAgICBOT1VWRUFVX0RTTV9HTVVY X1YxX0NBUFMpOwo+ICsJYm9vbCBoYXNfdjIgPSBhY3BpX2NoZWNrX2RzbShoYW5kbGUsIG5vdXZl YXVfZ211eF92Ml9kc21fbXVpZCwKPiArCQkJICAgICAgICAgICAgIG5vdXZlYXVfZ211eF92Ml9k c21fcmlkLAo+ICsJCQkgICAgICAgICAgICAgTk9VVkVBVV9EU01fR01VWF9WMl9DQVBTKTsKPiAr CXJldHVybiBoYXNfdjEgfHwgaGFzX3YyOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGludCBub3V2ZWF1 X2RzbV9zd2l0Y2hfbXV4KGFjcGlfaGFuZGxlIGhhbmRsZSwgaW50IG11eF9pZCkKPiAgIHsKPiAg IAlteG1fd21pX2NhbGxfbXhteChtdXhfaWQgPT0gTk9VVkVBVV9EU01fTVVYX0xFRF9TVEFNSU5B ID8gTVhNX01YRFNfQURBUFRFUl9JR0QgOiBNWE1fTVhEU19BREFQVEVSXzApOwo+IEBAIC0yMzgs NiArMjcxLDkgQEAgc3RhdGljIGludCBub3V2ZWF1X2RzbV9wY2lfcHJvYmUoc3RydWN0IHBjaV9k ZXYgKnBkZXYpCj4gICAJCQkgICAxIDw8IE5PVVZFQVVfRFNNX01VWF9QT1dFUikpCj4gICAJCXJl dHZhbCB8PSBOT1VWRUFVX0RTTV9IQVNfTVVYOwo+ICAgCj4gKwlpZiAobm91dmVhdV9jaGVja19n bXV4X2RzbShkaGFuZGxlKSkKPiArCQlyZXR2YWwgfD0gTk9VVkVBVV9EU01fSEFTX0dNVVg7Cj4g Kwo+ICAgCWlmIChub3V2ZWF1X2NoZWNrX29wdGltdXNfZHNtKGRoYW5kbGUpKQo+ICAgCQlyZXR2 YWwgfD0gTk9VVkVBVV9EU01fSEFTX09QVDsKPiAgIAo+IEBAIC0yNjMsNiArMjk5LDcgQEAgc3Rh dGljIGJvb2wgbm91dmVhdV9kc21fZGV0ZWN0KHZvaWQpCj4gICAJc3RydWN0IHBjaV9kZXYgKnBk ZXYgPSBOVUxMOwo+ICAgCWludCBoYXNfZHNtID0gMDsKPiAgIAlpbnQgaGFzX29wdGltdXMgPSAw Owo+ICsJYm9vbCBoYXNfZ211eCA9IGZhbHNlOwo+ICAgCWludCB2Z2FfY291bnQgPSAwOwo+ICAg CWJvb2wgZ3VpZF92YWxpZDsKPiAgIAlpbnQgcmV0dmFsOwo+IEBAIC0yODMsNiArMzIwLDggQEAg c3RhdGljIGJvb2wgbm91dmVhdV9kc21fZGV0ZWN0KHZvaWQpCj4gICAJCQloYXNfZHNtIHw9IDE7 Cj4gICAJCWlmIChyZXR2YWwgJiBOT1VWRUFVX0RTTV9IQVNfT1BUKQo+ICAgCQkJaGFzX29wdGlt dXMgPSAxOwo+ICsJCWlmIChyZXR2YWwgJiBOT1VWRUFVX0RTTV9IQVNfR01VWCkKPiArCQkJaGFz X2dtdXggPSB0cnVlOwo+ICAgCX0KPiAgIAo+ICAgCXdoaWxlICgocGRldiA9IHBjaV9nZXRfY2xh c3MoUENJX0NMQVNTX0RJU1BMQVlfM0QgPDwgOCwgcGRldikpICE9IE5VTEwpIHsKPiBAQCAtMjkz LDkgKzMzMiwxMSBAQCBzdGF0aWMgYm9vbCBub3V2ZWF1X2RzbV9kZXRlY3Qodm9pZCkKPiAgIAkJ CWhhc19kc20gfD0gMTsKPiAgIAkJaWYgKHJldHZhbCAmIE5PVVZFQVVfRFNNX0hBU19PUFQpCj4g ICAJCQloYXNfb3B0aW11cyA9IDE7Cj4gKwkJaWYgKHJldHZhbCAmIE5PVVZFQVVfRFNNX0hBU19H TVVYKQo+ICsJCQloYXNfZ211eCA9IHRydWU7Cj4gICAJfQo+ICAgCj4gLQkvKiBmaW5kIHRoZSBv cHRpbXVzIERTTSBvciB0aGUgbXV4IERTTSAqLwo+ICsJLyogZmluZCB0aGUgb3B0aW11cyBEU00s IHRoZSBtdXggRFNNIG9yIHRoZSBnbXV4IERTTSAqLwo+ICAgCWlmIChoYXNfb3B0aW11cyA9PSAx KSB7Cj4gICAJCWFjcGlfZ2V0X25hbWUobm91dmVhdV9kc21fcHJpdi5kaGFuZGxlLCBBQ1BJX0ZV TExfUEFUSE5BTUUsCj4gICAJCQkmYnVmZmVyKTsKPiBAQCAtMzEwLDYgKzM1MSwxMyBAQCBzdGF0 aWMgYm9vbCBub3V2ZWF1X2RzbV9kZXRlY3Qodm9pZCkKPiAgIAkJCWFjcGlfbWV0aG9kX25hbWUp Owo+ICAgCQlub3V2ZWF1X2RzbV9wcml2Lm11eF9kZXRlY3RlZCA9IHRydWU7Cj4gICAJCXJldCA9 IHRydWU7Cj4gKwl9IGVsc2UgaWYgKGhhc19nbXV4KSB7Cj4gKwkJYWNwaV9nZXRfbmFtZShub3V2 ZWF1X2RzbV9wcml2LmRoYW5kbGUsIEFDUElfRlVMTF9QQVRITkFNRSwKPiArCQkJJmJ1ZmZlcik7 Cj4gKwkJcHJpbnRrKEtFUk5fSU5GTyAiVkdBIHN3aXRjaGVyb286IGRldGVjdGVkIGdtdXggRFNN IHN3aXRjaGluZyBtZXRob2QgJXMgaGFuZGxlXG4iLAo+ICsJCQlhY3BpX21ldGhvZF9uYW1lKTsK PiArCQlub3V2ZWF1X2RzbV9wcml2LmdtdXhfZGV0ZWN0ZWQgPSB0cnVlOwo+ICsJCXJldCA9IHRy dWU7Cj4gICAJfQo+ICAgCj4gICAKPiBAQCAtMzIxLDcgKzM2OSw4IEBAIHZvaWQgbm91dmVhdV9y ZWdpc3Rlcl9kc21faGFuZGxlcih2b2lkKQo+ICAgCWJvb2wgcjsKPiAgIAo+ICAgCXIgPSBub3V2 ZWF1X2RzbV9kZXRlY3QoKTsKPiAtCWlmICghcikKPiArCS8qIEFwcGxlIEdtdXggd2lsbCByZWdp c3RlciBpdHMgb3duIHZnYSBzd2l0Y2hlcm9vIGhhbmRsZXIgKi8KPiArCWlmICghciB8fCBub3V2 ZWF1X2hhc19nbXV4KCkpCj4gICAJCXJldHVybjsKPiAgIAo+ICAgCXZnYV9zd2l0Y2hlcm9vX3Jl Z2lzdGVyX2hhbmRsZXIoJm5vdXZlYXVfZHNtX2hhbmRsZXIpOwo+IGRpZmYgLS1naXQgYS9kcm0v bm91dmVhdS9ub3V2ZWF1X2FjcGkuaCBiL2RybS9ub3V2ZWF1L25vdXZlYXVfYWNwaS5oCj4gaW5k ZXggMmJkODhhOC4uN2ZjZmU4MiAxMDA2NDQKPiAtLS0gYS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Fj cGkuaAo+ICsrKyBiL2RybS9ub3V2ZWF1L25vdXZlYXVfYWNwaS5oCj4gQEAgLTYsNiArNiw3IEBA Cj4gICAjaWYgZGVmaW5lZChDT05GSUdfQUNQSSkgJiYgZGVmaW5lZChDT05GSUdfWDg2KQo+ICAg Ym9vbCBub3V2ZWF1X2lzX29wdGltdXModm9pZCk7Cj4gICBib29sIG5vdXZlYXVfaGFzX211eCh2 b2lkKTsKPiArYm9vbCBub3V2ZWF1X2hhc19nbXV4KHZvaWQpOwo+ICAgdm9pZCBub3V2ZWF1X3Jl Z2lzdGVyX2RzbV9oYW5kbGVyKHZvaWQpOwo+ICAgdm9pZCBub3V2ZWF1X3VucmVnaXN0ZXJfZHNt X2hhbmRsZXIodm9pZCk7Cj4gICB2b2lkIG5vdXZlYXVfc3dpdGNoZXJvb19vcHRpbXVzX2RzbSh2 b2lkKTsKPiBAQCAtMTUsNiArMTYsNyBAQCB2b2lkICpub3V2ZWF1X2FjcGlfZWRpZChzdHJ1Y3Qg ZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqKTsKPiAgICNlbHNlCj4gICBzdGF0 aWMgaW5saW5lIGJvb2wgbm91dmVhdV9pc19vcHRpbXVzKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9 Owo+ICAgc3RhdGljIGlubGluZSBib29sIG5vdXZlYXVfaGFzX211eCh2b2lkKSB7IHJldHVybiBm YWxzZTsgfTsKPiArc3RhdGljIGlubGluZSBib29sIG5vdXZlYXVfaGFzX2dtdXgodm9pZCkgeyBy ZXR1cm4gZmFsc2U7IH07Cj4gICBzdGF0aWMgaW5saW5lIHZvaWQgbm91dmVhdV9yZWdpc3Rlcl9k c21faGFuZGxlcih2b2lkKSB7fQo+ICAgc3RhdGljIGlubGluZSB2b2lkIG5vdXZlYXVfdW5yZWdp c3Rlcl9kc21faGFuZGxlcih2b2lkKSB7fQo+ICAgc3RhdGljIGlubGluZSB2b2lkIG5vdXZlYXVf c3dpdGNoZXJvb19vcHRpbXVzX2RzbSh2b2lkKSB7fQo+IGRpZmYgLS1naXQgYS9kcm0vbm91dmVh dS9ub3V2ZWF1X2RybS5jIGIvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYwo+IGluZGV4IGMwNmE3 YTEuLjcwMmFmZjggMTAwNjQ0Cj4gLS0tIGEvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYwo+ICsr KyBiL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKPiBAQCAtNzE5LDcgKzcxOSw4IEBAIG5vdXZl YXVfcG1vcHNfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIAl9Cj4gICAK PiAgIAkvKiBhcmUgd2Ugb3B0aW11cyBlbmFibGVkPyAqLwo+IC0JaWYgKG5vdXZlYXVfcnVudGlt ZV9wbSA9PSAtMSAmJiAhbm91dmVhdV9pc19vcHRpbXVzKCkgJiYgIW5vdXZlYXVfaGFzX211eCgp KSB7Cj4gKwlpZiAobm91dmVhdV9ydW50aW1lX3BtID09IC0xICYmCj4gKwkgICAgIW5vdXZlYXVf aXNfb3B0aW11cygpICYmICFub3V2ZWF1X2hhc19tdXgoKSAmJiAhbm91dmVhdV9oYXNfZ211eCgp KSB7Cj4gICAJCURSTV9ERUJVR19EUklWRVIoImZhaWxpbmcgdG8gcG93ZXIgb2ZmIC0gbm90IG9w dGltdXNcbiIpOwo+ICAgCQlwbV9ydW50aW1lX2ZvcmJpZChkZXYpOwo+ICAgCQlyZXR1cm4gLUVC VVNZOwo+IEBAIC03ODAsNyArNzgxLDggQEAgbm91dmVhdV9wbW9wc19ydW50aW1lX2lkbGUoc3Ry dWN0IGRldmljZSAqZGV2KQo+ICAgCX0KPiAgIAo+ICAgCS8qIGFyZSB3ZSBvcHRpbXVzIGVuYWJs ZWQ/ICovCj4gLQlpZiAobm91dmVhdV9ydW50aW1lX3BtID09IC0xICYmICFub3V2ZWF1X2lzX29w dGltdXMoKSAmJiAhbm91dmVhdV9oYXNfbXV4KCkpIHsKPiArCWlmIChub3V2ZWF1X3J1bnRpbWVf cG0gPT0gLTEgJiYKPiArCSAgICAhbm91dmVhdV9pc19vcHRpbXVzKCkgJiYgIW5vdXZlYXVfaGFz X211eCgpICYmICFub3V2ZWF1X2hhc19nbXV4KCkpIHsKPiAgIAkJRFJNX0RFQlVHX0RSSVZFUigi ZmFpbGluZyB0byBwb3dlciBvZmYgLSBub3Qgb3B0aW11c1xuIik7Cj4gICAJCXBtX3J1bnRpbWVf Zm9yYmlkKGRldik7Cj4gICAJCXJldHVybiAtRUJVU1k7Cj4gZGlmZiAtLWdpdCBhL2RybS9ub3V2 ZWF1L25vdXZlYXVfdmdhLmMgYi9kcm0vbm91dmVhdS9ub3V2ZWF1X3ZnYS5jCj4gaW5kZXggOWE2 MzI4Zi4uM2E3YTliOSAxMDA2NDQKPiAtLS0gYS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ZnYS5jCj4g KysrIGIvZHJtL25vdXZlYXUvbm91dmVhdV92Z2EuYwo+IEBAIC05NiwxMSArOTYsMTIgQEAgbm91 dmVhdV92Z2FfaW5pdChzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiAgIAo+ICAgCWlmIChub3V2 ZWF1X3J1bnRpbWVfcG0gPT0gMSkKPiAgIAkJcnVudGltZSA9IHRydWU7Cj4gLQlpZiAoKG5vdXZl YXVfcnVudGltZV9wbSA9PSAtMSkgJiYgKG5vdXZlYXVfaXNfb3B0aW11cygpIHx8IG5vdXZlYXVf aGFzX211eCgpKSkKPiArCWlmICgobm91dmVhdV9ydW50aW1lX3BtID09IC0xKSAmJgo+ICsJICAg IChub3V2ZWF1X2lzX29wdGltdXMoKSB8fCBub3V2ZWF1X2hhc19tdXgoKSB8fCBub3V2ZWF1X2hh c19nbXV4KCkpKQo+ICAgCQlydW50aW1lID0gdHJ1ZTsKPiAgIAl2Z2Ffc3dpdGNoZXJvb19yZWdp c3Rlcl9jbGllbnQoZGV2LT5wZGV2LCAmbm91dmVhdV9zd2l0Y2hlcm9vX29wcywgcnVudGltZSk7 Cj4gICAKPiAtCWlmIChydW50aW1lICYmIG5vdXZlYXVfaGFzX211eCgpICYmICFub3V2ZWF1X2lz X29wdGltdXMoKSkKPiArCWlmIChydW50aW1lICYmIChub3V2ZWF1X2hhc19tdXgoKSB8fCBub3V2 ZWF1X2hhc19nbXV4KCkpICYmICFub3V2ZWF1X2lzX29wdGltdXMoKSkKPiAgIAkJdmdhX3N3aXRj aGVyb29faW5pdF9kb21haW5fcG1fb3BzKGRybS0+ZGV2LT5kZXYsICZkcm0tPnZnYV9wbV9kb21h aW4pOwo+ICAgfQo+ICAgCj4gQEAgLTExMiwxMSArMTEzLDEyIEBAIG5vdXZlYXVfdmdhX2Zpbmko c3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4gICAKPiAgIAlpZiAobm91dmVhdV9ydW50aW1lX3Bt ID09IDEpCj4gICAJCXJ1bnRpbWUgPSB0cnVlOwo+IC0JaWYgKChub3V2ZWF1X3J1bnRpbWVfcG0g PT0gLTEpICYmIChub3V2ZWF1X2lzX29wdGltdXMoKSB8fCBub3V2ZWF1X2hhc19tdXgoKSkpCj4g KwlpZiAoKG5vdXZlYXVfcnVudGltZV9wbSA9PSAtMSkgJiYKPiArCSAgICAobm91dmVhdV9pc19v cHRpbXVzKCkgfHwgbm91dmVhdV9oYXNfbXV4KCkgfHwgbm91dmVhdV9oYXNfZ211eCgpKSkKPiAg IAkJcnVudGltZSA9IHRydWU7Cj4gICAKCllvdSBjb3VsZCBtYXliZSBmYWN0b3JpemUgYSBiaXQg aGVyZSBieSBhZGRpbmcgbm91dmVhdV9oYXNfb3B0aW11cygpLiAKV2hhdCBkbyB5b3UgdGhpbms/ Cgo+ICAgCXZnYV9zd2l0Y2hlcm9vX3VucmVnaXN0ZXJfY2xpZW50KGRldi0+cGRldik7Cj4gLQlp ZiAocnVudGltZSAmJiBub3V2ZWF1X2hhc19tdXgoKSAmJiAhbm91dmVhdV9pc19vcHRpbXVzKCkp Cj4gKwlpZiAocnVudGltZSAmJiAobm91dmVhdV9oYXNfbXV4KCkgfHwgbm91dmVhdV9oYXNfZ211 eCgpKSAmJiAhbm91dmVhdV9pc19vcHRpbXVzKCkpCj4gICAJCXZnYV9zd2l0Y2hlcm9vX2Zpbmlf ZG9tYWluX3BtX29wcyhkcm0tPmRldi0+ZGV2KTsKPiAgIAl2Z2FfY2xpZW50X3JlZ2lzdGVyKGRl di0+cGRldiwgTlVMTCwgTlVMTCwgTlVMTCk7Cj4gICB9CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpOb3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vbm91dmVhdQo=