From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko =?ISO-8859-1?Q?St=FCbner?= Subject: Re: [PATCH v8 7/8] drm/bridge/synopsys: dw-hdmi: Do not use device's drvdata Date: Thu, 01 Mar 2018 16:45:57 +0100 Message-ID: <4608895.HSl1MMrfU7@diego> References: <20180110162348.22765-1-thierry.escande@collabora.com> <20180110162348.22765-8-thierry.escande@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180110162348.22765-8-thierry.escande@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Thierry Escande , Neil Armstrong , Jeffy Chen , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Rob Herring , Laurent Pinchart , Daniel Vetter List-Id: linux-rockchip.vger.kernel.org QW0gTWl0dHdvY2gsIDEwLiBKYW51YXIgMjAxOCwgMTc6MjM6NDcgQ0VUIHNjaHJpZWIgVGhpZXJy eSBFc2NhbmRlOgo+IEZyb206IEplZmZ5IENoZW4gPGplZmZ5LmNoZW5Acm9jay1jaGlwcy5jb20+ Cj4gCj4gTGV0IHBsYXQgZHJpdmVycyBvd24gdGhlIGRydmRhdGEsIHNvIHRoYXQgdGhleSBjb3Vs ZCBjbGVhbnVwIHJlc291cmNlcwo+IGluIHRoZWlyIHVuYmluZCgpLgo+IAo+IFNpZ25lZC1vZmYt Ynk6IEplZmZ5IENoZW4gPGplZmZ5LmNoZW5Acm9jay1jaGlwcy5jb20+Cj4gU2lnbmVkLW9mZi1i eTogVGhpZXJyeSBFc2NhbmRlIDx0aGllcnJ5LmVzY2FuZGVAY29sbGFib3JhLmNvbT4KPiBSZXZp ZXdlZC1ieTogTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgoKVGhpcyBs b29rcyBsaWtlIGl0IGlzIHByb2JhYmx5IHN1cGVyc2VlZGVkIGJ5CiJkcm0vYnJpZGdlL3N5bm9w c3lzOiBkdy1oZG1pOiBkb24ndCBjbG9iYmVyIGRydmRhdGEiIFswXSA/CgpJZiB0aGVyZSBhcmUg c3RpbGwgbmVjZXNzYXJ5IHRoaW5ncyBpbiBpdCwgaXQgd2lsbCBuZWVkIHRvIGJlIGFkYXB0ZWQg Zm9yCnRoZSByZWNlbnQgYWRkaXRpb24gb2YgdGhlIHN1bnhpIGR3LWhkbWkgdmFyaWFudC4KCgpI ZWlrbwoKWzBdIGh0dHBzOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS1taXNjL2NvbW1p dC8/aWQ9ZWVhMDM0YWY5MGM2NDgwMmZkNzQ3YTlkYzUzNGMyNmE3ZWJlNzc1NAoKCj4gIGRyaXZl cnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jICAgfCA0Mwo+ICsrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tIGRyaXZlcnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXguYyAgICAg ICAgICAgfAo+IDIyICsrKysrKysrKy0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVz b25fZHdfaGRtaS5jICAgICAgIHwgMjAgKysrKysrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L3JjYXItZHUvcmNhcl9kd19oZG1pLmMgICAgICB8IDE0ICsrKysrKysrLS0KPiAgZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYyB8IDIyICsrKysrKysrKy0tLS0tLQo+ ICBpbmNsdWRlL2RybS9icmlkZ2UvZHdfaGRtaS5oICAgICAgICAgICAgICAgIHwgMTcgKysrKysr LS0tLS0tCj4gIDYgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHct aGRtaS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyBpbmRl eAo+IDFjYzYzYTE4YjdkNS4uZjAzODBiY2FlNTEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMKPiBAQCAtMjA3Myw3ICsyMDczLDcgQEAgc3RhdGljIGly cXJldHVybl90IGR3X2hkbWlfaGFyZGlycShpbnQgaXJxLCB2b2lkCj4gKmRldl9pZCkgcmV0dXJu IHJldDsKPiAgfQo+IAo+IC12b2lkIF9fZHdfaGRtaV9zZXR1cF9yeF9zZW5zZShzdHJ1Y3QgZHdf aGRtaSAqaGRtaSwgYm9vbCBocGQsIGJvb2wKPiByeF9zZW5zZSkgK3ZvaWQgZHdfaGRtaV9zZXR1 cF9yeF9zZW5zZShzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgYm9vbCBocGQsIGJvb2wKPiByeF9zZW5z ZSkgewo+ICAJbXV0ZXhfbG9jaygmaGRtaS0+bXV0ZXgpOwo+IAo+IEBAIC0yMDk5LDEzICsyMDk5 LDYgQEAgdm9pZCBfX2R3X2hkbWlfc2V0dXBfcnhfc2Vuc2Uoc3RydWN0IGR3X2hkbWkgKmhkbWks Cj4gYm9vbCBocGQsIGJvb2wgcnhfc2Vuc2UpIH0KPiAgCW11dGV4X3VubG9jaygmaGRtaS0+bXV0 ZXgpOwo+ICB9Cj4gLQo+IC12b2lkIGR3X2hkbWlfc2V0dXBfcnhfc2Vuc2Uoc3RydWN0IGRldmlj ZSAqZGV2LCBib29sIGhwZCwgYm9vbCByeF9zZW5zZSkKPiAtewo+IC0Jc3RydWN0IGR3X2hkbWkg KmhkbWkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAtCj4gLQlfX2R3X2hkbWlfc2V0dXBfcnhf c2Vuc2UoaGRtaSwgaHBkLCByeF9zZW5zZSk7Cj4gLX0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHdf aGRtaV9zZXR1cF9yeF9zZW5zZSk7Cj4gCj4gIHN0YXRpYyBpcnFyZXR1cm5fdCBkd19oZG1pX2ly cShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gQEAgLTIxNDEsOSArMjEzNCw4IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBkd19oZG1pX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gIAkgKi8KPiAg CWlmIChpbnRyX3N0YXQgJgo+ICAJICAgIChIRE1JX0lIX1BIWV9TVEFUMF9SWF9TRU5TRSB8IEhE TUlfSUhfUEhZX1NUQVQwX0hQRCkpIHsKPiAtCQlfX2R3X2hkbWlfc2V0dXBfcnhfc2Vuc2UoaGRt aSwKPiAtCQkJCQkgcGh5X3N0YXQgJiBIRE1JX1BIWV9IUEQsCj4gLQkJCQkJIHBoeV9zdGF0ICYg SERNSV9QSFlfUlhfU0VOU0UpOwo+ICsJCWR3X2hkbWlfc2V0dXBfcnhfc2Vuc2UoaGRtaSwgcGh5 X3N0YXQgJiBIRE1JX1BIWV9IUEQsCj4gKwkJCQkgICAgICAgcGh5X3N0YXQgJiBIRE1JX1BIWV9S WF9TRU5TRSk7Cj4gCj4gIAkJaWYgKChwaHlfc3RhdCAmIChIRE1JX1BIWV9SWF9TRU5TRSB8IEhE TUlfUEhZX0hQRCkpID09IDApCj4gIAkJCWNlY19ub3RpZmllcl9zZXRfcGh5c19hZGRyKGhkbWkt PmNlY19ub3RpZmllciwKPiBAQCAtMjUzMyw4ICsyNTI1LDYgQEAgX19kd19oZG1pX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gIAlpZiAoaGRtaS0+aTJjKQo+ICAJCWR3X2hk bWlfaTJjX2luaXQoaGRtaSk7Cj4gCj4gLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBoZG1p KTsKPiAtCj4gIAlyZXR1cm4gaGRtaTsKPiAKPiAgZXJyX2lhaGI6Cj4gQEAgLTI1ODQsMjUgKzI1 NzQsMjMgQEAgc3RhdGljIHZvaWQgX19kd19oZG1pX3JlbW92ZShzdHJ1Y3QgZHdfaGRtaSAqaGRt aSkKPiAgLyoKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLSAqIFByb2JlL3JlbW92ZSBBUEksIHVz ZWQgZnJvbSBwbGF0Zm9ybXMgYmFzZWQgb24gdGhlIERSTSBicmlkZ2UgQVBJLiAqLwo+IC1pbnQg ZHdfaGRtaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+IC0JCSAgY29uc3Qg c3RydWN0IGR3X2hkbWlfcGxhdF9kYXRhICpwbGF0X2RhdGEpCj4gK3N0cnVjdCBkd19oZG1pICpk d19oZG1pX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gKwkJCSAgICAgIGNv bnN0IHN0cnVjdCBkd19oZG1pX3BsYXRfZGF0YSAqcGxhdF9kYXRhKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHdfaGRtaSAqaGRtaTsKPiAKPiAgCWhkbWkgPSBfX2R3X2hkbWlfcHJvYmUocGRldiwgcGxhdF9k YXRhKTsKPiAgCWlmIChJU19FUlIoaGRtaSkpCj4gLQkJcmV0dXJuIFBUUl9FUlIoaGRtaSk7Cj4g KwkJcmV0dXJuIGhkbWk7Cj4gCj4gIAlkcm1fYnJpZGdlX2FkZCgmaGRtaS0+YnJpZGdlKTsKPiAK PiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIGhkbWk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwo ZHdfaGRtaV9wcm9iZSk7Cj4gCj4gLXZvaWQgZHdfaGRtaV9yZW1vdmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiArdm9pZCBkd19oZG1pX3JlbW92ZShzdHJ1Y3QgZHdfaGRtaSAqaGRt aSkKPiAgewo+IC0Jc3RydWN0IGR3X2hkbWkgKmhkbWkgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShw ZGV2KTsKPiAtCj4gIAlkcm1fYnJpZGdlX3JlbW92ZSgmaGRtaS0+YnJpZGdlKTsKPiAKPiAgCV9f ZHdfaGRtaV9yZW1vdmUoaGRtaSk7Cj4gQEAgLTI2MTIsMzEgKzI2MDAsMzAgQEAgRVhQT1JUX1NZ TUJPTF9HUEwoZHdfaGRtaV9yZW1vdmUpOwo+ICAvKgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0t ICogQmluZC91bmJpbmQgQVBJLCB1c2VkIGZyb20gcGxhdGZvcm1zIGJhc2VkIG9uIHRoZSBjb21w b25lbnQgZnJhbWV3b3JrLgo+ICovCj4gLWludCBkd19oZG1pX2JpbmQoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+IC0JCSBjb25zdCBz dHJ1Y3QgZHdfaGRtaV9wbGF0X2RhdGEgKnBsYXRfZGF0YSkKPiArc3RydWN0IGR3X2hkbWkgKmR3 X2hkbWlfYmluZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICsJCQkgICAgIHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICBjb25zdCBzdHJ1Y3QgZHdfaGRtaV9w bGF0X2RhdGEgKnBsYXRfZGF0YSkKPiAgewo+ICAJc3RydWN0IGR3X2hkbWkgKmhkbWk7Cj4gIAlp bnQgcmV0Owo+IAo+ICAJaGRtaSA9IF9fZHdfaGRtaV9wcm9iZShwZGV2LCBwbGF0X2RhdGEpOwo+ ICAJaWYgKElTX0VSUihoZG1pKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihoZG1pKTsKPiArCQlyZXR1 cm4gaGRtaTsKPiAKPiAgCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsICZoZG1pLT5i cmlkZ2UsIE5VTEwpOwo+ICAJaWYgKHJldCkgewo+ICAJCV9fZHdfaGRtaV9yZW1vdmUoaGRtaSk7 Cj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBicmlkZ2Ugd2l0aCBkcm1cbiIp Owo+IC0JCXJldHVybiByZXQ7Cj4gKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAgCX0KPiAKPiAt CXJldHVybiAwOwo+ICsJcmV0dXJuIGhkbWk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHdf aGRtaV9iaW5kKTsKPiAKPiAtdm9pZCBkd19oZG1pX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYp Cj4gK3ZvaWQgZHdfaGRtaV91bmJpbmQoc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4gIHsKPiAtCXN0 cnVjdCBkd19oZG1pICpoZG1pID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gLQo+ICAJX19kd19o ZG1pX3JlbW92ZShoZG1pKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkd19oZG1pX3VuYmlu ZCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXguYwo+IGIv ZHJpdmVycy9ncHUvZHJtL2lteC9kd19oZG1pLWlteC5jIGluZGV4IGI2Mjc2M2FhODcwNi4uYjAx ZDAzZTAyY2UwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXgu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvZHdfaGRtaS1pbXguYwo+IEBAIC0yNiw2ICsy Niw4IEBAIHN0cnVjdCBpbXhfaGRtaSB7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gIAlzdHJ1 Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsKPiAgCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKPiArCj4g KwlzdHJ1Y3QgZHdfaGRtaSAqaGRtaTsKPiAgfTsKPiAKPiAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg aW14X2hkbWkgKmVuY190b19pbXhfaGRtaShzdHJ1Y3QgZHJtX2VuY29kZXIgKmUpCj4gQEAgLTIz OSwyMiArMjQxLDI0IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9pbXhfYmluZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdAo+IGRldmljZSAqbWFzdGVyLCBkcm1fZW5jb2Rlcl9pbml0KGRybSwgZW5j b2RlciwgJmR3X2hkbWlfaW14X2VuY29kZXJfZnVuY3MsCj4gIAkJCSBEUk1fTU9ERV9FTkNPREVS X1RNRFMsIE5VTEwpOwo+IAo+IC0JcmV0ID0gZHdfaGRtaV9iaW5kKHBkZXYsIGVuY29kZXIsIHBs YXRfZGF0YSk7Cj4gKwloZG1pLT5oZG1pID0gZHdfaGRtaV9iaW5kKHBkZXYsIGVuY29kZXIsIHBs YXRfZGF0YSk7Cj4gKwlpZiAoSVNfRVJSKGhkbWktPmhkbWkpKSB7Cj4gKwkJZW5jb2Rlci0+ZnVu Y3MtPmRlc3Ryb3koZW5jb2Rlcik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIoaGRtaS0+aGRtaSk7Cj4g Kwl9Cj4gCj4gLQkvKgo+IC0JICogSWYgZHdfaGRtaV9iaW5kKCkgZmFpbHMgd2UnbGwgbmV2ZXIg Y2FsbCBkd19oZG1pX3VuYmluZCgpLAo+IC0JICogd2hpY2ggd291bGQgaGF2ZSBjYWxsZWQgdGhl IGVuY29kZXIgY2xlYW51cC4gIERvIGl0IG1hbnVhbGx5Lgo+IC0JICovCj4gLQlpZiAocmV0KQo+ IC0JCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gKwlkZXZfc2V0X2RydmRhdGEoZGV2 LCBoZG1pKTsKPiAKPiAtCXJldHVybiByZXQ7Cj4gKwlyZXR1cm4gMDsKPiAgfQo+IAo+ICBzdGF0 aWMgdm9pZCBkd19oZG1pX2lteF91bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlICptYXN0ZXIsCj4gIAkJCSAgICAgICB2b2lkICpkYXRhKQo+ICB7Cj4gLQlyZXR1cm4gZHdf aGRtaV91bmJpbmQoZGV2KTsKPiArCXN0cnVjdCBpbXhfaGRtaSAqaGRtaSA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwo+ICsKPiArCWR3X2hkbWlfdW5iaW5kKGhkbWktPmhkbWkpOwo+ICsJaGRtaS0+ ZW5jb2Rlci5mdW5jcy0+ZGVzdHJveSgmaGRtaS0+ZW5jb2Rlcik7Cj4gIH0KPiAKPiAgc3RhdGlj IGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIGR3X2hkbWlfaW14X29wcyA9IHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuYwo+IGIvZHJpdmVycy9n cHUvZHJtL21lc29uL21lc29uX2R3X2hkbWkuYyBpbmRleCAxN2RlM2FmZDk4ZjYuLjNmMWVjOWE1 Y2JmYgo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kd19oZG1p LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHdfaGRtaS5jCj4gQEAgLTE0 MCw2ICsxNDAsOCBAQCBzdHJ1Y3QgbWVzb25fZHdfaGRtaSB7Cj4gIAlzdHJ1Y3QgY2xrICp2ZW5j aV9jbGs7Cj4gIAlzdHJ1Y3QgcmVndWxhdG9yICpoZG1pX3N1cHBseTsKPiAgCXUzMiBpcnFfc3Rh dDsKPiArCj4gKwlzdHJ1Y3QgZHdfaGRtaSAqaGRtaTsKPiAgfTsKPiAgI2RlZmluZSBlbmNvZGVy X3RvX21lc29uX2R3X2hkbWkoeCkgXAo+ICAJY29udGFpbmVyX29mKHgsIHN0cnVjdCBtZXNvbl9k d19oZG1pLCBlbmNvZGVyKQo+IEBAIC01MjgsNyArNTMwLDcgQEAgc3RhdGljIGlycXJldHVybl90 IGR3X2hkbWlfdG9wX3RocmVhZF9pcnEoaW50IGlycSwgdm9pZAo+ICpkZXZfaWQpIGlmIChzdGF0 ICYgSERNSVRYX1RPUF9JTlRSX0hQRF9SSVNFKQo+ICAJCQlocGRfY29ubmVjdGVkID0gdHJ1ZTsK PiAKPiAtCQlkd19oZG1pX3NldHVwX3J4X3NlbnNlKGR3X2hkbWktPmRldiwgaHBkX2Nvbm5lY3Rl ZCwKPiArCQlkd19oZG1pX3NldHVwX3J4X3NlbnNlKGR3X2hkbWktPmhkbWksIGhwZF9jb25uZWN0 ZWQsCj4gIAkJCQkgICAgICAgaHBkX2Nvbm5lY3RlZCk7Cj4gCj4gIAkJZHJtX2hlbHBlcl9ocGRf aXJxX2V2ZW50KGR3X2hkbWktPmVuY29kZXIuZGV2KTsKPiBAQCAtODc4LDkgKzg4MCwxNCBAQCBz dGF0aWMgaW50IG1lc29uX2R3X2hkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gc3RydWN0 IGRldmljZSAqbWFzdGVyLCBkd19wbGF0X2RhdGEtPmlucHV0X2J1c19mb3JtYXQgPQo+IE1FRElB X0JVU19GTVRfWVVWOF8xWDI0Owo+ICAJZHdfcGxhdF9kYXRhLT5pbnB1dF9idXNfZW5jb2Rpbmcg PSBWNEwyX1lDQkNSX0VOQ183MDk7Cj4gCj4gLQlyZXQgPSBkd19oZG1pX2JpbmQocGRldiwgZW5j b2RlciwgJm1lc29uX2R3X2hkbWktPmR3X3BsYXRfZGF0YSk7Cj4gLQlpZiAocmV0KQo+IC0JCXJl dHVybiByZXQ7Cj4gKwltZXNvbl9kd19oZG1pLT5oZG1pID0gZHdfaGRtaV9iaW5kKHBkZXYsIGVu Y29kZXIsCj4gKwkJCQkJICAgJm1lc29uX2R3X2hkbWktPmR3X3BsYXRfZGF0YSk7Cj4gKwlpZiAo SVNfRVJSKG1lc29uX2R3X2hkbWktPmhkbWkpKSB7Cj4gKwkJZW5jb2Rlci0+ZnVuY3MtPmRlc3Ry b3koZW5jb2Rlcik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIobWVzb25fZHdfaGRtaS0+aGRtaSk7Cj4g Kwl9Cj4gKwo+ICsJZGV2X3NldF9kcnZkYXRhKGRldiwgbWVzb25fZHdfaGRtaSk7Cj4gCj4gIAlE Uk1fREVCVUdfRFJJVkVSKCJIRE1JIGNvbnRyb2xsZXIgaW5pdGlhbGl6ZWRcbiIpOwo+IAo+IEBA IC04OTAsNyArODk3LDEwIEBAIHN0YXRpYyBpbnQgbWVzb25fZHdfaGRtaV9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwKPiBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHN0YXRpYyB2b2lkIG1lc29uX2R3 X2hkbWlfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwKPiBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIs IHZvaWQgKmRhdGEpCj4gIHsKPiAtCWR3X2hkbWlfdW5iaW5kKGRldik7Cj4gKwlzdHJ1Y3QgbWVz b25fZHdfaGRtaSAqbWVzb25fZHdfaGRtaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiAr CWR3X2hkbWlfdW5iaW5kKG1lc29uX2R3X2hkbWktPmhkbWkpOwo+ICsJbWVzb25fZHdfaGRtaS0+ ZW5jb2Rlci5mdW5jcy0+ZGVzdHJveSgmbWVzb25fZHdfaGRtaS0+ZW5jb2Rlcik7Cj4gIH0KPiAK PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIG1lc29uX2R3X2hkbWlfb3BzID0g ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R3X2hkbWkuYwo+ IGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kd19oZG1pLmMgaW5kZXggZGM4NWI1M2Q1 OGVmLi43NjIxMGFlMjUwOTQKPiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2R3X2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHdf aGRtaS5jCj4gQEAgLTY4LDEyICs2OCwyMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGR3X2hkbWlf cGxhdF9kYXRhCj4gcmNhcl9kd19oZG1pX3BsYXRfZGF0YSA9IHsKPiAKPiAgc3RhdGljIGludCBy Y2FyX2R3X2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgewo+IC0J cmV0dXJuIGR3X2hkbWlfcHJvYmUocGRldiwgJnJjYXJfZHdfaGRtaV9wbGF0X2RhdGEpOwo+ICsJ c3RydWN0IGR3X2hkbWkgKmhkbWk7Cj4gKwo+ICsJaGRtaSA9IGR3X2hkbWlfcHJvYmUocGRldiwg JnJjYXJfZHdfaGRtaV9wbGF0X2RhdGEpOwo+ICsJaWYgKElTX0VSUihoZG1pKSkKPiArCQlyZXR1 cm4gUFRSX0VSUihoZG1pKTsKPiArCj4gKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBoZG1p KTsKPiArCj4gKwlyZXR1cm4gMDsKPiAgfQo+IAo+ICBzdGF0aWMgaW50IHJjYXJfZHdfaGRtaV9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgewo+IC0JZHdfaGRtaV9yZW1v dmUocGRldik7Cj4gKwlzdHJ1Y3QgZHdfaGRtaSAqaGRtaSA9IHBsYXRmb3JtX2dldF9kcnZkYXRh KHBkZXYpOwo+ICsKPiArCWR3X2hkbWlfcmVtb3ZlKGhkbWkpOwo+IAo+ICAJcmV0dXJuIDA7Cj4g IH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2No aXAuYwo+IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYyBpbmRl eAo+IDFlYjAyYTgyZmQ5MS4uZDQwNmQ3Nzc5ZWQ5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCj4gQEAgLTQ4LDYgKzQ4LDggQEAgc3RydWN0IHJv Y2tjaGlwX2hkbWkgewo+ICAJY29uc3Qgc3RydWN0IHJvY2tjaGlwX2hkbWlfY2hpcF9kYXRhICpj aGlwX2RhdGE7Cj4gIAlzdHJ1Y3QgY2xrICp2cGxsX2NsazsKPiAgCXN0cnVjdCBjbGsgKmdyZl9j bGs7Cj4gKwo+ICsJc3RydWN0IGR3X2hkbWkgKmhkbWk7Cj4gIH07Cj4gCj4gICNkZWZpbmUgdG9f cm9ja2NoaXBfaGRtaSh4KQljb250YWluZXJfb2YoeCwgc3RydWN0IHJvY2tjaGlwX2hkbWksIHgp Cj4gQEAgLTM3NywyMiArMzc5LDI0IEBAIHN0YXRpYyBpbnQgZHdfaGRtaV9yb2NrY2hpcF9iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwKPiBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIGRybV9lbmNvZGVy X2luaXQoZHJtLCBlbmNvZGVyLAo+ICZkd19oZG1pX3JvY2tjaGlwX2VuY29kZXJfZnVuY3MsCj4g IAkJCSBEUk1fTU9ERV9FTkNPREVSX1RNRFMsIE5VTEwpOwo+IAo+IC0JcmV0ID0gZHdfaGRtaV9i aW5kKHBkZXYsIGVuY29kZXIsIHBsYXRfZGF0YSk7Cj4gKwloZG1pLT5oZG1pID0gZHdfaGRtaV9i aW5kKHBkZXYsIGVuY29kZXIsIHBsYXRfZGF0YSk7Cj4gKwlpZiAoSVNfRVJSKGhkbWktPmhkbWkp KSB7Cj4gKwkJZW5jb2Rlci0+ZnVuY3MtPmRlc3Ryb3koZW5jb2Rlcik7Cj4gKwkJcmV0dXJuIFBU Ul9FUlIoaGRtaS0+aGRtaSk7Cj4gKwl9Cj4gCj4gLQkvKgo+IC0JICogSWYgZHdfaGRtaV9iaW5k KCkgZmFpbHMgd2UnbGwgbmV2ZXIgY2FsbCBkd19oZG1pX3VuYmluZCgpLAo+IC0JICogd2hpY2gg d291bGQgaGF2ZSBjYWxsZWQgdGhlIGVuY29kZXIgY2xlYW51cC4gIERvIGl0IG1hbnVhbGx5Lgo+ IC0JICovCj4gLQlpZiAocmV0KQo+IC0JCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4g KwlkZXZfc2V0X2RydmRhdGEoZGV2LCBoZG1pKTsKPiAKPiAtCXJldHVybiByZXQ7Cj4gKwlyZXR1 cm4gMDsKPiAgfQo+IAo+ICBzdGF0aWMgdm9pZCBkd19oZG1pX3JvY2tjaGlwX3VuYmluZChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UKPiAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICB7 Cj4gLQlyZXR1cm4gZHdfaGRtaV91bmJpbmQoZGV2KTsKPiArCXN0cnVjdCByb2NrY2hpcF9oZG1p ICpoZG1pID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ICsJZHdfaGRtaV91bmJpbmQoaGRt aS0+aGRtaSk7Cj4gKwloZG1pLT5lbmNvZGVyLmZ1bmNzLT5kZXN0cm95KCZoZG1pLT5lbmNvZGVy KTsKPiAgfQo+IAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgZHdfaGRtaV9y b2NrY2hpcF9vcHMgPSB7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1p LmggYi9pbmNsdWRlL2RybS9icmlkZ2UvZHdfaGRtaS5oCj4gaW5kZXggMTgyZjgzMjgzZTI0Li4y OWI4OTAwY2FhZjcgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaAo+ ICsrKyBiL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1pLmgKPiBAQCAtMTQzLDE0ICsxNDMsMTUg QEAgc3RydWN0IGR3X2hkbWlfcGxhdF9kYXRhIHsKPiAgCQkJICAgICB1bnNpZ25lZCBsb25nIG1w aXhlbGNsb2NrKTsKPiAgfTsKPiAKPiAtaW50IGR3X2hkbWlfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwKPiAtCQkgIGNvbnN0IHN0cnVjdCBkd19oZG1pX3BsYXRfZGF0YSAqcGxh dF9kYXRhKTsKPiAtdm9pZCBkd19oZG1pX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KTsKPiAtdm9pZCBkd19oZG1pX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+IC1pbnQg ZHdfaGRtaV9iaW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciwKPiAtCQkgY29uc3Qgc3RydWN0IGR3X2hkbWlfcGxhdF9kYXRhICpwbGF0 X2RhdGEpOwo+IC0KPiAtdm9pZCBkd19oZG1pX3NldHVwX3J4X3NlbnNlKHN0cnVjdCBkZXZpY2Ug KmRldiwgYm9vbCBocGQsIGJvb2wgcnhfc2Vuc2UpOwo+ICtzdHJ1Y3QgZHdfaGRtaSAqZHdfaGRt aV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICsJCQkgICAgICBjb25zdCBz dHJ1Y3QgZHdfaGRtaV9wbGF0X2RhdGEgKnBsYXRfZGF0YSk7Cj4gK3ZvaWQgZHdfaGRtaV9yZW1v dmUoc3RydWN0IGR3X2hkbWkgKmhkbWkpOwo+ICt2b2lkIGR3X2hkbWlfdW5iaW5kKHN0cnVjdCBk d19oZG1pICpoZG1pKTsKPiArc3RydWN0IGR3X2hkbWkgKmR3X2hkbWlfYmluZChzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2LAo+ICsJCQkgICAgIHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKPiArCQkJICAgICBjb25zdCBzdHJ1Y3QgZHdfaGRtaV9wbGF0X2RhdGEgKnBsYXRfZGF0YSk7 Cj4gKwo+ICt2b2lkIGR3X2hkbWlfc2V0dXBfcnhfc2Vuc2Uoc3RydWN0IGR3X2hkbWkgKmhkbWks IGJvb2wgaHBkLCBib29sIHJ4X3NlbnNlKTsKPiAKPiAgdm9pZCBkd19oZG1pX3NldF9zYW1wbGVf cmF0ZShzdHJ1Y3QgZHdfaGRtaSAqaGRtaSwgdW5zaWduZWQgaW50IHJhdGUpOwo+ICB2b2lkIGR3 X2hkbWlfYXVkaW9fZW5hYmxlKHN0cnVjdCBkd19oZG1pICpoZG1pKTsKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK