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 70C7CC433EF for ; Mon, 21 Feb 2022 20:27:12 +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:References:Cc:To:From: 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=SnnN1PzHfqu+elCrz2F+IHzjECtWuZ5sDHm+tPbi/Ms=; b=r4GJzM1Z6uUUMt Y1eDcAyPaiYWFyi/Zy/Rj7APhTS968IRNLkd3R7Q2r8LDjUCoCpAdSV5Eme2kM3alVwNtzfyvAOhW N7/oMZds6xPgeoiw31YUwWJXR2kmK0xukYtmfynow03bWHbCKHBcaNUPZVT09i2NB9KVwKkngbVKu /MsJkoejQ+4iJAeosxBc/waCpEAuMaj2NkjK7lc3KlJQzCKnxDpIPE3I4+XzFei1NXrPZEyir5wyK tHaBDIR8s9enxi3mh49hYnDnaUD8tPGOqWQoorseaL9GM2AD0OhgRVldeHeZE+qFDlpODOscoX+eQ sqOoxXu4kqXaPkK0FO2Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nMFH1-007B6x-7z; Mon, 21 Feb 2022 20:27:07 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nMFGn-007B24-5s; Mon, 21 Feb 2022 20:26:54 +0000 Received: by mail-ed1-x531.google.com with SMTP id c6so28925459edk.12; Mon, 21 Feb 2022 12:26:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language :from:to:cc:references:in-reply-to:content-transfer-encoding; bh=RjPMctKZVhoEtXai563y+o3AHHthI9KS32P039dLMfk=; b=SfsZUk2M7qcqxUkjTJ5QfavmgyzPhsJixnMUI3gaxFpYaeZlzxmnyngXQogbe0tiMA WlXpTPz5Nldjh+i6WHccrSF0LyiydOymUlRdDrOWBhLsUPbiiSKie5skMKm4c9CUh/fK j/iSXF4lcJnQOA2luGfscPcsnKyD6LVI3wlbcEUurIHCoWNnVa3Y4aFm5TpsQuRHsriB 3sm2QB211MPU1ATTvZ1vdZdjNpcnVHIsKsdBfvlISZJYhoC7Y62UzWAbliI30nlIWI1c mHytIXPnplQDt0xL5l5VvE+k0V8uThOLdK+pW+MgEvrUdRSDPMJ7SmPwj6aF29nXfL3I 9esw== 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:from:to:cc:references:in-reply-to :content-transfer-encoding; bh=RjPMctKZVhoEtXai563y+o3AHHthI9KS32P039dLMfk=; b=BzadGuL9qQyDrQK67qa+COG7hEtuLD4CZjsI5t41/qg7dAg5c5tTolk4NQFiR5HBC+ 6p8xlsV9SEQchVzS6WJezIodmdTEZd4kpyICviSJGOG0D0CZYVQEeBokxCTAvM6WfXvc 7xLpVGBpmU4pBMTJE5rnrCXJ67fwCc9LWAQYb2CTgdg3zNBDLQWFhe2B5DwBAifRrUgQ GEieOzjZXUB3JG7mtWwUIhAmQGoLiUtaTtQyuiHcxv0PuNxA1wQb/I/BBt/HNXhYmQoS Yl5BQJ9GZGUYfkpg5wjqcXi3rfUDDhU0KmS37fYAGAoSlt3mKFu/bxo65RKW5v0IAeT2 tJdw== X-Gm-Message-State: AOAM530pWFBIWfCoFHjefNwLCl8DDum58gbyGLUY+FrUdc6+x1xxFCyT c6hPw57RYxPaU94iA+xp1m4= X-Google-Smtp-Source: ABdhPJynRraUwluYQEbFA05yc6hpmw0TfvGgTwGFEVbljIPmKA/MOhfvZT0G1xeWqpd8aU6E73rhLg== X-Received: by 2002:a05:6402:4415:b0:410:d28b:1e14 with SMTP id y21-20020a056402441500b00410d28b1e14mr23074770eda.211.1645475211277; Mon, 21 Feb 2022 12:26:51 -0800 (PST) Received: from ?IPV6:2003:ea:8f4d:2b00:b141:a0d:4aad:2a06? (p200300ea8f4d2b00b1410a0d4aad2a06.dip0.t-ipconnect.de. [2003:ea:8f4d:2b00:b141:a0d:4aad:2a06]) by smtp.googlemail.com with ESMTPSA id bo11sm5444587ejb.24.2022.02.21.12.26.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Feb 2022 12:26:50 -0800 (PST) Message-ID: <6389315a-30ee-8106-209f-bf2462d12971@gmail.com> Date: Mon, 21 Feb 2022 21:20:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: [PATCH v2 1/6] spi: gpio: Implement LSB First bitbang support Content-Language: en-US From: Heiner Kallweit To: Mark Brown , Rob Herring , Krzysztof Kozlowski , =?UTF-8?Q?Andreas_F=c3=a4rber?= , Geert Uytterhoeven , Miguel Ojeda , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl Cc: "linux-spi@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "open list:ARM/Amlogic Meson..." References: <1f39432b-84e2-e6dc-a6b8-c48ad5cf2210@gmail.com> In-Reply-To: <1f39432b-84e2-e6dc-a6b8-c48ad5cf2210@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220221_122653_255519_71B57D60 X-CRM114-Status: GOOD ( 16.19 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org RnJvbTogQW5kcmVhcyBGw6RyYmVyIDxhZmFlcmJlckBzdXNlLmRlPgoKQWRkIHN1cHBvcnQgZm9y IHNsYXZlIERUIHByb3BlcnR5IHNwaS1sc2ItZmlyc3QsIGkuZS4sIFNQSV9MU0JfRklSU1QgbW9k ZS4KRHVwbGljYXRlIHRoZSBpbmxpbmUgaGVscGVycyBiaXRiYW5nX3R4cnhfYmVfY3BoYXswLDF9 IGFzIExFIHZlcnNpb25zLgpDb25kaXRpb25hbGx5IGNhbGwgdGhlbSBmcm9tIGFsbCB0aGUgc3Bp LWdwaW8gdHhyeF93b3JkIGNhbGxiYWNrcy4KClNvbWUgYWx0ZXJuYXRpdmVzIHRvIHRoaXMgaW1w bGVtZW50YXRpb24gYXBwcm9hY2ggd2VyZSBkaXNjdXNzZWQgYmFjawp0aGVuIFswXSwgYnV0IGV2 ZW50dWFsbHkgaXQgd2FzIGNvbnNpZGVyZWQgcmVhc29uYWJsZS4KClswXSBodHRwczovL2xvcmUu a2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsLzIwMTkxMjEyMDMzOTUyLjU5NjctOC1hZmFlcmJl ckBzdXNlLmRlLwoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBGw6RyYmVyIDxhZmFlcmJlckBzdXNl LmRlPgpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29t PgotLS0KIGRyaXZlcnMvc3BpL3NwaS1iaXRiYW5nLXR4cnguaCB8IDY2ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvc3BpL3NwaS1ncGlvLmMgICAgICAgICB8IDQy ICsrKysrKysrKysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktYml0YmFuZy10 eHJ4LmggYi9kcml2ZXJzL3NwaS9zcGktYml0YmFuZy10eHJ4LmgKaW5kZXggYWU2MWQ3MmM3Li4y NjczNDJkZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1iaXRiYW5nLXR4cnguaAorKysg Yi9kcml2ZXJzL3NwaS9zcGktYml0YmFuZy10eHJ4LmgKQEAgLTQxLDYgKzQxLDggQEAKICAqIGNo aXBzIG5lZWQgLi4uIHRoZXJlIG1heSBiZSBzZXZlcmFsIHJlYXNvbnMgeW91J2QgbmVlZCB0byB0 d2VhayB0aW1pbmdzCiAgKiBpbiB0aGVzZSByb3V0aW5lcywgbm90IGp1c3QgdG8gbWFrZSBpdCBm YXN0ZXIgb3Igc2xvd2VyIHRvIG1hdGNoIGEKICAqIHBhcnRpY3VsYXIgQ1BVIGNsb2NrIHJhdGUu CisgKgorICogVG9EbzogTWF5YmUgdGhlIGJpdHJldiBtYWNyb3MgY2FuIGJlIHVzZWQgdG8gaW1w cm92ZSB0aGUgY29kZT8KICAqLwogCiBzdGF0aWMgaW5saW5lIHUzMgpAQCAtMTA2LDMgKzEwOCw2 NyBAQCBiaXRiYW5nX3R4cnhfYmVfY3BoYTEoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwKIAl9CiAJ cmV0dXJuIHdvcmQ7CiB9CisKK3N0YXRpYyBpbmxpbmUgdTMyCitiaXRiYW5nX3R4cnhfbGVfY3Bo YTAoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwKKwkJdW5zaWduZWQgaW50IG5zZWNzLCB1bnNpZ25l ZCBpbnQgY3BvbCwgdW5zaWduZWQgaW50IGZsYWdzLAorCQl1MzIgd29yZCwgdTggYml0cykKK3sK KwkvKiBpZiAoY3BvbCA9PSAwKSB0aGlzIGlzIFNQSV9NT0RFXzA7IGVsc2UgdGhpcyBpcyBTUElf TU9ERV8yICovCisKKwl1MzIgb2xkYml0ID0gISh3b3JkICYgMSk7CisJLyogY2xvY2sgc3RhcnRz IGF0IGluYWN0aXZlIHBvbGFyaXR5ICovCisJZm9yICg7IGxpa2VseShiaXRzKTsgYml0cy0tKSB7 CisKKwkJLyogc2V0dXAgTFNCICh0byBzbGF2ZSkgb24gdHJhaWxpbmcgZWRnZSAqLworCQlpZiAo KGZsYWdzICYgU1BJX01BU1RFUl9OT19UWCkgPT0gMCkgeworCQkJaWYgKCh3b3JkICYgMSkgIT0g b2xkYml0KSB7CisJCQkJc2V0bW9zaShzcGksIHdvcmQgJiAxKTsKKwkJCQlvbGRiaXQgPSB3b3Jk ICYgMTsKKwkJCX0KKwkJfQorCQlzcGlkZWxheShuc2Vjcyk7CS8qIFQoc2V0dXApICovCisKKwkJ c2V0c2NrKHNwaSwgIWNwb2wpOworCQlzcGlkZWxheShuc2Vjcyk7CisKKwkJLyogc2FtcGxlIExT QiAoZnJvbSBzbGF2ZSkgb24gbGVhZGluZyBlZGdlICovCisJCXdvcmQgPj49IDE7CisJCWlmICgo ZmxhZ3MgJiBTUElfTUFTVEVSX05PX1JYKSA9PSAwKQorCQkJd29yZCB8PSBnZXRtaXNvKHNwaSkg PDwgKGJpdHMgLSAxKTsKKwkJc2V0c2NrKHNwaSwgY3BvbCk7CisJfQorCXJldHVybiB3b3JkOwor fQorCitzdGF0aWMgaW5saW5lIHUzMgorYml0YmFuZ190eHJ4X2xlX2NwaGExKHN0cnVjdCBzcGlf ZGV2aWNlICpzcGksCisJCXVuc2lnbmVkIGludCBuc2VjcywgdW5zaWduZWQgaW50IGNwb2wsIHVu c2lnbmVkIGludCBmbGFncywKKwkJdTMyIHdvcmQsIHU4IGJpdHMpCit7CisJLyogaWYgKGNwb2wg PT0gMCkgdGhpcyBpcyBTUElfTU9ERV8xOyBlbHNlIHRoaXMgaXMgU1BJX01PREVfMyAqLworCisJ dTMyIG9sZGJpdCA9ICEod29yZCAmIDEpOworCS8qIGNsb2NrIHN0YXJ0cyBhdCBpbmFjdGl2ZSBw b2xhcml0eSAqLworCWZvciAoOyBsaWtlbHkoYml0cyk7IGJpdHMtLSkgeworCisJCS8qIHNldHVw IExTQiAodG8gc2xhdmUpIG9uIGxlYWRpbmcgZWRnZSAqLworCQlzZXRzY2soc3BpLCAhY3BvbCk7 CisJCWlmICgoZmxhZ3MgJiBTUElfTUFTVEVSX05PX1RYKSA9PSAwKSB7CisJCQlpZiAoKHdvcmQg JiAxKSAhPSBvbGRiaXQpIHsKKwkJCQlzZXRtb3NpKHNwaSwgd29yZCAmIDEpOworCQkJCW9sZGJp dCA9IHdvcmQgJiAxOworCQkJfQorCQl9CisJCXNwaWRlbGF5KG5zZWNzKTsgLyogVChzZXR1cCkg Ki8KKworCQlzZXRzY2soc3BpLCBjcG9sKTsKKwkJc3BpZGVsYXkobnNlY3MpOworCisJCS8qIHNh bXBsZSBMU0IgKGZyb20gc2xhdmUpIG9uIHRyYWlsaW5nIGVkZ2UgKi8KKwkJd29yZCA+Pj0gMTsK KwkJaWYgKChmbGFncyAmIFNQSV9NQVNURVJfTk9fUlgpID09IDApCisJCQl3b3JkIHw9IGdldG1p c28oc3BpKSA8PCAoYml0cyAtIDEpOworCX0KKwlyZXR1cm4gd29yZDsKK30KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3BpL3NwaS1ncGlvLmMgYi9kcml2ZXJzL3NwaS9zcGktZ3Bpby5jCmluZGV4IDA1 ODRmNGQyZi4uNGIxMmM0OTY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktZ3Bpby5jCisr KyBiL2RyaXZlcnMvc3BpL3NwaS1ncGlvLmMKQEAgLTEzNSwyNSArMTM1LDM3IEBAIHN0YXRpYyBp bmxpbmUgaW50IGdldG1pc28oY29uc3Qgc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHN0YXRpYyB1 MzIgc3BpX2dwaW9fdHhyeF93b3JkX21vZGUwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJCXVu c2lnbmVkIG5zZWNzLCB1MzIgd29yZCwgdTggYml0cywgdW5zaWduZWQgZmxhZ3MpCiB7Ci0JcmV0 dXJuIGJpdGJhbmdfdHhyeF9iZV9jcGhhMChzcGksIG5zZWNzLCAwLCBmbGFncywgd29yZCwgYml0 cyk7CisJaWYgKHVubGlrZWx5KHNwaS0+bW9kZSAmIFNQSV9MU0JfRklSU1QpKQorCQlyZXR1cm4g Yml0YmFuZ190eHJ4X2xlX2NwaGEwKHNwaSwgbnNlY3MsIDAsIGZsYWdzLCB3b3JkLCBiaXRzKTsK KwllbHNlCisJCXJldHVybiBiaXRiYW5nX3R4cnhfYmVfY3BoYTAoc3BpLCBuc2VjcywgMCwgZmxh Z3MsIHdvcmQsIGJpdHMpOwogfQogCiBzdGF0aWMgdTMyIHNwaV9ncGlvX3R4cnhfd29yZF9tb2Rl MShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCQl1bnNpZ25lZCBuc2VjcywgdTMyIHdvcmQsIHU4 IGJpdHMsIHVuc2lnbmVkIGZsYWdzKQogewotCXJldHVybiBiaXRiYW5nX3R4cnhfYmVfY3BoYTEo c3BpLCBuc2VjcywgMCwgZmxhZ3MsIHdvcmQsIGJpdHMpOworCWlmICh1bmxpa2VseShzcGktPm1v ZGUgJiBTUElfTFNCX0ZJUlNUKSkKKwkJcmV0dXJuIGJpdGJhbmdfdHhyeF9sZV9jcGhhMShzcGks IG5zZWNzLCAwLCBmbGFncywgd29yZCwgYml0cyk7CisJZWxzZQorCQlyZXR1cm4gYml0YmFuZ190 eHJ4X2JlX2NwaGExKHNwaSwgbnNlY3MsIDAsIGZsYWdzLCB3b3JkLCBiaXRzKTsKIH0KIAogc3Rh dGljIHUzMiBzcGlfZ3Bpb190eHJ4X3dvcmRfbW9kZTIoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwK IAkJdW5zaWduZWQgbnNlY3MsIHUzMiB3b3JkLCB1OCBiaXRzLCB1bnNpZ25lZCBmbGFncykKIHsK LQlyZXR1cm4gYml0YmFuZ190eHJ4X2JlX2NwaGEwKHNwaSwgbnNlY3MsIDEsIGZsYWdzLCB3b3Jk LCBiaXRzKTsKKwlpZiAodW5saWtlbHkoc3BpLT5tb2RlICYgU1BJX0xTQl9GSVJTVCkpCisJCXJl dHVybiBiaXRiYW5nX3R4cnhfbGVfY3BoYTAoc3BpLCBuc2VjcywgMSwgZmxhZ3MsIHdvcmQsIGJp dHMpOworCWVsc2UKKwkJcmV0dXJuIGJpdGJhbmdfdHhyeF9iZV9jcGhhMChzcGksIG5zZWNzLCAx LCBmbGFncywgd29yZCwgYml0cyk7CiB9CiAKIHN0YXRpYyB1MzIgc3BpX2dwaW9fdHhyeF93b3Jk X21vZGUzKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCiAJCXVuc2lnbmVkIG5zZWNzLCB1MzIgd29y ZCwgdTggYml0cywgdW5zaWduZWQgZmxhZ3MpCiB7Ci0JcmV0dXJuIGJpdGJhbmdfdHhyeF9iZV9j cGhhMShzcGksIG5zZWNzLCAxLCBmbGFncywgd29yZCwgYml0cyk7CisJaWYgKHVubGlrZWx5KHNw aS0+bW9kZSAmIFNQSV9MU0JfRklSU1QpKQorCQlyZXR1cm4gYml0YmFuZ190eHJ4X2xlX2NwaGEx KHNwaSwgbnNlY3MsIDEsIGZsYWdzLCB3b3JkLCBiaXRzKTsKKwllbHNlCisJCXJldHVybiBiaXRi YW5nX3R4cnhfYmVfY3BoYTEoc3BpLCBuc2VjcywgMSwgZmxhZ3MsIHdvcmQsIGJpdHMpOwogfQog CiAvKgpAQCAtMTcwLDI4ICsxODIsNDAgQEAgc3RhdGljIHUzMiBzcGlfZ3Bpb19zcGVjX3R4cnhf d29yZF9tb2RlMChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCQl1bnNpZ25lZCBuc2VjcywgdTMy IHdvcmQsIHU4IGJpdHMsIHVuc2lnbmVkIGZsYWdzKQogewogCWZsYWdzID0gc3BpLT5tYXN0ZXIt PmZsYWdzOwotCXJldHVybiBiaXRiYW5nX3R4cnhfYmVfY3BoYTAoc3BpLCBuc2VjcywgMCwgZmxh Z3MsIHdvcmQsIGJpdHMpOworCWlmICh1bmxpa2VseShzcGktPm1vZGUgJiBTUElfTFNCX0ZJUlNU KSkKKwkJcmV0dXJuIGJpdGJhbmdfdHhyeF9sZV9jcGhhMChzcGksIG5zZWNzLCAwLCBmbGFncywg d29yZCwgYml0cyk7CisJZWxzZQorCQlyZXR1cm4gYml0YmFuZ190eHJ4X2JlX2NwaGEwKHNwaSwg bnNlY3MsIDAsIGZsYWdzLCB3b3JkLCBiaXRzKTsKIH0KIAogc3RhdGljIHUzMiBzcGlfZ3Bpb19z cGVjX3R4cnhfd29yZF9tb2RlMShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCQl1bnNpZ25lZCBu c2VjcywgdTMyIHdvcmQsIHU4IGJpdHMsIHVuc2lnbmVkIGZsYWdzKQogewogCWZsYWdzID0gc3Bp LT5tYXN0ZXItPmZsYWdzOwotCXJldHVybiBiaXRiYW5nX3R4cnhfYmVfY3BoYTEoc3BpLCBuc2Vj cywgMCwgZmxhZ3MsIHdvcmQsIGJpdHMpOworCWlmICh1bmxpa2VseShzcGktPm1vZGUgJiBTUElf TFNCX0ZJUlNUKSkKKwkJcmV0dXJuIGJpdGJhbmdfdHhyeF9sZV9jcGhhMShzcGksIG5zZWNzLCAw LCBmbGFncywgd29yZCwgYml0cyk7CisJZWxzZQorCQlyZXR1cm4gYml0YmFuZ190eHJ4X2JlX2Nw aGExKHNwaSwgbnNlY3MsIDAsIGZsYWdzLCB3b3JkLCBiaXRzKTsKIH0KIAogc3RhdGljIHUzMiBz cGlfZ3Bpb19zcGVjX3R4cnhfd29yZF9tb2RlMihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCQl1 bnNpZ25lZCBuc2VjcywgdTMyIHdvcmQsIHU4IGJpdHMsIHVuc2lnbmVkIGZsYWdzKQogewogCWZs YWdzID0gc3BpLT5tYXN0ZXItPmZsYWdzOwotCXJldHVybiBiaXRiYW5nX3R4cnhfYmVfY3BoYTAo c3BpLCBuc2VjcywgMSwgZmxhZ3MsIHdvcmQsIGJpdHMpOworCWlmICh1bmxpa2VseShzcGktPm1v ZGUgJiBTUElfTFNCX0ZJUlNUKSkKKwkJcmV0dXJuIGJpdGJhbmdfdHhyeF9sZV9jcGhhMChzcGks IG5zZWNzLCAxLCBmbGFncywgd29yZCwgYml0cyk7CisJZWxzZQorCQlyZXR1cm4gYml0YmFuZ190 eHJ4X2JlX2NwaGEwKHNwaSwgbnNlY3MsIDEsIGZsYWdzLCB3b3JkLCBiaXRzKTsKIH0KIAogc3Rh dGljIHUzMiBzcGlfZ3Bpb19zcGVjX3R4cnhfd29yZF9tb2RlMyhzdHJ1Y3Qgc3BpX2RldmljZSAq c3BpLAogCQl1bnNpZ25lZCBuc2VjcywgdTMyIHdvcmQsIHU4IGJpdHMsIHVuc2lnbmVkIGZsYWdz KQogewogCWZsYWdzID0gc3BpLT5tYXN0ZXItPmZsYWdzOwotCXJldHVybiBiaXRiYW5nX3R4cnhf YmVfY3BoYTEoc3BpLCBuc2VjcywgMSwgZmxhZ3MsIHdvcmQsIGJpdHMpOworCWlmICh1bmxpa2Vs eShzcGktPm1vZGUgJiBTUElfTFNCX0ZJUlNUKSkKKwkJcmV0dXJuIGJpdGJhbmdfdHhyeF9sZV9j cGhhMShzcGksIG5zZWNzLCAxLCBmbGFncywgd29yZCwgYml0cyk7CisJZWxzZQorCQlyZXR1cm4g Yml0YmFuZ190eHJ4X2JlX2NwaGExKHNwaSwgbnNlY3MsIDEsIGZsYWdzLCB3b3JkLCBiaXRzKTsK IH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTM3OCw3ICs0MDIsNyBAQCBzdGF0aWMgaW50IHNw aV9ncGlvX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAltYXN0ZXItPmJp dHNfcGVyX3dvcmRfbWFzayA9IFNQSV9CUFdfUkFOR0VfTUFTSygxLCAzMik7CiAJbWFzdGVyLT5t b2RlX2JpdHMgPSBTUElfM1dJUkUgfCBTUElfM1dJUkVfSElaIHwgU1BJX0NQSEEgfCBTUElfQ1BP TCB8Ci0JCQkgICAgU1BJX0NTX0hJR0g7CisJCQkgICAgU1BJX0NTX0hJR0ggfCBTUElfTFNCX0ZJ UlNUOwogCWlmICghc3BpX2dwaW8tPm1vc2kpIHsKIAkJLyogSFcgY29uZmlndXJhdGlvbiB3aXRo b3V0IE1PU0kgcGluCiAJCSAqCi0tIAoyLjM1LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1h bWxvZ2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg==