From mboxrd@z Thu Jan 1 00:00:00 1970
From: Philipp Zabel
Subject: Re: [PATCH RFC v2 08/14] drm: imx: Add MIPI DSI host controller driver
Date: Thu, 18 Dec 2014 12:39:00 +0100
Message-ID: <1418902740.4212.46.camel@pengutronix.de>
References: <1418886696-11636-1-git-send-email-Ying.Liu@freescale.com>
<1418886696-11636-9-git-send-email-Ying.Liu@freescale.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
In-Reply-To: <1418886696-11636-9-git-send-email-Ying.Liu@freescale.com>
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: Liu Ying
Cc: devicetree@vger.kernel.org, linux@arm.linux.org.uk, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, kernel@pengutronix.de, mturquette@linaro.org, linux-arm-kernel@lists.infradead.org
List-Id: devicetree@vger.kernel.org
QW0gRG9ubmVyc3RhZywgZGVuIDE4LjEyLjIwMTQsIDE1OjExICswODAwIHNjaHJpZWIgTGl1IFlp
bmc6Cj4gVGhpcyBwYXRjaCBhZGRzIGkuTVggTUlQSSBEU0kgaG9zdCBjb250cm9sbGVyIGRyaXZl
ciBzdXBwb3J0Lgo+IEN1cnJlbnRseSwgdGhlIGRyaXZlciBzdXBwb3J0cyB0aGUgYnVyc3Qgd2l0
aCBzeW5jIHB1bHNlcyBtb2RlIG9ubHkuCj4gCj4gU2lnbmVkLW9mZi1ieTogTGl1IFlpbmcgPFlp
bmcuTGl1QGZyZWVzY2FsZS5jb20+Cj4gLS0tCj4gdjEtPnYyOgo+ICAqIEFkZHJlc3MgYWxtb3N0
IGFsbCBjb21tZW50cyBmcm9tIFRoaWVycnkgUmVkaW5nIGFuZCBSdXNzZWxsLgo+ICAqIFVwZGF0
ZSB0aGUgRFQgZG9jdW1lbnRhdGlvbiB0byByZW1vdmUgdGhlIGRpc3BsYXktdGltaW5ncyBub2Rl
IGluIHRoZSBwYW5lbCBub2RlLgo+ICAqIFVwZGF0ZSB0aGUgRFQgZG9jdW1lbnRhdGlvbiB0byBz
dGF0ZSB0aGF0IHRoZSBub2RlcyB3aGljaCByZXByZXNlbnQgdGhlIHBvc3NpYmxlCj4gICAgRFJN
IENSVENzIHRoZSBjb250cm9sbGVyIG1heSBjb25uZWN0IHdpdGggc2hvdWxkIGJlIHBsYWNlZCBp
biB0aGUgbm9kZSAicG9ydHMiLgo+ICAqIFJlbW92ZSB0aGUgZmxhZyAnZW5hYmxlZCcgZnJvbSB0
aGUgc3RydWN0IGlteF9taXBpX2RzaS4KPiAgKiBNb3ZlIHRoZSBmb3JtYXRfdG9fYnBwKCkgZnVu
Y3Rpb24gaW4gdjEgdG8gdGhlIGNvbW1vbiBEUk0gTUlQSSBEU0kgZHJpdmVyLgo+ICAqIEltcHJv
dmUgdGhlIHdheSB3ZSB3YWl0IGZvciBjaGVjayBzdGF0dXMgZm9yIERQSFkgYW5kIGNvbW1hbmQg
cGFja2V0IHRyYW5zZmVyLgo+ICAqIEltcHJvdmUgdGhlIERQTVMgc3VwcG9ydCBmb3IgdGhlIGVu
Y29kZXIuCj4gICogU3BsaXQgdGhlIGZ1bmN0aW9ucyBvZiAtPmhvc3RfYXR0YWNoKCkgYW5kIC0+
bW9kZV92YWxpZCgpIGNsZWFybHkgYXMgc3VnZ2VzdGVkIGJ5Cj4gICAgVGhpZXJyeSBSZWRpbmcu
Cj4gICogSW1wcm92ZSB0aGUgbG9naWNzIGluIGlteF9taXBpX2RzaV9kY3NfbG9uZ193cml0ZSgp
Lgo+ICAqIEVuYWJsZS9kaXNhYmxlIHRoZSBwbGxyZWZfY2xrIGFuZCBwbGxyZWZfZ2F0ZV9jbGsg
YXQgdGhlIGNvbXBvbmVudCBiaW5kaW5nL3VuYmluZGluZwo+ICAgIHN0YWdlcyB0byBoZWxwIHJl
bW92ZSB0aGUgZmxhZyAnZW5hYmxlZCcuCj4gICogVXBkYXRlIHRoZSBtb2R1bGUgbGljZW5zZSB0
byBiZSAiR1BMIi4KPiAgKiBPdGhlciBtaW5vciBjaGFuZ2VzLCBzdWNoIGFzIGNvZGluZyBzdHls
ZSBpc3N1ZXMgYW5kIG1hY3JvIG5hbWluZyBpc3N1ZXMuCj4gCj4gIC4uLi9kZXZpY2V0cmVlL2Jp
bmRpbmdzL2RybS9pbXgvbWlwaV9kc2kudHh0ICAgICAgIHwgICA3OCArKwo+ICBkcml2ZXJzL2dw
dS9kcm0vaW14L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwo+ICBkcml2
ZXJzL2dwdS9kcm0vaW14L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwo+
ICBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1taXBpLWRzaS5jICAgICAgICAgICAgICAgICB8IDEw
NTYgKysrKysrKysrKysrKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMTQxIGluc2VydGlv
bnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k
aW5ncy9kcm0vaW14L21pcGlfZHNpLnR4dAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n
cHUvZHJtL2lteC9pbXgtbWlwaS1kc2kuYwo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u
L2RldmljZXRyZWUvYmluZGluZ3MvZHJtL2lteC9taXBpX2RzaS50eHQgYi9Eb2N1bWVudGF0aW9u
L2RldmljZXRyZWUvYmluZGluZ3MvZHJtL2lteC9taXBpX2RzaS50eHQKPiBuZXcgZmlsZSBtb2Rl
IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjg5MmVkNjIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv
RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RybS9pbXgvbWlwaV9kc2kudHh0Cj4g
QEAgLTAsMCArMSw3OCBAQAo+ICtEZXZpY2UtVHJlZSBiaW5kaW5ncyBmb3IgTUlQSSBEU0kgaG9z
dCBjb250cm9sbGVyCj4gKwo+ICtNSVBJIERTSSBob3N0IGNvbnRyb2xsZXIKPiArPT09PT09PT09
PT09PT09PT09PT09PT09Cj4gKwo+ICtUaGUgTUlQSSBEU0kgaG9zdCBjb250cm9sbGVyIGlzIGEg
U3lub3BzeXMgRGVzaWduV2FyZSBJUC4KPiArSXQgaXMgYSBkaWdpdGFsIGNvcmUgdGhhdCBpbXBs
ZW1lbnRzIGFsbCBwcm90b2NvbCBmdW5jdGlvbnMgZGVmaW5lZAo+ICtpbiB0aGUgTUlQSSBEU0kg
c3BlY2lmaWNhdGlvbiwgcHJvdmlkaW5nIGFuIGludGVyZmFjZSBiZXR3ZWVuIHRoZQo+ICtzeXN0
ZW0gYW5kIHRoZSBNSVBJIERQSFksIGFuZCBhbGxvd2luZyBjb21tdW5pY2F0aW9uIHdpdGggYSBN
SVBJIERTSQo+ICtjb21wbGlhbnQgZGlzcGxheS4KPiArCj4gK1JlcXVpcmVkIHByb3BlcnRpZXM6
Cj4gKyAtICNhZGRyZXNzLWNlbGxzOiBTaG91bGQgYmUgPDE+Lgo+ICsgLSAjc2l6ZS1jZWxsczog
U2hvdWxkIGJlIDwwPi4KPiArIC0gY29tcGF0aWJsZTogU2hvdWxkIGJlICJmc2wsaW14NnEtbWlw
aS1kc2kiIGZvciBpLk1YNnEvc2RsIFNvQ3MuCgpJZiB0aGlzIGlzIGEgU3lub3BzeXMgRGVzaWdu
V2FyZSBJUCBjb3JlIGFzIHRoZSBIRE1JIFRYLCBJIHRoaW5rIHRoZQpjb21wYXRpYmxlIHNob3Vs
ZCByZWZsZWN0IHRoYXQuIEhvdyBhYm91dCBhIHNlY29uZCBjb21wYXRpYmxlCiJzbnBzLGR3LW1p
cGktZHNpIj8KCj4gKyAtIHJlZzogUGh5c2ljYWwgYmFzZSBhZGRyZXNzIG9mIHRoZSBjb250cm9s
bGVyIGFuZCBsZW5ndGggb2YgbWVtb3J5Cj4gKyAgICAgICAgIG1hcHBlZCByZWdpb24uCj4gKyAt
IGludGVycnVwdHM6IFRoZSBjb250cm9sbGVyJ3MgaW50ZXJydXB0IG51bWJlciB0byB0aGUgQ1BV
KHMpLgo+ICsgLSBncHI6IFNob3VsZCBiZSA8Jmdwcj4uCj4gKyAgICAgICAgIFRoZSBwaGFuZGxl
IHBvaW50cyB0byB0aGUgaW9tdXhjLWdwciByZWdpb24gY29udGFpbmluZyB0aGUKPiArICAgICAg
ICAgbXVsdGlwbGV4ZXIgY29udHJvbCByZWdpc3RlciBmb3IgdGhlIGNvbnRyb2xsZXIuCj4gKyAt
IGNsb2NrcywgY2xvY2stbmFtZXM6IFBoYW5kbGVzIHRvIHRoZSBjb250cm9sbGVyIHBsbHJlZiwg
cGxscmVmX2dhdGUKPiArICAgICAgICAgICBhbmQgY29yZV9jZmcgY2xvY2tzLCBhcyBkZXNjcmli
ZWQgaW4gWzFdIGFuZCBbMl0uCj4gKwo+ICtSZXF1aXJlZCBzdWItbm9kZXM6Cj4gKyAtIHBvcnRz
OiBUaGlzIG5vZGUgbWF5IGNvbnRhaW4gdXAgdG8gZm91ciBwb3J0IG5vZGVzIHdpdGggZW5kcG9p
bnQKPiArICAgZGVmaW5pdGlvbnMgYXMgZGVmaW5lZCBpbiBbM10sIGNvcnJlc3BvbmRpbmcgdG8g
dGhlIGZvdXIgaW5wdXRzIHRvCj4gKyAgIHRoZSBjb250cm9sbGVyIG11bHRpcGxleGVyLgo+ICsg
LSBBIG5vZGUgdG8gcmVwcmVzZW50IGEgRFNJIHBlcmlwaGVyYWwgYXMgZGVzY3JpYmVkIGluIFs0
XS4KPiArCj4gK1sxXSBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svY2xv
Y2stYmluZGluZ3MudHh0Cj4gK1syXSBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv
Y2xvY2svaW14NnEtY2xvY2sudHh0Cj4gK1szXSBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu
ZGluZ3MvbWVkaWEvdmlkZW8taW50ZXJmYWNlcy50eHQKPiArWzRdIERvY3VtZW50YXRpb24vZGV2
aWNldHJlZS9iaW5kaW5ncy9taXBpL2RzaS9taXBpLWRzaS1idXMudHh0Cj4gKwo+ICtleGFtcGxl
Ogo+ICsJZ3ByOiBpb211eGMtZ3ByQDAyMGUwMDAwIHsKPiArCQkvKiAuLi4gKi8KPiArCX07Cj4g
Kwo+ICsJbWlwaV9kc2k6IG1pcGlAMDIxZTAwMDAgewo+ICsJCSNhZGRyZXNzLWNlbGxzID0gPDE+
Owo+ICsJCSNzaXplLWNlbGxzID0gPDA+Owo+ICsJCWNvbXBhdGlibGUgPSAiZnNsLGlteDZxLW1p
cGktZHNpIjsKPiArCQlyZWcgPSA8MHgwMjFlMDAwMCAweDQwMDA+Owo+ICsJCWludGVycnVwdHMg
PSA8MCAxMDIgSVJRX1RZUEVfTEVWRUxfSElHSD47Cj4gKwkJZ3ByID0gPCZncHI+Owo+ICsJCWNs
b2NrcyA9IDwmY2xrcyBJTVg2UURMX0NMS19WSURFT18yN00+LAo+ICsJCQkgPCZjbGtzIElNWDZR
RExfQ0xLX0hTSV9UWD4sCj4gKwkJCSA8JmNsa3MgSU1YNlFETF9DTEtfSFNJX1RYPjsKPiArCQlj
bG9jay1uYW1lcyA9ICJwbGxyZWYiLCAicGxscmVmX2dhdGUiLCAiY29yZV9jZmciOwoKTm90IHN1
cmUgYWJvdXQgdGhpcy4gQXJlIHRob3NlIG5hbWVzIGZyb20gdGhlIFN5bm9wc3lzIGRvY3VtZW50
YXRpb24/CgpBY2NvcmRpbmcgdG8gVGFibGUgNDEtMSBpbiB0aGUgaS5NWDZRIFJlZmVyZW5jZSBN
YW51YWwsIHRoaXMgbW9kdWxlIGhhcwo2IGNsb2NrIGlucHV0czoKIC0gYWNfY2xrXzEyNW0gKGZy
b20gYWhiX2Nsa19yb290KQogLSBwaXhlbF9jbGsgKGZyb20gYXhpX2Nsa19yb290KQogLSBjZmdf
Y2xrIGFuZCBwbGxfcmVmY2xrIChmcm9tIHZpZGVvXzI3bSkKIC0gaXBzX2NsayBhbmQgaXBnX2Ns
a19zIChmcm9tIGlwZ19jbGtfcm9vdCkKVGhlIENDTSBjaGFwdGVyIHNheXMgdGhhdCBvZiB0aGVz
ZSwgImFjX2Nsa18xMjVtIiwgImNmZ19jbGsiLCBpcHNfY2xrIiwKYW5kICJwbGxfcmVmY2xrIiBh
cmUgZ2F0ZWQgYnkgYSBzaW5nbGUgYml0IGNhbGxlZAoibWlwaV9jb3JlX2NmZ19jbGtfZW5hYmxl
IiwgdGhhdCBpcyBjbGtbQ0xLX0hTSV9UWF0uCklmIHRoYXQgaXMgY29ycmVjdCwgSSBzZWUgbm8g
cmVhc29uIGZvciB0aGUgInBsbHJlZl9nYXRlIiBjbG9jay4KSSBzdXBwb3NlIHR3byBjbG9ja3Mg
InBsbHJlZiIgYW5kICJjZmciIHNob3VsZCBzdWZmaWNlLgoKTWF5YmUgSFNJX1RYIHNob3VsZCBi
ZSBzcGxpdCB1cCBpbnRvIG11bHRpcGxlIHNoYXJlZCBnYXRlIGNsb2NrcyB0aGF0CmFsbCBzZXQg
dGhlIG1pcGlfY29yZV9jZmcgY2xvY2sgYml0cyAoc2VlIGJlbG93KS4KCj4gZGlmZiAtLWdpdCBh
L2RyaXZlcnMvZ3B1L2RybS9pbXgvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvS2NvbmZp
Zwo+IGluZGV4IDgyZmI3NTguLjAzZjA0ZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt
L2lteC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9LY29uZmlnCj4gQEAgLTUx
LDMgKzUxLDkgQEAgY29uZmlnIERSTV9JTVhfSERNSQo+ICAJZGVwZW5kcyBvbiBEUk1fSU1YCj4g
IAloZWxwCj4gIAkgIENob29zZSB0aGlzIGlmIHlvdSB3YW50IHRvIHVzZSBIRE1JIG9uIGkuTVg2
Lgo+ICsKPiArY29uZmlnIERSTV9JTVhfTUlQSV9EU0kKPiArCXRyaXN0YXRlICJGcmVlc2NhbGUg
aS5NWCBEUk0gTUlQSSBEU0kiCj4gKwlkZXBlbmRzIG9uIERSTV9JTVggJiYgTUZEX1NZU0NPTgo+
ICsJaGVscAo+ICsJICBDaG9vc2UgdGhpcyBpZiB5b3Ugd2FudCB0byB1c2UgTUlQSSBEU0kgb24g
aS5NWDYuCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvTWFrZWZpbGUgYi9kcml2
ZXJzL2dwdS9kcm0vaW14L01ha2VmaWxlCj4gaW5kZXggNTgyYzQzOC4uNDU3MWQ1MiAxMDA2NDQK
PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaW14L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUv
ZHJtL2lteC9NYWtlZmlsZQo+IEBAIC0xMCwzICsxMCw0IEBAIG9iai0kKENPTkZJR19EUk1fSU1Y
X0xEQikgKz0gaW14LWxkYi5vCj4gIGlteC1pcHV2My1jcnRjLW9ianMgIDo9IGlwdXYzLWNydGMu
byBpcHV2My1wbGFuZS5vCj4gIG9iai0kKENPTkZJR19EUk1fSU1YX0lQVVYzKQkrPSBpbXgtaXB1
djMtY3J0Yy5vCj4gIG9iai0kKENPTkZJR19EUk1fSU1YX0hETUkpICs9IGlteC1oZG1pLm8KPiAr
b2JqLSQoQ09ORklHX0RSTV9JTVhfTUlQSV9EU0kpICs9IGlteC1taXBpLWRzaS5vCj4gZGlmZiAt
LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LW1pcGktZHNpLmMgYi9kcml2ZXJzL2dwdS9k
cm0vaW14L2lteC1taXBpLWRzaS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw
MDAwLi4xY2I0MzI4Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgv
aW14LW1pcGktZHNpLmMKWy4uLl0KPiArc3RhdGljIGludCBpbXhfbWlwaV9kc2lfYmluZChzdHJ1
Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiArewo+
ICsJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYp
Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRhdGE7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25v
ZGUgKm5wID0gZGV2LT5vZl9ub2RlOwo+ICsJc3RydWN0IGlteF9taXBpX2RzaSAqZHNpOwo+ICsJ
c3RydWN0IHJlc291cmNlICpyZXM7Cj4gKwl1MzIgdmFsOwo+ICsJaW50IHJldDsKPiArCj4gKwlk
c2kgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmRzaSksIEdGUF9LRVJORUwpOwo+ICsJaWYg
KCFkc2kpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJZHNpLT5kZXYgPSBkZXY7Cj4gKwlk
c2ktPmRzaV9ob3N0Lm9wcyA9ICZpbXhfbWlwaV9kc2lfaG9zdF9vcHM7Cj4gKwlkc2ktPmRzaV9o
b3N0LmRldiA9IGRldjsKPiArCj4gKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwg
SU9SRVNPVVJDRV9NRU0sIDApOwo+ICsJZHNpLT5iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNl
KGRldiwgcmVzKTsKPiArCWlmIChJU19FUlIoZHNpLT5iYXNlKSkKPiArCQlyZXR1cm4gUFRSX0VS
Uihkc2ktPmJhc2UpOwo+ICsKPiArCWRzaS0+cmVnbWFwID0gc3lzY29uX3JlZ21hcF9sb29rdXBf
YnlfcGhhbmRsZShucCwgImdwciIpOwo+ICsJaWYgKElTX0VSUihkc2ktPnJlZ21hcCkpCj4gKwkJ
cmV0dXJuIFBUUl9FUlIoZHNpLT5yZWdtYXApOwo+ICsKPiArCWRzaS0+cGxscmVmX2NsayA9IGRl
dm1fY2xrX2dldChkZXYsICJwbGxyZWYiKTsKPiArCWlmIChJU19FUlIoZHNpLT5wbGxyZWZfY2xr
KSkgewo+ICsJCXJldCA9IFBUUl9FUlIoZHNpLT5wbGxyZWZfY2xrKTsKPiArCQlkZXZfZXJyKGRl
diwgIlVuYWJsZSB0byBnZXQgcGxsIHJlZmVyZW5jZSBjbG9jazogJWRcbiIsIHJldCk7Cj4gKwkJ
cmV0dXJuIHJldDsKPiArCX0KPiArCWNsa19wcmVwYXJlX2VuYWJsZShkc2ktPnBsbHJlZl9jbGsp
Owo+ICsKPiArCWRzaS0+cGxscmVmX2dhdGVfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgInBsbHJl
Zl9nYXRlIik7Cj4gKwlpZiAoSVNfRVJSKGRzaS0+cGxscmVmX2dhdGVfY2xrKSkgewo+ICsJCXJl
dCA9IFBUUl9FUlIoZHNpLT5wbGxyZWZfZ2F0ZV9jbGspOwo+ICsJCWRldl9lcnIoZGV2LCAiVW5h
YmxlIHRvIGdldCBwbGwgcmVmZXJlbmNlIGdhdGUgY2xvY2s6ICVkXG4iLCByZXQpOwo+ICsJCXJl
dHVybiByZXQ7Cj4gKwl9Cj4gKwljbGtfcHJlcGFyZV9lbmFibGUoZHNpLT5wbGxyZWZfZ2F0ZV9j
bGspOwoKQXMgc2FpZCBhYm92ZSwgSSBkb24ndCB0aGluayB0aGlzIGNsb2NrIGlzIG5lZWRlZCwg
b3IgaXMgaXQ/CgpJZiBlbmFibGluZyBwbGxyZWZfY2xrIGRvZXNuJ3QgYWN0dWFsbHkgZW5hYmxl
IHRoZSAyN20gY2xvY2sgaW5wdXQgdG8KdGhlIG1pcGkgZHNpIGNvcmUgYmVjYXVzZSBpdCBpcyBz
dGlsbCBnYXRlZCBieSBoc2lfdHgsIG1heWJlIHRoZSBjbG9jawp0cmVlIHNob3VsZCBiZSBmaXhl
ZCBhbmQgaHNpX3R4IHR1cm5lZCBpbnRvIG11bHRpcGxlCmlteF9jbGtfZ2F0ZTJfc2hhcmVkIGNs
b2Nrcy4KCj4gKwo+ICsJZHNpLT5jZmdfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgImNvcmVfY2Zn
Iik7Cj4gKwlpZiAoSVNfRVJSKGRzaS0+Y2ZnX2NsaykpIHsKPiArCQlyZXQgPSBQVFJfRVJSKGRz
aS0+Y2ZnX2Nsayk7Cj4gKwkJZGV2X2VycihkZXYsICJVbmFibGUgdG8gZ2V0IGNvbmZpZ3VyYXRp
b24gY2xvY2s6ICVkXG4iLCByZXQpOwoKQW5kIGxlYXZlIHBsbHJlZiBlbmFibGVkPwoKPiArCQly
ZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWNsa19wcmVwYXJlX2VuYWJsZShkc2ktPmNmZ19jbGsp
Owo+ICsJdmFsID0gZHNpX3JlYWQoZHNpLCBEU0lfVkVSU0lPTik7Cj4gKwljbGtfZGlzYWJsZV91
bnByZXBhcmUoZHNpLT5jZmdfY2xrKTsKPiArCj4gKwlkZXZfaW5mbyhkZXYsICJ2ZXJzaW9uIG51
bWJlciBpcyAweCUwOHhcbiIsIHZhbCk7Cj4gKwo+ICsJcmV0ID0gaW14X21pcGlfZHNpX3JlZ2lz
dGVyKGRybSwgZHNpKTsKPiArCWlmIChyZXQpCgpTYW1lIGhlcmUuCgo+ICsJCXJldHVybiByZXQ7
Cj4gKwo+ICsJZGV2X3NldF9kcnZkYXRhKGRldiwgZHNpKTsKPiArCj4gKwlyZXR1cm4gbWlwaV9k
c2lfaG9zdF9yZWdpc3RlcigmZHNpLT5kc2lfaG9zdCk7Cj4gK30KWy4uLl0KCnJlZ2FyZHMKUGhp
bGlwcAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp
LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6
Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK