From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrik Jakobsson Subject: Re: [PATCH] drm/gma500: add support for atom e6xx lpc lvds i2c Date: Mon, 1 Dec 2014 20:59:19 +0100 Message-ID: References: <20140926084029.GA24866@safrata.systec.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-la0-f47.google.com (mail-la0-f47.google.com [209.85.215.47]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C8C56E103 for ; Mon, 1 Dec 2014 11:59:20 -0800 (PST) Received: by mail-la0-f47.google.com with SMTP id hz20so9227007lab.6 for ; Mon, 01 Dec 2014 11:59:19 -0800 (PST) In-Reply-To: <20140926084029.GA24866@safrata.systec.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jan Safrata , Alan Cox Cc: dri-devel List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBTZXAgMjYsIDIwMTQgYXQgMTA6NDAgQU0sIEphbiBTYWZyYXRhIDxqYW4ubmlraXRl bmtvQGdtYWlsLmNvbT4gd3JvdGU6Cj4gYWRkIGdwaW8gYml0YmFuZ2luZyBpMmMgYWRhcHRlciBv biBMUEMgZGV2aWNlIG9mIGF0b20gZTZ4eAo+IGdwdSBjaGlwc2V0IHRvIGFjY2VzcyBsdmRzIEVE SUQKPiB0ZXN0ZWQgb24gU0VDTyBRdWFkTW83NDctRTZ4eC1FWFRSRU1FIFFzZXZlbiBwbGF0Zm9y bQo+Cj4gQ2M6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5yLmpha29ic3NvbkBnbWFpbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogSmFuIFNhZnJhdGEgPGphbi5uaWtpdGVua29AZ21haWwuY29tPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL01ha2VmaWxlICAgICAgICAgICAgfCAgIDEg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHMuYyAgICAgfCAgMzEgKysr Ky0tCj4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkc19pMmMuYyB8IDE3MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3Bz Yl9kcnYuYyAgICAgICAgICAgfCAgMjAgKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3Bz Yl9kcnYuaCAgICAgICAgICAgfCAgIDMgKwo+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9p bnRlbF9kcnYuaCAgICAgfCAgIDEgKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRpb25z KCspLCAxMiBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9nbWE1MDAvb2FrdHJhaWxfbHZkc19pMmMuYwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9nbWE1MDAvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL01ha2VmaWxlCj4g aW5kZXggYjE1MzE1NS4uMTkwZTU1ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21h NTAwL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9NYWtlZmlsZQo+IEBA IC0zOSw2ICszOSw3IEBAIGdtYTUwMF9nZngtJChDT05GSUdfRFJNX0dNQTM2MDApICs9ICBjZHZf ZGV2aWNlLm8gXAo+ICBnbWE1MDBfZ2Z4LSQoQ09ORklHX0RSTV9HTUE2MDApICs9IG9ha3RyYWls X2RldmljZS5vIFwKPiAgICAgICAgICAgb2FrdHJhaWxfY3J0Yy5vIFwKPiAgICAgICAgICAgb2Fr dHJhaWxfbHZkcy5vIFwKPiArICAgICAgICAgb2FrdHJhaWxfbHZkc19pMmMubyBcCj4gICAgICAg ICAgIG9ha3RyYWlsX2hkbWkubyBcCj4gICAgICAgICAgIG9ha3RyYWlsX2hkbWlfaTJjLm8KPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkcy5jCj4gaW5kZXggMGQzOWRhNi4uODNi YmMyNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHMu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkcy5jCj4gQEAgLTM1 OSwyMiArMzU5LDI2IEBAIHZvaWQgb2FrdHJhaWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gICAgICAgICAgKiAgICBpZiBjbG9zZWQsIGFjdCBsaWtlIGl0J3Mgbm90IHRoZXJl IGZvciBub3cKPiAgICAgICAgICAqLwo+Cj4gKyAgICAgICBlZGlkID0gTlVMTDsKPiAgICAgICAg IG11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICAgICAgICAgaTJjX2FkYXAg PSBpMmNfZ2V0X2FkYXB0ZXIoZGV2X3ByaXYtPm9wcy0+aTJjX2J1cyk7Cj4gLSAgICAgICBpZiAo aTJjX2FkYXAgPT0gTlVMTCkKPiAtICAgICAgICAgICAgICAgZGV2X2VycihkZXYtPmRldiwgIk5v IGRkYyBhZGFwdGVyIGF2YWlsYWJsZSFcbiIpOwo+ICsgICAgICAgaWYgKGkyY19hZGFwKQo+ICsg ICAgICAgICAgICAgICBlZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgaTJjX2FkYXApOwo+ ICsgICAgICAgaWYgKGVkaWQgPT0gTlVMTCAmJiBkZXZfcHJpdi0+bHBjX2dwaW9fYmFzZSkgewo+ ICsgICAgICAgICAgICAgICBvYWt0cmFpbF9sdmRzX2kyY19pbml0KGVuY29kZXIpOwo+ICsgICAg ICAgICAgICAgICBpZiAoZ21hX2VuY29kZXItPmRkY19idXMgIT0gTlVMTCkgewo+ICsgICAgICAg ICAgICAgICAgICAgICAgIGkyY19hZGFwID0gJmdtYV9lbmNvZGVyLT5kZGNfYnVzLT5hZGFwdGVy Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIGVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9y LCBpMmNfYWRhcCk7Cj4gKyAgICAgICAgICAgICAgIH0KPiArICAgICAgIH0KPiAgICAgICAgIC8q Cj4gICAgICAgICAgKiBBdHRlbXB0IHRvIGdldCB0aGUgZml4ZWQgcGFuZWwgbW9kZSBmcm9tIERE Qy4gIEFzc3VtZSB0aGF0IHRoZQo+ICAgICAgICAgICogcHJlZmVycmVkIG1vZGUgaXMgdGhlIHJp Z2h0IG9uZS4KPiAgICAgICAgICAqLwo+IC0gICAgICAgaWYgKGkyY19hZGFwKSB7Cj4gLSAgICAg ICAgICAgICAgIGVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9yLCBpMmNfYWRhcCk7Cj4gLSAg ICAgICAgICAgICAgIGlmIChlZGlkKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgZHJtX21v ZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwKPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlZGlkKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICBkcm1fYWRkX2VkaWRfbW9kZXMo Y29ubmVjdG9yLCBlZGlkKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICBrZnJlZShlZGlkKTsK PiAtICAgICAgICAgICAgICAgfQo+ICsgICAgICAgaWYgKGVkaWQpIHsKPiArICAgICAgICAgICAg ICAgZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRp ZCk7Cj4gKyAgICAgICAgICAgICAgIGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQp Owo+ICsgICAgICAgICAgICAgICBrZnJlZShlZGlkKTsKPgo+ICAgICAgICAgICAgICAgICBsaXN0 X2Zvcl9lYWNoX2VudHJ5KHNjYW4sICZjb25uZWN0b3ItPnByb2JlZF9tb2RlcywgaGVhZCkgewo+ ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY2FuLT50eXBlICYgRFJNX01PREVfVFlQRV9Q UkVGRVJSRUQpIHsKPiBAQCAtMzgzLDcgKzM4Nyw4IEBAIHZvaWQgb2FrdHJhaWxfbHZkc19pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIG91dDsgICAgICAgLyogRklYTUU6IGNoZWNrIGZvciBxdWlya3MgKi8KPiAgICAgICAg ICAgICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgICAgIH0KPiAtICAgICAgIH0KPiArICAg ICAgIH0gZWxzZQo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKGRldi0+ZGV2LCAiTm8gZGRjIGFk YXB0ZXIgYXZhaWxhYmxlIVxuIik7Cj4gICAgICAgICAvKgo+ICAgICAgICAgICogSWYgd2UgZGlk bid0IGdldCBFRElELCB0cnkgZ2V0aW5nIHBhbmVsIHRpbWluZwo+ICAgICAgICAgICogZnJvbSBj b25maWd1cmF0aW9uIGRhdGEKPiBAQCAtNDExLDggKzQxNiwxMCBAQCBmYWlsZWRfZmluZDoKPiAg ICAgICAgIG11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4KPiAgICAgICAg IGRldl9kYmcoZGV2LT5kZXYsICJObyBMVkRTIG1vZGVzIGZvdW5kLCBkaXNhYmxpbmcuXG4iKTsK PiAtICAgICAgIGlmIChnbWFfZW5jb2Rlci0+ZGRjX2J1cykKPiArICAgICAgIGlmIChnbWFfZW5j b2Rlci0+ZGRjX2J1cykgewo+ICAgICAgICAgICAgICAgICBwc2JfaW50ZWxfaTJjX2Rlc3Ryb3ko Z21hX2VuY29kZXItPmRkY19idXMpOwo+ICsgICAgICAgICAgICAgICBnbWFfZW5jb2Rlci0+ZGRj X2J1cyA9IE5VTEw7Cj4gKyAgICAgICB9Cj4KPiAgLyogZmFpbGVkX2RkYzogKi8KPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHNfaTJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHNfaTJjLmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAuLmY5MTNhNjIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2dtYTUwMC9vYWt0cmFpbF9sdmRzX2kyYy5jCj4gQEAgLTAsMCArMSwxNzAg QEAKPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMTAsIEludGVsIENvcnBvcmF0aW9u Lgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTQgQVRST04gZWxlY3Ryb25pYyBHbWJICj4gKyAqICAg QXV0aG9yOiBKYW4gU2FmcmF0YSA8amFuLm5pa2l0ZW5rb0BnbWFpbC5jb20+Cj4gKyAqCj4gKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uIG9idGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKPiArICogaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24gdGhlIHJpZ2h0cwo+ICsgKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCj4gKyAqIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBp cwo+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRI RQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCj4gKyAqIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MgSU4KPiArICogVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNp bmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsj aW5jbHVkZSA8bGludXgvcGNpLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ICsjaW5j bHVkZSA8bGludXgvaTJjLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pMmMtYWxnby1iaXQuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9kZWxheS5oPgo+ICsKPiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gKyNpbmNs dWRlICJwc2JfZHJ2LmgiCj4gKyNpbmNsdWRlICJwc2JfaW50ZWxfcmVnLmgiCj4gKwo+ICsKPiAr LyoKPiArICogTFBDIEdQSU8gYmFzZWQgSTJDIGJ1cyBmb3IgTFZEUyBvZiBBdG9tIEU2eHgKPiAr ICovCj4gKwo+ICsvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAqIExQQyBSZWdpc3RlciBPZmZz ZXRzLiBVc2VkIGZvciBMVkRTIEdQSU8gQml0IEJhc2hpbmcuIFJlZ2lzdGVycyBhcmUgcGFydAo+ ICsgKiBBdG9tIEU2eHggW0QzMTpGMF0KPiArIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwo+ICsjZGVm aW5lIFJHRU4gICAgMHgyMAo+ICsjZGVmaW5lIFJHSU8gICAgMHgyNAo+ICsjZGVmaW5lIFJHTFZM ICAgMHgyOAo+ICsjZGVmaW5lIFJHVFBFICAgMHgyQwo+ICsjZGVmaW5lIFJHVE5FICAgMHgzMAo+ ICsjZGVmaW5lIFJHR1BFICAgMHgzNAo+ICsjZGVmaW5lIFJHU01JICAgMHgzOAo+ICsjZGVmaW5l IFJHVFMgICAgMHgzQwo+ICsKPiArLyogVGhlIExWRFMgR1BJTyBjbG9jayBsaW5lcyBhcmUgR1BJ T1NVU1szXQo+ICsgKiBUaGUgTFZEUyBHUElPIGRhdGEgbGluZXMgYXJlIEdQSU9TVVNbNF0KPiAr ICovCj4gKyNkZWZpbmUgR1BJT19DTE9DSyAgICAgMHgwOAo+ICsjZGVmaW5lIEdQSU9fREFUQSAg ICAgIDB4MTAKPiArCj4gKyNkZWZpbmUgTFBDX1JFQURfUkVHKGNoYW4sIHIpIGlubCgoY2hhbikt PnJlZyArIChyKSkKPiArI2RlZmluZSBMUENfV1JJVEVfUkVHKGNoYW4sIHIsIHZhbCkgb3V0bCgo dmFsKSwgKGNoYW4pLT5yZWcgKyAocikpCj4gKwo+ICtzdGF0aWMgaW50IGdldF9jbG9jayh2b2lk ICpkYXRhKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgcHNiX2ludGVsX2kyY19jaGFuICpjaGFuID0g ZGF0YTsKPiArICAgICAgIHUzMiB2YWwsIHRtcDsKPiArCj4gKyAgICAgICB2YWwgPSBMUENfUkVB RF9SRUcoY2hhbiwgUkdJTyk7Cj4gKyAgICAgICB2YWwgfD0gR1BJT19DTE9DSzsKPiArICAgICAg IExQQ19XUklURV9SRUcoY2hhbiwgUkdJTywgdmFsKTsKPiArICAgICAgIHRtcCA9IExQQ19SRUFE X1JFRyhjaGFuLCBSR0xWTCk7Cj4gKyAgICAgICB2YWwgPSAoTFBDX1JFQURfUkVHKGNoYW4sIFJH TFZMKSAmIEdQSU9fQ0xPQ0spID8gMSA6IDA7Cj4gKwo+ICsgICAgICAgcmV0dXJuIHZhbDsKPiAr fQo+ICsKPiArc3RhdGljIGludCBnZXRfZGF0YSh2b2lkICpkYXRhKQo+ICt7Cj4gKyAgICAgICBz dHJ1Y3QgcHNiX2ludGVsX2kyY19jaGFuICpjaGFuID0gZGF0YTsKPiArICAgICAgIHUzMiB2YWws IHRtcDsKPiArCj4gKyAgICAgICB2YWwgPSBMUENfUkVBRF9SRUcoY2hhbiwgUkdJTyk7Cj4gKyAg ICAgICB2YWwgfD0gR1BJT19EQVRBOwo+ICsgICAgICAgTFBDX1dSSVRFX1JFRyhjaGFuLCBSR0lP LCB2YWwpOwo+ICsgICAgICAgdG1wID0gTFBDX1JFQURfUkVHKGNoYW4sIFJHTFZMKTsKPiArICAg ICAgIHZhbCA9IChMUENfUkVBRF9SRUcoY2hhbiwgUkdMVkwpICYgR1BJT19EQVRBKSA/IDEgOiAw Owo+ICsKPiArICAgICAgIHJldHVybiB2YWw7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNldF9j bG9jayh2b2lkICpkYXRhLCBpbnQgc3RhdGVfaGlnaCkKPiArewo+ICsgICAgICAgc3RydWN0IHBz Yl9pbnRlbF9pMmNfY2hhbiAqY2hhbiA9IGRhdGE7Cj4gKyAgICAgICB1MzIgdmFsOwo+ICsKPiAr ICAgICAgIGlmIChzdGF0ZV9oaWdoKSB7Cj4gKyAgICAgICAgICAgICAgIHZhbCA9IExQQ19SRUFE X1JFRyhjaGFuLCBSR0lPKTsKPiArICAgICAgICAgICAgICAgdmFsIHw9IEdQSU9fQ0xPQ0s7Cj4g KyAgICAgICAgICAgICAgIExQQ19XUklURV9SRUcoY2hhbiwgUkdJTywgdmFsKTsKPiArICAgICAg IH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgIHZhbCA9IExQQ19SRUFEX1JFRyhjaGFuLCBSR0lP KTsKPiArICAgICAgICAgICAgICAgdmFsICY9IH5HUElPX0NMT0NLOwo+ICsgICAgICAgICAgICAg ICBMUENfV1JJVEVfUkVHKGNoYW4sIFJHSU8sIHZhbCk7Cj4gKyAgICAgICAgICAgICAgIHZhbCA9 IExQQ19SRUFEX1JFRyhjaGFuLCBSR0xWTCk7Cj4gKyAgICAgICAgICAgICAgIHZhbCAmPSB+R1BJ T19DTE9DSzsKPiArICAgICAgICAgICAgICAgTFBDX1dSSVRFX1JFRyhjaGFuLCBSR0xWTCwgdmFs KTsKPiArICAgICAgIH0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2V0X2RhdGEodm9pZCAqZGF0 YSwgaW50IHN0YXRlX2hpZ2gpCj4gK3sKPiArICAgICAgIHN0cnVjdCBwc2JfaW50ZWxfaTJjX2No YW4gKmNoYW4gPSBkYXRhOwo+ICsgICAgICAgdTMyIHZhbDsKPiArCj4gKyAgICAgICBpZiAoc3Rh dGVfaGlnaCkgewo+ICsgICAgICAgICAgICAgICB2YWwgPSBMUENfUkVBRF9SRUcoY2hhbiwgUkdJ Tyk7Cj4gKyAgICAgICAgICAgICAgIHZhbCB8PSBHUElPX0RBVEE7Cj4gKyAgICAgICAgICAgICAg IExQQ19XUklURV9SRUcoY2hhbiwgUkdJTywgdmFsKTsKPiArICAgICAgIH0gZWxzZSB7Cj4gKyAg ICAgICAgICAgICAgIHZhbCA9IExQQ19SRUFEX1JFRyhjaGFuLCBSR0lPKTsKPiArICAgICAgICAg ICAgICAgdmFsICY9IH5HUElPX0RBVEE7Cj4gKyAgICAgICAgICAgICAgIExQQ19XUklURV9SRUco Y2hhbiwgUkdJTywgdmFsKTsKPiArICAgICAgICAgICAgICAgdmFsID0gTFBDX1JFQURfUkVHKGNo YW4sIFJHTFZMKTsKPiArICAgICAgICAgICAgICAgdmFsICY9IH5HUElPX0RBVEE7Cj4gKyAgICAg ICAgICAgICAgIExQQ19XUklURV9SRUcoY2hhbiwgUkdMVkwsIHZhbCk7Cj4gKyAgICAgICB9Cj4g K30KPiArCj4gK3ZvaWQgb2FrdHJhaWxfbHZkc19pMmNfaW5pdChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCj4gK3sKPiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVy LT5kZXY7Cj4gKyAgICAgICBzdHJ1Y3QgZ21hX2VuY29kZXIgKmdtYV9lbmNvZGVyID0gdG9fZ21h X2VuY29kZXIoZW5jb2Rlcik7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX3BzYl9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKyAgICAgICBzdHJ1Y3QgcHNiX2ludGVsX2kyY19j aGFuICpjaGFuOwo+ICsKPiArICAgICAgIGNoYW4gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcHNi X2ludGVsX2kyY19jaGFuKSwgR0ZQX0tFUk5FTCk7Cj4gKyAgICAgICBpZiAoIWNoYW4pCj4gKyAg ICAgICAgICAgICAgIHJldHVybjsKPiArCj4gKyAgICAgICBjaGFuLT5kcm1fZGV2ID0gZGV2Owo+ ICsgICAgICAgY2hhbi0+cmVnID0gZGV2X3ByaXYtPmxwY19ncGlvX2Jhc2U7Cj4gKyAgICAgICBz dHJuY3B5KGNoYW4tPmFkYXB0ZXIubmFtZSwgImdtYTUwMCBMUEMiLCAgSTJDX05BTUVfU0laRSAt IDEpOwo+ICsgICAgICAgY2hhbi0+YWRhcHRlci5vd25lciA9IFRISVNfTU9EVUxFOwo+ICsgICAg ICAgY2hhbi0+YWRhcHRlci5hbGdvX2RhdGEgPSAmY2hhbi0+YWxnbzsKPiArICAgICAgIGNoYW4t PmFkYXB0ZXIuZGV2LnBhcmVudCA9ICZkZXYtPnBkZXYtPmRldjsKPiArICAgICAgIGNoYW4tPmFs Z28uc2V0c2RhID0gc2V0X2RhdGE7Cj4gKyAgICAgICBjaGFuLT5hbGdvLnNldHNjbCA9IHNldF9j bG9jazsKPiArICAgICAgIGNoYW4tPmFsZ28uZ2V0c2RhID0gZ2V0X2RhdGE7Cj4gKyAgICAgICBj aGFuLT5hbGdvLmdldHNjbCA9IGdldF9jbG9jazsKPiArICAgICAgIGNoYW4tPmFsZ28udWRlbGF5 ID0gMTAwOwo+ICsgICAgICAgY2hhbi0+YWxnby50aW1lb3V0ID0gdXNlY3NfdG9famlmZmllcygy MjAwKTsKPiArICAgICAgIGNoYW4tPmFsZ28uZGF0YSA9IGNoYW47Cj4gKwo+ICsgICAgICAgaTJj X3NldF9hZGFwZGF0YSgmY2hhbi0+YWRhcHRlciwgY2hhbik7Cj4gKwo+ICsgICAgICAgc2V0X2Rh dGEoY2hhbiwgMSk7Cj4gKyAgICAgICBzZXRfY2xvY2soY2hhbiwgMSk7Cj4gKyAgICAgICB1ZGVs YXkoNTApOwo+ICsKPiArICAgICAgIGlmIChpMmNfYml0X2FkZF9idXMoJmNoYW4tPmFkYXB0ZXIp KSB7Cj4gKyAgICAgICAgICAgICAgIGtmcmVlKGNoYW4pOwo+ICsgICAgICAgICAgICAgICByZXR1 cm47Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgZ21hX2VuY29kZXItPmRkY19idXMgPSBjaGFu Owo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfZHJ2LmMKPiBpbmRleCBlZWM5OTNmLi4zYWVjMGRl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2Rydi5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfZHJ2LmMKPiBAQCAtMjEyLDYgKzIxMiw4IEBAIHN0 YXRpYyBpbnQgcHNiX2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgICAg ICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAgICBpZiAoZGV2X3ByaXYtPmF1eF9wZGV2KQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV9kZXZfcHV0KGRldl9wcml2LT5hdXhfcGRldik7 Cj4gKyAgICAgICAgICAgICAgIGlmIChkZXZfcHJpdi0+bHBjX3BkZXYpCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgcGNpX2Rldl9wdXQoZGV2X3ByaXYtPmxwY19wZGV2KTsKPgo+ICAgICAgICAg ICAgICAgICAvKiBEZXN0cm95IFZCVCBkYXRhICovCj4gICAgICAgICAgICAgICAgIHBzYl9pbnRl bF9kZXN0cm95X2Jpb3MoZGV2KTsKPiBAQCAtMjgwLDYgKzI4MiwyNCBAQCBzdGF0aWMgaW50IHBz Yl9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdz KQo+ICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIkNvdWxkbid0IGZpbmQg YXV4IHBjaSBkZXZpY2UiKTsKPiAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAgICBk ZXZfcHJpdi0+Z21idXNfcmVnID0gZGV2X3ByaXYtPmF1eF9yZWc7Cj4gKwo+ICsgICAgICAgICAg ICAgICBkZXZfcHJpdi0+bHBjX3BkZXYgPSBwY2lfZ2V0X2J1c19hbmRfc2xvdCgwLCBQQ0lfREVW Rk4oMzEsIDApKTsKPiArICAgICAgICAgICAgICAgaWYgKGRldl9wcml2LT5scGNfcGRldikgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHBjaV9yZWFkX2NvbmZpZ193b3JkKGRldl9wcml2LT5s cGNfcGRldiwgUFNCX0xQQ19HQkEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm ZGV2X3ByaXYtPmxwY19ncGlvX2Jhc2UpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHBjaV93 cml0ZV9jb25maWdfZHdvcmQoZGV2X3ByaXYtPmxwY19wZGV2LCBQU0JfTFBDX0dCQSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1MzIpZGV2X3ByaXYtPmxwY19ncGlvX2Jhc2Ug fCAoMUw8PDMxKSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgcGNpX3JlYWRfY29uZmlnX3dv cmQoZGV2X3ByaXYtPmxwY19wZGV2LCBQU0JfTFBDX0dCQSwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZkZXZfcHJpdi0+bHBjX2dwaW9fYmFzZSk7Cj4gKyAgICAgICAgICAgICAg ICAgICAgICAgZGV2X3ByaXYtPmxwY19ncGlvX2Jhc2UgJj0gMHhmZmMwOwo+ICsgICAgICAgICAg ICAgICAgICAgICAgIGlmIChkZXZfcHJpdi0+bHBjX2dwaW9fYmFzZSkKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIkZvdW5kIExQQyBHUElPIGF0IDB4JTA0 eFxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk ZXZfcHJpdi0+bHBjX2dwaW9fYmFzZSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfZGV2X3B1dChkZXZfcHJpdi0+ bHBjX3BkZXYpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2X3ByaXYtPmxw Y19wZGV2ID0gTlVMTDsKPiArICAgICAgICAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAg ICAgIH0KPiAgICAgICAgIH0gZWxzZSB7Cj4gICAgICAgICAgICAgICAgIGRldl9wcml2LT5nbWJ1 c19yZWcgPSBkZXZfcHJpdi0+dmRjX3JlZzsKPiAgICAgICAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3Bz Yl9kcnYuaAo+IGluZGV4IDU1ZWJlMmIuLmUzODA1N2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2dtYTUwMC9wc2JfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3Bz Yl9kcnYuaAo+IEBAIC04Myw2ICs4Myw3IEBAIGVudW0gewo+ICAjZGVmaW5lIFBTQl9QR0VUQkxf Q1RMICAgICAgICAgIDB4MjAyMAo+ICAjZGVmaW5lIF9QU0JfUEdFVEJMX0VOQUJMRUQgICAgIDB4 MDAwMDAwMDEKPiAgI2RlZmluZSBQU0JfU0dYXzJEX1NMQVZFX1BPUlQgICAweDQwMDAKPiArI2Rl ZmluZSBQU0JfTFBDX0dCQSAgICAgICAgICAgICAweDQ0Cj4KPiAgLyogVE9ETzogVG8gZ2V0IHJp ZCBvZiAqLwo+ICAjZGVmaW5lIFBTQl9UVF9QUklWMF9MSU1JVCAgICAgICgyNTYqMTAyNCoxMDI0 KQo+IEBAIC00NDEsNiArNDQyLDcgQEAgc3RydWN0IHBzYl9vcHM7Cj4gIHN0cnVjdCBkcm1fcHNi X3ByaXZhdGUgewo+ICAgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiAgICAgICAgIHN0 cnVjdCBwY2lfZGV2ICphdXhfcGRldjsgLyogQ3VycmVudGx5IG9ubHkgdXNlZCBieSBtcnN0ICov Cj4gKyAgICAgICBzdHJ1Y3QgcGNpX2RldiAqbHBjX3BkZXY7IC8qIEN1cnJlbnRseSBvbmx5IHVz ZWQgYnkgbXJzdCAqLwo+ICAgICAgICAgY29uc3Qgc3RydWN0IHBzYl9vcHMgKm9wczsKPiAgICAg ICAgIGNvbnN0IHN0cnVjdCBwc2Jfb2Zmc2V0ICpyZWdtYXA7Cj4KPiBAQCAtNDcwLDYgKzQ3Miw3 IEBAIHN0cnVjdCBkcm1fcHNiX3ByaXZhdGUgewo+ICAgICAgICAgdWludDhfdCBfX2lvbWVtICpz Z3hfcmVnOwo+ICAgICAgICAgdWludDhfdCBfX2lvbWVtICp2ZGNfcmVnOwo+ICAgICAgICAgdWlu dDhfdCBfX2lvbWVtICphdXhfcmVnOyAvKiBBdXhpbGxhcnkgdmRjIHBpcGUgcmVncyAqLwo+ICsg ICAgICAgdWludDE2X3QgbHBjX2dwaW9fYmFzZTsKPiAgICAgICAgIHVpbnQzMl90IGdhdHRfZnJl ZV9vZmZzZXQ7Cj4KPiAgICAgICAgIC8qIEZlbmNpbmcgLyBpcnEgKi8KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v Z21hNTAwL3BzYl9pbnRlbF9kcnYuaAo+IGluZGV4IDMzNmJkM2EuLjg2MGRkMjEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9kcnYuaAo+IEBAIC0yMjMsNiArMjIzLDcgQEAg ZXh0ZXJuIHZvaWQgb2FrdHJhaWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IGV4dGVybiB2b2lkIG9ha3RyYWlsX3dhaXRfZm9yX0lOVFJfUEtUX1NFTlQoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gIGV4dGVybiB2b2lkIG9ha3RyYWlsX2RzaV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBzYl9pbnRl bF9tb2RlX2RldmljZSAqbW9kZV9kZXYpOwo+ICtleHRlcm4gdm9pZCBvYWt0cmFpbF9sdmRzX2ky Y19pbml0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gIGV4dGVybiB2b2lkIG1pZF9k c2lfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHBzYl9pbnRlbF9tb2RlX2RldmljZSAqbW9kZV9kZXYsIGludCBkc2lfbnVtKTsKPgo+IC0t Cj4gMS44LjUuNQo+CgpIaSBKYW4KClNvcnJ5LCBzZWVtcyBib3RoIG1lIGFuZCBBbGFuIG1pc3Nl ZCB0aGlzIG9uZS4KCkxvb2tzIGdvb2QgdG8gbWUuIFRoYW5rcy4KClJldmlld2VkLWJ5OiBQYXRy aWsgSmFrb2Jzc29uIDxwYXRyaWsuci5qYWtvYnNzb25AZ21haWwuY29tPgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=