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 BD54CC433F5 for ; Thu, 31 Mar 2022 11:05:02 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=eafamcAmPoxBhEQ92cKUHRmOvj4c4iayy0lNSXnLXzw=; b=fE4oUpaH1oNKpP +TBCyDKWtwFlo+ecyngNSBCpT2LHMi1S+PhaJcQHxsR1WQPi16abJ4yOBx9KCXND63gpG4IIMVbkX qst4u5KoQ2YX2+IljDlaEATffhEp+HmhlDJUiwVXDp65InqoBVeS8RXFg4scb7tsZsAktgQcUWHhh IBpFDcEH1uN7SGXq4XDp67CP1C1YNPmEdXIKagLLrcYMAu9gaFR7A5QVe8K1dRMRYuABIjsgdDvXu r6DsARneKg4IdX7TniYI+AzTuhdCjyh639tXnz54gfgIDxQDfKVllr8gg09RhQRJ5cdjv9/ZtlMxl yUAzOpEeHTtCQrGLr4Gg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nZsb3-001xAs-Bb; Thu, 31 Mar 2022 11:04:09 +0000 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nZrR6-001Yqi-No for linux-arm-kernel@lists.infradead.org; Thu, 31 Mar 2022 09:49:51 +0000 Received: by mail-ej1-x636.google.com with SMTP id dr20so46879760ejc.6 for ; Thu, 31 Mar 2022 02:49:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=m16w9fEGVD//K7+2kxbDNAUSN0et4kbrtMPyOKxLkDc=; b=lh7sz9LE7yCpF7q3YNDueS6YUg3i/L8SrcymKXUwyCasx+JSkpM80KUtEHbZhM53vQ P79XB2fDcti8E6uDHeVCsBLD+bd7/MZSft00FQ3b0MktX91GubtfnpUuEEimARVTUPVc KprT6r8oCEmaBm9XtQZTF8bRavGIilVmKuXqIsEbf93lQIJz6Fw3oao1amm9yCOqr8TN vYt5GFMyfDKve27wuiEy/qaR4wIfBT1RX1qyqVuaI2Gd6NfoKmBgO3PMeLhkZAbvbH+j 4xlLuKdm0FKM03aANwhs90RyTRHX2k3jsESmaQTJvOjiHPvgcf4SXJYXBMUF/Q4G3Ccx 33eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=m16w9fEGVD//K7+2kxbDNAUSN0et4kbrtMPyOKxLkDc=; b=p7c8aKaycEM1OYuSN8D2B5RhjaY9D4q7Xt2ZmHeYMz0oDY+KqSXg0FQTpbIoEyK3AV Bv/p7Qx5eBSyf6Zon0VTBSsBLUgmvCSy9Y/CtrcAINvq+8iaY6uHeZQgCVmwy6wZhmus M+PQyEBZ3lwGM9/nTgbgfW3ptjF2Gofhih0fppH/NivWgtgQ0W9C9VduDzC1lWRd2w8n 5+rG6/kM5qGv+NVLOCbuTryF+yqIdgvIiJ66Q/EowoDC9xeBXEhFHVfqDII3/1POVZ9g kKuwyokCYlzmXUcMlp0aLXjoIFNPWZEm7qLJzN140JQGYd+BERaEVq4RnM7DIqLohoUF KdFg== X-Gm-Message-State: AOAM531fgMtuBpvp/N65Eb3IRgiEXXJaSP8xovYV138xc6I1s5xkW20X BM4NlqAlvLfgUoTQIkmbpueoKw== X-Google-Smtp-Source: ABdhPJy/X3zrywwEq4pBICGkuvdH34x0UF68c5umbRsEpIF3pCn7WjNK7dhZdICVAwUqhmgbTJbaxw== X-Received: by 2002:a17:907:3e8b:b0:6df:f199:6aa3 with SMTP id hs11-20020a1709073e8b00b006dff1996aa3mr4110135ejc.410.1648720185162; Thu, 31 Mar 2022 02:49:45 -0700 (PDT) Received: from [192.168.0.166] (xdsl-188-155-201-27.adslplus.ch. [188.155.201.27]) by smtp.gmail.com with ESMTPSA id hr13-20020a1709073f8d00b006dff3a69572sm9176300ejc.5.2022.03.31.02.49.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 31 Mar 2022 02:49:44 -0700 (PDT) Message-ID: Date: Thu, 31 Mar 2022 11:49:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH 2/2] dmaengine: apple-admac: Add Apple ADMAC driver Content-Language: en-US To: =?UTF-8?Q?Martin_Povi=c5=a1er?= Cc: =?UTF-8?Q?Martin_Povi=c5=a1er?= , Hector Martin , Sven Peter , Vinod Koul , Rob Herring , Krzysztof Kozlowski , Alyssa Rosenzweig , linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mark Kettenis References: <20220330164458.93055-1-povik+lin@cutebit.org> <20220330164458.93055-3-povik+lin@cutebit.org> <2b67081a-0b59-20d2-dbb5-a3e0b24862db@linaro.org> From: Krzysztof Kozlowski In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220331_024948_847135_13F76DC2 X-CRM114-Status: GOOD ( 35.49 ) 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 T24gMzEvMDMvMjAyMiAxMTo0MiwgTWFydGluIFBvdmnFoWVyIHdyb3RlOgo+IAo+PiBPbiAzMS4g My4gMjAyMiwgYXQgODoyNSwgS3J6eXN6dG9mIEtvemxvd3NraSA8a3J6eXN6dG9mLmtvemxvd3Nr aUBsaW5hcm8ub3JnPiB3cm90ZToKPj4KPj4gT24gMzAvMDMvMjAyMiAxODo0NCwgTWFydGluIFBv dmnFoWVyIHdyb3RlOgo+Pj4gQWRkIGRyaXZlciBmb3IgQXVkaW8gRE1BIENvbnRyb2xsZXIgcHJl c2VudCBvbiBBcHBsZSBTb0NzIGZyb20gdGhlCj4+PiAiQXBwbGUgU2lsaWNvbiIgZmFtaWx5Lgo+ Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBQb3ZpxaFlciA8cG92aWsrbGluQGN1dGViaXQu b3JnPgo+Pj4gLS0tCj4+PiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgIHwgICAyICsKPj4+IGRy aXZlcnMvZG1hL0tjb25maWcgICAgICAgfCAgIDggKwo+Pj4gZHJpdmVycy9kbWEvTWFrZWZpbGUg ICAgICB8ICAgMSArCj4+PiBkcml2ZXJzL2RtYS9hcHBsZS1hZG1hYy5jIHwgNzk5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiA0IGZpbGVzIGNoYW5nZWQsIDgxMCBp bnNlcnRpb25zKCspCj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9kbWEvYXBwbGUtYWRt YWMuYwo+Pj4KPj4KPj4gKC4uLikKPj4KPj4+ICsKPj4+ICtzdGF0aWMgdm9pZCBhZG1hY19wb2tl KHN0cnVjdCBhZG1hY19kYXRhICphZCwgaW50IHJlZywgdTMyIHZhbCkKPj4+ICt7Cj4+PiArCXdy aXRlbF9yZWxheGVkKHZhbCwgYWQtPmJhc2UgKyByZWcpOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0 aWMgdTMyIGFkbWFjX3BlZWsoc3RydWN0IGFkbWFjX2RhdGEgKmFkLCBpbnQgcmVnKQo+Pj4gK3sK Pj4KPj4gUGxlYXNlIGRvIG5vdCB3cml0ZSBzb21lIGN1c3RvbS1uYW1lZCBmdW5jdGlvbnMgZm9y IGNvbW1vbiBmdW5jdGlvbnMuIE5vCj4+IG5lZWQgdG8gIiNkZWZpbmUgdHJ1ZSAwIiBvciAiI2Rl ZmluZSByZWFkIHBlZWsiIGV0Yy4gUmVhZCBpcyByZWFkLCB3cml0ZQo+PiBpcyB3cml0ZS4gVXNp bmcgb3RoZXIgbmFtZXMgaXMgY291bnRlciBpbnR1aXRpdmUgYW5kIG1ha2VzIHJlYWRpbmcgdGhl Cj4+IGNvZGUgbW9yZSBkaWZmaWN1bHQuCj4+Cj4+IFlvdSBhY3R1YWxseSBzaG91bGQgbm90IGhh dmUgdGhlc2Ugd3JhcHBlcnMgYmVjYXVzZSB0aGV5IGRvbid0IG1ha2UgdGhlCj4+IGNvZGUgc21h bGxlciAobW9yZSBhcmd1bWVudHMgbmVlZGVkLi4uKS4KPj4KPj4gSWYgeW91IHdhbnQgdGhlIHdy YXBwZXJzLCBwbGVhc2UgdXNlIHJlZ21hcF9tbWlvLgo+Pgo+PiBPbmx5IG1vZGlmeSB3cmFwcGVy IHNhdmUgc29tZSBzcGFjZSwgc28gaXQgY291bGQgc3RheS4KPiAKPiBJIGdldCB0aGUgYXZlcnNp b24gdG8gY3VzdG9tIG5hbWluZywgYnV0IEkgd291bGQgcmF0aGVyIGtlZXAgdGhlIGhlbHBlcnMu Cj4gQ29tcGFyZSBlLmcuCj4gCj4gICBhZG1hY193cml0ZShhZCwgUkVHX0JVU19XSURUSChhZGNo YW4tPm5vKSwgYnVzX3dpZHRoKTsKPiAKPiBhbmQKPiAKPiAgIHdyaXRlbF9yZWxheGVkKGJ1c193 aWR0aCwgYWQtPmJhc2UgKyBSRUdfQlVTX1dJRFRIKGFkY2hhbi0+bm8pKTsKCllvdSBzYWZlIGZl dyBjaGFyYWN0ZXJzIGJ1dCB5b3UgZ2FpbiBvbmUgbW9yZSBhcmd1bWVudC4gcmVhZFgvd3JpdGVY CnNob3VsZCBub3QgaGF2ZSB3cmFwcGVycy4gV2hhdCBpZiBldmVyeSBkcml2ZXIgZG9lcyBpdD8g QW5kIHRoZW4gYWRkIGEKc2Vjb25kIGZsYXZvciAtIGZvciBub24tcmVsYXhlZCB2ZXJzaW9uPwoK PiAKPiBBbHRob3VnaCBJIGd1ZXNzIGFzIHlvdSBzYWlkIEkgbWF5IHVzZSByZWdtYXAuCgpZZXMs IGlmIHlvdSB3YW50IGEgd3JhcHBlciwgZ28gZm9yIHRoZSBNTUlPIHJlZ21hcC4gSXQncyBob3dl dmVyCnNsaWdodGx5IGJpZ2dlciB3cmFwcGVyIHRoYW4ganVzdCBjYWxsIGEgZnVuY3Rpb24sIGJ1 dCBldmVudHVhbGx5IG1pZ2h0CmJyaW5nIG90aGVyIGJlbmVmaXRzIChmaWVsZHMgZXRjKS4KCj4g Cj4+PiArCXJldHVybiByZWFkbF9yZWxheGVkKGFkLT5iYXNlICsgcmVnKTsKPj4+ICt9Cj4+PiAr Cj4+PiArc3RhdGljIHZvaWQgYWRtYWNfbW9kaWZ5KHN0cnVjdCBhZG1hY19kYXRhICphZCwgaW50 IHJlZywgdTMyIG1hc2ssIHUzMiB2YWwpCj4+PiArewo+Pj4gKwl2b2lkIF9faW9tZW0gKmFkZHIg PSBhZC0+YmFzZSArIHJlZzsKPj4+ICsJdTMyIGN1cnIgPSByZWFkbF9yZWxheGVkKGFkZHIpOwo+ Pj4gKwo+Pj4gKwl3cml0ZWxfcmVsYXhlZCgoY3VyciAmIH5tYXNrKSB8ICh2YWwgJiBtYXNrKSwg YWRkcik7Cj4+PiArfQo+IAo+IAo+Pj4gKwo+Pj4gKy8qCj4+PiArICogV3JpdGUgb25lIGhhcmR3 YXJlIGRlc2NyaXB0b3IgZm9yIGEgZG1hZW5naW5lIGN5Y2xpYyB0cmFuc2FjdGlvbi4KPj4+ICsg Ki8KPj4+ICtzdGF0aWMgdm9pZCBhZG1hY19jeWNsaWNfd3JpdGVfb25lX2Rlc2Moc3RydWN0IGFk bWFjX2RhdGEgKmFkLCBpbnQgY2hhbm5vLAo+Pj4gKwkJCQkJc3RydWN0IGFkbWFjX3R4ICp0eCkK Pj4+ICt7Cj4+PiArCWRtYV9hZGRyX3QgYWRkcjsKPj4+ICsKPj4+ICsJaWYgKFdBUk5fT04oIXR4 LT5jeWNsaWMpKQo+Pgo+PiBXQVJOX09OX09OQ0UoKSAtIGFsdGhvdWdoIEkgd29uZGVyIHdoeSBk byB5b3UgbmVlZCB0aGlzLiBZb3UgZnVsbHkKPj4gY29udHJvbCB0aGUgY2FsbGVycyB0byB0aGlz IGZ1bmN0aW9uLCBkb24ndCB5b3U/Cj4gCj4gSSBkby4gTm90IHJlYWxseSBuZWVkZWQsIGp1c3Qg d2FudGVkIHRvIG1ha2UgaXQgb2J2aW91cyB3ZSBhcmUgb3BlcmF0aW5nCj4gdW5kZXIgdGhhdCBh c3N1bXB0aW9uLiBDYW4gZHJvcCBpdCB0aGVuLgoKRm9yIHRlc3RpbmcgbWFrZXMgc2Vuc2UuIEZv ciBmaW5hbCBkcml2ZXIgaXQncyByYXRoZXIgZGlzY3Vzc2libGUgb3IgYXQKbGVhc3QgbGVhdmUg YSBjb21tZW50LiBUaGVzZSB3YXJucyB3aWxsIGFwcGVhciBpbiB1c2VyJ3Mgc3lzbG9nIHNvIGhl CnNob3VsZCBiZSBhYmxlIHRvIGFjdC4KCj4gCj4+PiArCQlyZXR1cm47Cj4+PiArCj4+PiArCWFk ZHIgPSB0eC0+YnVmX2FkZHIgKyAodHgtPnN1Ym1pdHRlZF9wb3MgJSB0eC0+YnVmX2xlbik7Cj4+ PiArCVdBUk5fT04oYWRkciArIHR4LT5wZXJpb2RfbGVuID4gdHgtPmJ1Zl9lbmQpOwo+Pgo+PiBJ ZiB0aGlzIGlzIHBvc3NpYmxlLCB5b3UgaGF2ZSBidWdneSBjb2RlLiBJZiB0aGlzIGlzIG5vdCBw b3NzaWJsZSwgd2h5IHdhcm4/Cj4gCj4gV2VsbCBzbyBpZiB0aGUgY29kZSBpcyBidWdneSwgSSB3 aWxsIGdldCBraWNrZWQgcmlnaHQgYXdheSBoZXJlISBBZ2FpbiwKPiBoYXBweSB0byBkcm9wIGl0 IHRoZW4uCgpUaGUgc2FtZSBhcyBhYm92ZS4KCj4gCj4+PiArCj4+PiArCWRldl9kYmcoYWQtPmRl diwgImNoJWQgZGVzY3JpcHRvcjogYWRkcj0weCVwYWQgbGVuPTB4JXp4IGZsYWdzPTB4JXhcbiIs Cj4+PiArCQljaGFubm8sIGFkZHIsIHR4LT5wZXJpb2RfbGVuLCBGTEFHX0RFU0NfTk9USUZZKTsK Pj4+ICsKPj4+ICsJYWRtYWNfcG9rZShhZCwgUkVHX0RFU0NfV1JJVEUoY2hhbm5vKSwgYWRkcik7 Cj4+PiArCWFkbWFjX3Bva2UoYWQsIFJFR19ERVNDX1dSSVRFKGNoYW5ubyksIGFkZHIgPj4gMzIp Owo+Pj4gKwlhZG1hY19wb2tlKGFkLCBSRUdfREVTQ19XUklURShjaGFubm8pLCB0eC0+cGVyaW9k X2xlbik7Cj4+PiArCWFkbWFjX3Bva2UoYWQsIFJFR19ERVNDX1dSSVRFKGNoYW5ubyksIEZMQUdf REVTQ19OT1RJRlkpOwo+Pj4gKwo+Pj4gKwl0eC0+c3VibWl0dGVkX3BvcyArPSB0eC0+cGVyaW9k X2xlbjsKPj4+ICsJdHgtPnN1Ym1pdHRlZF9wb3MgJT0gMiAqIHR4LT5idWZfbGVuOwo+Pj4gK30K PiAKPiAoc25pcCkKPiAKPj4+ICtzdGF0aWMgdm9pZCBhZG1hY19oYW5kbGVfc3RhdHVzX2Vycihz dHJ1Y3QgYWRtYWNfZGF0YSAqYWQsIGludCBjaGFubm8pCj4+PiArewo+Pj4gKwlib29sIGhhbmRs ZWQgPSBmYWxzZTsKPj4+ICsKPj4+ICsJaWYgKGFkbWFjX3BlZWsoYWQsIFJFR19ERVNDX1JJTkco Y2hhbm5vKSAmIFJJTkdfRVJSKSkgewo+Pj4gKwkJYWRtYWNfcG9rZShhZCwgUkVHX0RFU0NfUklO RyhjaGFubm8pLCBSSU5HX0VSUik7Cj4+PiArCQlkZXZfZXJyKGFkLT5kZXYsICJjaCVkIGRlc2Ny aXB0b3IgcmluZyBlcnJvclxuIiwgY2hhbm5vKTsKPj4KPj4gSXQgbG9va3MgdGhpcyBpcyBleGVj dXRlZCBvbiBldmVyeSBpbnRlcnJ1cHQsIHNvIHlvdSBtaWdodCBmbG9vZCB0aGUKPj4gZG1lc2cu IFRoaXMgc2hvdWxkIGJlIHJhdGVsaW1pdGVkLgo+IAo+IE9LCj4gCj4+PiArCQloYW5kbGVkID0g dHJ1ZTsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlpZiAoYWRtYWNfcGVlayhhZCwgUkVHX1JFUE9SVF9S SU5HKGNoYW5ubykpICYgUklOR19FUlIpIHsKPj4+ICsJCWFkbWFjX3Bva2UoYWQsIFJFR19SRVBP UlRfUklORyhjaGFubm8pLCBSSU5HX0VSUik7Cj4+PiArCQlkZXZfZXJyKGFkLT5kZXYsICJjaCVk IHJlcG9ydCByaW5nIGVycm9yXG4iLCBjaGFubm8pOwo+Pj4gKwkJaGFuZGxlZCA9IHRydWU7Cj4+ PiArCX0KPj4+ICsKPj4+ICsJaWYgKHVubGlrZWx5KCFoYW5kbGVkKSkgewo+Pj4gKwkJZGV2X2Vy cihhZC0+ZGV2LCAiY2glZCB1bmtub3duIGVycm9yLCBtYXNraW5nIGVycm9ycyBhcyBjYXVzZSBv ZiBJUlFzXG4iLCBjaGFubm8pOwo+Pj4gKwkJYWRtYWNfbW9kaWZ5KGFkLCBSRUdfQ0hBTl9JTlRN QVNLKGNoYW5ubywgYWQtPmlycV9pbmRleCksCj4+PiArCQkJCVNUQVRVU19FUlIsIDApOwo+Pj4g Kwl9Cj4+PiArfQo+IAo+IChzbmlwKQo+IAo+Pj4gK3N0YXRpYyBpbnQgYWRtYWNfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICt7Cj4+PiArCXN0cnVjdCBkZXZpY2Vfbm9k ZSAqbnAgPSBwZGV2LT5kZXYub2Zfbm9kZTsKPj4+ICsJc3RydWN0IGFkbWFjX2RhdGEgKmFkOwo+ Pj4gKwlzdHJ1Y3QgZG1hX2RldmljZSAqZG1hOwo+Pj4gKwlpbnQgbmNoYW5uZWxzOwo+Pj4gKwlp bnQgZXJyLCBpcnEsIGk7Cj4+PiArCj4+PiArCWVyciA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5w LCAiZG1hLWNoYW5uZWxzIiwgJm5jaGFubmVscyk7Cj4+PiArCWlmIChlcnIgfHwgbmNoYW5uZWxz ID4gTkNIQU5ORUxTX01BWCkgewo+Pj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAibWlzc2luZyBv ciBpbnZhbGlkIGRtYS1jaGFubmVscyBwcm9wZXJ0eVxuIik7Cj4+PiArCQlyZXR1cm4gLUVJTlZB TDsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlhZCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzdHJ1 Y3Rfc2l6ZShhZCwgY2hhbm5lbHMsIG5jaGFubmVscyksIEdGUF9LRVJORUwpOwo+Pj4gKwlpZiAo IWFkKQo+Pj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+PiArCj4+PiArCXBsYXRmb3JtX3NldF9kcnZk YXRhKHBkZXYsIGFkKTsKPj4+ICsJYWQtPmRldiA9ICZwZGV2LT5kZXY7Cj4+PiArCWFkLT5uY2hh bm5lbHMgPSBuY2hhbm5lbHM7Cj4+PiArCj4+PiArCWVyciA9IG9mX3Byb3BlcnR5X3JlYWRfdTMy KG5wLCAiYXBwbGUsaW50ZXJuYWwtaXJxLWRlc3RpbmF0aW9uIiwKPj4+ICsJCQkJCSZhZC0+aXJx X2luZGV4KTsKPj4+ICsJaWYgKGVyciB8fCBhZC0+aXJxX2luZGV4ID49IElSUV9OSU5ESUNFUykg ewo+Pj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAibWlzc2luZyBvciBpbnZhbGlkIGFwcGxlLGlu dGVybmFsLWlycS1kZXN0aW5hdGlvbiBwcm9wZXJ0eVxuIik7Cj4+PiArCQlyZXR1cm4gLUVJTlZB TDsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwo+ Pj4gKwlpZiAoaXJxIDwgMCkgewo+Pj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAidW5hYmxlIHRv IG9idGFpbiBpbnRlcnJ1cHQgcmVzb3VyY2VcbiIpOwo+Pj4gKwkJcmV0dXJuIGlycTsKPj4+ICsJ fQo+Pj4gKwo+Pj4gKwllcnIgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGlycSwgYWRt YWNfaW50ZXJydXB0LAo+Pj4gKwkJCQkJMCwgZGV2X25hbWUoJnBkZXYtPmRldiksIGFkKTsKPj4K Pj4gQWxpZ24gdGhlIGFyZ3VtZW50cyB3aXRoIHByZXZpb3VzIGxpbmUuIFRoaXMgYXBwbGllcyBl dmVyeXdoZXJlIGluIHRoZQo+PiBkcml2ZXIuCj4gCj4gSSBob3BlIGJlc3QtZWZmb3J0IHRhYiBh bGlnbmluZyBpcyBva2F5LgoKTm8sIGFsdGhvdWdoIHdlIGRvIG5vdCByZS1hbGlnbiBleGlzdGlu ZyBjb2RlLiBTaW5jZSB0aGlzIGlzIGEgbmV3IGNvZGUsCnBsZWFzZSBhbGlnbiBpdCB3aXRoIG9w ZW5pbmcgJygnLiBSZWNlbnQgdmltIGRvZXMgaXQgYXV0b21hdGljYWxseSwKb3RoZXIgZWRpdG9y cyBtaWdodCBhcyB3ZWxsLgoKPiAKPj4+ICsJaWYgKGVycikgewo+Pj4gKwkJZGV2X2VycigmcGRl di0+ZGV2LCAidW5hYmxlIHRvIHJlZ2lzdGVyIGludGVycnVwdDogJWRcbiIsIGVycik7Cj4+PiAr CQlyZXR1cm4gZXJyOwo+Pj4gKwl9Cj4+PiArCj4+PiArCWFkLT5iYXNlID0gZGV2bV9wbGF0Zm9y bV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwo+Pj4gKwlpZiAoSVNfRVJSKGFkLT5iYXNlKSkg ewo+Pj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAidW5hYmxlIHRvIG9idGFpbiBNTUlPIHJlc291 cmNlXG4iKTsKPj4+ICsJCXJldHVybiBQVFJfRVJSKGFkLT5iYXNlKTsKPj4+ICsJfQo+Pj4gKwo+ Pj4gKwlkbWEgPSAmYWQtPmRtYTsKPj4+ICsKPj4+ICsJZG1hX2NhcF9zZXQoRE1BX1BSSVZBVEUs IGRtYS0+Y2FwX21hc2spOwo+Pj4gKwlkbWFfY2FwX3NldChETUFfQ1lDTElDLCBkbWEtPmNhcF9t YXNrKTsKPj4+ICsKPj4+ICsJZG1hLT5kZXYgPSAmcGRldi0+ZGV2Owo+Pj4gKwlkbWEtPmRldmlj ZV9hbGxvY19jaGFuX3Jlc291cmNlcyA9IGFkbWFjX2FsbG9jX2NoYW5fcmVzb3VyY2VzOwo+Pj4g KwlkbWEtPmRldmljZV9mcmVlX2NoYW5fcmVzb3VyY2VzID0gYWRtYWNfZnJlZV9jaGFuX3Jlc291 cmNlczsKPj4+ICsJZG1hLT5kZXZpY2VfdHhfc3RhdHVzID0gYWRtYWNfdHhfc3RhdHVzOwo+Pj4g KwlkbWEtPmRldmljZV9pc3N1ZV9wZW5kaW5nID0gYWRtYWNfaXNzdWVfcGVuZGluZzsKPj4+ICsJ ZG1hLT5kZXZpY2VfdGVybWluYXRlX2FsbCA9IGFkbWFjX3Rlcm1pbmF0ZV9hbGw7Cj4+PiArCWRt YS0+ZGV2aWNlX3ByZXBfZG1hX2N5Y2xpYyA9IGFkbWFjX3ByZXBfZG1hX2N5Y2xpYzsKPj4+ICsJ ZG1hLT5kZXZpY2VfY29uZmlnID0gYWRtYWNfZGV2aWNlX2NvbmZpZzsKPj4+ICsJZG1hLT5kZXZp Y2VfcGF1c2UgPSBhZG1hY19wYXVzZTsKPj4+ICsJZG1hLT5kZXZpY2VfcmVzdW1lID0gYWRtYWNf cmVzdW1lOwo+Pj4gKwo+Pj4gKwlkbWEtPmRpcmVjdGlvbnMgPSBCSVQoRE1BX01FTV9UT19ERVYp IHwgQklUKERNQV9ERVZfVE9fTUVNKTsKPj4+ICsJZG1hLT5yZXNpZHVlX2dyYW51bGFyaXR5ID0g RE1BX1JFU0lEVUVfR1JBTlVMQVJJVFlfQlVSU1Q7Cj4+PiArCWRtYS0+ZHN0X2FkZHJfd2lkdGhz ID0gQklUKERNQV9TTEFWRV9CVVNXSURUSF8xX0JZVEUpIHwKPj4+ICsJCQlCSVQoRE1BX1NMQVZF X0JVU1dJRFRIXzJfQllURVMpIHwKPj4+ICsJCQlCSVQoRE1BX1NMQVZFX0JVU1dJRFRIXzRfQllU RVMpOwo+Pj4gKwo+Pj4gKwlJTklUX0xJU1RfSEVBRCgmZG1hLT5jaGFubmVscyk7Cj4+PiArCWZv ciAoaSA9IDA7IGkgPCBuY2hhbm5lbHM7IGkrKykgewo+Pj4gKwkJc3RydWN0IGFkbWFjX2NoYW4g KmFkY2hhbiA9ICZhZC0+Y2hhbm5lbHNbaV07Cj4+PiArCj4+PiArCQlhZGNoYW4tPmhvc3QgPSBh ZDsKPj4+ICsJCWFkY2hhbi0+bm8gPSBpOwo+Pj4gKwkJYWRjaGFuLT5jaGFuLmRldmljZSA9ICZh ZC0+ZG1hOwo+Pj4gKwkJc3Bpbl9sb2NrX2luaXQoJmFkY2hhbi0+bG9jayk7Cj4+PiArCQlJTklU X0xJU1RfSEVBRCgmYWRjaGFuLT5zdWJtaXR0ZWQpOwo+Pj4gKwkJSU5JVF9MSVNUX0hFQUQoJmFk Y2hhbi0+aXNzdWVkKTsKPj4+ICsJCWxpc3RfYWRkX3RhaWwoJmFkY2hhbi0+Y2hhbi5kZXZpY2Vf bm9kZSwgJmRtYS0+Y2hhbm5lbHMpOwo+Pj4gKwkJdGFza2xldF9zZXR1cCgmYWRjaGFuLT50YXNr bGV0LCBhZG1hY19jaGFuX3Rhc2tsZXQpOwo+Pj4gKwl9Cj4+PiArCj4+PiArCWVyciA9IGRtYV9h c3luY19kZXZpY2VfcmVnaXN0ZXIoJmFkLT5kbWEpOwo+Pj4gKwlpZiAoZXJyKSB7Cj4+PiArCQlk ZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgRE1BIGRldmljZTogJWRcbiIs IGVycik7Cj4+Cj4+IFVzZSBkZXZfZXJyX3Byb2JlKCkgaGVyZSBhbmQgaW4gb3RoZXIgcGxhY2Vz Lgo+IAo+IE9rYXkhCj4gCj4+PiArCQlyZXR1cm4gZXJyOwo+Pj4gKwl9Cj4+PiArCj4+PiArCWVy ciA9IG9mX2RtYV9jb250cm9sbGVyX3JlZ2lzdGVyKHBkZXYtPmRldi5vZl9ub2RlLCBhZG1hY19k bWFfb2ZfeGxhdGUsIGFkKTsKPj4+ICsJaWYgKGVycikgewo+Pj4gKwkJZGV2X2VycigmcGRldi0+ ZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIHdpdGggT0Y6ICVkXG4iLCBlcnIpOwo+Pj4gKwkJZG1h X2FzeW5jX2RldmljZV91bnJlZ2lzdGVyKCZhZC0+ZG1hKTsKPj4+ICsJCXJldHVybiBlcnI7Cj4+ PiArCX0KPj4+ICsKPj4+ICsJZGV2X2RiZygmcGRldi0+ZGV2LCAiYWxsIGdvb2QsIHJlYWR5IHRv IGdvIVxuIik7Cj4+Cj4+IE5vIGRlYnVnZ2luZyBtZXNzYWdlcyBmb3Igc2ltcGxlIHByb2JlIHN1 Y2Nlc3MsIHBsZWFzZS4KPiAKPiBJZiB5b3UgaW5zaXN0LiA6KQoKWWVzLCB3ZSBoYXZlIGluZnJh c3RydWN0dXJlIGZvciBzdWNoIHNpbXBsZSBzdWNjZXNzLXByaW50cy4gWW91IGFyZQphbGxvd2Vk IGhvd2V2ZXIgdG8gcHJpbnQgaGVyZSAocHJlZmVyYWJseSBkZXZfZGJnKSB1c2VmdWwgaW5mb3Jt YXRpb24sCnNlZSBwbDMzMCBmb3IgZXhhbXBsZS4KCkJlc3QgcmVnYXJkcywKS3J6eXN6dG9mCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg==