From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?6YOR6Ziz?= Subject: Re: [PATCH v5 07/10] drm: bridge: dw-hdmi: Add support for custom PHY configuration Date: Thu, 27 Apr 2017 12:16:20 +0800 Message-ID: <3577802a-9114-0dd2-a2ee-5de350691d9e@rock-chips.com> References: <20170303172007.26541-1-laurent.pinchart+renesas@ideasonboard.com> <20170303172007.26541-8-laurent.pinchart+renesas@ideasonboard.com> <4f1a49ee-dd29-e60c-4b92-788a355d3e88@rock-chips.com> Reply-To: yang.zheng@rock-chips.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtphy.263.net (syd-smtp01.263.net [54.79.106.188]) by gabe.freedesktop.org (Postfix) with ESMTPS id F13436E63C for ; Thu, 27 Apr 2017 04:16:47 +0000 (UTC) Received: from smtphy.263.net (sg-smtp01.263.net [54.255.195.220]) by smtphy.263.net (Postfix) with ESMTPS id A1AFC4021E for ; Thu, 27 Apr 2017 12:16:46 +0800 (CST) Received: from transport.263xmail.com (unknown [38.83.106.156]) by smtphy.263.net (Postfix) with ESMTPS id D847317 for ; Thu, 27 Apr 2017 12:16:38 +0800 (CST) Received: from regular2.263xmail.com (unknown [192.168.165.161]) by transport.263xmail.com (Postfix) with ESMTP id 32DCF2385 for ; Thu, 27 Apr 2017 12:16:34 +0800 (CST) Received: from regular1.263xmail.com (unknown [192.168.165.185]) by regular2.263xmail.com (Postfix) with ESMTP id EFC1A18EC29 for ; Thu, 27 Apr 2017 12:16:24 +0800 (CST) Received: from zhengyang?rock-chips.com (unknown [192.168.167.225]) by regular1.263xmail.com (Postfix) with ESMTP id 8E9AA4B8E for ; Thu, 27 Apr 2017 12:16:20 +0800 (CST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jose Abreu , dri-devel@lists.freedesktop.org Cc: =?UTF-8?B?5p2o5oKm5Lmm?= , =?UTF-8?B?6JSh5p6r?= , "xhc@rock-chips.com" List-Id: dri-devel@lists.freedesktop.org SGksIEpvc2UgQWJyZXU6CgpUaGFua3MgZm9yIHlvdXIgcGF0Y2gsIGl0IHdvcmtzIGZpbmUgb24g UkszMzk5IC8gUkszMzY444CCCgrlnKggMjAxN+W5tDA05pyIMjbml6UgMTk6MDQsIEpvc2UgQWJy ZXUg5YaZ6YGTOgo+IEhpLAo+Cj4KPiBPbiAyNC0wNC0yMDE3IDA4OjQ2LCDpg5HpmLMgd3JvdGU6 Cj4+IEhpLCBMYXVyZW50IFBpbmNoYXJ0Ogo+Pgo+PiDlnKggMjAxN+W5tDAz5pyIMDTml6UgMDE6 MjAsIExhdXJlbnQgUGluY2hhcnQg5YaZ6YGTOgo+Pj4gRnJvbTogS2llcmFuIEJpbmdoYW0gPGtp ZXJhbi5iaW5naGFtK3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KPj4+Cj4+PiBUaGUgRFdDIEhE TUkgVFggY29udHJvbGxlciBpbnRlcmZhY2VzIHdpdGggYSBjb21wYW5pb24gUEhZLiBXaGlsZQo+ Pj4gU3lub3BzeXMgcHJvdmlkZXMgbXVsdGlwbGUgc3RhbmRhcmQgUEhZcywgU29DIHZlbmRvcnMg Y2FuIGFsc28KPj4+IGludGVncmF0ZQo+Pj4gYSBjdXN0b20gUEhZLgo+Pj4KPj4+IE1vZHVsYXJp emUgUEhZIGNvbmZpZ3VyYXRpb24gdG8gc3VwcG9ydCB2ZW5kb3IgUEhZcyB0aHJvdWdoCj4+PiBw bGF0Zm9ybQo+Pj4gZGF0YS4gVGhlIGV4aXN0aW5nIFBIWSBjb25maWd1cmF0aW9uIGNvZGUgd2Fz IG9yaWdpbmFsbHkKPj4+IHdyaXR0ZW4gdG8KPj4+IHN1cHBvcnQgdGhlIERXQyBIRE1JIDNEIFRY IFBIWSwgYW5kIHNlZW1zIHRvIGJlIGNvbXBhdGlibGUKPj4+IHdpdGggdGhlIERXQwo+Pj4gTUxQ IFBIWS4gVGhlIEhETUkgMi4wIFBIWSB3aWxsIHJlcXVpcmUgYSBzZXBhcmF0ZSBjb25maWd1cmF0 aW9uCj4+PiBmdW5jdGlvbi4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBLaWVyYW4gQmluZ2hhbQo+ Pj4gPGtpZXJhbi5iaW5naGFtK3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KPj4+IFNpZ25lZC1v ZmYtYnk6IExhdXJlbnQgUGluY2hhcnQKPj4+IDxsYXVyZW50LnBpbmNoYXJ0K3JlbmVzYXNAaWRl YXNvbmJvYXJkLmNvbT4KPj4+IFRlc3RlZC1ieTogTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdA YmF5bGlicmUuY29tPgo+Pj4gUmV2aWV3ZWQtYnk6IEpvc2UgQWJyZXUgPEpvc2UuQWJyZXVAc3lu b3BzeXMuY29tPgo+Pj4gLS0tCj4+PiBDaGFuZ2VzIHNpbmNlIHYxOgo+Pj4KPj4+IC0gQ2hlY2sg cGRhdGEtPnBoeV9jb25maWd1cmUgaW4gaGRtaV9waHlfY29uZmlndXJlKCkgdG8gYXZvaWQKPj4+ ICAgICBkZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlci4KPj4+IC0tLQo+Pj4gICAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9kdy1oZG1pLmMgfCAxMDkKPj4+ICsrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQo+Pj4gICAgaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaCAgICAg fCAgIDcgKysrCj4+PiAgICAyIGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDM1IGRl bGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R3 LWhkbWkuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R3LWhkbWkuYwo+Pj4gaW5kZXgg Y2IyNzAzODYyYmUyLi5iODM1ZDgxYmI0NzEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2R3LWhkbWkuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kdy1o ZG1pLmMKPj4+IEBAIC0xMTgsNiArMTE4LDkgQEAgc3RydWN0IGR3X2hkbWlfcGh5X2RhdGEgewo+ Pj4gICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7Cj4+PiAgICAgICAgdW5zaWduZWQgaW50IGdlbjsK Pj4+ICAgICAgICBib29sIGhhc19zdnNyZXQ7Cj4+PiArICAgIGludCAoKmNvbmZpZ3VyZSkoc3Ry dWN0IGR3X2hkbWkgKmhkbWksCj4+PiArICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkd19oZG1p X3BsYXRfZGF0YSAqcGRhdGEsCj4+PiArICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbXBpeGVs Y2xvY2spOwo+Pj4gICAgfTsKPj4+ICAgICAgc3RydWN0IGR3X2hkbWkgewo+Pj4gQEAgLTg2MCw4 ICs4NjMsOCBAQCBzdGF0aWMgYm9vbCBoZG1pX3BoeV93YWl0X2kyY19kb25lKHN0cnVjdAo+Pj4g ZHdfaGRtaSAqaGRtaSwgaW50IG1zZWMpCj4+PiAgICAgICAgcmV0dXJuIHRydWU7Cj4+PiAgICB9 Cj4+PiAgICAtc3RhdGljIHZvaWQgaGRtaV9waHlfaTJjX3dyaXRlKHN0cnVjdCBkd19oZG1pICpo ZG1pLAo+Pj4gdW5zaWduZWQgc2hvcnQgZGF0YSwKPj4+IC0gICAgICAgICAgICAgICAgIHVuc2ln bmVkIGNoYXIgYWRkcikKPj4+ICt2b2lkIGR3X2hkbWlfcGh5X2kyY193cml0ZShzdHJ1Y3QgZHdf aGRtaSAqaGRtaSwgdW5zaWduZWQKPj4+IHNob3J0IGRhdGEsCj4+PiArICAgICAgICAgICAgICAg dW5zaWduZWQgY2hhciBhZGRyKQo+Pj4gICAgewo+Pj4gICAgICAgIGhkbWlfd3JpdGViKGhkbWks IDB4RkYsIEhETUlfSUhfSTJDTVBIWV9TVEFUMCk7Cj4+PiAgICAgICAgaGRtaV93cml0ZWIoaGRt aSwgYWRkciwgSERNSV9QSFlfSTJDTV9BRERSRVNTX0FERFIpOwo+Pj4gQEAgLTg3Myw2ICs4NzYs NyBAQCBzdGF0aWMgdm9pZCBoZG1pX3BoeV9pMmNfd3JpdGUoc3RydWN0Cj4+PiBkd19oZG1pICpo ZG1pLCB1bnNpZ25lZCBzaG9ydCBkYXRhLAo+Pj4gICAgICAgICAgICAgICAgSERNSV9QSFlfSTJD TV9PUEVSQVRJT05fQUREUik7Cj4+PiAgICAgICAgaGRtaV9waHlfd2FpdF9pMmNfZG9uZShoZG1p LCAxMDAwKTsKPj4+ICAgIH0KPj4+ICtFWFBPUlRfU1lNQk9MX0dQTChkd19oZG1pX3BoeV9pMmNf d3JpdGUpOwo+Pj4gICAgICBzdGF0aWMgdm9pZCBkd19oZG1pX3BoeV9lbmFibGVfcG93ZXJkb3du KHN0cnVjdCBkd19oZG1pCj4+PiAqaGRtaSwgYm9vbCBlbmFibGUpCj4+PiAgICB7Cj4+PiBAQCAt OTkzLDM3ICs5OTcsNjcgQEAgc3RhdGljIGludCBkd19oZG1pX3BoeV9wb3dlcl9vbihzdHJ1Y3QK Pj4+IGR3X2hkbWkgKmhkbWkpCj4+PiAgICAgICAgcmV0dXJuIDA7Cj4+PiAgICB9Cj4+PiAgICAt c3RhdGljIGludCBoZG1pX3BoeV9jb25maWd1cmUoc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4+PiAr LyoKPj4+ICsgKiBQSFkgY29uZmlndXJhdGlvbiBmdW5jdGlvbiBmb3IgdGhlIERXQyBIRE1JIDNE IFRYIFBIWS4KPj4+IEJhc2VkIG9uIHRoZSBhdmFpbGFibGUKPj4+ICsgKiBpbmZvcm1hdGlvbiB0 aGUgRFdDIE1ITCBQSFkgaGFzIHRoZSBzYW1lIHJlZ2lzdGVyIGxheW91dAo+Pj4gYW5kIGlzIHRo dXMgYWxzbwo+Pj4gKyAqIHN1cHBvcnRlZCBieSB0aGlzIGZ1bmN0aW9uLgo+Pj4gKyAqLwo+Pj4g K3N0YXRpYyBpbnQgaGRtaV9waHlfY29uZmlndXJlX2R3Y19oZG1pXzNkX3R4KHN0cnVjdCBkd19o ZG1pCj4+PiAqaGRtaSwKPj4+ICsgICAgICAgIGNvbnN0IHN0cnVjdCBkd19oZG1pX3BsYXRfZGF0 YSAqcGRhdGEsCj4+PiArICAgICAgICB1bnNpZ25lZCBsb25nIG1waXhlbGNsb2NrKQo+Pj4gICAg ewo+Pj4gLSAgICBjb25zdCBzdHJ1Y3QgZHdfaGRtaV9waHlfZGF0YSAqcGh5ID0gaGRtaS0+cGh5 LmRhdGE7Cj4+PiAtICAgIGNvbnN0IHN0cnVjdCBkd19oZG1pX3BsYXRfZGF0YSAqcGRhdGEgPSBo ZG1pLT5wbGF0X2RhdGE7Cj4+PiAgICAgICAgY29uc3Qgc3RydWN0IGR3X2hkbWlfbXBsbF9jb25m aWcgKm1wbGxfY29uZmlnID0KPj4+IHBkYXRhLT5tcGxsX2NmZzsKPj4+ICAgICAgICBjb25zdCBz dHJ1Y3QgZHdfaGRtaV9jdXJyX2N0cmwgKmN1cnJfY3RybCA9IHBkYXRhLT5jdXJfY3RyOwo+Pj4g ICAgICAgIGNvbnN0IHN0cnVjdCBkd19oZG1pX3BoeV9jb25maWcgKnBoeV9jb25maWcgPQo+Pj4g cGRhdGEtPnBoeV9jb25maWc7Cj4+PiAgICAgICAgICAvKiBQTEwvTVBMTCBDZmcgLSBhbHdheXMg bWF0Y2ggb24gZmluYWwgZW50cnkgKi8KPj4+ICAgICAgICBmb3IgKDsgbXBsbF9jb25maWctPm1w aXhlbGNsb2NrICE9IH4wVUw7IG1wbGxfY29uZmlnKyspCj4+PiAtICAgICAgICBpZiAoaGRtaS0+ aGRtaV9kYXRhLnZpZGVvX21vZGUubXBpeGVsY2xvY2sgPD0KPj4+IC0gICAgICAgICAgICBtcGxs X2NvbmZpZy0+bXBpeGVsY2xvY2spCj4+PiArICAgICAgICBpZiAobXBpeGVsY2xvY2sgPD0gbXBs bF9jb25maWctPm1waXhlbGNsb2NrKQo+Pj4gICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiAgICAg ICAgICBmb3IgKDsgY3Vycl9jdHJsLT5tcGl4ZWxjbG9jayAhPSB+MFVMOyBjdXJyX2N0cmwrKykK Pj4+IC0gICAgICAgIGlmIChoZG1pLT5oZG1pX2RhdGEudmlkZW9fbW9kZS5tcGl4ZWxjbG9jayA8 PQo+Pj4gLSAgICAgICAgICAgIGN1cnJfY3RybC0+bXBpeGVsY2xvY2spCj4+PiArICAgICAgICBp ZiAobXBpeGVsY2xvY2sgPD0gY3Vycl9jdHJsLT5tcGl4ZWxjbG9jaykKPj4+ICAgICAgICAgICAg ICAgIGJyZWFrOwo+Pj4gICAgICAgICAgZm9yICg7IHBoeV9jb25maWctPm1waXhlbGNsb2NrICE9 IH4wVUw7IHBoeV9jb25maWcrKykKPj4+IC0gICAgICAgIGlmIChoZG1pLT5oZG1pX2RhdGEudmlk ZW9fbW9kZS5tcGl4ZWxjbG9jayA8PQo+Pj4gLSAgICAgICAgICAgIHBoeV9jb25maWctPm1waXhl bGNsb2NrKQo+Pj4gKyAgICAgICAgaWYgKG1waXhlbGNsb2NrIDw9IHBoeV9jb25maWctPm1waXhl bGNsb2NrKQo+Pj4gICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiAgICAgICAgICBpZiAobXBsbF9j b25maWctPm1waXhlbGNsb2NrID09IH4wVUwgfHwKPj4+ICAgICAgICAgICAgY3Vycl9jdHJsLT5t cGl4ZWxjbG9jayA9PSB+MFVMIHx8Cj4+PiAtICAgICAgICBwaHlfY29uZmlnLT5tcGl4ZWxjbG9j ayA9PSB+MFVMKSB7Cj4+PiAtICAgICAgICBkZXZfZXJyKGhkbWktPmRldiwgIlBpeGVsIGNsb2Nr ICVkIC0gdW5zdXBwb3J0ZWQgYnkKPj4+IEhETUlcbiIsCj4+PiAtICAgICAgICAgICAgaGRtaS0+ aGRtaV9kYXRhLnZpZGVvX21vZGUubXBpeGVsY2xvY2spOwo+Pj4gKyAgICAgICAgcGh5X2NvbmZp Zy0+bXBpeGVsY2xvY2sgPT0gfjBVTCkKPj4+ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ PiAtICAgIH0KPj4+ICsKPj4+ICsgICAgZHdfaGRtaV9waHlfaTJjX3dyaXRlKGhkbWksIG1wbGxf Y29uZmlnLT5yZXNbMF0uY3BjZSwKPj4+ICsgICAgICAgICAgICAgICAgICBIRE1JXzNEX1RYX1BI WV9DUENFX0NUUkwpOwo+Pj4gKyAgICBkd19oZG1pX3BoeV9pMmNfd3JpdGUoaGRtaSwgbXBsbF9j b25maWctPnJlc1swXS5nbXAsCj4+PiArICAgICAgICAgICAgICAgICAgSERNSV8zRF9UWF9QSFlf R01QQ1RSTCk7Cj4+PiArICAgIGR3X2hkbWlfcGh5X2kyY193cml0ZShoZG1pLCBjdXJyX2N0cmwt PmN1cnJbMF0sCj4+PiArICAgICAgICAgICAgICAgICAgSERNSV8zRF9UWF9QSFlfQ1VSUkNUUkwp Owo+Pj4gKwo+Pj4gKyAgICBkd19oZG1pX3BoeV9pMmNfd3JpdGUoaGRtaSwgMCwgSERNSV8zRF9U WF9QSFlfUExMUEhCWUNUUkwpOwo+Pj4gKyAgICBkd19oZG1pX3BoeV9pMmNfd3JpdGUoaGRtaSwK Pj4+IEhETUlfM0RfVFhfUEhZX01TTV9DVFJMX0NLT19TRUxfRkJfQ0xLLAo+Pj4gKyAgICAgICAg ICAgICAgICAgIEhETUlfM0RfVFhfUEhZX01TTV9DVFJMKTsKPj4+ICsKPj4+ICsgICAgZHdfaGRt aV9waHlfaTJjX3dyaXRlKGhkbWksIHBoeV9jb25maWctPnRlcm0sCj4+PiBIRE1JXzNEX1RYX1BI WV9UWFRFUk0pOwo+Pj4gKyAgICBkd19oZG1pX3BoeV9pMmNfd3JpdGUoaGRtaSwgcGh5X2NvbmZp Zy0+c3ltX2N0ciwKPj4+ICsgICAgICAgICAgICAgICAgICBIRE1JXzNEX1RYX1BIWV9DS1NZTVRY Q1RSTCk7Cj4+PiArICAgIGR3X2hkbWlfcGh5X2kyY193cml0ZShoZG1pLCBwaHlfY29uZmlnLT52 bGV2X2N0ciwKPj4+ICsgICAgICAgICAgICAgICAgICBIRE1JXzNEX1RYX1BIWV9WTEVWQ1RSTCk7 Cj4+PiArCj4+PiArICAgIC8qIE92ZXJyaWRlIGFuZCBkaXNhYmxlIGNsb2NrIHRlcm1pbmF0aW9u LiAqLwo+Pj4gKyAgICBkd19oZG1pX3BoeV9pMmNfd3JpdGUoaGRtaSwKPj4+IEhETUlfM0RfVFhf UEhZX0NLQ0FMQ1RSTF9PVkVSUklERSwKPj4+ICsgICAgICAgICAgICAgICAgICBIRE1JXzNEX1RY X1BIWV9DS0NBTENUUkwpOwo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+ PiArc3RhdGljIGludCBoZG1pX3BoeV9jb25maWd1cmUoc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4+ PiArewo+Pj4gKyAgICBjb25zdCBzdHJ1Y3QgZHdfaGRtaV9waHlfZGF0YSAqcGh5ID0gaGRtaS0+ cGh5LmRhdGE7Cj4+PiArICAgIGNvbnN0IHN0cnVjdCBkd19oZG1pX3BsYXRfZGF0YSAqcGRhdGEg PSBoZG1pLT5wbGF0X2RhdGE7Cj4+PiArICAgIHVuc2lnbmVkIGxvbmcgbXBpeGVsY2xvY2sgPQo+ Pj4gaGRtaS0+aGRtaV9kYXRhLnZpZGVvX21vZGUubXBpeGVsY2xvY2s7Cj4+PiArICAgIGludCBy ZXQ7Cj4+PiAgICAgICAgICBkd19oZG1pX3BoeV9wb3dlcl9vZmYoaGRtaSk7Cj4+PiAgICBAQCAt MTA0MiwyNiArMTA3NiwxNiBAQCBzdGF0aWMgaW50IGhkbWlfcGh5X2NvbmZpZ3VyZShzdHJ1Y3QK Pj4+IGR3X2hkbWkgKmhkbWkpCj4+PiAgICAgICAgICAgICAgICBIRE1JX1BIWV9JMkNNX1NMQVZF X0FERFIpOwo+Pj4gICAgICAgIGhkbWlfcGh5X3Rlc3RfY2xlYXIoaGRtaSwgMCk7Cj4+PiAgICAt ICAgIGhkbWlfcGh5X2kyY193cml0ZShoZG1pLCBtcGxsX2NvbmZpZy0+cmVzWzBdLmNwY2UsCj4+ PiAtICAgICAgICAgICAgICAgSERNSV8zRF9UWF9QSFlfQ1BDRV9DVFJMKTsKPj4+IC0gICAgaGRt aV9waHlfaTJjX3dyaXRlKGhkbWksIG1wbGxfY29uZmlnLT5yZXNbMF0uZ21wLAo+Pj4gLSAgICAg ICAgICAgICAgIEhETUlfM0RfVFhfUEhZX0dNUENUUkwpOwo+Pj4gLSAgICBoZG1pX3BoeV9pMmNf d3JpdGUoaGRtaSwgY3Vycl9jdHJsLT5jdXJyWzBdLAo+Pj4gLSAgICAgICAgICAgICAgIEhETUlf M0RfVFhfUEhZX0NVUlJDVFJMKTsKPj4+IC0KPj4+IC0gICAgaGRtaV9waHlfaTJjX3dyaXRlKGhk bWksIDAsIEhETUlfM0RfVFhfUEhZX1BMTFBIQllDVFJMKTsKPj4+IC0gICAgaGRtaV9waHlfaTJj X3dyaXRlKGhkbWksCj4+PiBIRE1JXzNEX1RYX1BIWV9NU01fQ1RSTF9DS09fU0VMX0ZCX0NMSywK Pj4+IC0gICAgICAgICAgICAgICBIRE1JXzNEX1RYX1BIWV9NU01fQ1RSTCk7Cj4+PiAtCj4+PiAt ICAgIGhkbWlfcGh5X2kyY193cml0ZShoZG1pLCBwaHlfY29uZmlnLT50ZXJtLAo+Pj4gSERNSV8z RF9UWF9QSFlfVFhURVJNKTsKPj4+IC0gICAgaGRtaV9waHlfaTJjX3dyaXRlKGhkbWksIHBoeV9j b25maWctPnN5bV9jdHIsCj4+PiAtICAgICAgICAgICAgICAgSERNSV8zRF9UWF9QSFlfQ0tTWU1U WENUUkwpOwo+Pj4gLSAgICBoZG1pX3BoeV9pMmNfd3JpdGUoaGRtaSwgcGh5X2NvbmZpZy0+dmxl dl9jdHIsCj4+PiAtICAgICAgICAgICAgICAgSERNSV8zRF9UWF9QSFlfVkxFVkNUUkwpOwo+Pj4g LQo+Pj4gLSAgICAvKiBPdmVycmlkZSBhbmQgZGlzYWJsZSBjbG9jayB0ZXJtaW5hdGlvbi4gKi8K Pj4+IC0gICAgaGRtaV9waHlfaTJjX3dyaXRlKGhkbWksIEhETUlfM0RfVFhfUEhZX0NLQ0FMQ1RS TF9PVkVSUklERSwKPj4+IC0gICAgICAgICAgICAgICBIRE1JXzNEX1RYX1BIWV9DS0NBTENUUkwp Owo+Pj4gKyAgICAvKiBXcml0ZSB0byB0aGUgUEhZIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIHBsYXRm b3JtICovCj4+PiArICAgIGlmIChwZGF0YS0+Y29uZmlndXJlX3BoeSkKPj4+ICsgICAgICAgIHJl dCA9IHBkYXRhLT5jb25maWd1cmVfcGh5KGhkbWksIHBkYXRhLCBtcGl4ZWxjbG9jayk7Cj4+PiAr ICAgIGVsc2UKPj4+ICsgICAgICAgIHJldCA9IHBoeS0+Y29uZmlndXJlKGhkbWksIHBkYXRhLCBt cGl4ZWxjbG9jayk7Cj4+PiArICAgIGlmIChyZXQpIHsKPj4+ICsgICAgICAgIGRldl9lcnIoaGRt aS0+ZGV2LCAiUEhZIGNvbmZpZ3VyYXRpb24gZmFpbGVkIChjbG9jawo+Pj4gJWx1KVxuIiwKPj4+ ICsgICAgICAgICAgICBtcGl4ZWxjbG9jayk7Cj4+PiArICAgICAgICByZXR1cm4gcmV0Owo+Pj4g KyAgICB9Cj4+PiAgICAgICAgICByZXR1cm4gZHdfaGRtaV9waHlfcG93ZXJfb24oaGRtaSk7Cj4+ PiAgICB9Cj4+PiBAQCAtMTg5NSwyNCArMTkxOSwzMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGR3 X2hkbWlfcGh5X2RhdGEKPj4+IGR3X2hkbWlfcGh5c1tdID0gewo+Pj4gICAgICAgICAgICAubmFt ZSA9ICJEV0MgTUhMIFBIWSArIEhFQUMgUEhZIiwKPj4+ICAgICAgICAgICAgLmdlbiA9IDIsCj4+ PiAgICAgICAgICAgIC5oYXNfc3ZzcmV0ID0gdHJ1ZSwKPj4+ICsgICAgICAgIC5jb25maWd1cmUg PSBoZG1pX3BoeV9jb25maWd1cmVfZHdjX2hkbWlfM2RfdHgsCj4+PiAgICAgICAgfSwgewo+Pj4g ICAgICAgICAgICAudHlwZSA9IERXX0hETUlfUEhZX0RXQ19NSExfUEhZLAo+Pj4gICAgICAgICAg ICAubmFtZSA9ICJEV0MgTUhMIFBIWSIsCj4+PiAgICAgICAgICAgIC5nZW4gPSAyLAo+Pj4gICAg ICAgICAgICAuaGFzX3N2c3JldCA9IHRydWUsCj4+PiArICAgICAgICAuY29uZmlndXJlID0gaGRt aV9waHlfY29uZmlndXJlX2R3Y19oZG1pXzNkX3R4LAo+Pj4gICAgICAgIH0sIHsKPj4+ICAgICAg ICAgICAgLnR5cGUgPSBEV19IRE1JX1BIWV9EV0NfSERNSV8zRF9UWF9QSFlfSEVBQywKPj4+ICAg ICAgICAgICAgLm5hbWUgPSAiRFdDIEhETUkgM0QgVFggUEhZICsgSEVBQyBQSFkiLAo+Pj4gICAg ICAgICAgICAuZ2VuID0gMiwKPj4+ICsgICAgICAgIC5jb25maWd1cmUgPSBoZG1pX3BoeV9jb25m aWd1cmVfZHdjX2hkbWlfM2RfdHgsCj4+PiAgICAgICAgfSwgewo+Pj4gICAgICAgICAgICAudHlw ZSA9IERXX0hETUlfUEhZX0RXQ19IRE1JXzNEX1RYX1BIWSwKPj4+ICAgICAgICAgICAgLm5hbWUg PSAiRFdDIEhETUkgM0QgVFggUEhZIiwKPj4+ICAgICAgICAgICAgLmdlbiA9IDIsCj4+PiArICAg ICAgICAuY29uZmlndXJlID0gaGRtaV9waHlfY29uZmlndXJlX2R3Y19oZG1pXzNkX3R4LAo+Pj4g ICAgICAgIH0sIHsKPj4+ICAgICAgICAgICAgLnR5cGUgPSBEV19IRE1JX1BIWV9EV0NfSERNSTIw X1RYX1BIWSwKPj4+ICAgICAgICAgICAgLm5hbWUgPSAiRFdDIEhETUkgMi4wIFRYIFBIWSIsCj4+ PiAgICAgICAgICAgIC5nZW4gPSAyLAo+Pj4gICAgICAgICAgICAuaGFzX3N2c3JldCA9IHRydWUs Cj4+IEFmdGVyIHRoaXMgY29tbWl0LCB0aGUgZHctaGRtaSBvbiBSSzMzNjgvUkszMzk5IHJ1biBp bnRvIHRoZQo+PiAiRFdDIEhETUkgMi4wIFRYIFBIWSByZXF1aXJlcyBwbGF0Zm9ybSBzdXBwb3J0 IGVycm9yIi4KPj4gdGhlIHBoeS10eXBlIG9mIFJLMzM2OC9SSzMzOTkgaXMgMHhmMywgYW5kIHBo eSByZWdpc3RlciBsYXlvdXQgaXMKPj4gY29tcGF0aWJsZSB3aXRoIERXX0hETUlfUEhZX0RXQ19I RE1JXzNEX1RYX1BIWV9IRUFDLgo+PiBJcyBoZXJlIG1pc3NpbmcgYSBkZWZhdWx0IHBoeSBjb25m aWd1cmUgZnVuY3Rpb24/Cj4gSWYgdGhpcyBoYXMgdGhlIHNhbWUgcmVnaXN0ZXIgbGF5b3V0IHRo ZW4gdGhpcyBwYXRjaCBzaG91bGQgc29sdmUKPiB0aGUgcHJvYmxlbToKPgo+IC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMKPiBi L2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gaW5kZXggNGUxZjU0 YS4uZmY5Njg2NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lz L2R3LWhkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRt aS5jCj4gQEAgLTIxNTksNiArMjE1OSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBkd19oZG1pX2ly cShpbnQgaXJxLAo+IHZvaWQgKmRldl9pZCkKPiAgICAgICAgICAgICAgICAgIC5uYW1lID0gIkRX QyBIRE1JIDIuMCBUWCBQSFkiLAo+ICAgICAgICAgICAgICAgICAgLmdlbiA9IDIsCj4gICAgICAg ICAgICAgICAgICAuaGFzX3N2c3JldCA9IHRydWUsCj4gKyAgICAgICAgICAgICAgIC5jb25maWd1 cmUgPSBoZG1pX3BoeV9jb25maWd1cmVfZHdjX2hkbWlfM2RfdHgsCj4gICAgICAgICAgfSwgewo+ ICAgICAgICAgICAgICAgICAgLnR5cGUgPSBEV19IRE1JX1BIWV9WRU5ET1JfUEhZLAo+ICAgICAg ICAgICAgICAgICAgLm5hbWUgPSAiVmVuZG9yIFBIWSIsCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Cj4gUGxlYXNlIHRl c3QgYW5kIGxldCBtZSBrbm93IGlmIGl0cyBvay4gVGhpcyBzaG91bGRuJ3QgaW1wYWN0Cj4gb3Ro ZXIgcGxhdGZvcm1zIHdoaWNoIHN1cHBseSBjdXN0b20gY29uZmlndXJhdGlvbiBmdW5jdGlvbiBi eQo+IHBkYXRhIGFzIHRoZSBjaGVjayBmb3IgcGRhdGEgY29uZmlndXJlKCkgaXMgZG9uZSBiZWZv cmUgY2hlY2tpbmcKPiB0aGUgaW50ZXJuYWwgY29uZmlndXJlKCkuCj4KPiBCZXN0IHJlZ2FyZHMs Cj4gSm9zZSBNaWd1ZWwgQWJyZXUKPgo+Pj4gKyAgICB9LCB7Cj4+PiArICAgICAgICAudHlwZSA9 IERXX0hETUlfUEhZX1ZFTkRPUl9QSFksCj4+PiArICAgICAgICAubmFtZSA9ICJWZW5kb3IgUEhZ IiwKPj4+ICAgICAgICB9Cj4+PiAgICB9Owo+Pj4gICAgQEAgLTE5NDMsNiArMTk3NCwxNCBAQCBz dGF0aWMgaW50IGR3X2hkbWlfZGV0ZWN0X3BoeShzdHJ1Y3QKPj4+IGR3X2hkbWkgKmhkbWkpCj4+ PiAgICAgICAgICAgICAgICBoZG1pLT5waHkub3BzID0gJmR3X2hkbWlfc3lub3BzeXNfcGh5X29w czsKPj4+ICAgICAgICAgICAgICAgIGhkbWktPnBoeS5uYW1lID0gZHdfaGRtaV9waHlzW2ldLm5h bWU7Cj4+PiAgICAgICAgICAgICAgICBoZG1pLT5waHkuZGF0YSA9ICh2b2lkICopJmR3X2hkbWlf cGh5c1tpXTsKPj4+ICsKPj4+ICsgICAgICAgICAgICBpZiAoIWR3X2hkbWlfcGh5c1tpXS5jb25m aWd1cmUgJiYKPj4+ICsgICAgICAgICAgICAgICAgIWhkbWktPnBsYXRfZGF0YS0+Y29uZmlndXJl X3BoeSkgewo+Pj4gKyAgICAgICAgICAgICAgICBkZXZfZXJyKGhkbWktPmRldiwgIiVzIHJlcXVp cmVzIHBsYXRmb3JtCj4+PiBzdXBwb3J0XG4iLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgaGRt aS0+cGh5Lm5hbWUpOwo+Pj4gKyAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKPj4+ICsg ICAgICAgICAgICB9Cj4+PiArCj4+PiAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+ICAgICAg ICAgICAgfQo+Pj4gICAgICAgIH0KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9icmlkZ2Uv ZHdfaGRtaS5oCj4+PiBiL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1pLmgKPj4+IGluZGV4IDBm NTgzY2E3ZTY2ZS4uZGQzMzAyNTlhM2RjIDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vYnJp ZGdlL2R3X2hkbWkuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaAo+Pj4g QEAgLTc4LDYgKzc4LDkgQEAgc3RydWN0IGR3X2hkbWlfcGxhdF9kYXRhIHsKPj4+ICAgICAgICBj b25zdCBzdHJ1Y3QgZHdfaGRtaV9tcGxsX2NvbmZpZyAqbXBsbF9jZmc7Cj4+PiAgICAgICAgY29u c3Qgc3RydWN0IGR3X2hkbWlfY3Vycl9jdHJsICpjdXJfY3RyOwo+Pj4gICAgICAgIGNvbnN0IHN0 cnVjdCBkd19oZG1pX3BoeV9jb25maWcgKnBoeV9jb25maWc7Cj4+PiArICAgIGludCAoKmNvbmZp Z3VyZV9waHkpKHN0cnVjdCBkd19oZG1pICpoZG1pLAo+Pj4gKyAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGR3X2hkbWlfcGxhdF9kYXRhICpwZGF0YSwKPj4+ICsgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgbXBpeGVsY2xvY2spOwo+Pj4gICAgfTsKPj4+ICAgICAgaW50IGR3X2hk bWlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPj4+IEBAIC05MSw0ICs5NCw4 IEBAIHZvaWQgZHdfaGRtaV9zZXRfc2FtcGxlX3JhdGUoc3RydWN0IGR3X2hkbWkKPj4+ICpoZG1p LCB1bnNpZ25lZCBpbnQgcmF0ZSk7Cj4+PiAgICB2b2lkIGR3X2hkbWlfYXVkaW9fZW5hYmxlKHN0 cnVjdCBkd19oZG1pICpoZG1pKTsKPj4+ICAgIHZvaWQgZHdfaGRtaV9hdWRpb19kaXNhYmxlKHN0 cnVjdCBkd19oZG1pICpoZG1pKTsKPj4+ICAgICsvKiBQSFkgY29uZmlndXJhdGlvbiAqLwo+Pj4g K3ZvaWQgZHdfaGRtaV9waHlfaTJjX3dyaXRlKHN0cnVjdCBkd19oZG1pICpoZG1pLCB1bnNpZ25l ZAo+Pj4gc2hvcnQgZGF0YSwKPj4+ICsgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGFkZHIp Owo+Pj4gKwo+Pj4gICAgI2VuZGlmIC8qIF9fSU1YX0hETUlfSF9fICovCj4+Cj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGRyaS1kZXZlbCBtYWls aW5nIGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL3Vy bGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2xpc3RzLmZyZWVkZXNr dG9wLm9yZ19tYWlsbWFuX2xpc3RpbmZvX2RyaS0yRGRldmVsJmQ9RHdJR2FRJmM9RFBMNl9YXzZK a1hGeDdBWFdxQjB0ZyZyPXlhVkZVNFRqR1kwZ1ZGOEVsMXVLY2lzeTZUUHN5Q2w5dU43V3Npcy1x aFkmbT1jankzT2c4X2w1UHhTNHFhMl9SZWtKQl9CaV9KNHNWWFIxekgyNHJZN25nJnM9YkgwaTlr bFdvSG5ZZTVkOXdNNEVpMnVfMmJrR1VlWkpaVjVKN0JzQkNxRSZlPQo+Cj4KPgo+CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==