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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8AB1CC433EF for ; Wed, 17 Nov 2021 04:01:42 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 1B8236124B for ; Wed, 17 Nov 2021 04:01:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1B8236124B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:CC:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XvNZcOn0Ap1bgSGyRLdrv2lekmFRuR7O0eOEAAkwf+w=; b=PjQkDCFIwlFcOH o4Yl2Yy744qQ7la3fXXVkrot9bp8LUP/+hDHOK2z/Q1vMoyinMd6qp2Fn2KXJKAVdSA6lozpLdlot ZdjbUPBcQwDWIOPFwS4CQHLQobqvaAYcNac6sj6bBtACjqgIMcY5+eJRYQyOX9KIiDjnIG94nXRs7 Z52yw+Aic7NdiiuyxIp+CXqJVUqOmqPKZAMXdnXVQtg87TvVZSaDEajIrr/IPIHTpKrkljA1X2Qw7 Zt1pfaafkReoOU0wK3DYqNzqGmpI8aXBRlxOut3SGg/kWUbgBGb7vLgbiAMvslHCO7ubn43blGML5 aybJ25pTWrUjRe5fqTtA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnC8c-003HYH-AR; Wed, 17 Nov 2021 04:01:34 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnC8W-003HX1-JT; Wed, 17 Nov 2021 04:01:32 +0000 X-UUID: e0f03faf1c9f458da335b949edfdb724-20211116 X-UUID: e0f03faf1c9f458da335b949edfdb724-20211116 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 2020790299; Tue, 16 Nov 2021 21:01:22 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 16 Nov 2021 20:01:20 -0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.3; Wed, 17 Nov 2021 12:01:19 +0800 Received: from mtksdccf07 (172.21.84.99) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 17 Nov 2021 12:01:19 +0800 Message-ID: Subject: Re: [PATCH v7 16/20] drm/mediatek: add ETHDR support for MT8195 From: Nancy.Lin To: Chun-Kuang Hu CC: CK Hu , Philipp Zabel , "David Airlie" , Daniel Vetter , Rob Herring , Matthias Brugger , "jason-jh . lin" , Yongqiang Niu , DRI Development , "moderated list:ARM/Mediatek SoC support" , DTML , linux-kernel , Linux ARM , , srv_heupstream Date: Wed, 17 Nov 2021 12:01:19 +0800 In-Reply-To: References: <20211029075203.17093-1-nancy.lin@mediatek.com> <20211029075203.17093-17-nancy.lin@mediatek.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211116_200128_684510_1A795BE1 X-CRM114-Status: GOOD ( 28.15 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGkgQ2h1bi1LdWFuZywKClRoYW5rcyBmb3IgdGhlIHJldmlldy4KCk9uIEZyaSwgMjAyMS0xMS0w NSBhdCAwNzo1OSArMDgwMCwgQ2h1bi1LdWFuZyBIdSB3cm90ZToKPiAgSGksIE5hbmN5Ogo+IAo+ IE5hbmN5LkxpbiA8bmFuY3kubGluQG1lZGlhdGVrLmNvbT4g5pa8IDIwMjHlubQxMOaciDI55pel IOmAseS6lCDkuIvljYgzOjUy5a+r6YGT77yaCj4gPiAKPiA+IEVUSERSIGlzIGEgcGFydCBvZiBv dmxfYWRhcHRvci4KPiA+IEVUSERSIGlzIGRlc2lnbmVkIGZvciBIRFIgdmlkZW8gYW5kIGdyYXBo aWNzIGNvbnZlcnNpb24gaW4gdGhlCj4gPiBleHRlcm5hbAo+ID4gZGlzcGxheSBwYXRoLiBJdCBo YW5kbGVzIG11bHRpcGxlIEhEUiBpbnB1dCB0eXBlcyBhbmQgcGVyZm9ybXMgdG9uZQo+ID4gbWFw cGluZywgY29sb3Igc3BhY2UvY29sb3IgZm9ybWF0IGNvbnZlcnNpb24sIGFuZCB0aGVuIGNvbWJp bmUKPiA+IGRpZmZlcmVudCBsYXllcnMsIG91dHB1dCB0aGUgcmVxdWlyZWQgSERSIG9yIFNEUiBz aWduYWwgdG8gdGhlCj4gPiBzdWJzZXF1ZW50IGRpc3BsYXkgcGF0aC4KPiA+IAo+ID4gU2lnbmVk LW9mZi1ieTogTmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPgo+ID4gLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlICAgIHwgICAxICsKPiA+ICBkcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2V0aGRyLmMgfCAzOTkKPiA+ICsrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZXRoZHIuaCB8ICAy NSArKwo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNDI1IGluc2VydGlvbnMoKykKPiA+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19ldGhkci5jCj4gPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZXRoZHIuaAo+ID4g Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlCj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQo+ID4gaW5kZXggNmU2MDRhOTMzZWQw Li5mYjE1OGExZTdmMDYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv TWFrZWZpbGUKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQo+ID4g QEAgLTE0LDYgKzE0LDcgQEAgbWVkaWF0ZWstZHJtLXkgOj0gbXRrX2Rpc3BfYWFsLm8gXAo+ID4g ICAgICAgICAgICAgICAgICAgbXRrX2RybV9wbGFuZS5vIFwKPiA+ICAgICAgICAgICAgICAgICAg IG10a19kc2kubyBcCj4gPiAgICAgICAgICAgICAgICAgICBtdGtfZHBpLm8gXAo+ID4gKyAgICAg ICAgICAgICAgICAgbXRrX2V0aGRyLm8gXAo+ID4gICAgICAgICAgICAgICAgICAgbXRrX21kcF9y ZG1hLm8KPiA+IAo+ID4gIG9iai0kKENPTkZJR19EUk1fTUVESUFURUspICs9IG1lZGlhdGVrLWRy bS5vCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19ldGhkci5j Cj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZXRoZHIuYwo+ID4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uODZiNTg0ZTljZjJjCj4gPiAtLS0g L2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2V0aGRyLmMK PiA+IEBAIC0wLDAgKzEsMzk5IEBACj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAtb25seQo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIElu Yy4KPiA+ICsgKi8KPiA+ICsKPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiA+ICsj aW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgo+ ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvb2Zf YWRkcmVzcy5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiA+ICsj aW5jbHVkZSA8bGludXgvcmVzZXQuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVr L210ay1jbWRxLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstbW1zeXMu aD4KPiA+ICsKPiA+ICsjaW5jbHVkZSAibXRrX2RybV9jcnRjLmgiCj4gPiArI2luY2x1ZGUgIm10 a19kcm1fZGRwX2NvbXAuaCIKPiA+ICsjaW5jbHVkZSAibXRrX2RybV9kcnYuaCIKPiA+ICsjaW5j bHVkZSAibXRrX2V0aGRyLmgiCj4gPiArCj4gPiArI2RlZmluZSBNSVhfSU5URU4gICAgICAgICAg ICAgICAgICAgICAgMHg0Cj4gPiArI2RlZmluZSBNSVhfRk1FX0NQTF9JTlRFTiAgICAgICAgICAg ICAgICAgICAgICBCSVQoMSkKPiA+ICsjZGVmaW5lIE1JWF9JTlRTVEEgICAgICAgICAgICAgICAg ICAgICAweDgKPiA+ICsjZGVmaW5lIE1JWF9FTiAgICAgICAgICAgICAgICAgICAgICAgICAweGMK PiA+ICsjZGVmaW5lIE1JWF9SU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQK PiA+ICsjZGVmaW5lIE1JWF9ST0lfU0laRSAgICAgICAgICAgICAgICAgICAweDE4Cj4gPiArI2Rl ZmluZSBNSVhfREFUQVBBVEhfQ09OICAgICAgICAgICAgICAgMHgxYwo+ID4gKyNkZWZpbmUgT1VU UFVUX05PX1JORCAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKDMpCj4gPiArI2RlZmluZSBT T1VSQ0VfUkdCX1NFTCAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoNykKPiA+ICsjZGVmaW5l IEJBQ0tHUk9VTkRfUkVMQVkgICAgICAgICAgICAgICAgICAgICAgICg0IDw8IDkpCj4gPiArI2Rl ZmluZSBNSVhfUk9JX0JHQ0xSICAgICAgICAgICAgICAgICAgMHgyMAo+ID4gKyNkZWZpbmUgQkdD TFJfQkxBQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhmZjAwMDAwMAo+ID4gKyNkZWZp bmUgTUlYX1NSQ19DT04gICAgICAgICAgICAgICAgICAgIDB4MjQKPiA+ICsjZGVmaW5lIE1JWF9T UkNfTDBfRU4gICAgICAgICAgICAgICAgICAgICAgICAgIEJJVCgwKQo+ID4gKyNkZWZpbmUgTUlY X0xfU1JDX0NPTihuKSAgICAgICAgICAgICAgICgweDI4ICsgMHgxOCAqIChuKSkKPiA+ICsjZGVm aW5lIE5PTl9QUkVNVUxUSV9TT1VSQ0UgICAgICAgICAgICAgICAgICAgICgyIDw8IDEyKQo+ID4g KyNkZWZpbmUgTUlYX0xfU1JDX1NJWkUobikgICAgICAgICAgICAgICgweDMwICsgMHgxOCAqIChu KSkKPiA+ICsjZGVmaW5lIE1JWF9MX1NSQ19PRkZTRVQobikgICAgICAgICAgICAoMHgzNCArIDB4 MTggKiAobikpCj4gPiArI2RlZmluZSBNSVhfRlVOQ19EQ00wICAgICAgICAgICAgICAgICAgMHgx MjAKPiA+ICsjZGVmaW5lIE1JWF9GVU5DX0RDTTEgICAgICAgICAgICAgICAgICAweDEyNAo+ID4g KyNkZWZpbmUgTUlYX0ZVTkNfRENNX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgMHhmZmZmZmZm Zgo+ID4gKwo+ID4gKyNkZWZpbmUgSERSX1ZET19GRV8wODA0X0hEUl9ETV9GRSAgICAgIDB4ODA0 Cj4gPiArI2RlZmluZSBIRFJfVkRPX0ZFXzA4MDRfQllQQVNTX0FMTCAgICAgICAgICAgICAweGZk Cj4gPiArI2RlZmluZSBIRFJfR0ZYX0ZFXzAyMDRfR0ZYX0hEUl9GRSAgICAgMHgyMDQKPiA+ICsj ZGVmaW5lIEhEUl9HRlhfRkVfMDIwNF9CWVBBU1NfQUxMICAgICAgICAgICAgIDB4ZmQKPiA+ICsj ZGVmaW5lIEhEUl9WRE9fQkVfMDIwNF9WRE9fRE1fQkUgICAgICAweDIwNAo+ID4gKyNkZWZpbmUg SERSX1ZET19CRV8wMjA0X0JZUEFTU19BTEwgICAgICAgICAgICAgMHg3ZQo+ID4gKwo+ID4gKyNk ZWZpbmUgTUlYRVJfSU5YX01PREVfQllQQVNTICAgICAgICAgICAgICAgICAgMAo+ID4gKyNkZWZp bmUgTUlYRVJfSU5YX01PREVfRVZFTl9FWFRFTkQgICAgICAgICAgICAgMQo+ID4gKyNkZWZpbmUg REVGQVVMVF85QklUX0FMUEhBICAgICAgICAgICAgICAgICAgICAgMHgxMDAKPiA+ICsjZGVmaW5l ICAgICAgICBNSVhFUl9BTFBIQV9BRU4gICAgICAgICAgICAgICAgICAgICAgICAgQklUKDgpCj4g PiArI2RlZmluZSAgICAgICAgTUlYRVJfQUxQSEEgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4ZmYKPiA+ICsjZGVmaW5lIEVUSERSX0NMS19OVU0gICAgICAgICAgICAgICAgICAgICAgICAg IDEzCj4gPiArCj4gPiArZW51bSBtdGtfZXRoZHJfY29tcF9pZCB7Cj4gPiArICAgICAgIEVUSERS X01JWEVSLAo+ID4gKyAgICAgICBFVEhEUl9WRE9fRkUwLAo+ID4gKyAgICAgICBFVEhEUl9WRE9f RkUxLAo+ID4gKyAgICAgICBFVEhEUl9HRlhfRkUwLAo+ID4gKyAgICAgICBFVEhEUl9HRlhfRkUx LAo+ID4gKyAgICAgICBFVEhEUl9WRE9fQkUsCj4gPiArICAgICAgIEVUSERSX0FETF9EUywKPiA+ ICsgICAgICAgRVRIRFJfSURfTUFYCj4gPiArfTsKPiA+ICsKPiA+ICtzdHJ1Y3QgbXRrX2V0aGRy X2NvbXAgewo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICAgICAgICAgICAqZGV2Owo+ID4gKyAg ICAgICB2b2lkIF9faW9tZW0gICAgICAgICAgICAqcmVnczsKPiA+ICsgICAgICAgc3RydWN0IGNt ZHFfY2xpZW50X3JlZyAgY21kcV9iYXNlOwo+ID4gK307Cj4gPiArCj4gPiArc3RydWN0IG10a19l dGhkciB7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZXRoZHJfY29tcCAgIGV0aGRyX2NvbXBbRVRI RFJfSURfTUFYXTsKPiA+ICsgICAgICAgc3RydWN0IGNsa19idWxrX2RhdGEgICAgZXRoZHJfY2xr W0VUSERSX0NMS19OVU1dOwo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICAgICAgICAgICAqbW1z eXNfZGV2Owo+ID4gKyAgICAgICBzcGlubG9ja190ICAgICAgICAgICAgICBsb2NrOyAvKiBwcm90 ZWN0cyB2YmxhbmtfY2IgYW5kCj4gPiB2YmxhbmtfY2JfZGF0YSAqLwo+ID4gKyAgICAgICB2b2lk ICAgICAgICAgICAgICAgICAgICAoKnZibGFua19jYikodm9pZCAqZGF0YSk7Cj4gPiArICAgICAg IHZvaWQgICAgICAgICAgICAgICAgICAgICp2YmxhbmtfY2JfZGF0YTsKPiA+ICsgICAgICAgaW50 ICAgICAgICAgICAgICAgICAgICAgaXJxOwo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBldGhkcl9jb21wX3N0cltdID0gewo+ID4gKyAgICAgICAiRVRIRFJfTUlY RVIiLAo+ID4gKyAgICAgICAiRVRIRFJfVkRPX0ZFMCIsCj4gPiArICAgICAgICJFVEhEUl9WRE9f RkUxIiwKPiA+ICsgICAgICAgIkVUSERSX0dGWF9GRTAiLAo+ID4gKyAgICAgICAiRVRIRFJfR0ZY X0ZFMSIsCj4gPiArICAgICAgICJFVEhEUl9WRE9fQkUiLAo+ID4gKyAgICAgICAiRVRIRFJfQURM X0RTIiwKPiA+ICsgICAgICAgIkVUSERSX0lEX01BWCIKPiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3QgZXRoZHJfY2xrX3N0cltdID0gewo+ID4gKyAgICAgICAiZXRo ZHJfdG9wIiwKPiA+ICsgICAgICAgIm1peGVyIiwKPiA+ICsgICAgICAgInZkb19mZTAiLAo+ID4g KyAgICAgICAidmRvX2ZlMSIsCj4gPiArICAgICAgICJnZnhfZmUwIiwKPiA+ICsgICAgICAgImdm eF9mZTEiLAo+ID4gKyAgICAgICAidmRvX2JlIiwKPiA+ICsgICAgICAgImFkbF9kcyIsCj4gPiAr ICAgICAgICJ2ZG9fZmUwX2FzeW5jIiwKPiA+ICsgICAgICAgInZkb19mZTFfYXN5bmMiLAo+ID4g KyAgICAgICAiZ2Z4X2ZlMF9hc3luYyIsCj4gPiArICAgICAgICJnZnhfZmUxX2FzeW5jIiwKPiA+ ICsgICAgICAgInZkb19iZV9hc3luYyIsCj4gPiArfTsKPiA+ICsKPiA+ICt2b2lkIG10a19ldGhk cl9lbmFibGVfdmJsYW5rKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdm9pZCAoKnZibGFua19jYikodm9pZCAqKSwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAqdmJsYW5rX2NiX2RhdGEpCj4gPiArewo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX2V0aGRyICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiArICAgICAg IHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiArCj4gPiArICAgICAgIHNwaW5fbG9ja19pcnFzYXZl KCZwcml2LT5sb2NrLCBmbGFncyk7Cj4gPiArICAgICAgIHByaXYtPnZibGFua19jYiA9IHZibGFu a19jYjsKPiA+ICsgICAgICAgcHJpdi0+dmJsYW5rX2NiX2RhdGEgPSB2YmxhbmtfY2JfZGF0YTsK PiA+ICsgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOwo+ ID4gKwo+ID4gKyAgICAgICB3cml0ZWwoTUlYX0ZNRV9DUExfSU5URU4sIHByaXYtCj4gPiA+ZXRo ZHJfY29tcFtFVEhEUl9NSVhFUl0ucmVncyArIE1JWF9JTlRFTik7Cj4gPiArfQo+ID4gKwo+ID4g K3ZvaWQgbXRrX2V0aGRyX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ICt7 Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZXRoZHIgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPiA+ICsKPiA+ICsgICAgICAgc3Bp bl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKPiA+ICsgICAgICAgcHJpdi0+dmJs YW5rX2NiID0gTlVMTDsKPiA+ICsgICAgICAgcHJpdi0+dmJsYW5rX2NiX2RhdGEgPSBOVUxMOwo+ ID4gKyAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7Cj4g PiArCj4gPiArICAgICAgIHdyaXRlbCgweDAsIHByaXYtPmV0aGRyX2NvbXBbRVRIRFJfTUlYRVJd LnJlZ3MgKwo+ID4gTUlYX0lOVEVOKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGlycXJldHVy bl90IG10a19ldGhkcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gPiArewo+ ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2V0aGRyICpwcml2ID0gZGV2X2lkOwo+ID4gKyAgICAgICB1 bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4gKwo+ID4gKyAgICAgICB3cml0ZWwoMHgwLCBwcml2LT5l dGhkcl9jb21wW0VUSERSX01JWEVSXS5yZWdzICsKPiA+IE1JWF9JTlRTVEEpOwo+ID4gKwo+ID4g KyAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+bG9jaywgZmxhZ3MpOwo+ID4gKyAgICAg ICBpZiAoIXByaXYtPnZibGFua19jYikgewo+ID4gKyAgICAgICAgICAgICAgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gSVJRX05PTkU7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgcHJpdi0+dmJsYW5r X2NiKHByaXYtPnZibGFua19jYl9kYXRhKTsKPiA+ICsgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmcHJpdi0+bG9jaywgZmxhZ3MpOwo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4gSVJRX0hB TkRMRUQ7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgbXRrX2V0aGRyX2xheWVyX2NvbmZpZyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBpZHgsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUsCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCkKPiA+ICt7Cj4gPiArICAg ICAgIHN0cnVjdCBtdGtfZXRoZHIgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiA+ICsg ICAgICAgc3RydWN0IG10a19ldGhkcl9jb21wICptaXhlciA9ICZwcml2LQo+ID4gPmV0aGRyX2Nv bXBbRVRIRFJfTUlYRVJdOwo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3BlbmRpbmdfc3Rh dGUgKnBlbmRpbmcgPSAmc3RhdGUtPnBlbmRpbmc7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBv ZmZzZXQgPSAocGVuZGluZy0+eCAmIDEpIDw8IDMxIHwgcGVuZGluZy0+eQo+ID4gPDwgMTYgfCBw ZW5kaW5nLT54Owo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgYWxpZ25fd2lkdGggPSBBTElHTl9E T1dOKHBlbmRpbmctPndpZHRoLCAyKTsKPiA+ICsgICAgICAgdW5zaWduZWQgaW50IGFscGhhX2Nv biA9IDA7Cj4gPiArCj4gPiArICAgICAgIGRldl9kYmcoZGV2LCAiJXMrIGlkeDolZCIsIF9fZnVu Y19fLCBpZHgpOwo+ID4gKwo+ID4gKyAgICAgICBpZiAoaWR4ID49IDQpCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuOwo+ID4gKwo+ID4gKyAgICAgICBpZiAoIXBlbmRpbmctPmVuYWJsZSkgewo+ ID4gKyAgICAgICAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIDAsICZtaXhlci0+Y21k cV9iYXNlLAo+ID4gbWl4ZXItPnJlZ3MsIE1JWF9MX1NSQ19TSVpFKGlkeCkpOwo+ID4gKyAgICAg ICAgICAgICAgIG10a19tbXN5c19kZHBfY29uZmlnKHByaXYtPm1tc3lzX2RldiwKPiA+IE1NU1lT X0NPTkZJR19NSVhFUl9JTl9NT0RFLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlkeCArIDEsCj4gPiBNSVhFUl9JTlhfTU9ERV9CWVBBU1MsIGNtZHFfcGt0KTsKPiA+ ICsgICAgICAgICAgICAgICBtdGtfbW1zeXNfZGRwX2NvbmZpZyhwcml2LT5tbXN5c19kZXYsCj4g PiBNTVNZU19DT05GSUdfTUlYRVJfSU5fQklXSURUSCwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZHggKyAxLCAwLCBjbWRxX3BrdCk7Cj4gPiArICAgICAgICAgICAg ICAgcmV0dXJuOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIG10a19tbXN5c19kZHBf Y29uZmlnKHByaXYtPm1tc3lzX2RldiwKPiA+IE1NU1lTX0NPTkZJR19NSVhFUl9JTl9NT0RFLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHggKyAxLCBwZW5kaW5nLT54ICYgMSA/ Cj4gPiBNSVhFUl9JTlhfTU9ERV9FVkVOX0VYVEVORCA6Cj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1JWEVSX0lOWF9NT0RFX0JZUEFTUywgY21kcV9wa3QpOwo+ID4gKyAgICAgICBt dGtfbW1zeXNfZGRwX2NvbmZpZyhwcml2LT5tbXN5c19kZXYsCj4gPiBNTVNZU19DT05GSUdfTUlY RVJfSU5fQklXSURUSCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4ICsgMSwg YWxpZ25fd2lkdGggLyAyIC0gMSwKPiA+IGNtZHFfcGt0KTsKPiA+ICsKPiA+ICsgICAgICAgaWYg KHN0YXRlLT5iYXNlLmZiICYmIHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmhhc19hbHBoYSkgewo+ ID4gKyAgICAgICAgICAgICAgIGFscGhhX2NvbiA9IE1JWEVSX0FMUEhBX0FFTiB8IE1JWEVSX0FM UEhBOwo+ID4gKyAgICAgICAgICAgICAgIG10a19tbXN5c19kZHBfY29uZmlnKHByaXYtPm1tc3lz X2RldiwKPiA+IE1NU1lTX0NPTkZJR19IRFJfQUxQSEFfU0VMLAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlkeCArIDEsIDAsIGNtZHFfcGt0KTsKPiA+ICsgICAgICAg fSBlbHNlIHsKPiA+ICsgICAgICAgICAgICAgICBtdGtfbW1zeXNfZGRwX2NvbmZpZyhwcml2LT5t bXN5c19kZXYsCj4gPiBNTVNZU19DT05GSUdfSERSX0FMUEhBX1NFTCwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZHggKyAxLCAxLCBjbWRxX3BrdCk7Cj4gPiArICAg ICAgIH0KPiA+ICsgICAgICAgbXRrX21tc3lzX2RkcF9jb25maWcocHJpdi0+bW1zeXNfZGV2LAo+ ID4gTU1TWVNfQ09ORklHX01JWEVSX0lOX0FMUEhBX09ERCwgaWR4ICsgMSwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF85QklUX0FMUEhBLCBjbWRxX3BrdCk7Cj4gPiAr ICAgICAgIG10a19tbXN5c19kZHBfY29uZmlnKHByaXYtPm1tc3lzX2RldiwKPiA+IE1NU1lTX0NP TkZJR19NSVhFUl9JTl9BTFBIQV9FVkVOLCBpZHggKyAxLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERUZBVUxUXzlCSVRfQUxQSEEsIGNtZHFfcGt0KTsKPiA+ICsKPiA+ICsgICAg ICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgcGVuZGluZy0+aGVpZ2h0IDw8IDE2IHwKPiA+IGFs aWduX3dpZHRoLCAmbWl4ZXItPmNtZHFfYmFzZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBt aXhlci0+cmVncywgTUlYX0xfU1JDX1NJWkUoaWR4KSk7Cj4gPiArICAgICAgIG10a19kZHBfd3Jp dGUoY21kcV9wa3QsIG9mZnNldCwgJm1peGVyLT5jbWRxX2Jhc2UsIG1peGVyLQo+ID4gPnJlZ3Ms IE1JWF9MX1NSQ19PRkZTRVQoaWR4KSk7Cj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhj bWRxX3BrdCwgYWxwaGFfY29uLCAmbWl4ZXItPmNtZHFfYmFzZSwKPiA+IG1peGVyLT5yZWdzLCBN SVhfTF9TUkNfQ09OKGlkeCksCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAweDFmZik7 Cj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgQklUKGlkeCksICZtaXhl ci0+Y21kcV9iYXNlLAo+ID4gbWl4ZXItPnJlZ3MsIE1JWF9TUkNfQ09OLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgQklUKGlkeCkpOwo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIG10a19l dGhkcl9jb25maWcoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgdywKPiA+ICsgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2V0aGRyICpwcml2ID0g ZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZXRoZHJfY29tcCAq dmRvX2ZlMCA9ICZwcml2LQo+ID4gPmV0aGRyX2NvbXBbRVRIRFJfVkRPX0ZFMF07Cj4gPiArICAg ICAgIHN0cnVjdCBtdGtfZXRoZHJfY29tcCAqdmRvX2ZlMSA9ICZwcml2LQo+ID4gPmV0aGRyX2Nv bXBbRVRIRFJfVkRPX0ZFMV07Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZXRoZHJfY29tcCAqZ2Z4 X2ZlMCA9ICZwcml2LQo+ID4gPmV0aGRyX2NvbXBbRVRIRFJfR0ZYX0ZFMF07Cj4gPiArICAgICAg IHN0cnVjdCBtdGtfZXRoZHJfY29tcCAqZ2Z4X2ZlMSA9ICZwcml2LQo+ID4gPmV0aGRyX2NvbXBb RVRIRFJfR0ZYX0ZFMV07Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZXRoZHJfY29tcCAqdmRvX2Jl ID0gJnByaXYtCj4gPiA+ZXRoZHJfY29tcFtFVEhEUl9WRE9fQkVdOwo+ID4gKyAgICAgICBzdHJ1 Y3QgbXRrX2V0aGRyX2NvbXAgKm1peGVyID0gJnByaXYtCj4gPiA+ZXRoZHJfY29tcFtFVEhEUl9N SVhFUl07Cj4gPiArCj4gPiArICAgICAgIGRldl9kYmcoZGV2LCAiJXMtdzolZCwgaDolZFxuIiwg X19mdW5jX18sIHcsIGgpOwo+ID4gKwo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0 LCBIRFJfVkRPX0ZFXzA4MDRfQllQQVNTX0FMTCwKPiA+ICZ2ZG9fZmUwLT5jbWRxX2Jhc2UsCj4g PiArICAgICAgICAgICAgICAgICAgICAgdmRvX2ZlMC0+cmVncywgSERSX1ZET19GRV8wODA0X0hE Ul9ETV9GRSk7Cj4gPiArCj4gPiArICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIEhEUl9W RE9fRkVfMDgwNF9CWVBBU1NfQUxMLAo+ID4gJnZkb19mZTEtPmNtZHFfYmFzZSwKPiA+ICsgICAg ICAgICAgICAgICAgICAgICB2ZG9fZmUxLT5yZWdzLCBIRFJfVkRPX0ZFXzA4MDRfSERSX0RNX0ZF KTsKPiA+ICsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgSERSX0dGWF9GRV8w MjA0X0JZUEFTU19BTEwsCj4gPiAmZ2Z4X2ZlMC0+Y21kcV9iYXNlLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIGdmeF9mZTAtPnJlZ3MsIEhEUl9HRlhfRkVfMDIwNF9HRlhfSERSX0ZFKTsKPiA+ ICsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgSERSX0dGWF9GRV8wMjA0X0JZ UEFTU19BTEwsCj4gPiAmZ2Z4X2ZlMS0+Y21kcV9iYXNlLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgIGdmeF9mZTEtPnJlZ3MsIEhEUl9HRlhfRkVfMDIwNF9HRlhfSERSX0ZFKTsKPiA+ICsKPiA+ ICsgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgSERSX1ZET19CRV8wMjA0X0JZUEFTU19B TEwsCj4gPiAmdmRvX2JlLT5jbWRxX2Jhc2UsCj4gPiArICAgICAgICAgICAgICAgICAgICAgdmRv X2JlLT5yZWdzLCBIRFJfVkRPX0JFXzAyMDRfVkRPX0RNX0JFKTsKPiA+ICsKPiA+ICsgICAgICAg bXRrX2RkcF93cml0ZShjbWRxX3BrdCwgTUlYX0ZVTkNfRENNX0VOQUJMRSwgJm1peGVyLQo+ID4g PmNtZHFfYmFzZSwgbWl4ZXItPnJlZ3MsIE1JWF9GVU5DX0RDTTApOwo+ID4gKyAgICAgICBtdGtf ZGRwX3dyaXRlKGNtZHFfcGt0LCBNSVhfRlVOQ19EQ01fRU5BQkxFLCAmbWl4ZXItCj4gPiA+Y21k cV9iYXNlLCBtaXhlci0+cmVncywgTUlYX0ZVTkNfRENNMSk7Cj4gPiArICAgICAgIG10a19kZHBf d3JpdGUoY21kcV9wa3QsIGggPDwgMTYgfCB3LCAmbWl4ZXItPmNtZHFfYmFzZSwKPiA+IG1peGVy LT5yZWdzLCBNSVhfUk9JX1NJWkUpOwo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0 LCBCR0NMUl9CTEFDSywgJm1peGVyLT5jbWRxX2Jhc2UsCj4gPiBtaXhlci0+cmVncywgTUlYX1JP SV9CR0NMUik7Cj4gPiArICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3QsIE5PTl9QUkVNVUxU SV9TT1VSQ0UsICZtaXhlci0KPiA+ID5jbWRxX2Jhc2UsIG1peGVyLT5yZWdzLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgIE1JWF9MX1NSQ19DT04oMCkpOwo+ID4gKyAgICAgICBtdGtfZGRwX3dy aXRlKGNtZHFfcGt0LCBOT05fUFJFTVVMVElfU09VUkNFLCAmbWl4ZXItCj4gPiA+Y21kcV9iYXNl LCBtaXhlci0+cmVncywKPiA+ICsgICAgICAgICAgICAgICAgICAgICBNSVhfTF9TUkNfQ09OKDEp KTsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgTk9OX1BSRU1VTFRJX1NPVVJD RSwgJm1peGVyLQo+ID4gPmNtZHFfYmFzZSwgbWl4ZXItPnJlZ3MsCj4gPiArICAgICAgICAgICAg ICAgICAgICAgTUlYX0xfU1JDX0NPTigyKSk7Cj4gPiArICAgICAgIG10a19kZHBfd3JpdGUoY21k cV9wa3QsIE5PTl9QUkVNVUxUSV9TT1VSQ0UsICZtaXhlci0KPiA+ID5jbWRxX2Jhc2UsIG1peGVy LT5yZWdzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIE1JWF9MX1NSQ19DT04oMykpOwo+ID4g KyAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAweDAsICZtaXhlci0+Y21kcV9iYXNlLCBt aXhlci0KPiA+ID5yZWdzLCBNSVhfTF9TUkNfU0laRSgwKSk7Cj4gPiArICAgICAgIG10a19kZHBf d3JpdGUoY21kcV9wa3QsIE9VVFBVVF9OT19STkQgfCBTT1VSQ0VfUkdCX1NFTCB8Cj4gPiBCQUNL R1JPVU5EX1JFTEFZLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICZtaXhlci0+Y21kcV9iYXNl LCBtaXhlci0+cmVncywKPiA+IE1JWF9EQVRBUEFUSF9DT04pOwo+ID4gKyAgICAgICBtdGtfZGRw X3dyaXRlX21hc2soY21kcV9wa3QsIE1JWF9TUkNfTDBfRU4sICZtaXhlci0KPiA+ID5jbWRxX2Jh c2UsIG1peGVyLT5yZWdzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTUlYX1NSQ19D T04sIE1JWF9TUkNfTDBfRU4pOwo+ID4gKwo+ID4gKyAgICAgICBtdGtfbW1zeXNfZGRwX2NvbmZp Zyhwcml2LT5tbXN5c19kZXYsCj4gPiBNTVNZU19DT05GSUdfSERSX0JFX0FTWU5DX1dJRFRILCAw LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3IC8gMiwgY21kcV9wa3QpOwo+ID4g KyAgICAgICBtdGtfbW1zeXNfZGRwX2NvbmZpZyhwcml2LT5tbXN5c19kZXYsCj4gPiBNTVNZU19D T05GSUdfSERSX0JFX0FTWU5DX0hFSUdIVCwgMCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaCwgY21kcV9wa3QpOwo+ID4gKyAgICAgICBtdGtfbW1zeXNfZGRwX2NvbmZpZyhwcml2 LT5tbXN5c19kZXYsCj4gPiBNTVNZU19DT05GSUdfTUlYRVJfSU5fQ0hfU1dBUCwgNCwgMCwgY21k cV9wa3QpOwo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIG10a19ldGhkcl9zdGFydChzdHJ1Y3QgZGV2 aWNlICpkZXYpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2V0aGRyICpwcml2ID0gZGV2 X2dldF9kcnZkYXRhKGRldik7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZXRoZHJfY29tcCAqbWl4 ZXIgPSAmcHJpdi0KPiA+ID5ldGhkcl9jb21wW0VUSERSX01JWEVSXTsKPiA+ICsKPiA+ICsgICAg ICAgd3JpdGVsKDEsIG1peGVyLT5yZWdzICsgTUlYX0VOKTsKPiA+ICt9Cj4gPiArCj4gPiArdm9p ZCBtdGtfZXRoZHJfc3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiArewo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX2V0aGRyICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiArICAgICAg IHN0cnVjdCBtdGtfZXRoZHJfY29tcCAqbWl4ZXIgPSAmcHJpdi0KPiA+ID5ldGhkcl9jb21wW0VU SERSX01JWEVSXTsKPiA+ICsKPiA+ICsgICAgICAgd3JpdGVsKDAsIG1peGVyLT5yZWdzICsgTUlY X0VOKTsKPiA+ICsgICAgICAgd3JpdGVsKDEsIG1peGVyLT5yZWdzICsgTUlYX1JTVCk7Cj4gPiAr ICAgICAgIHJlc2V0X2NvbnRyb2xfcmVzZXQoZGV2bV9yZXNldF9jb250cm9sX2FycmF5X2dldChk ZXYsIHRydWUsCj4gPiB0cnVlKSk7Cj4gPiArICAgICAgIHdyaXRlbCgwLCBtaXhlci0+cmVncyAr IE1JWF9SU1QpOwo+ID4gK30KPiA+ICsKPiA+ICtpbnQgbXRrX2V0aGRyX2Nsa19lbmFibGUoc3Ry dWN0IGRldmljZSAqZGV2KQo+ID4gK3sKPiA+ICsgICAgICAgaW50IHJldDsKPiA+ICsgICAgICAg c3RydWN0IG10a19ldGhkciAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gKwo+ID4g KyAgICAgICByZXQgPSBjbGtfYnVsa19wcmVwYXJlX2VuYWJsZShFVEhEUl9DTEtfTlVNLCBwcml2 LQo+ID4gPmV0aGRyX2Nsayk7Cj4gPiArICAgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAg ICAgZGV2X2VycihkZXYsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAiZXRoZHJfY2xrIHBy ZXBhcmUgZW5hYmxlIGZhaWxlZFxuIik7Cj4gPiArICAgICAgIHJldHVybiByZXQ7Cj4gPiArfQo+ ID4gKwo+ID4gK3ZvaWQgbXRrX2V0aGRyX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldikK PiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZXRoZHIgKnByaXYgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsKPiA+ICsKPiA+ICsgICAgICAgY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUoRVRI RFJfQ0xLX05VTSwgcHJpdi0+ZXRoZHJfY2xrKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGlu dCBtdGtfZXRoZHJfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UKPiA+ICpt YXN0ZXIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpCj4gPiArewo+ ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2V0aGRyICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 Cj4gPiArCj4gPiArICAgICAgIHByaXYtPm1tc3lzX2RldiA9IGRhdGE7Cj4gPiArICAgICAgIHJl dHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBtdGtfZXRoZHJfdW5iaW5kKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZQo+ID4gKm1hc3Rlciwgdm9pZCAqZGF0YSkK PiA+ICt7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29w cyBtdGtfZXRoZHJfY29tcG9uZW50X29wcyA9IHsKPiA+ICsgICAgICAgLmJpbmQgICA9IG10a19l dGhkcl9iaW5kLAo+ID4gKyAgICAgICAudW5iaW5kID0gbXRrX2V0aGRyX3VuYmluZCwKPiA+ICt9 Owo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgbXRrX2V0aGRyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRl di0+ZGV2Owo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2V0aGRyICpwcml2Owo+ID4gKyAgICAgICBp bnQgcmV0Owo+ID4gKyAgICAgICBpbnQgaTsKPiA+ICsKPiA+ICsgICAgICAgZGV2X2luZm8oZGV2 LCAiJXMrXG4iLCBfX2Z1bmNfXyk7Cj4gPiArCj4gPiArICAgICAgIHByaXYgPSBkZXZtX2t6YWxs b2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsKPiA+ICsgICAgICAgaWYgKCFwcml2 KQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ID4gKwo+ID4gKyAgICAgICBm b3IgKGkgPSAwOyBpIDwgRVRIRFJfSURfTUFYOyBpKyspIHsKPiA+ICsgICAgICAgICAgICAgICBw cml2LT5ldGhkcl9jb21wW2ldLmRldiA9IGRldjsKPiA+ICsgICAgICAgICAgICAgICBwcml2LT5l dGhkcl9jb21wW2ldLnJlZ3MgPSBvZl9pb21hcChkZXYtPm9mX25vZGUsCj4gPiBpKTsKPiA+ICsj aWYgSVNfUkVBQ0hBQkxFKENPTkZJR19NVEtfQ01EUSkKPiA+ICsgICAgICAgICAgICAgICByZXQg PSBjbWRxX2Rldl9nZXRfY2xpZW50X3JlZyhkZXYsCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtCj4gPiA+ZXRoZHJfY29tcFtpXS5jbWRxX2Jh c2UsIGkpOwo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBkZXZfZGJnKGRldiwgImdldCBtZWRpYXRlayxnY2UtY2xpZW50LXJlZwo+ID4gZmFp bCFcbiIpOwo+ID4gKyNlbmRpZgo+ID4gKyAgICAgICAgICAgICAgIGRldl9pbmZvKGRldiwgIltE Uk1dcmVnczoweCV4LCBub2RlOiVzXG4iLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHBy aXYtPmV0aGRyX2NvbXBbaV0ucmVncywKPiA+IGV0aGRyX2NvbXBfc3RyW2ldKTsKPiAKPiBJIHRo aW5rIGl0J3MgZW5vdWdoIHRvIHByaW50IGkgaW5zdGVhZCBvZiBldGhkcl9jb21wX3N0cltpXS4K PiBFeGNlcHQgdGhpcywKPiAKPiBSZXZpZXdlZC1ieTogQ2h1bi1LdWFuZyBIdSA8Y2h1bmt1YW5n Lmh1QGtlcm5lbC5vcmc+Cj4gCgpPSy4KPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBm b3IgKGkgPSAwOyBpIDwgRVRIRFJfQ0xLX05VTTsgaSsrKQo+ID4gKyAgICAgICAgICAgICAgIHBy aXYtPmV0aGRyX2Nsa1tpXS5pZCA9IGV0aGRyX2Nsa19zdHJbaV07Cj4gPiArICAgICAgIHJldCA9 IGRldm1fY2xrX2J1bGtfZ2V0X29wdGlvbmFsKGRldiwgRVRIRFJfQ0xLX05VTSwgcHJpdi0KPiA+ ID5ldGhkcl9jbGspOwo+ID4gKyAgICAgICBpZiAocmV0KQo+ID4gKyAgICAgICAgICAgICAgIHJl dHVybiByZXQ7Cj4gPiArCj4gPiArICAgICAgIHByaXYtPmlycSA9IHBsYXRmb3JtX2dldF9pcnEo cGRldiwgMCk7Cj4gPiArICAgICAgIGlmIChwcml2LT5pcnEgPCAwKQo+ID4gKyAgICAgICAgICAg ICAgIHByaXYtPmlycSA9IDA7Cj4gPiArCj4gPiArICAgICAgIGlmIChwcml2LT5pcnEpIHsKPiA+ ICsgICAgICAgICAgICAgICByZXQgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgcHJpdi0+aXJxLAo+ ID4gbXRrX2V0aGRyX2lycV9oYW5kbGVyLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSVJRRl9UUklHR0VSX05PTkUsCj4gPiBkZXZfbmFtZShkZXYpLCBwcml2KTsK PiA+ICsgICAgICAgICAgICAgICBpZiAocmV0IDwgMCkgewo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBpcnEgJWQ6Cj4gPiAlZFxuIiwg cHJpdi0+aXJxLCByZXQpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsK PiA+ICsgICAgICAgICAgICAgICB9Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgc3Bp bl9sb2NrX2luaXQoJnByaXYtPmxvY2spOwo+ID4gKyAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0 YShwZGV2LCBwcml2KTsKPiA+ICsKPiA+ICsgICAgICAgcmV0ID0gY29tcG9uZW50X2FkZChkZXYs ICZtdGtfZXRoZHJfY29tcG9uZW50X29wcyk7Cj4gPiArICAgICAgIGlmIChyZXQpCj4gPiArICAg ICAgICAgICAgICAgZGV2X25vdGljZShkZXYsICJGYWlsZWQgdG8gYWRkIGNvbXBvbmVudDogJWRc biIsCj4gPiByZXQpOwo+ID4gKwo+ID4gKyAgICAgICBkZXZfaW5mbyhkZXYsICIlcy1cbiIsIF9f ZnVuY19fKTsKPiA+ICsgICAgICAgcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IGludCBtdGtfZXRoZHJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAr ewo+ID4gKyAgICAgICBjb21wb25lbnRfZGVsKCZwZGV2LT5kZXYsICZtdGtfZXRoZHJfY29tcG9u ZW50X29wcyk7Cj4gPiArICAgICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZXRoZHJfZHJpdmVyX2R0X21hdGNoW10gPSB7 Cj4gPiArICAgICAgIHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LWRpc3AtZXRoZHIi fSwKPiA+ICsgICAgICAge30sCj4gPiArfTsKPiA+ICsKPiA+ICtNT0RVTEVfREVWSUNFX1RBQkxF KG9mLCBtdGtfZXRoZHJfZHJpdmVyX2R0X21hdGNoKTsKPiA+ICsKPiA+ICtzdHJ1Y3QgcGxhdGZv cm1fZHJpdmVyIG10a19ldGhkcl9kcml2ZXIgPSB7Cj4gPiArICAgICAgIC5wcm9iZSAgICAgICAg ICA9IG10a19ldGhkcl9wcm9iZSwKPiA+ICsgICAgICAgLnJlbW92ZSAgICAgICAgID0gbXRrX2V0 aGRyX3JlbW92ZSwKPiA+ICsgICAgICAgLmRyaXZlciAgICAgICAgID0gewo+ID4gKyAgICAgICAg ICAgICAgIC5uYW1lICAgPSAibWVkaWF0ZWstZGlzcC1ldGhkciIsCj4gPiArICAgICAgICAgICAg ICAgLm93bmVyICA9IFRISVNfTU9EVUxFLAo+ID4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90 YWJsZSA9IG10a19ldGhkcl9kcml2ZXJfZHRfbWF0Y2gsCj4gPiArICAgICAgIH0sCj4gPiArfTsK PiA+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG10a19ldGhkcl9kcml2ZXIpOwo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZXRoZHIuaAo+ID4gYi9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2V0aGRyLmgKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g PiBpbmRleCAwMDAwMDAwMDAwMDAuLjg0ZWI5YmYyZWRlMAo+ID4gLS0tIC9kZXYvbnVsbAo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19ldGhkci5oCj4gPiBAQCAtMCwwICsx LDI1IEBACj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLwo+ ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4KPiA+ICsgKi8K PiA+ICsKPiA+ICsjaWZuZGVmIF9fTVRLX0VUSERSX0hfXwo+ID4gKyNkZWZpbmUgX19NVEtfRVRI RFJfSF9fCj4gPiArCj4gPiArI2luY2x1ZGUgPGRybS9tZWRpYXRla19kcm0uaD4KPiA+ICsKPiA+ ICt2b2lkIG10a19ldGhkcl9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ID4gK3ZvaWQgbXRr X2V0aGRyX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KTsKPiA+ICtpbnQgbXRrX2V0aGRyX2Nsa19l bmFibGUoc3RydWN0IGRldmljZSAqZGV2KTsKPiA+ICt2b2lkIG10a19ldGhkcl9jbGtfZGlzYWJs ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ID4gK3ZvaWQgbXRrX2V0aGRyX2NvbmZpZyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7Cj4gPiAr dm9pZCBtdGtfZXRoZHJfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQg aW50IGlkeCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXRrX3BsYW5l X3N0YXRlICpzdGF0ZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21k cV9wa3QgKmNtZHFfcGt0KTsKPiA+ICt2b2lkIG10a19ldGhkcl9lbmFibGVfdmJsYW5rKHN0cnVj dCBkZXZpY2UgKmRldiwgdm9pZAo+ID4gKCp2YmxhbmtfY2IpKHZvaWQgKiksCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnZibGFua19jYl9kYXRhKTsKPiA+ICt2b2lkIG10 a19ldGhkcl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ID4gKyNlbmRpZgo+ ID4gKwo+ID4gLS0KPiA+IDIuMTguMAo+ID4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTGludXgtbWVkaWF0ZWsgbWFpbGluZyBsaXN0CkxpbnV4LW1l ZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1tZWRpYXRlawo=