From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FORGED_YAHOO_RCVD,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E335AC433E0 for ; Wed, 8 Jul 2020 02:28:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AE573206E9 for ; Wed, 8 Jul 2020 02:28:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=yahoo.com header.i=@yahoo.com header.b="ojbPNlb0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AE573206E9 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=yahoo.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CA0689CAA; Wed, 8 Jul 2020 02:28:50 +0000 (UTC) Received: from sonic303-2.consmr.mail.sg3.yahoo.com (sonic303-2.consmr.mail.sg3.yahoo.com [106.10.242.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id E7E5C89CAA for ; Wed, 8 Jul 2020 02:28:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1594175324; bh=Sh/r3VoNeF8ASlPm0JlYp+kXUivfNs7LUzAiU8NRNU0=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From:Subject; b=ojbPNlb0DKAJHN30Vg8Jb0whbZAkkuToBZg+UgRbN3ZKYHhZMr7wrDLgk7qEQPfpKSF1KTI1liHbGsAC4qRmIZfkq++FTu2yXjoCQnH7yaSP/DIcxB6JbCZivSW079eslWH62n2gTzmnTHM3K6sfdeYxf6IHTFhOtopLQnPZkyb0cJ8ei/SzrJAkY8r2TP/8S3ojqmMMtzDEroRg9gG+5cRSdrgLdaESGJv1WRXWxN/bmMKphOz/FtJ+1VmfWbxMKFgWZCu7KGom2+F5oLm/RpBR1sN4pk2UTiOtqkNtnHI3VaPMxB7WKpO3N/BgQlLn8Rg+MNPph0nhPAMNvwRAoA== X-YMail-OSG: vdcNOoEVM1n8yPPuiVjGgCuLtke00jAaOeHU3C_Qt.qmldc13hFHliBMDt4x8le gIO32ce7UUm68rTXnAcsehcJzWtKF12gLT4zItwIUauC7lVkkRZ3XvA6VsHQFdTZGhlWdMi4aRnR K6h7MxbX6.BE7he7PhxCIrKlUF3WxvB_hlyGqK.BqXi3xk8oU89l2mEr3S.dzpX5OvcoNXlP24mG mSZYqxp7R1MScVIIeXEGKcHXtY3BoUApjLWp8925sF_l7gjT8tz7a8Qo4r5JjYDOk0JgnrdI6j14 2ZXCf18.4..qsVm2EMaOYW_rfk4iAQKaLWLdVTwrhZ3HySss9iIcrU3uNGhyEOEzrJcBQchel.sE GkmFS6XNFzptUiLODWeJWiAd8hWQ3gumZEMDLVNaiyYUqxfjdGTJusCr.9qMv96K8tIHbSHpZHU6 qpuBjHKsCCu2XfrNK5DpFXe0XRSh6ILb78NVlo1IejUQSjCmGkDhPJ1Y4Z1ub_Qaeez.AhT6krVE 08Sk.T6srCRhdMRNJDmTdQwGLHFk93wajg6mqa9ThLHyT23vO.xjq5s.2kOC1guAOnZLz3zt_GGq 5ZOcEULtd0XhtYsh4wKyGtmI4f7Hemfz46KynrwMSaqI14wfj6f2.4iilgsBIonF.Hbl3FKhYT6r Gio42hC2QCNjb1eMQbwenFB56RWmWasTT.fsYlNvt4gChdu7w2F0mYsoTgwleBA0Hru_16h4FeD0 ZBBVfPU0ucPKyuNatwX8Qqa77pVCtFBKIEA.Kg3wFzp.Srqq4LdBXAxi7goTOrroKf6XG6YK4NKT EwJvnb5hndAqoUTFJtREVJUzBAYRAeB3mrWMmEaCY7djMtI_Hykb3IzAeUNS5W2vRfLx7HwgWnk8 s7AQJexSQLpd13ozPAPs5uS5tNOebj3LvTO6_BZ9eZcqM896E70JW6L5i7aPSPhX_OFdeOwZbPj0 A9GmJlEqjKG8wnUTb9VHXr8KN0nsXmAOMgOmQV_HSlgfZ4xTnf9WshNL.EWSoG2W7jWTak.d9hc0 M0N4m2VK4oIctTY3FnQiMLUuH99YeyVXu1LJLmt0J6xt9iet4Gq5fr5v5Sw.oevLIGURKdrs8bPB R0Md0StcAwApATS9U6TH5hEpv9L37Gju.mxA4kU9qGIU.8L_s90zWSRnHqksZwZFVcDkGCKmeCGg 9TQ.Tak3dN2zsKGZ.AvzwLQ.ElSX95Tl5K34hQSRxoYfnmrYcyGqDvjuloNb3Xhq5cYAOdS0MR8d DUcLycuhNqQCMBD5dukyGEoV61yT4NyM8f1qFb7xW7MvAYXAGYWKbUpdAAvlphU0VF9yA3Al_nTG qQYEDMnbInXXFaRgfCZ_n5Cy2ap.UB11yaCyaHdXRPznIPiJxuQk6GwjRGQxSGCj_uUGnEXA5y.s ypAICdcECWp5h.6Sb6SisyGGph3JYDxySRc9495g- Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.sg3.yahoo.com with HTTP; Wed, 8 Jul 2020 02:28:44 +0000 Received: by smtp416.mail.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 93eaa842a8d60ef695b31814693f4217; Wed, 08 Jul 2020 02:26:43 +0000 (UTC) Subject: Re: [RFC PATCH 3/4] gpu/drm: Add TinyDRM for DSI/DBI panels To: Paul Cercueil , =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , Emil Velikov , Daniel Vetter , Sam Ravnborg References: <20200607133832.1730288-1-paul@crapouillou.net> <20200607133832.1730288-4-paul@crapouillou.net> From: Sandy Huang Message-ID: <07361e49-6799-ff9b-d5db-57a8d0709f3c@yahoo.com> Date: Wed, 8 Jul 2020 10:26:40 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <20200607133832.1730288-4-paul@crapouillou.net> X-Mailer: WebService/1.1.16197 hermes_yahoo Apache-HttpAsyncClient/4.1.4 (Java/11.0.7) X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: od@zcrc.me, dri-devel Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgcGF1bCwKCiDCoMKgwqAgQWZ0ZXIgYWRkIHRoaXMgZHJpdmVyLCB0aGUgZm9sbG93aW5pZyB1 c2FnZSBzY2VuYXJpb3MgY2FuIGJlIHN1cHBvcnRlZD8KCiDCoMKgwqAgcGFuZWwgMS4gY3J0Yy0+ ZW5jb2Rlci0+Y29ubmVjdG9yW2VkcC9oZG1pL21pcGkgZHNpXSAtPiBwYW5lbAoKIMKgwqDCoCBw YW5lbCAyLiBQYW5lbCBzZXR1cC9jb250cm9sIGFuZCBmcmFtZWJ1ZmZlciB1cGxvYWQgb3ZlciBT UEkKCiDCoMKgwqAgdGhlIHR3byBwYW5lbCBtYXliZSBkaXNwbGF5IHNhbWUvZGlmZmVyZW50IGNv bmN0ZW50IGF0IHNhbWUgdGltZS4KCgrlnKggMjAyMC82LzcgMjE6MzgsIFBhdWwgQ2VyY3VlaWwg 5YaZ6YGTOgo+IFRoZSBuZXcgQVBJIGZ1bmN0aW9uIG1pcGlfZHNpX21heWJlX3JlZ2lzdGVyX3Rp bnlfZHJpdmVyKCkgaXMgc3VwcG9zZWQKPiB0byBiZSBjYWxsZWQgYnkgRFNJL0RCSSBwYW5lbCBk cml2ZXJzIGF0IHRoZSBlbmQgb2YgdGhlaXIgcHJvYmUuCj4KPiBJZiBpdCBpcyBkZXRlY3RlZCB0 aGF0IHRoZSBwYW5lbCBpcyBub3QgY29ubmVjdGVkIHRvIGFueSBjb250cm9sbGVyLAo+IGJlY2F1 c2UgaXQgaGFzIG5vIHBvcnQgIzAgbm9kZSBpbiBEZXZpY2UgVHJlZSB0aGF0IHBvaW50cyBiYWNr IHRvIGl0LAo+IHRoZW4gYSBUaW55RFJNIGRyaXZlciBpcyByZWdpc3RlcmVkIHdpdGggaXQuCj4K PiBUaGlzIFRpbnlEUk0gZHJpdmVyIGV4cGVjdHMgdGhhdCBhIERDUy1jb21wbGlhbnQgcHJvdG9j b2wgaXMgdXNlZCBieSB0aGUKPiBEU0kvREJJIHBhbmVsIGFuZCBjYW4gb25seSBiZSB1c2VkIHdp dGggdGhlc2UuCj4KPiBTaWduZWQtb2ZmLWJ5OiBQYXVsIENlcmN1ZWlsIDxwYXVsQGNyYXBvdWls bG91Lm5ldD4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWcgICAgfCAgIDgg Kwo+ICAgZHJpdmVycy9ncHUvZHJtL3RpbnkvTWFrZWZpbGUgICB8ICAgMSArCj4gICBkcml2ZXJz L2dwdS9kcm0vdGlueS90aW55LWRzaS5jIHwgMjYyICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gICBpbmNsdWRlL2RybS9kcm1fbWlwaV9kc2kuaCAgICAgIHwgIDE5ICsrKwo+ICAg NCBmaWxlcyBjaGFuZ2VkLCAyOTAgaW5zZXJ0aW9ucygrKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS90aW55L3RpbnktZHNpLmMKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdGlueS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZwo+IGlu ZGV4IDQxNjBlNzRlNDc1MS4uNTRlZTU4YWVjZjY2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS90aW55L0tjb25maWcKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnCj4g QEAgLTksNiArOSwxNCBAQCBjb25maWcgRFJNX0dNMTJVMzIwCj4gICAJIFRoaXMgaXMgYSBLTVMg ZHJpdmVyIGZvciBwcm9qZWN0b3JzIHdoaWNoIHVzZSB0aGUgR00xMlUzMjAgY2hpcHNldAo+ICAg CSBmb3IgdmlkZW8gdHJhbnNmZXIgb3ZlciBVU0IyLzMsIHN1Y2ggYXMgdGhlIEFjZXIgQzEyMCBt aW5pIHByb2plY3Rvci4KPiAgIAo+ICtjb25maWcgVElOWURSTV9EU0kKPiArCXRyaXN0YXRlICJE Uk0gc3VwcG9ydCBmb3IgZ2VuZXJpYyBEQkkvRFNJIGRpc3BsYXkgcGFuZWxzIgo+ICsJZGVwZW5k cyBvbiBEUk0gJiYgRFJNX01JUElfRFNJCj4gKwlzZWxlY3QgRFJNX01JUElfREJJCj4gKwlzZWxl Y3QgRFJNX0tNU19DTUFfSEVMUEVSCj4gKwloZWxwCj4gKwkgIERSTSBkcml2ZXIgZm9yIGdlbmVy aWMgREJJL0RTSSBkaXNwbGF5IHBhbmVscwo+ICsKPiAgIGNvbmZpZyBUSU5ZRFJNX0hYODM1N0QK PiAgIAl0cmlzdGF0ZSAiRFJNIHN1cHBvcnQgZm9yIEhYODM1N0QgZGlzcGxheSBwYW5lbHMiCj4g ICAJZGVwZW5kcyBvbiBEUk0gJiYgU1BJCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 aW55L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvTWFrZWZpbGUKPiBpbmRleCBjOTZj ZWVlNzE0NTMuLjQ5NTEzZGI5YTMwNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlu eS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L01ha2VmaWxlCj4gQEAgLTEs NiArMSw3IEBACj4gICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKPiAg IAo+ICAgb2JqLSQoQ09ORklHX0RSTV9HTTEyVTMyMCkJCSs9IGdtMTJ1MzIwLm8KPiArb2JqLSQo Q09ORklHX1RJTllEUk1fRFNJKQkJKz0gdGlueS1kc2kubwo+ICAgb2JqLSQoQ09ORklHX1RJTllE Uk1fSFg4MzU3RCkJCSs9IGh4ODM1N2Qubwo+ICAgb2JqLSQoQ09ORklHX1RJTllEUk1fSUxJOTIy NSkJCSs9IGlsaTkyMjUubwo+ICAgb2JqLSQoQ09ORklHX1RJTllEUk1fSUxJOTM0MSkJCSs9IGls aTkzNDEubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueS90aW55LWRzaS5jIGIv ZHJpdmVycy9ncHUvZHJtL3RpbnkvdGlueS1kc2kuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g aW5kZXggMDAwMDAwMDAwMDAwLi45MTVlNTk4ODQ0YmQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3RpbnkvdGlueS1kc2kuYwo+IEBAIC0wLDAgKzEsMjYyIEBACj4gKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCj4gKy8qCj4gKyAqIFRp bnlEUk0gZHJpdmVyIGZvciBzdGFuZGFyZCBEU0kvREJJIHBhbmVscwo+ICsgKgo+ICsgKiBDb3B5 cmlnaHQgMjAyMCBQYXVsIENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4KPiArICovCj4g Kwo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKwo+ICsjaW5jbHVkZSA8ZHJtL2RybV9h dG9taWNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KPiAr I2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5o Pgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZ2Vt X2NtYV9oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBl ci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RiaS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2Ry bV9taXBpX2RzaS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgo+ICsj aW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxw ZXIuaD4KPiArCj4gKyNpbmNsdWRlIDx2aWRlby9taXBpX2Rpc3BsYXkuaD4KPiArCj4gK3N0cnVj dCB0aW55X2RzaSB7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSBkcm07Cj4gKwlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciBjb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgcGlw ZTsKPiArCj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2k7Cj4gKwlzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbDsKPiArfTsKPiArCj4gKyNkZWZpbmUgbWlwaV9kY3NfY29tbWFuZChkc2ksIGNt ZCwgc2VxLi4uKSBcCj4gKyh7IFwKPiArCXU4IGRbXSA9IHsgc2VxIH07IFwKPiArCW1pcGlfZHNp X2Rjc193cml0ZShkc2ksIGNtZCwgZCwgQVJSQVlfU0laRShkKSk7IFwKPiArfSkKPiArCj4gK3N0 YXRpYyBpbmxpbmUgc3RydWN0IHRpbnlfZHNpICpkcm1fdG9fdGlueV9kc2koc3RydWN0IGRybV9k ZXZpY2UgKmRybSkKPiArewo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihkcm0sIHN0cnVjdCB0aW55 X2RzaSwgZHJtKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGlueV9kc2lfZmJfZGlydHkoc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHN0cnVjdCBkcm1fcmVjdCAqcmVjdCkKPiArewo+ICsJ c3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW0gPSBkcm1fZ2VtX2ZiX2dldF9vYmooZmIsIDApOwo+ ICsJc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiA9IHRvX2RybV9nZW1fY21hX29i aihnZW0pOwo+ICsJc3RydWN0IHRpbnlfZHNpICpwcml2ID0gZHJtX3RvX3RpbnlfZHNpKGZiLT5k ZXYpOwo+ICsJdW5zaWduZWQgaW50IGhlaWdodCA9IHJlY3QtPnkyIC0gcmVjdC0+eTE7Cj4gKwl1 bnNpZ25lZCBpbnQgd2lkdGggPSByZWN0LT54MiAtIHJlY3QtPngxOwo+ICsJYm9vbCBmYl9jb252 ZXJ0Owo+ICsJaW50IGlkeCwgcmV0Owo+ICsJdm9pZCAqdHI7Cj4gKwo+ICsJaWYgKCFkcm1fZGV2 X2VudGVyKGZiLT5kZXYsICZpZHgpKQo+ICsJCXJldHVybjsKPiArCj4gKwlEUk1fREVCVUdfS01T KCJGbHVzaGluZyBbRkI6JWRdICIgRFJNX1JFQ1RfRk1UICJcbiIsIGZiLT5iYXNlLmlkLCBEUk1f UkVDVF9BUkcocmVjdCkpOwo+ICsKPiArCWZiX2NvbnZlcnQgPSB3aWR0aCAhPSBmYi0+d2lkdGgg fHwgaGVpZ2h0ICE9IGZiLT5oZWlnaHQKPiArCQl8fCBmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJN X0ZPUk1BVF9YUkdCODg4ODsKPiArCWlmIChmYl9jb252ZXJ0KSB7Cj4gKwkJdHIgPSBremFsbG9j KHdpZHRoICogaGVpZ2h0ICogMiwgR0ZQX0tFUk5FTCk7Cj4gKwo+ICsJCS8qIFRPRE86IHN3YXAg cGl4ZWxzIGlmIG5lZWRlZCAqLwo+ICsJCXJldCA9IG1pcGlfZGJpX2J1Zl9jb3B5KHRyLCBmYiwg cmVjdCwgZmFsc2UpOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZXJyX21zZzsKPiArCX0gZWxz ZSB7Cj4gKwkJdHIgPSBjbWFfb2JqLT52YWRkcjsKPiArCX0KPiArCj4gKwltaXBpX2Rjc19jb21t YW5kKHByaXYtPmRzaSwgTUlQSV9EQ1NfU0VUX0NPTFVNTl9BRERSRVNTLAo+ICsJCQkgKHJlY3Qt PngxID4+IDgpICYgMHhmZiwgcmVjdC0+eDEgJiAweGZmLAo+ICsJCQkgKHJlY3QtPngyID4+IDgp ICYgMHhmZiwgcmVjdC0+eDIgJiAweGZmKTsKPiArCW1pcGlfZGNzX2NvbW1hbmQocHJpdi0+ZHNp LCBNSVBJX0RDU19TRVRfUEFHRV9BRERSRVNTLAo+ICsJCQkgKHJlY3QtPnkxID4+IDgpICYgMHhm ZiwgcmVjdC0+eTEgJiAweGZmLAo+ICsJCQkgKHJlY3QtPnkyID4+IDgpICYgMHhmZiwgcmVjdC0+ eTIgJiAweGZmKTsKPiArCj4gKwlyZXQgPSBtaXBpX2RzaV9kY3Nfd3JpdGUocHJpdi0+ZHNpLCBN SVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQsCj4gKwkJCQkgdHIsIHdpZHRoICogaGVpZ2h0ICog Mik7Cj4gK2Vycl9tc2c6Cj4gKwlpZiAocmV0KQo+ICsJCWRldl9lcnJfb25jZShmYi0+ZGV2LT5k ZXYsICJGYWlsZWQgdG8gdXBkYXRlIGRpc3BsYXkgJWRcbiIsIHJldCk7Cj4gKwo+ICsJaWYgKGZi X2NvbnZlcnQpCj4gKwkJa2ZyZWUodHIpOwo+ICsJZHJtX2Rldl9leGl0KGlkeCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIHRpbnlfZHNpX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5 X3BpcGUgKnBpcGUsCj4gKwkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4gKwkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiArewo+ICsJ c3RydWN0IHRpbnlfZHNpICpwcml2ID0gZHJtX3RvX3RpbnlfZHNpKHBpcGUtPmNydGMuZGV2KTsK PiArCj4gKwlkcm1fcGFuZWxfZW5hYmxlKHByaXYtPnBhbmVsKTsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgdGlueV9kc2lfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBp cGUpCj4gK3sKPiArCXN0cnVjdCB0aW55X2RzaSAqcHJpdiA9IGRybV90b190aW55X2RzaShwaXBl LT5jcnRjLmRldik7Cj4gKwo+ICsJZHJtX3BhbmVsX2Rpc2FibGUocHJpdi0+cGFuZWwpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCB0aW55X2RzaV91cGRhdGUoc3RydWN0IGRybV9zaW1wbGVfZGlz cGxheV9waXBlICpwaXBlLAo+ICsJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0 YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHBpcGUtPnBsYW5l LnN0YXRlOwo+ICsJc3RydWN0IGRybV9yZWN0IHJlY3Q7Cj4gKwo+ICsJaWYgKGRybV9hdG9taWNf aGVscGVyX2RhbWFnZV9tZXJnZWQob2xkX3N0YXRlLCBzdGF0ZSwgJnJlY3QpKQo+ICsJCXRpbnlf ZHNpX2ZiX2RpcnR5KHN0YXRlLT5mYiwgJnJlY3QpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIHRpbnlfZHNpX3BpcGVfZnVuY3Mg PSB7Cj4gKwkuZW5hYmxlID0gdGlueV9kc2lfZW5hYmxlLAo+ICsJLmRpc2FibGUgPSB0aW55X2Rz aV9kaXNhYmxlLAo+ICsJLnVwZGF0ZSA9IHRpbnlfZHNpX3VwZGF0ZSwKPiArCS5wcmVwYXJlX2Zi ID0gZHJtX2dlbV9mYl9zaW1wbGVfZGlzcGxheV9waXBlX3ByZXBhcmVfZmIsCj4gK307Cj4gKwo+ ICtzdGF0aWMgaW50IHRpbnlfZHNpX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IHRpbnlfZHNpICpwcml2ID0gZHJtX3Rv X3RpbnlfZHNpKGNvbm5lY3Rvci0+ZGV2KTsKPiArCj4gKwlyZXR1cm4gZHJtX3BhbmVsX2dldF9t b2Rlcyhwcml2LT5wYW5lbCwgY29ubmVjdG9yKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB0aW55X2RzaV9jb25uZWN0b3JfaGZ1bmNz ID0gewo+ICsJLmdldF9tb2RlcyA9IHRpbnlfZHNpX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCj4gK307 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgdGlueV9kc2lf Y29ubmVjdG9yX2Z1bmNzID0gewo+ICsJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVj dG9yX3Jlc2V0LAo+ICsJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25u ZWN0b3JfbW9kZXMsCj4gKwkuZGVzdHJveSA9IGRybV9jb25uZWN0b3JfY2xlYW51cCwKPiArCS5h dG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxp Y2F0ZV9zdGF0ZSwKPiArCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVy X2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICt9Owo+ICsKPiArREVGSU5FX0RSTV9HRU1fQ01B X0ZPUFModGlueV9kc2lfZm9wcyk7Cj4gKwo+ICtzdGF0aWMgY29uc3QgdWludDMyX3QgdGlueV9k c2lfZm9ybWF0c1tdID0gewo+ICsJRFJNX0ZPUk1BVF9SR0I1NjUsCj4gKwlEUk1fRk9STUFUX1hS R0I4ODg4LAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdf ZnVuY3MgdGlueV9kc2lfbW9kZV9jb25maWdfZnVuY3MgPSB7Cj4gKwkuZmJfY3JlYXRlID0gZHJt X2dlbV9mYl9jcmVhdGVfd2l0aF9kaXJ0eSwKPiArCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWlj X2hlbHBlcl9jaGVjaywKPiArCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJfY29t bWl0LAo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQgdGlueV9kc2lfcmVsZWFzZShzdHJ1Y3QgZHJt X2RldmljZSAqZHJtKQo+ICt7Cj4gKwlzdHJ1Y3QgdGlueV9kc2kgKnByaXYgPSBkcm1fdG9fdGlu eV9kc2koZHJtKTsKPiArCj4gKwlkcm1fbW9kZV9jb25maWdfY2xlYW51cChkcm0pOwo+ICsJZHJt X2Rldl9maW5pKGRybSk7Cj4gKwlrZnJlZShwcml2KTsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVj dCBkcm1fZHJpdmVyIHRpbnlfZHNpX2RyaXZlciA9IHsKPiArCS5kcml2ZXJfZmVhdHVyZXMJPSBE UklWRVJfR0VNIHwgRFJJVkVSX01PREVTRVQgfCBEUklWRVJfQVRPTUlDLAo+ICsJLmZvcHMJCQk9 ICZ0aW55X2RzaV9mb3BzLAo+ICsJLnJlbGVhc2UJCT0gdGlueV9kc2lfcmVsZWFzZSwKPiArCURS TV9HRU1fQ01BX1ZNQVBfRFJJVkVSX09QUywKPiArCS5uYW1lCQkJPSAidGlueS1kc2kiLAo+ICsJ LmRlc2MJCQk9ICJUaW55IERTSSIsCj4gKwkuZGF0ZQkJCT0gIjIwMjAwNjA1IiwKPiArCS5tYWpv cgkJCT0gMSwKPiArCS5taW5vcgkJCT0gMCwKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIHRpbnlf ZHNpX3JlbW92ZSh2b2lkICpkcm0pCj4gK3sKPiArCWRybV9kZXZfdW5wbHVnKGRybSk7Cj4gKwlk cm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihkcm0pOwo+ICt9Cj4gKwo+ICtpbnQgbWlwaV9kc2lf cmVnaXN0ZXJfdGlueV9kcml2ZXIoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQo+ICt7Cj4g KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmZHNpLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZHJtOwo+ICsJc3RydWN0IHRpbnlfZHNpICpwcml2Owo+ICsJc3RhdGljIGNvbnN0IHVpbnQ2NF90 IG1vZGlmaWVyc1tdID0gewo+ICsJCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKPiArCQlEUk1fRk9S TUFUX01PRF9JTlZBTElECj4gKwl9Owo+ICsJaW50IHJldDsKPiArCj4gKwlwcml2ID0ga3phbGxv YyhzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcHJpdikKPiArCQlyZXR1cm4g LUVOT01FTTsKPiArCj4gKwlwcml2LT5kc2kgPSBkc2k7Cj4gKwlkcm0gPSAmcHJpdi0+ZHJtOwo+ ICsKPiArCXJldCA9IGRldm1fZHJtX2Rldl9pbml0KGRldiwgZHJtLCAmdGlueV9kc2lfZHJpdmVy KTsKPiArCWlmIChyZXQpIHsKPiArCQlrZnJlZShwcml2KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJ fQo+ICsKPiArCWRybV9tb2RlX2NvbmZpZ19pbml0KGRybSk7Cj4gKwo+ICsJcHJpdi0+cGFuZWwg PSBvZl9kcm1fZmluZF9wYW5lbChkZXYtPm9mX25vZGUpOwo+ICsJaWYgKElTX0VSUihwcml2LT5w YW5lbCkpIHsKPiArCQlkZXZfZXJyKGRldiwgIlVuYWJsZSB0byBmaW5kIHBhbmVsXG4iKTsKPiAr CQlyZXR1cm4gUFRSX0VSUihwcml2LT5wYW5lbCk7Cj4gKwl9Cj4gKwo+ICsJZHJtLT5tb2RlX2Nv bmZpZy5wcmVmZXJyZWRfZGVwdGggPSAxNjsKPiArCj4gKwlkcm0tPm1vZGVfY29uZmlnLmZ1bmNz ID0gJnRpbnlfZHNpX21vZGVfY29uZmlnX2Z1bmNzOwo+ICsJZHJtLT5tb2RlX2NvbmZpZy5taW5f d2lkdGggPSAwOwo+ICsJZHJtLT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gMDsKPiArCWRybS0+ bW9kZV9jb25maWcubWF4X3dpZHRoID0gNDA5NjsKPiArCWRybS0+bW9kZV9jb25maWcubWF4X2hl aWdodCA9IDQwOTY7Cj4gKwo+ICsJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZwcml2LT5jb25u ZWN0b3IsICZ0aW55X2RzaV9jb25uZWN0b3JfaGZ1bmNzKTsKPiArCXJldCA9IGRybV9jb25uZWN0 b3JfaW5pdChkcm0sICZwcml2LT5jb25uZWN0b3IsICZ0aW55X2RzaV9jb25uZWN0b3JfZnVuY3Ms Cj4gKwkJCQkgRFJNX01PREVfQ09OTkVDVE9SX0RTSSk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2 X2VycihkZXYsICJVbmFibGUgdG8gaW5pdCBjb25uZWN0b3JcbiIpOwo+ICsJCXJldHVybiByZXQ7 Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfaW5pdChkcm0sICZw cml2LT5waXBlLCAmdGlueV9kc2lfcGlwZV9mdW5jcywKPiArCQkJCQkgICB0aW55X2RzaV9mb3Jt YXRzLCBBUlJBWV9TSVpFKHRpbnlfZHNpX2Zvcm1hdHMpLAo+ICsJCQkJCSAgIG1vZGlmaWVycywg JnByaXYtPmNvbm5lY3Rvcik7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2VycihkZXYsICJVbmFi bGUgdG8gaW5pdCBkaXNwbGF5IHBpcGVcbiIpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ ICsJZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMoJnByaXYtPnBpcGUucGxhbmUpOwo+ ICsKPiArCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOwo+ICsKPiArCXJldCA9IGRybV9kZXZf cmVnaXN0ZXIoZHJtLCAwKTsKPiArCWlmIChyZXQpIHsKPiArCQlkZXZfZXJyKGRldiwgIkZhaWxl ZCB0byByZWdpc3RlciBEUk0gZHJpdmVyXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsK PiArCXJldCA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChkZXYsIHRpbnlfZHNpX3JlbW92ZSwg ZHJtKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlkcm1fZmJkZXZfZ2Vu ZXJpY19zZXR1cChkcm0sIDApOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1C T0xfR1BMKG1pcGlfZHNpX3JlZ2lzdGVyX3RpbnlfZHJpdmVyKTsKPiArCj4gK01PRFVMRV9ERVND UklQVElPTigiRFNJL0RCSSBUaW55RFJNIGRyaXZlciIpOwo+ICtNT0RVTEVfQVVUSE9SKCJQYXVs IENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4iKTsKPiArTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbWlwaV9kc2kuaCBiL2luY2x1ZGUv ZHJtL2RybV9taXBpX2RzaS5oCj4gaW5kZXggNjVkMjk2MWZjMDU0Li4wYzI1ODlhNTVkZjYgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNpLmgKPiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fbWlwaV9kc2kuaAo+IEBAIC0xMCw2ICsxMCw3IEBACj4gICAjZGVmaW5lIF9fRFJNX01J UElfRFNJX0hfXwo+ICAgCj4gICAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Cj4gKyNpbmNsdWRl IDxsaW51eC9vZl9ncmFwaC5oPgo+ICAgCj4gICBzdHJ1Y3QgbWlwaV9kc2lfaG9zdDsKPiAgIHN0 cnVjdCBtaXBpX2RzaV9kZXZpY2U7Cj4gQEAgLTMzNyw0ICszMzgsMjIgQEAgdm9pZCBtaXBpX2Rz aV9kcml2ZXJfdW5yZWdpc3RlcihzdHJ1Y3QgbWlwaV9kc2lfZHJpdmVyICpkcml2ZXIpOwo+ICAg CW1vZHVsZV9kcml2ZXIoX19taXBpX2RzaV9kcml2ZXIsIG1pcGlfZHNpX2RyaXZlcl9yZWdpc3Rl ciwgXAo+ICAgCQkJbWlwaV9kc2lfZHJpdmVyX3VucmVnaXN0ZXIpCj4gICAKPiArI2lmIElTX0VO QUJMRUQoQ09ORklHX1RJTllEUk1fRFNJKQo+ICtpbnQgbWlwaV9kc2lfcmVnaXN0ZXJfdGlueV9k cml2ZXIoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKTsKPiArI2Vsc2UKPiArc3RhdGljIGlu bGluZSBpbnQgbWlwaV9kc2lfcmVnaXN0ZXJfdGlueV9kcml2ZXIoc3RydWN0IG1pcGlfZHNpX2Rl dmljZSAqZHNpKQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsjZW5kaWYKPiArCj4gK3N0YXRp YyBpbmxpbmUgaW50IG1pcGlfZHNpX21heWJlX3JlZ2lzdGVyX3RpbnlfZHJpdmVyKHN0cnVjdCBt aXBpX2RzaV9kZXZpY2UgKmRzaSkKPiArewo+ICsJLyogUmVnaXN0ZXIgdGhlIFRpbnlEUk0gRFNJ L0RCSSBkcml2ZXIgaWYgdGhlIHBhbmVsIGhhcyBubyBjb250cm9sbGVyICovCj4gKwlpZiAoIW9m X2dyYXBoX2dldF9wb3J0X2J5X2lkKGRzaS0+ZGV2Lm9mX25vZGUsIDApKQo+ICsJCXJldHVybiBt aXBpX2RzaV9yZWdpc3Rlcl90aW55X2RyaXZlcihkc2kpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICAgI2VuZGlmIC8qIF9fRFJNX01JUElfRFNJX18gKi8KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==