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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 0F305C38A2D for ; Thu, 27 Oct 2022 08:37:41 +0000 (UTC) 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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WcMzP3tBlLW60gxx2lBYWzonWC0NBWyTSHbERktIhNU=; b=Dzn1HwWEN+fd9r JAV6a2CM9Zn/8RABHlyp68la8L+aQonXv+s1bAVe6mR05PGjN7EOfc7YeVGuOMC/JB4+sbhS7KMUd vCMKb4FwmP0f0IKbRUVp4HERGyuWZZgCqyBGwHsN5aVTHceoSAXL9LvcNzp0BeGWfCZHM94GM4lOw /dGLO6AFFinZWJyazPhEztxY2PYe4/PdfigMEbRCBUgY/T2ZmY5qiM3CTSnowyYTAwF03I9NRphio 01hYUrTOUdm1xv6v2w+P6DNxjnqVRYjJX518ar+T+fexTJMDEjYEKM1+DJe3lBYlQVLbaj/Nl9K6I d+j2Lu5Io41xftc3ud+Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1onyNI-00CQ6e-Fh; Thu, 27 Oct 2022 08:36:28 +0000 Received: from mail-vk1-xa36.google.com ([2607:f8b0:4864:20::a36]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1onyNF-00CQ4g-1p for linux-arm-kernel@lists.infradead.org; Thu, 27 Oct 2022 08:36:27 +0000 Received: by mail-vk1-xa36.google.com with SMTP id g26so333153vkm.12 for ; Thu, 27 Oct 2022 01:36:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=c39D+F4e8YHmvY5D42QFvMHkl0AwzgPk+17Hes9atyw=; b=I5RLdgJ9YiZqPeunpBj5xzTnjV1RVXA5qrGQhCBk/Pzs5wv8h3eV9UT/JWcCVINnRh MLvrefK1l9HHQbrozeTzXqveA/OWuvRYj8dWWVey1szbr1cK5O3DsM0tf10V4850WIuD KTfCuZlVUtZKeSN/+yBl7zSVgn3KRiF4iJhmN2rvPslzdHzopqyiLPOoNmMXPKLQCxnc KECu1dZZUfZV0ZMgiQ7vdeN3ICiQz4IRQGt5zP4fF+VwPUk7N7f7MBhtFWHxFkSNDWlh 6A5fH5qhVOucslpw0CXuRkp5d52tR7bcT/shePxKE2GXRej03cBoP1ZIiXFs9jrBDjq4 eAsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c39D+F4e8YHmvY5D42QFvMHkl0AwzgPk+17Hes9atyw=; b=oCfnxvN5uswIhePKCNds0N41Ej/4YtImPKJsMQRaKfK0yroPITU05ml9M38dh3dyeg w6BSfoPoL0FjmaOgTQHIAU3puMD+BN191489wYDSplD55kLCgH1N5G1HmKqKRNGiw/wj 3P8hBAGW+qPeYDyFhgPHGeMwloVEI4vjP3/H37iFttXNLYQrLbr2/TxrVTCjSDBH4pn2 qFg5/MOB9OatTnuONPf14ME6Av+0DWJeorSQO4eVXAVWwqSCjuoQtVx9S2oJXKOhFGmH pEGyFSkosV5g0snDomGO5PH1qk/yKJYo8S3syRTuWXRF5Rmy5S8+rVSGQmh6dkqrwGRA K43Q== X-Gm-Message-State: ACrzQf1AIyOod23cWtbG9qUZWEayxN8sAzKaYRvPx3PD44BqBTRSiBGa 4V99JO2tVoCLmC6wbk/QqNyhCfj3Sm7j6lXHpeWxdyOQ5VE= X-Google-Smtp-Source: AMsMyM6bTL3U2v1crn79C43zvfkuqPKjJYUI1i7Xh25x4KTaaQF4K5epB0oy8HIRxl8uJ2Cqzd+mTLukQkLLgmeDUOY= X-Received: by 2002:a1f:200e:0:b0:3b7:6558:52a2 with SMTP id g14-20020a1f200e000000b003b7655852a2mr9686636vkg.20.1666859781931; Thu, 27 Oct 2022 01:36:21 -0700 (PDT) MIME-Version: 1.0 References: <20220907131241.31941-1-romain.perier@gmail.com> <20220907131241.31941-3-romain.perier@gmail.com> <20220927163314.rzfld7sqchsdfvfg@pengutronix.de> In-Reply-To: <20220927163314.rzfld7sqchsdfvfg@pengutronix.de> From: Romain Perier Date: Thu, 27 Oct 2022 10:36:10 +0200 Message-ID: Subject: Re: [PATCH v2 2/5] pwm: Add support for the MSTAR MSC313 PWM To: =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= Cc: Thierry Reding , Lee Jones , Daniel Palmer , Rob Herring , Mark Brown , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-pwm@vger.kernel.org, linux-kernel@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221027_013625_143791_8EE8AFF5 X-CRM114-Status: GOOD ( 52.93 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgoKTGUgbWFyLiAyNyBzZXB0LiAyMDIyIMOgIDE4OjMzLCBVd2UgS2xlaW5lLUvDtm5pZwo8 dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPiBhIMOpY3JpdCA6Cj4KPiBIZWxsbyBSb21h aW4sIGhlbGxvIERhbmllbCwKPgo+IGFkZGluZyBNYXJrIEJyb3duIHRvIENjOiBmb3IgdGhlIHJl Z21hcCBzdHVmZi4KPgo+IE9uIFdlZCwgU2VwIDA3LCAyMDIyIGF0IDAzOjEyOjM4UE0gKzAyMDAs IFJvbWFpbiBQZXJpZXIgd3JvdGU6Cj4gPiBGcm9tOiBEYW5pZWwgUGFsbWVyIDxkYW5pZWxAMHgw Zi5jb20+Cj4gPgo+ID4gVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBQV00gYmxvY2sgb24gdGhl IE1zdGFyIE1TQzMxM2UgU29DcyBhbmQgbmV3ZXIuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFu aWVsIFBhbG1lciA8ZGFuaWVsQDB4MGYuY29tPgo+ID4gQ28tZGV2ZWxvcGVkLWJ5OiBSb21haW4g UGVyaWVyIDxyb21haW4ucGVyaWVyQGdtYWlsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFJvbWFp biBQZXJpZXIgPHJvbWFpbi5wZXJpZXJAZ21haWwuY29tPgo+ID4gLS0tCj4gPiAgTUFJTlRBSU5F UlMgICAgICAgICAgICAgICB8ICAgMSArCj4gPiAgZHJpdmVycy9wd20vS2NvbmZpZyAgICAgICB8 ICAgOSArKwo+ID4gIGRyaXZlcnMvcHdtL01ha2VmaWxlICAgICAgfCAgIDEgKwo+ID4gIGRyaXZl cnMvcHdtL3B3bS1tc2MzMTNlLmMgfCAyNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDI4MCBpbnNlcnRpb25zKCspCj4gPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcHdtL3B3bS1tc2MzMTNlLmMKPiA+Cj4gPiBkaWZmIC0t Z2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwo+ID4gaW5kZXggOWQ3ZjY0ZGMwZWZlLi5j M2IzOWIwOTA5N2MgMTAwNjQ0Cj4gPiAtLS0gYS9NQUlOVEFJTkVSUwo+ID4gKysrIGIvTUFJTlRB SU5FUlMKPiA+IEBAIC0yNDM5LDYgKzI0MzksNyBAQCBGOiAgICAgIGFyY2gvYXJtL21hY2gtbXN0 YXIvCj4gPiAgRjogICBkcml2ZXJzL2Nsay9tc3Rhci8KPiA+ICBGOiAgIGRyaXZlcnMvY2xvY2tz b3VyY2UvdGltZXItbXNjMzEzZS5jCj4gPiAgRjogICBkcml2ZXJzL2dwaW8vZ3Bpby1tc2MzMTMu Ywo+ID4gK0Y6ICAgZHJpdmVycy9wd20vcHdtLW1zYzMxM2UuYwo+ID4gIEY6ICAgZHJpdmVycy9y dGMvcnRjLW1zYzMxMy5jCj4gPiAgRjogICBkcml2ZXJzL3dhdGNoZG9nL21zYzMxM2Vfd2R0LmMK PiA+ICBGOiAgIGluY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svbXN0YXItKgo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvcHdtL0tjb25maWcgYi9kcml2ZXJzL3B3bS9LY29uZmlnCj4gPiBpbmRleCA2 MGQxM2E5NDliYzUuLjgwNDlmZDAzYTgyMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvcHdtL0tj b25maWcKPiA+ICsrKyBiL2RyaXZlcnMvcHdtL0tjb25maWcKPiA+IEBAIC0zNzIsNiArMzcyLDE1 IEBAIGNvbmZpZyBQV01fTUVTT04KPiA+ICAgICAgICAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBh cyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZQo+ID4gICAgICAgICB3aWxsIGJl IGNhbGxlZCBwd20tbWVzb24uCj4gPgo+ID4gK2NvbmZpZyBQV01fTVNDMzEzRQo+ID4gKyAgICAg dHJpc3RhdGUgIk1TdGFyIE1TQzMxM2UgUFdNIHN1cHBvcnQiCj4gPiArICAgICBkZXBlbmRzIG9u IEFSQ0hfTVNUQVJWNyB8fCBDT01QSUxFX1RFU1QKPiA+ICsgICAgIGhlbHAKPiA+ICsgICAgICAg R2VuZXJpYyBQV00gZnJhbWV3b3JrIGRyaXZlciBmb3IgTVNUQVIgTVNDMzEzZS4KPiA+ICsKPiA+ ICsgICAgICAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVy ZTogdGhlIG1vZHVsZQo+ID4gKyAgICAgICB3aWxsIGJlIGNhbGxlZCBwd20tbXNjMzEzZS4KPiA+ ICsKPiA+ICBjb25maWcgUFdNX01US19ESVNQCj4gPiAgICAgICB0cmlzdGF0ZSAiTWVkaWFUZWsg ZGlzcGxheSBQV00gZHJpdmVyIgo+ID4gICAgICAgZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8 IENPTVBJTEVfVEVTVAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL01ha2VmaWxlIGIvZHJp dmVycy9wd20vTWFrZWZpbGUKPiA+IGluZGV4IDdiZjFhMjlmMDJiOC4uYmMyODVjMDU0ZjJhIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9wd20vTWFrZWZpbGUKPiA+ICsrKyBiL2RyaXZlcnMvcHdt L01ha2VmaWxlCj4gPiBAQCAtNjIsNCArNjIsNSBAQCBvYmotJChDT05GSUdfUFdNX1RXTCkgICAg ICAgICAgICAgICArPSBwd20tdHdsLm8KPiA+ICBvYmotJChDT05GSUdfUFdNX1RXTF9MRUQpICAg ICs9IHB3bS10d2wtbGVkLm8KPiA+ICBvYmotJChDT05GSUdfUFdNX1ZJU0NPTlRJKSAgICs9IHB3 bS12aXNjb250aS5vCj4gPiAgb2JqLSQoQ09ORklHX1BXTV9WVDg1MDApICAgICArPSBwd20tdnQ4 NTAwLm8KPiA+ICtvYmotJChDT05GSUdfUFdNX01TQzMxM0UpICAgICs9IHB3bS1tc2MzMTNlLm8K PiA+ICBvYmotJChDT05GSUdfUFdNX1hJTElOWCkgICAgICs9IHB3bS14aWxpbngubwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1tc2MzMTNlLmMgYi9kcml2ZXJzL3B3bS9wd20tbXNj MzEzZS5jCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5h NzFmMzliYTY2YzMKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZlcnMvcHdtL3B3bS1t c2MzMTNlLmMKPiA+IEBAIC0wLDAgKzEsMjY5IEBACj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAKPiA+ICsvKgo+ID4gKyAqIENvcHlyaWdodCAoQykgMjAyMSBEYW5pZWwg UGFsbWVyIDxkYW5pZWxAdGhpbmd5LmpwPgo+ID4gKyAqIENvcHlyaWdodCAoQykgMjAyMiBSb21h aW4gUGVyaWVyIDxyb21haW4ucGVyaWVyQGdtYWlsLmNvbT4KPiA+ICsgKi8KPiA+ICsKPiA+ICsj aW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+ ID4gKyNpbmNsdWRlIDxsaW51eC9wd20uaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+ Cj4gPiArCj4gPiArI2RlZmluZSBEUklWRVJfTkFNRSAibXNjMzEzZS1wd20iCj4gPiArCj4gPiAr I2RlZmluZSBDSEFOTkVMX09GRlNFVCAgICAgICAweDgwCj4gPiArI2RlZmluZSBSRUdfRFVUWSAg ICAgMHg4Cj4gPiArI2RlZmluZSBSRUdfUEVSSU9EICAgMHgxMAo+ID4gKyNkZWZpbmUgUkVHX0RJ ViAgICAgICAgICAgICAgMHgxOAo+ID4gKyNkZWZpbmUgUkVHX0NUUkwgICAgIDB4MWMKPiA+ICsj ZGVmaW5lIFJFR19TV1JTVCAgICAweDFmYwo+ID4gKwo+ID4gK3N0cnVjdCBtc2MzMTNlX3B3bV9j aGFubmVsIHsKPiA+ICsgICAgIHN0cnVjdCByZWdtYXBfZmllbGQgKmNsa2RpdjsKPiA+ICsgICAg IHN0cnVjdCByZWdtYXBfZmllbGQgKnBvbGFyaXR5Owo+ID4gKyAgICAgc3RydWN0IHJlZ21hcF9m aWVsZCAqZHV0eWw7Cj4gPiArICAgICBzdHJ1Y3QgcmVnbWFwX2ZpZWxkICpkdXR5aDsKPiA+ICsg ICAgIHN0cnVjdCByZWdtYXBfZmllbGQgKnBlcmlvZGw7Cj4gPiArICAgICBzdHJ1Y3QgcmVnbWFw X2ZpZWxkICpwZXJpb2RoOwo+ID4gKyAgICAgc3RydWN0IHJlZ21hcF9maWVsZCAqc3dyc3Q7Cj4g PiArfTsKPiA+ICsKPiA+ICtzdHJ1Y3QgbXNjMzEzZV9wd20gewo+ID4gKyAgICAgc3RydWN0IHJl Z21hcCAqcmVnbWFwOwo+ID4gKyAgICAgc3RydWN0IHB3bV9jaGlwIHB3bWNoaXA7Cj4gPiArICAg ICBzdHJ1Y3QgY2xrICpjbGs7Cj4gPiArICAgICBzdHJ1Y3QgbXNjMzEzZV9wd21fY2hhbm5lbCBj aGFubmVsc1tdOwo+ID4gK307Cj4gPiArCj4gPiArc3RydWN0IG1zYzMxM2VfcHdtX2luZm8gewo+ ID4gKyAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzOwo+ID4gK307Cj4gPiArCj4gPiArI2RlZmlu ZSB0b19tc2MzMTNlX3B3bShwdHIpIGNvbnRhaW5lcl9vZihwdHIsIHN0cnVjdCBtc2MzMTNlX3B3 bSwgcHdtY2hpcCkKPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcg bXNjMzEzZV9wd21fcmVnbWFwX2NvbmZpZyA9IHsKPiA+ICsgICAgIC5yZWdfYml0cyA9IDE2LAo+ ID4gKyAgICAgLnZhbF9iaXRzID0gMTYsCj4gPiArICAgICAucmVnX3N0cmlkZSA9IDQsCj4gPiAr fTsKPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG1zYzMxM2VfcHdtX2luZm8gbXNjMzEz ZV9kYXRhID0gewo+ID4gKyAgICAgLmNoYW5uZWxzID0gOCwKPiA+ICt9Owo+ID4gKwo+ID4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbXNjMzEzZV9wd21faW5mbyBzc2QyMHhkX2RhdGEgPSB7Cj4gPiAr ICAgICAuY2hhbm5lbHMgPSA0LAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgbXNjMzEz ZV9wd21fd3JpdGVjb3VudGVyKHN0cnVjdCByZWdtYXBfZmllbGQgKmxvdywgc3RydWN0IHJlZ21h cF9maWVsZCAqaGlnaCwgdTMyIHZhbHVlKQo+ID4gK3sKPiA+ICsgICAgIC8qIFRoZSBidXMgdGhh dCBjb25uZWN0cyB0aGUgQ1BVIHRvIHRoZSBwZXJpcGhlcmFsIHJlZ2lzdGVycyBzcGxpdHMgMzIg Yml0IHJlZ2lzdGVycyBpbnRvCj4KPiBQbGVhc2UgZml4IHRoZSBjb21tZW50IHN0eWxlIHRvIHVz ZSAvKiBvbiBhIGxpbmUgZm9yIGl0c2VsZi4gQWxzbyBmb3IKPiBjb21tZW50cyBzdGF5aW5nIGJl bG93IDgwIGNoYXJzIHBlciBsaW5lIGlzIGFwcHJlY2lhdGVkLgoKZXZlbiBpZiBjaGVjay1wYXRj aC5wbCAtLXN0cmljdCBwYXNzZWQgPyBeXgoKPgo+ID4gKyAgICAgICogdHdvIDE2Yml0IHJlZ2lz dGVycyBwbGFjZWQgNCBieXRlcyBhcGFydC4gSXQncyB0aGUgaGFyZHdhcmUgZGVzaWduIHRoZXkg dXNlZC4gVGhlIGNvdW50ZXIKPiA+ICsgICAgICAqIHdlIGFyZSBhYm91dCB0byB3cml0ZSBoYXMg dGhpcyBjb250cmFpbnN0Lgo+Cj4gcy9jb250cmFpbnN0L2NvbnRyYWludC8KPgo+IEkgd29uZGVy IGlmIHRoYXQgY291bGQgYmUgYWJzdHJhY3RlZCBieSByZWdtYXA/IQoKSSBoYWQgdGhlIHNhbWUg dGhvdWdodCwgbm90IGZyb20gd2hhdCBJIGhhdmUgcmVhZC9mb3VuZCwgYnV0IHBlcmhhcHMKdGhl IHJlZ21hcCBtYWludGFpbmVyIGhhcyBhbiBvcGluaW9uLgoKPgo+ID4gKyAgICAgICovCj4gPiAr ICAgICByZWdtYXBfZmllbGRfd3JpdGUobG93LCB2YWx1ZSAmIDB4ZmZmZik7Cj4gPiArICAgICBy ZWdtYXBfZmllbGRfd3JpdGUoaGlnaCwgdmFsdWUgPj4gMTYpOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgdm9pZCBtc2MzMTNlX3B3bV9yZWFkY291bnRlcihzdHJ1Y3QgcmVnbWFwX2ZpZWxkICps b3csIHN0cnVjdCByZWdtYXBfZmllbGQgKmhpZ2gsIHUzMiAqdmFsdWUpCj4gPiArewo+ID4gKyAg ICAgdW5zaWduZWQgaW50IHZhbCA9IDA7Cj4gPiArCj4gPiArICAgICByZWdtYXBfZmllbGRfcmVh ZChsb3csICZ2YWwpOwo+ID4gKyAgICAgKnZhbHVlID0gdmFsOwo+ID4gKyAgICAgcmVnbWFwX2Zp ZWxkX3JlYWQoaGlnaCwgJnZhbCk7Cj4gPiArICAgICAqdmFsdWUgPSAodmFsIDw8IDE2KSB8ICp2 YWx1ZTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBtc2MzMTNlX3B3bV9jb25maWcoc3Ry dWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqZGV2aWNlLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBkdXR5X25zLCBpbnQgcGVyaW9kX25zKQo+ID4gK3sK PiA+ICsgICAgIHN0cnVjdCBtc2MzMTNlX3B3bSAqcHdtID0gdG9fbXNjMzEzZV9wd20oY2hpcCk7 Cj4gPiArICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbnNwZXJ0aWNrID0gRElWX1JPVU5EX0RPV05f VUxMKE5TRUNfUEVSX1NFQywgY2xrX2dldF9yYXRlKHB3bS0+Y2xrKSk7Cj4gPiArICAgICBzdHJ1 Y3QgbXNjMzEzZV9wd21fY2hhbm5lbCAqY2hhbm5lbCA9ICZwd20tPmNoYW5uZWxzW2RldmljZS0+ aHdwd21dOwo+ID4gKyAgICAgdW5zaWduZWQgbG9uZyBsb25nIGRpdiA9IDE7Cj4gPiArCj4gPiAr ICAgICAvKiBGaXQgdGhlIHBlcmlvZCBpbnRvIHRoZSBwZXJpb2QgcmVnaXN0ZXIgYnkgcHJlc2Nh bGluZyB0aGUgY2xrICovCj4gPiArICAgICB3aGlsZSAoRElWX1JPVU5EX0RPV05fVUxMKHBlcmlv ZF9ucywgbnNwZXJ0aWNrKSA+IDB4M2ZmZmYpIHsKPgo+IGRpdmlkaW5nIGJ5IHRoZSByZXN1bHQg b2YgYSBkaXZpc2lvbiBsb29zZXMgcHJlY2lzaW9uLiBBbHNvIHJvdW5kaW5nCj4gZG93biBib3Ro IGRpdmlzaW9ucyBsb29rcyB3cm9uZy4KClN1Y2ggY2FzZXMgYXJlIG5vdCBzdXBwb3NlZCB0byBi ZSBjb3ZlcmVkIGJ5IFBXTV9ERUJVRyA/IChiZWNhdXNlCmV2ZXJ5dGhpbmcgcGFzc2VkIHdpdGgg UFdNX0RFQlVHKQoKCj4KPiA+ICsgICAgICAgICAgICAgZGl2Kys7Cj4gPiArICAgICAgICAgICAg IGlmIChkaXYgPiAoMHhmZmZmICsgMSkpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAvKiBG b3JjZSBjbGsgZGl2IHRvIHRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgKi8KPiA+ICsgICAgICAg ICAgICAgICAgICAgICBkaXYgPSAweGZmZmY7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Cj4gPiArICAgICAgICAgICAgIH0KPiA+ICsgICAgICAgICAgICAgbnNwZXJ0aWNrID0gRElW X1JPVU5EX0RPV05fVUxMKG5zcGVydGljaywgZGl2KTsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsg ICAgIHJlZ21hcF9maWVsZF93cml0ZShjaGFubmVsLT5jbGtkaXYsIGRpdiAtIDEpOwo+ID4gKyAg ICAgbXNjMzEzZV9wd21fd3JpdGVjb3VudGVyKGNoYW5uZWwtPmR1dHlsLCBjaGFubmVsLT5kdXR5 aCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESVZfUk9VTkRfRE9XTl9VTEwo ZHV0eV9ucywgbnNwZXJ0aWNrKSk7Cj4gPiArICAgICBtc2MzMTNlX3B3bV93cml0ZWNvdW50ZXIo Y2hhbm5lbC0+cGVyaW9kbCwgY2hhbm5lbC0+cGVyaW9kaCwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBESVZfUk9VTkRfRE9XTl9VTEwocGVyaW9kX25zLCBuc3BlcnRpY2spKTsK PiA+ICsgICAgIHJldHVybiAwOwo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGludCBtc2MzMTNl X3B3bV9zZXRfcG9sYXJpdHkoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2Rldmlj ZSAqZGV2aWNlLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gcHdt X3BvbGFyaXR5IHBvbGFyaXR5KQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBtc2MzMTNlX3B3bSAq cHdtID0gdG9fbXNjMzEzZV9wd20oY2hpcCk7Cj4gPiArICAgICBzdHJ1Y3QgbXNjMzEzZV9wd21f Y2hhbm5lbCAqY2hhbm5lbCA9ICZwd20tPmNoYW5uZWxzW2RldmljZS0+aHdwd21dOwo+ID4gKyAg ICAgdW5zaWduZWQgaW50IHBvbCA9IDA7Cj4gPiArCj4gPiArICAgICBpZiAocG9sYXJpdHkgPT0g UFdNX1BPTEFSSVRZX0lOVkVSU0VEKQo+ID4gKyAgICAgICAgICAgICBwb2wgPSAxOwo+ID4gKyAg ICAgcmVnbWFwX2ZpZWxkX3VwZGF0ZV9iaXRzKGNoYW5uZWwtPnBvbGFyaXR5LCAxLCBwb2wpOwo+ ID4gKwo+ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgbXNj MzEzZV9wd21fZW5hYmxlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2Ug KmRldmljZSkKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3QgbXNjMzEzZV9wd20gKnB3bSA9IHRvX21z YzMxM2VfcHdtKGNoaXApOwo+ID4gKyAgICAgc3RydWN0IG1zYzMxM2VfcHdtX2NoYW5uZWwgKmNo YW5uZWwgPSAmcHdtLT5jaGFubmVsc1tkZXZpY2UtPmh3cHdtXTsKPiA+ICsgICAgIGludCByZXQ7 Cj4gPiArCj4gPiArICAgICByZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUocHdtLT5jbGspOwo+ID4g KyAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsgICAgIHJl dHVybiByZWdtYXBfZmllbGRfd3JpdGUoY2hhbm5lbC0+c3dyc3QsIDApOwo+ID4gK30KPiA+ICsK PiA+ICtzdGF0aWMgaW50IG1zYzMxM2VfcHdtX2Rpc2FibGUoc3RydWN0IHB3bV9jaGlwICpjaGlw LCBzdHJ1Y3QgcHdtX2RldmljZSAqZGV2aWNlKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBtc2Mz MTNlX3B3bSAqcHdtID0gdG9fbXNjMzEzZV9wd20oY2hpcCk7Cj4gPiArICAgICBzdHJ1Y3QgbXNj MzEzZV9wd21fY2hhbm5lbCAqY2hhbm5lbCA9ICZwd20tPmNoYW5uZWxzW2RldmljZS0+aHdwd21d Owo+ID4gKyAgICAgaW50IHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IHJlZ21hcF9maWVsZF93 cml0ZShjaGFubmVsLT5zd3JzdCwgMSk7Cj4gPiArICAgICBjbGtfZGlzYWJsZV91bnByZXBhcmUo cHdtLT5jbGspOwo+ID4gKyAgICAgcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IGludCBtc2MzMTNlX2FwcGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZp Y2UgKnB3bSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0 ZSAqc3RhdGUpCj4gPiArewo+ID4gKyAgICAgaW50IHJldDsKPiA+ICsKPiA+ICsgICAgIGlmIChz dGF0ZS0+ZW5hYmxlZCkgewo+ID4gKyAgICAgICAgICAgICBpZiAoIXB3bS0+c3RhdGUuZW5hYmxl ZCkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldCA9IG1zYzMxM2VfcHdtX2VuYWJsZShj aGlwLCBwd20pOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gKyAgICAgICAgICAgICB9Cj4g PiArICAgICAgICAgICAgIG1zYzMxM2VfcHdtX3NldF9wb2xhcml0eShjaGlwLCBwd20sIHN0YXRl LT5wb2xhcml0eSk7Cj4gPiArICAgICAgICAgICAgIG1zYzMxM2VfcHdtX2NvbmZpZyhjaGlwLCBw d20sIHN0YXRlLT5kdXR5X2N5Y2xlLCBzdGF0ZS0+cGVyaW9kKTsKPgo+IERvZXMgdGhlIG91dHB1 dCBlbWl0IGEgcHJldmlvdXMgc2V0dGluZyBhZnRlciBtc2MzMTNlX3B3bV9lbmFibGUoKT8gSWYK PiBzbywgcGxlYXNlIGRvIHRoZSBlbmFibGUgYXQgdGhlIGVuZC4KPgo+IERvZXMgY2FsbGluZyBt c2MzMTNlX3B3bV9zZXRfcG9sYXJpdHkoKSBhbmQgbXNjMzEzZV9wd21fY29uZmlnKCkgaGF2ZSBh bgo+IGltbWVkaWF0ZSBlZmZlY3Q/IE9yIGlzIHRoZSBjdXJyZW50bHkgcnVubmluZyBwZXJpb2Qg Y29tcGxldGVkPwo+Cj4gPiArICAgICB9IGVsc2UgaWYgKHB3bS0+c3RhdGUuZW5hYmxlZCkgewo+ ID4gKyAgICAgICAgICAgICByZXQgPSBtc2MzMTNlX3B3bV9kaXNhYmxlKGNoaXAsIHB3bSk7Cj4K PiBIb3cgZG9lcyB0aGUgb3V0cHV0IGJlaGF2ZSBvbiBkaXNhYmxlPyBUeXBpY2FsIG9wdGlvbnMg YXJlOgo+Cj4gIC0gZnJlZXplcyB3aGVyZSBldmVyIGl0IGN1cnJlbnRseSBpcwo+ICAtIGdvZXMg dG8gdGhlIGluYWN0aXZlIGxldmVsCgpJIGxldCBEYW5pZWwgYW5zd2VyIHRoZXNlIHF1ZXN0aW9u cy4KCgo+Cj4gRG9lcyBpdCBjb21wbGV0ZSB0aGUgY3VycmVudGx5IHJ1bm5pbmcgcGVyaW9kPyBQ bGVhc2UgYW5zd2VyIHRoZXNlIGluIGEKPiAiTGltaXRhdGlvbnM6IiBzZWN0aW9uIHNpbWlsYXIg dG8gZS5nLiBwd20tc2wyOGNwbGQuYyBhbmQgcHdtLWlxczYyMGEuCj4KPiA+ICsgICAgIH0KPiA+ ICsgICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBtc2MzMTNlX2dl dF9zdGF0ZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpkZXZpY2Us Cj4KPiBQbGVhc2Ugcy9kZXZpY2UvcHdtLyB0byBtYXRjaCB0aGUgbmFtaW5nIHVzZWQgaW4gb3Ro ZXIgZHJpdmVycy4KPgo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwd21f c3RhdGUgKnN0YXRlKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBtc2MzMTNlX3B3bSAqcHdtID0g dG9fbXNjMzEzZV9wd20oY2hpcCk7Cj4gPiArICAgICBzdHJ1Y3QgbXNjMzEzZV9wd21fY2hhbm5l bCAqY2hhbm5lbCA9ICZwd20tPmNoYW5uZWxzW2RldmljZS0+aHdwd21dOwo+ID4gKyAgICAgdW5z aWduZWQgbG9uZyBsb25nIG5zcGVydGljayA9IERJVl9ST1VORF9ET1dOX1VMTChOU0VDX1BFUl9T RUMsIGNsa19nZXRfcmF0ZShwd20tPmNsaykpOwo+ID4gKyAgICAgdW5zaWduZWQgaW50IHZhbCA9 IDA7Cj4gPiArCj4gPiArICAgICByZWdtYXBfZmllbGRfcmVhZChjaGFubmVsLT5wb2xhcml0eSwg JnZhbCk7Cj4gPiArICAgICBzdGF0ZS0+cG9sYXJpdHkgPSB2YWwgPyBQV01fUE9MQVJJVFlfSU5W RVJTRUQgOiBQV01fUE9MQVJJVFlfTk9STUFMOwo+ID4gKwo+ID4gKyAgICAgcmVnbWFwX2ZpZWxk X3JlYWQoY2hhbm5lbC0+c3dyc3QsICZ2YWwpOwo+ID4gKyAgICAgc3RhdGUtPmVuYWJsZWQgPSB2 YWwgPT0gMCA/IHRydWUgOiBmYWxzZTsKPiA+ICsKPiA+ICsgICAgIG1zYzMxM2VfcHdtX3JlYWRj b3VudGVyKGNoYW5uZWwtPmR1dHlsLCBjaGFubmVsLT5kdXR5aCwgJnZhbCk7Cj4gPiArICAgICBz dGF0ZS0+ZHV0eV9jeWNsZSA9IHZhbCAqIG5zcGVydGljazsKPgo+IFBsZWFzZSBkbyB0aGUgZGl2 aXNpb24gYXQgdGhlIGVuZC4gQ29uc2lkZXIgdmFsID0gMzMzMzM1IGFuZAo+IGNsa19nZXRfcmF0 ZSgpIHJldHVybmluZyA2NjY2NjY2NjcuCj4KPiBUaGVuIHRoZSBleGFjdCBkdXR5IGN5Y2xlIHdv dWxkIGJlIDUwMDAwMi40OTk3NDk5OTg3NCBidXQgeW91IHdvdWxkCj4gY2FsY3VsYXRlIG5zcGVy dGljayA9IDEgYW5kIHNvIGR1dHlfY3ljbGUgPSAzMzMzMzUuCj4KPiBBbHNvIHlvdSBuZWVkIHRv IHJvdW5kIHVwLiBEaWQgeW91IHRlc3QgeW91ciBkcml2ZXIgd2l0aCBQV01fREVCVUcKPiBlbmFi bGVkPwoKVGFrZSBhIGxvb2sgYXQgbXkgY292ZXIgbGV0dGVyLCB5ZWFoIEkgaGF2ZSB0ZXN0ZWQg ZXZlcnl0aGluZyB3aXRoClBXTV9ERUJVRywgZXZlcnl0aGluZyBwYXNzZWQgXl4KClRoZSBpZGVh IGlzIHRoYXQgLmdldF9zdGF0ZSBzaG91bGQgcmV0dXJuIDUwMDAwMyBoZXJlIHRvIGhhdmUKPiBh cHBseSDiiJggZ2V0X3N0YXRlIGlkZW1wb3RlbnQuIEFzIGFwcGx5IGlzIHN1cHBvc2VkIHRvIHJv dW5kIGRvd24gdG8gdGhlCj4gbmV4dCBhdmFpbGFibGUgc2V0dGluZywgZ2V0X3N0YXRlIGhhcyB0 byByb3VuZCB1cC4KPgo+ID4gKyAgICAgbXNjMzEzZV9wd21fcmVhZGNvdW50ZXIoY2hhbm5lbC0+ cGVyaW9kbCwgY2hhbm5lbC0+cGVyaW9kaCwgJnZhbCk7Cj4gPiArICAgICBzdGF0ZS0+cGVyaW9k ID0gdmFsICogbnNwZXJ0aWNrOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IHB3bV9vcHMgbXNjMzEzZV9wd21fb3BzID0gewo+ID4gKyAgICAgLmFwcGx5ID0gbXNjMzEzZV9h cHBseSwKPiA+ICsgICAgIC5nZXRfc3RhdGUgPSBtc2MzMTNlX2dldF9zdGF0ZSwKPiA+ICsgICAg IC5vd25lciA9IFRISVNfTU9EVUxFCj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgaW50IG1zYzMx M2VfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiArewo+ID4gKyAg ICAgY29uc3Qgc3RydWN0IG1zYzMxM2VfcHdtX2luZm8gKm1hdGNoX2RhdGE7Cj4gPiArICAgICBz dHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ID4gKyAgICAgc3RydWN0IG1zYzMxM2Vf cHdtICpwd207Cj4gPiArICAgICBfX2lvbWVtIHZvaWQgKmJhc2U7Cj4gPiArICAgICBpbnQgaTsK PiA+ICsKPiA+ICsgICAgIG1hdGNoX2RhdGEgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2 KTsKPiA+ICsgICAgIGlmICghbWF0Y2hfZGF0YSkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7Cj4gPiArCj4gPiArICAgICBiYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291 cmNlKHBkZXYsIDApOwo+ID4gKyAgICAgaWYgKElTX0VSUihiYXNlKSkKPiA+ICsgICAgICAgICAg ICAgcmV0dXJuIFBUUl9FUlIoYmFzZSk7Cj4gPiArCj4gPiArICAgICBwd20gPSBkZXZtX2t6YWxs b2MoZGV2LCBzdHJ1Y3Rfc2l6ZShwd20sIGNoYW5uZWxzLCBtYXRjaF9kYXRhLT5jaGFubmVscyks IEdGUF9LRVJORUwpOwo+Cj4gUGxlYXNlIGRvbid0IHVzZSAicHdtIiBhcyBhIG5hbWUgZm9yIHlv dXIgZHJpdmVyIGRhdGEgdmFyaWFibGUuIFRoYXQKPiBuYW1lIGlzIHJlc2VydmVkIGZvciBzdHJ1 Y3QgcHdtX2RldmljZSBwb2ludGVycy4gU29tZXRoaW5nIGxpa2UgImRkYXRhIgo+IHdvdWxkIGJl IGZpbmUsIGJ1dCB0aGVyZSBpcyBhIHdpZGUgdmFyaWV0eSBpbiBwd20gZHJpdmVyIGxhbmQgdG8g Y2hvb3NlCj4gZnJvbS4KPgo+ID4gKyAgICAgaWYgKCFwd20pCj4gPiArICAgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOwo+ID4gKwo+ID4gKyAgICAgcHdtLT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2 LCBOVUxMKTsKPiA+ICsgICAgIGlmIChJU19FUlIocHdtLT5jbGspKQo+ID4gKyAgICAgICAgICAg ICByZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHdtLT5jbGspLCAiQ2Fubm90IGdl dCBjbGtcbiIpOwo+ID4gKwo+ID4gKyAgICAgcHdtLT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0 X21taW8oZGV2LCBiYXNlLCAmbXNjMzEzZV9wd21fcmVnbWFwX2NvbmZpZyk7Cj4gPiArICAgICBp ZiAoSVNfRVJSKHB3bS0+cmVnbWFwKSkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIGRldl9lcnJf cHJvYmUoZGV2LCBQVFJfRVJSKHB3bS0+cmVnbWFwKSwgIkNhbm5vdCBnZXQgcmVnbWFwXG4iKTsK PiA+ICsKPiA+ICsgICAgIGZvciAoaSA9IDA7IGkgPCBtYXRjaF9kYXRhLT5jaGFubmVsczsgaSsr KSB7Cj4gPiArICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQgPSBDSEFOTkVMX09GRlNF VCAqIGk7Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCByZWdfZmllbGQgZGl2X2Nsa2Rpdl9maWVs ZCA9IFJFR19GSUVMRChvZmZzZXQgKyBSRUdfRElWLCAwLCA3KTsKPiA+ICsgICAgICAgICAgICAg c3RydWN0IHJlZ19maWVsZCBjdHJsX3BvbGFyaXR5X2ZpZWxkID0gUkVHX0ZJRUxEKG9mZnNldCAr IFJFR19DVFJMLCA0LCA0KTsKPiA+ICsgICAgICAgICAgICAgc3RydWN0IHJlZ19maWVsZCBkdXR5 bF9maWVsZCA9IFJFR19GSUVMRChvZmZzZXQgKyBSRUdfRFVUWSwgMCwgMTUpOwo+ID4gKyAgICAg ICAgICAgICBzdHJ1Y3QgcmVnX2ZpZWxkIGR1dHloX2ZpZWxkID0gUkVHX0ZJRUxEKG9mZnNldCAr IFJFR19EVVRZICsgNCwgMCwgMik7Cj4gPiArICAgICAgICAgICAgIHN0cnVjdCByZWdfZmllbGQg cGVyaW9kbF9maWVsZCA9IFJFR19GSUVMRChvZmZzZXQgKyBSRUdfUEVSSU9ELCAwLCAxNSk7Cj4g PiArICAgICAgICAgICAgIHN0cnVjdCByZWdfZmllbGQgcGVyaW9kaF9maWVsZCA9IFJFR19GSUVM RChvZmZzZXQgKyBSRUdfUEVSSU9EICsgNCwgMCwgMik7Cj4gPiArICAgICAgICAgICAgIHN0cnVj dCByZWdfZmllbGQgc3dyc3RfZmllbGQgPSBSRUdfRklFTEQoUkVHX1NXUlNULCBpLCBpKTsKPiA+ ICsKPiA+ICsgICAgICAgICAgICAgcHdtLT5jaGFubmVsc1tpXS5jbGtkaXYgPSBkZXZtX3JlZ21h cF9maWVsZF9hbGxvYyhkZXYsIHB3bS0+cmVnbWFwLAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpdl9jbGtkaXZfZmll bGQpOwo+ID4gKyAgICAgICAgICAgICBwd20tPmNoYW5uZWxzW2ldLnBvbGFyaXR5ID0gZGV2bV9y ZWdtYXBfZmllbGRfYWxsb2MoZGV2LCBwd20tPnJlZ21hcCwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxfcG9s YXJpdHlfZmllbGQpOwo+ID4gKyAgICAgICAgICAgICBwd20tPmNoYW5uZWxzW2ldLmR1dHlsID0g ZGV2bV9yZWdtYXBfZmllbGRfYWxsb2MoZGV2LCBwd20tPnJlZ21hcCwgZHV0eWxfZmllbGQpOwo+ ID4gKyAgICAgICAgICAgICBwd20tPmNoYW5uZWxzW2ldLmR1dHloID0gZGV2bV9yZWdtYXBfZmll bGRfYWxsb2MoZGV2LCBwd20tPnJlZ21hcCwgZHV0eWhfZmllbGQpOwo+ID4gKyAgICAgICAgICAg ICBwd20tPmNoYW5uZWxzW2ldLnBlcmlvZGwgPSBkZXZtX3JlZ21hcF9maWVsZF9hbGxvYyhkZXYs IHB3bS0+cmVnbWFwLCBwZXJpb2RsX2ZpZWxkKTsKPiA+ICsgICAgICAgICAgICAgcHdtLT5jaGFu bmVsc1tpXS5wZXJpb2RoID0gZGV2bV9yZWdtYXBfZmllbGRfYWxsb2MoZGV2LCBwd20tPnJlZ21h cCwgcGVyaW9kaF9maWVsZCk7Cj4gPiArICAgICAgICAgICAgIHB3bS0+Y2hhbm5lbHNbaV0uc3dy c3QgPSBkZXZtX3JlZ21hcF9maWVsZF9hbGxvYyhkZXYsIHB3bS0+cmVnbWFwLCBzd3JzdF9maWVs ZCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgIC8qIENoYW5uZWxzIGFyZSBlbmFibGVkIG9uIGJv b3QsIGRpc2FibGUgaXQgdW50aWwgdGhlIHB3bSBzdWJzeXN0ZW0gcmUtZW5hYmxlIGl0Cj4gPiAr ICAgICAgICAgICAgICAqIGV4cGxpY2l0bHkKPgo+IFlvdSdyZSBzdXBwb3NlZCB0byBrZWVwIHRo ZSBQV00gcnVubmluZy4gKENvbnNpZGVyIGEgYm9vdGxvYWRlciBzZXR0aW5nCj4gdXAgYSBzcGxh c2ggc2NyZWVuLiBZb3UncmUgcHJvYmFibHkga2lsbGluZyB0aGUgYmFja2xpZ2h0IGhlcmUuKSBO b3RlCj4geW91IG5lZWQgaW1wcm92ZWQgY2xrIGhhbmRsaW5nIHRvIGRvIHRoYXQgcmlnaHQuCj4K PiA+ICsgICAgICAgICAgICAgICovCj4gPiArICAgICAgICAgICAgIHJlZ21hcF9maWVsZF93cml0 ZShwd20tPmNoYW5uZWxzW2ldLnN3cnN0LCAxKTsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsgICAg IHB3bS0+cHdtY2hpcC5kZXYgPSBkZXY7Cj4gPiArICAgICBwd20tPnB3bWNoaXAub3BzID0gJm1z YzMxM2VfcHdtX29wczsKPiA+ICsgICAgIHB3bS0+cHdtY2hpcC5ucHdtID0gbWF0Y2hfZGF0YS0+ Y2hhbm5lbHM7Cj4gPiArCj4gPiArICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwd20p Owo+Cj4gVGhpcyBpcyB1bnVzZWQsIHBsZWFzZSBkcm9wLgo+Cj4gPiArICAgICByZXR1cm4gZGV2 bV9wd21jaGlwX2FkZChkZXYsICZwd20tPnB3bWNoaXApOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtc2MzMTNlX3B3bV9kdF9pZHNbXSA9IHsKPiA+ ICsgICAgIHsgLmNvbXBhdGlibGUgPSAibXN0YXIsbXNjMzEzZS1wd20iLCAuZGF0YSA9ICZtc2Mz MTNlX2RhdGEgfSwKPiA+ICsgICAgIHsgLmNvbXBhdGlibGUgPSAibXN0YXIsc3NkMjB4ZC1wd20i LCAuZGF0YSA9ICZzc2QyMHhkX2RhdGEgfSwKPiA+ICsgICAgIHt9LAo+ID4gK307Cj4gPiArTU9E VUxFX0RFVklDRV9UQUJMRShvZiwgbXNjMzEzZV9wd21fZHRfaWRzKTsKPiA+ICsKPiA+ICtzdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtc2MzMTNlX3B3bV9kcml2ZXIgPSB7Cj4gPiArICAg ICAucHJvYmUgPSBtc2MzMTNlX3B3bV9wcm9iZSwKPiA+ICsgICAgIC5kcml2ZXIgPSB7Cj4gPiAr ICAgICAgICAgICAgIC5uYW1lID0gRFJJVkVSX05BTUUsCj4gPiArICAgICAgICAgICAgIC5vZl9t YXRjaF90YWJsZSA9IG1zYzMxM2VfcHdtX2R0X2lkcywKPiA+ICsgICAgIH0sCj4gPiArfTsKPiA+ ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG1zYzMxM2VfcHdtX2RyaXZlcik7Cj4gPiArCj4gPiAr TU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+ID4gK01PRFVMRV9ERVNDUklQVElPTigiTXN0YXIg TVNDMzEzZSBQV00gZHJpdmVyIik7Cj4gPiArTU9EVUxFX0FVVEhPUigiRGFuaWVsIFBhbG1lciA8 ZGFuaWVsQHRoaW5neS5qcD4iKTsKPgo+IFRoYXQgYWRkcmVzcyBkb2Vzbid0IG1hdGNoIHRoZSBh dXRob3Igb2YgdGhpcyBwYXRjaC4gSXMgdGhpcyBvbiBwdXJwb3NlPwo+Cj4gQmVzdCByZWdhcmRz Cj4gVXdlCgoKUmVnYXJkcywKUm9tYWluCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==