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=-9.9 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT 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 70D06C41604 for ; Sat, 3 Oct 2020 14:21:49 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 16E4520659 for ; Sat, 3 Oct 2020 14:21:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ACr4DYQF"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="n/UbPIvQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 16E4520659 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1ghQuuEAMhPFHnmih1JY1kmo2vNsfnA0AQbCF8Lmek0=; b=ACr4DYQFSIQ5sNHmnFgkmYQF5 liaZQTsMor69JU/l9+pT+zO6cDtq0y0SRgyaPDs1cmxdv/7pJV0fXuR48Jg8Wktv+IMnh6hB+7CB8 HJW5yTpQUOzbuVCN+42eq++5Ic7XlpgZwWV6pBpVYNO5SgyUFgHlCU36pCJdjh3E+HlflLOxpcOpq bAAQ+z/kl/aV+dy5Ywn4uhM5psN8zlkIrgtUMEvwTd8V39fbS4IMmsjek+RWeVkEhq5qFA/KcyO8t jynqvosmf4YSDk3u64VoMf0PO9/tU7OxNHKbs9lxBIZN9htIlYvERuUZInSEp6m9vPjxOJZb7Epg0 wRNaXikww==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kOiOI-0002gY-65; Sat, 03 Oct 2020 14:20:02 +0000 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kOiOD-0002eO-QZ for linux-arm-kernel@lists.infradead.org; Sat, 03 Oct 2020 14:19:59 +0000 Received: by mail-wm1-x344.google.com with SMTP id x23so4346358wmi.3 for ; Sat, 03 Oct 2020 07:19:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=D35ENE6X+QQyIPO5yMjShVVFbSHWhB+eeX4cPyxUScM=; b=n/UbPIvQXdHaIvcn4K6gfmTPLYPFa0/qIeVK307P70KYUGkIVqRV/oKKfRd4ApqdEe pakLmOVri9K6+Pxpi442VO/M3vwWGvO5YXCCQNXr7YkM3IkXB/pP9xFBt6C2jYF4Dxtr KJx9P22cPAVcikq09FZ4otKFbNRvg6xHfeOCo/3ZB4SFa+IAXm0407MvO8IbnesaBN1D 6obksFEjD173Okvuz23jtgnI86tOXaI7qk9pVGlf3DpDcUyYUG423LkpFQ5JMIr/Cr09 pH4oBWLfmCoJ5NToZSCdz2rQpWf4rJNCAGdFfrHFwl/aNbmfCu3fnbfjL7lpDqp/AA1r gShQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=D35ENE6X+QQyIPO5yMjShVVFbSHWhB+eeX4cPyxUScM=; b=GK5akxJlVsqF6sURaYFyfxadgxUUQ7aE8qnMmnJEQYTJ35FYc6BKJxwU10b7zZEVUo B3kVwvnft7ssxXJSBFg9QW3qafGtva66td1yRHntRdcNR9kSTBRq8lTuGMm/lpzSNKnh GbA0p9VWJQGHV4kn8CCJ2MozWVm+DA0eJk6740DyMasmz9VLwQUKx2kV48JFVyE/2HFx ECA/loDZSS05UoQNMJ/QrpfhFUiAarAiLXTmX3eOlyDvNMtMb1c/KciuZA3h0d9qNRqB /sl5TktaIahhDTyNQie60p1wztzHei/tfQkYDQ+jy883y5OsIO15705/QOdwrnETGEpr VMrA== X-Gm-Message-State: AOAM530zVmUtuDoRqnFd1Wv0wjceXesJbNJ9GYx8i+F4PlLDHjjqkCPG /WdQBg9i0KKERrTbvoakJY4= X-Google-Smtp-Source: ABdhPJzyJzyimsUP7RU/cAE/hH68XAS+thkLq0RUTVJOqhUoTqo9uFcPrBiZFLk68pfg7hIB7RhAFw== X-Received: by 2002:a1c:49c2:: with SMTP id w185mr7917096wma.70.1601734796446; Sat, 03 Oct 2020 07:19:56 -0700 (PDT) Received: from clement-Latitude-7490.numericable.fr (213-245-241-245.rev.numericable.fr. [213.245.241.245]) by smtp.gmail.com with ESMTPSA id d18sm5417473wrm.10.2020.10.03.07.19.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Oct 2020 07:19:54 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Maxime Ripard , Chen-Yu Tsai , Rob Herring , Mark Brown , Liam Girdwood Subject: [PATCH v6 01/14] ASoC: sun4i-i2s: Add support for H6 I2S Date: Sat, 3 Oct 2020 16:19:37 +0200 Message-Id: <20201003141950.455829-2-peron.clem@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201003141950.455829-1-peron.clem@gmail.com> References: <20201003141950.455829-1-peron.clem@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201003_101958_003441_36F667D3 X-CRM114-Status: GOOD ( 21.89 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Jernej Skrabec , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Takashi Iwai , Jaroslav Kysela , Marcus Cooper , linux-sunxi@googlegroups.com, =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= , linux-arm-kernel@lists.infradead.org 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 RnJvbTogSmVybmVqIFNrcmFiZWMgPGplcm5lai5za3JhYmVjQHNpb2wubmV0PgoKSDYgSTJTIGlz IHZlcnkgc2ltaWxhciB0byB0aGF0IGluIEgzLCBleGNlcHQgaXQgc3VwcG9ydHMgdXAgdG8gMTYK Y2hhbm5lbHMuCgpTaWduZWQtb2ZmLWJ5OiBKZXJuZWogU2tyYWJlYyA8amVybmVqLnNrcmFiZWNA c2lvbC5uZXQ+ClNpZ25lZC1vZmYtYnk6IE1hcmN1cyBDb29wZXIgPGNvZGVraXBwZXJAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgpTaWduZWQtb2Zm LWJ5OiBDbMOpbWVudCBQw6lyb24gPHBlcm9uLmNsZW1AZ21haWwuY29tPgotLS0KIHNvdW5kL3Nv Yy9zdW54aS9zdW40aS1pMnMuYyB8IDIyNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMjYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Nv dW5kL3NvYy9zdW54aS9zdW40aS1pMnMuYyBiL3NvdW5kL3NvYy9zdW54aS9zdW40aS1pMnMuYwpp bmRleCBmMjNmZjI5ZTdjMWQuLmM1Y2NkNDIzZTZkMyAxMDA2NDQKLS0tIGEvc291bmQvc29jL3N1 bnhpL3N1bjRpLWkycy5jCisrKyBiL3NvdW5kL3NvYy9zdW54aS9zdW40aS1pMnMuYwpAQCAtMTI0 LDYgKzEyNCwyMSBAQAogI2RlZmluZSBTVU44SV9JMlNfUlhfQ0hBTl9TRUxfUkVHCTB4NTQKICNk ZWZpbmUgU1VOOElfSTJTX1JYX0NIQU5fTUFQX1JFRwkweDU4CiAKKy8qIERlZmluZXMgcmVxdWly ZWQgZm9yIHN1bjUwaS1oNiBzdXBwb3J0ICovCisjZGVmaW5lIFNVTjUwSV9INl9JMlNfVFhfQ0hB Tl9TRUxfT0ZGU0VUX01BU0sJR0VOTUFTSygyMSwgMjApCisjZGVmaW5lIFNVTjUwSV9INl9JMlNf VFhfQ0hBTl9TRUxfT0ZGU0VUKG9mZnNldCkJKChvZmZzZXQpIDw8IDIwKQorI2RlZmluZSBTVU41 MElfSDZfSTJTX1RYX0NIQU5fU0VMX01BU0sJCUdFTk1BU0soMTksIDE2KQorI2RlZmluZSBTVU41 MElfSDZfSTJTX1RYX0NIQU5fU0VMKGNoYW4pCQkoKGNoYW4gLSAxKSA8PCAxNikKKyNkZWZpbmUg U1VONTBJX0g2X0kyU19UWF9DSEFOX0VOX01BU0sJCUdFTk1BU0soMTUsIDApCisjZGVmaW5lIFNV TjUwSV9INl9JMlNfVFhfQ0hBTl9FTihudW1fY2hhbikJKCgoMSA8PCBudW1fY2hhbikgLSAxKSkK KworI2RlZmluZSBTVU41MElfSDZfSTJTX1RYX0NIQU5fTUFQMF9SRUcJMHg0NAorI2RlZmluZSBT VU41MElfSDZfSTJTX1RYX0NIQU5fTUFQMV9SRUcJMHg0OAorCisjZGVmaW5lIFNVTjUwSV9INl9J MlNfUlhfQ0hBTl9TRUxfUkVHCTB4NjQKKyNkZWZpbmUgU1VONTBJX0g2X0kyU19SWF9DSEFOX01B UDBfUkVHCTB4NjgKKyNkZWZpbmUgU1VONTBJX0g2X0kyU19SWF9DSEFOX01BUDFfUkVHCTB4NkMK Kwogc3RydWN0IHN1bjRpX2kyczsKIAogLyoqCkBAIC00NzQsNiArNDg5LDY0IEBAIHN0YXRpYyBp bnQgc3VuOGlfaTJzX3NldF9jaGFuX2NmZyhjb25zdCBzdHJ1Y3Qgc3VuNGlfaTJzICppMnMsCiAJ cmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgc3VuNTBpX2g2X2kyc19zZXRfY2hhbl9jZmcoY29u c3Qgc3RydWN0IHN1bjRpX2kycyAqaTJzLAorCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBzbmRfcGNt X2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXVuc2lnbmVkIGludCBjaGFubmVscyA9IHBhcmFtc19j aGFubmVscyhwYXJhbXMpOworCXVuc2lnbmVkIGludCBzbG90cyA9IGNoYW5uZWxzOworCXVuc2ln bmVkIGludCBscmNrX3BlcmlvZDsKKworCWlmIChpMnMtPnNsb3RzKQorCQlzbG90cyA9IGkycy0+ c2xvdHM7CisKKwkvKiBNYXAgdGhlIGNoYW5uZWxzIGZvciBwbGF5YmFjayBhbmQgY2FwdHVyZSAq LworCXJlZ21hcF93cml0ZShpMnMtPnJlZ21hcCwgU1VONTBJX0g2X0kyU19UWF9DSEFOX01BUDBf UkVHLCAweEZFRENCQTk4KTsKKwlyZWdtYXBfd3JpdGUoaTJzLT5yZWdtYXAsIFNVTjUwSV9INl9J MlNfVFhfQ0hBTl9NQVAxX1JFRywgMHg3NjU0MzIxMCk7CisJcmVnbWFwX3dyaXRlKGkycy0+cmVn bWFwLCBTVU41MElfSDZfSTJTX1JYX0NIQU5fTUFQMF9SRUcsIDB4RkVEQ0JBOTgpOworCXJlZ21h cF93cml0ZShpMnMtPnJlZ21hcCwgU1VONTBJX0g2X0kyU19SWF9DSEFOX01BUDFfUkVHLCAweDc2 NTQzMjEwKTsKKworCS8qIENvbmZpZ3VyZSB0aGUgY2hhbm5lbHMgKi8KKwlyZWdtYXBfdXBkYXRl X2JpdHMoaTJzLT5yZWdtYXAsIFNVTjhJX0kyU19UWF9DSEFOX1NFTF9SRUcsCisJCQkgICBTVU41 MElfSDZfSTJTX1RYX0NIQU5fU0VMX01BU0ssCisJCQkgICBTVU41MElfSDZfSTJTX1RYX0NIQU5f U0VMKGNoYW5uZWxzKSk7CisJcmVnbWFwX3VwZGF0ZV9iaXRzKGkycy0+cmVnbWFwLCBTVU41MElf SDZfSTJTX1JYX0NIQU5fU0VMX1JFRywKKwkJCSAgIFNVTjUwSV9INl9JMlNfVFhfQ0hBTl9TRUxf TUFTSywKKwkJCSAgIFNVTjUwSV9INl9JMlNfVFhfQ0hBTl9TRUwoY2hhbm5lbHMpKTsKKworCXJl Z21hcF91cGRhdGVfYml0cyhpMnMtPnJlZ21hcCwgU1VOOElfSTJTX0NIQU5fQ0ZHX1JFRywKKwkJ CSAgIFNVTjhJX0kyU19DSEFOX0NGR19UWF9TTE9UX05VTV9NQVNLLAorCQkJICAgU1VOOElfSTJT X0NIQU5fQ0ZHX1RYX1NMT1RfTlVNKGNoYW5uZWxzKSk7CisJcmVnbWFwX3VwZGF0ZV9iaXRzKGky cy0+cmVnbWFwLCBTVU44SV9JMlNfQ0hBTl9DRkdfUkVHLAorCQkJICAgU1VOOElfSTJTX0NIQU5f Q0ZHX1JYX1NMT1RfTlVNX01BU0ssCisJCQkgICBTVU44SV9JMlNfQ0hBTl9DRkdfUlhfU0xPVF9O VU0oY2hhbm5lbHMpKTsKKworCXN3aXRjaCAoaTJzLT5mb3JtYXQgJiBTTkRfU09DX0RBSUZNVF9G T1JNQVRfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0E6CisJY2FzZSBTTkRfU09D X0RBSUZNVF9EU1BfQjoKKwljYXNlIFNORF9TT0NfREFJRk1UX0xFRlRfSjoKKwljYXNlIFNORF9T T0NfREFJRk1UX1JJR0hUX0o6CisJCWxyY2tfcGVyaW9kID0gcGFyYW1zX3BoeXNpY2FsX3dpZHRo KHBhcmFtcykgKiBzbG90czsKKwkJYnJlYWs7CisKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUzoK KwkJbHJja19wZXJpb2QgPSBwYXJhbXNfcGh5c2ljYWxfd2lkdGgocGFyYW1zKTsKKwkJYnJlYWs7 CisKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZWdtYXBfdXBkYXRlX2Jp dHMoaTJzLT5yZWdtYXAsIFNVTjRJX0kyU19GTVQwX1JFRywKKwkJCSAgIFNVTjhJX0kyU19GTVQw X0xSQ0tfUEVSSU9EX01BU0ssCisJCQkgICBTVU44SV9JMlNfRk1UMF9MUkNLX1BFUklPRChscmNr X3BlcmlvZCkpOworCisJcmVnbWFwX3VwZGF0ZV9iaXRzKGkycy0+cmVnbWFwLCBTVU44SV9JMlNf VFhfQ0hBTl9TRUxfUkVHLAorCQkJICAgU1VONTBJX0g2X0kyU19UWF9DSEFOX0VOX01BU0ssCisJ CQkgICBTVU41MElfSDZfSTJTX1RYX0NIQU5fRU4oY2hhbm5lbHMpKTsKKworCXJldHVybiAwOwor fQorCiBzdGF0aWMgaW50IHN1bjRpX2kyc19od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3Ry ZWFtICpzdWJzdHJlYW0sCiAJCQkgICAgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJh bXMsCiAJCQkgICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCkBAIC02OTksNiArNzcyLDEw OCBAQCBzdGF0aWMgaW50IHN1bjhpX2kyc19zZXRfc29jX2ZtdChjb25zdCBzdHJ1Y3Qgc3VuNGlf aTJzICppMnMsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgc3VuNTBpX2g2X2kyc19zZXRf c29jX2ZtdChjb25zdCBzdHJ1Y3Qgc3VuNGlfaTJzICppMnMsCisJCQkJICAgICB1bnNpZ25lZCBp bnQgZm10KQoreworCXUzMiBtb2RlLCB2YWw7CisJdTggb2Zmc2V0OworCisJLyoKKwkgKiBEQUkg Y2xvY2sgcG9sYXJpdHkKKwkgKgorCSAqIFRoZSBzZXR1cCBmb3IgTFJDSyBjb250cmFkaWN0cyB0 aGUgZGF0YXNoZWV0LCBidXQgdW5kZXIgYQorCSAqIHNjb3BlIGl0J3MgY2xlYXIgdGhhdCB0aGUg TFJDSyBwb2xhcml0eSBpcyByZXZlcnNlZAorCSAqIGNvbXBhcmVkIHRvIHRoZSBleHBlY3RlZCBw b2xhcml0eSBvbiB0aGUgYnVzLgorCSAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRf SU5WX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0lCX0lGOgorCQkvKiBJbnZlcnQgYm90 aCBjbG9ja3MgKi8KKwkJdmFsID0gU1VOOElfSTJTX0ZNVDBfQkNMS19QT0xBUklUWV9JTlZFUlRF RDsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9ORjoKKwkJLyogSW52ZXJ0IGJp dCBjbG9jayAqLworCQl2YWwgPSBTVU44SV9JMlNfRk1UMF9CQ0xLX1BPTEFSSVRZX0lOVkVSVEVE IHwKKwkJICAgICAgU1VOOElfSTJTX0ZNVDBfTFJDTEtfUE9MQVJJVFlfSU5WRVJURUQ7CisJCWJy ZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTkJfSUY6CisJCS8qIEludmVydCBmcmFtZSBjbG9j ayAqLworCQl2YWwgPSAwOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX05CX05GOgor CQl2YWwgPSBTVU44SV9JMlNfRk1UMF9MUkNMS19QT0xBUklUWV9JTlZFUlRFRDsKKwkJYnJlYWs7 CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVnbWFwX3VwZGF0ZV9iaXRz KGkycy0+cmVnbWFwLCBTVU40SV9JMlNfRk1UMF9SRUcsCisJCQkgICBTVU44SV9JMlNfRk1UMF9M UkNMS19QT0xBUklUWV9NQVNLIHwKKwkJCSAgIFNVTjhJX0kyU19GTVQwX0JDTEtfUE9MQVJJVFlf TUFTSywKKwkJCSAgIHZhbCk7CisKKwkvKiBEQUkgTW9kZSAqLworCXN3aXRjaCAoZm10ICYgU05E X1NPQ19EQUlGTVRfRk9STUFUX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0RTUF9BOgor CQltb2RlID0gU1VOOElfSTJTX0NUUkxfTU9ERV9QQ007CisJCW9mZnNldCA9IDE7CisJCWJyZWFr OworCisJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQjoKKwkJbW9kZSA9IFNVTjhJX0kyU19DVFJM X01PREVfUENNOworCQlvZmZzZXQgPSAwOworCQlicmVhazsKKworCWNhc2UgU05EX1NPQ19EQUlG TVRfSTJTOgorCQltb2RlID0gU1VOOElfSTJTX0NUUkxfTU9ERV9MRUZUOworCQlvZmZzZXQgPSAx OworCQlicmVhazsKKworCWNhc2UgU05EX1NPQ19EQUlGTVRfTEVGVF9KOgorCQltb2RlID0gU1VO OElfSTJTX0NUUkxfTU9ERV9MRUZUOworCQlvZmZzZXQgPSAwOworCQlicmVhazsKKworCWNhc2Ug U05EX1NPQ19EQUlGTVRfUklHSFRfSjoKKwkJbW9kZSA9IFNVTjhJX0kyU19DVFJMX01PREVfUklH SFQ7CisJCW9mZnNldCA9IDA7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5W QUw7CisJfQorCisJcmVnbWFwX3VwZGF0ZV9iaXRzKGkycy0+cmVnbWFwLCBTVU40SV9JMlNfQ1RS TF9SRUcsCisJCQkgICBTVU44SV9JMlNfQ1RSTF9NT0RFX01BU0ssIG1vZGUpOworCXJlZ21hcF91 cGRhdGVfYml0cyhpMnMtPnJlZ21hcCwgU1VOOElfSTJTX1RYX0NIQU5fU0VMX1JFRywKKwkJCSAg IFNVTjUwSV9INl9JMlNfVFhfQ0hBTl9TRUxfT0ZGU0VUX01BU0ssCisJCQkgICBTVU41MElfSDZf STJTX1RYX0NIQU5fU0VMX09GRlNFVChvZmZzZXQpKTsKKwlyZWdtYXBfdXBkYXRlX2JpdHMoaTJz LT5yZWdtYXAsIFNVTjUwSV9INl9JMlNfUlhfQ0hBTl9TRUxfUkVHLAorCQkJICAgU1VONTBJX0g2 X0kyU19UWF9DSEFOX1NFTF9PRkZTRVRfTUFTSywKKwkJCSAgIFNVTjUwSV9INl9JMlNfVFhfQ0hB Tl9TRUxfT0ZGU0VUKG9mZnNldCkpOworCisJLyogREFJIGNsb2NrIG1hc3RlciBtYXNrcyAqLwor CXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spIHsKKwljYXNlIFNORF9T T0NfREFJRk1UX0NCU19DRlM6CisJCS8qIEJDTEsgYW5kIExSQ0xLIG1hc3RlciAqLworCQl2YWwg PSBTVU44SV9JMlNfQ1RSTF9CQ0xLX09VVCB8CVNVTjhJX0kyU19DVFJMX0xSQ0tfT1VUOworCQli cmVhazsKKworCWNhc2UgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTToKKwkJLyogQkNMSyBhbmQgTFJD TEsgc2xhdmUgKi8KKwkJdmFsID0gMDsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZXR1cm4g LUVJTlZBTDsKKwl9CisKKwlyZWdtYXBfdXBkYXRlX2JpdHMoaTJzLT5yZWdtYXAsIFNVTjRJX0ky U19DVFJMX1JFRywKKwkJCSAgIFNVTjhJX0kyU19DVFJMX0JDTEtfT1VUIHwgU1VOOElfSTJTX0NU UkxfTFJDS19PVVQsCisJCQkgICB2YWwpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQg c3VuNGlfaTJzX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHVuc2lnbmVkIGludCBm bXQpCiB7CiAJc3RydWN0IHN1bjRpX2kycyAqaTJzID0gc25kX3NvY19kYWlfZ2V0X2RydmRhdGEo ZGFpKTsKQEAgLTk3OSw2ICsxMTU0LDIyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX2RlZmF1 bHQgc3VuOGlfaTJzX3JlZ19kZWZhdWx0c1tdID0gewogCXsgU1VOOElfSTJTX1JYX0NIQU5fTUFQ X1JFRywgMHgwMDAwMDAwMCB9LAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCByZWdfZGVmYXVs dCBzdW41MGlfaDZfaTJzX3JlZ19kZWZhdWx0c1tdID0geworCXsgU1VONElfSTJTX0NUUkxfUkVH LCAweDAwMDYwMDAwIH0sCisJeyBTVU40SV9JMlNfRk1UMF9SRUcsIDB4MDAwMDAwMzMgfSwKKwl7 IFNVTjRJX0kyU19GTVQxX1JFRywgMHgwMDAwMDAzMCB9LAorCXsgU1VONElfSTJTX0ZJRk9fQ1RS TF9SRUcsIDB4MDAwNDAwZjAgfSwKKwl7IFNVTjRJX0kyU19ETUFfSU5UX0NUUkxfUkVHLCAweDAw MDAwMDAwIH0sCisJeyBTVU40SV9JMlNfQ0xLX0RJVl9SRUcsIDB4MDAwMDAwMDAgfSwKKwl7IFNV TjhJX0kyU19DSEFOX0NGR19SRUcsIDB4MDAwMDAwMDAgfSwKKwl7IFNVTjhJX0kyU19UWF9DSEFO X1NFTF9SRUcsIDB4MDAwMDAwMDAgfSwKKwl7IFNVTjUwSV9INl9JMlNfVFhfQ0hBTl9NQVAwX1JF RywgMHgwMDAwMDAwMCB9LAorCXsgU1VONTBJX0g2X0kyU19UWF9DSEFOX01BUDFfUkVHLCAweDAw MDAwMDAwIH0sCisJeyBTVU41MElfSDZfSTJTX1JYX0NIQU5fU0VMX1JFRywgMHgwMDAwMDAwMCB9 LAorCXsgU1VONTBJX0g2X0kyU19SWF9DSEFOX01BUDBfUkVHLCAweDAwMDAwMDAwIH0sCisJeyBT VU41MElfSDZfSTJTX1JYX0NIQU5fTUFQMV9SRUcsIDB4MDAwMDAwMDAgfSwKK307CisKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBzdW40aV9pMnNfcmVnbWFwX2NvbmZpZyA9IHsK IAkucmVnX2JpdHMJPSAzMiwKIAkucmVnX3N0cmlkZQk9IDQsCkBAIC0xMDA2LDYgKzExOTcsMTkg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHN1bjhpX2kyc19yZWdtYXBfY29u ZmlnID0gewogCS52b2xhdGlsZV9yZWcJPSBzdW44aV9pMnNfdm9sYXRpbGVfcmVnLAogfTsKIAor c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHN1bjUwaV9oNl9pMnNfcmVnbWFwX2Nv bmZpZyA9IHsKKwkucmVnX2JpdHMJPSAzMiwKKwkucmVnX3N0cmlkZQk9IDQsCisJLnZhbF9iaXRz CT0gMzIsCisJLm1heF9yZWdpc3Rlcgk9IFNVTjUwSV9INl9JMlNfUlhfQ0hBTl9NQVAxX1JFRywK KwkuY2FjaGVfdHlwZQk9IFJFR0NBQ0hFX0ZMQVQsCisJLnJlZ19kZWZhdWx0cwk9IHN1bjUwaV9o Nl9pMnNfcmVnX2RlZmF1bHRzLAorCS5udW1fcmVnX2RlZmF1bHRzCT0gQVJSQVlfU0laRShzdW41 MGlfaDZfaTJzX3JlZ19kZWZhdWx0cyksCisJLndyaXRlYWJsZV9yZWcJPSBzdW40aV9pMnNfd3Jf cmVnLAorCS5yZWFkYWJsZV9yZWcJPSBzdW44aV9pMnNfcmRfcmVnLAorCS52b2xhdGlsZV9yZWcJ PSBzdW44aV9pMnNfdm9sYXRpbGVfcmVnLAorfTsKKwogc3RhdGljIGludCBzdW40aV9pMnNfcnVu dGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBzdW40aV9pMnMgKmky cyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwpAQCAtMTE2NCw2ICsxMzY4LDI0IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3Qgc3VuNGlfaTJzX3F1aXJrcyBzdW41MGlfYTY0X2NvZGVjX2kyc19xdWlya3Mg PSB7CiAJLnNldF9mbXQJCT0gc3VuNGlfaTJzX3NldF9zb2NfZm10LAogfTsKIAorc3RhdGljIGNv bnN0IHN0cnVjdCBzdW40aV9pMnNfcXVpcmtzIHN1bjUwaV9oNl9pMnNfcXVpcmtzID0geworCS5o YXNfcmVzZXQJCT0gdHJ1ZSwKKwkucmVnX29mZnNldF90eGRhdGEJPSBTVU44SV9JMlNfRklGT19U WF9SRUcsCisJLnN1bjRpX2kyc19yZWdtYXAJPSAmc3VuNTBpX2g2X2kyc19yZWdtYXBfY29uZmln LAorCS5maWVsZF9jbGtkaXZfbWNsa19lbgk9IFJFR19GSUVMRChTVU40SV9JMlNfQ0xLX0RJVl9S RUcsIDgsIDgpLAorCS5maWVsZF9mbXRfd3NzCQk9IFJFR19GSUVMRChTVU40SV9JMlNfRk1UMF9S RUcsIDAsIDIpLAorCS5maWVsZF9mbXRfc3IJCT0gUkVHX0ZJRUxEKFNVTjRJX0kyU19GTVQwX1JF RywgNCwgNiksCisJLmJjbGtfZGl2aWRlcnMJCT0gc3VuOGlfaTJzX2Nsa19kaXYsCisJLm51bV9i Y2xrX2RpdmlkZXJzCT0gQVJSQVlfU0laRShzdW44aV9pMnNfY2xrX2RpdiksCisJLm1jbGtfZGl2 aWRlcnMJCT0gc3VuOGlfaTJzX2Nsa19kaXYsCisJLm51bV9tY2xrX2RpdmlkZXJzCT0gQVJSQVlf U0laRShzdW44aV9pMnNfY2xrX2RpdiksCisJLmdldF9iY2xrX3BhcmVudF9yYXRlCT0gc3VuOGlf aTJzX2dldF9iY2xrX3BhcmVudF9yYXRlLAorCS5nZXRfc3IJCQk9IHN1bjhpX2kyc19nZXRfc3Jf d3NzLAorCS5nZXRfd3NzCQk9IHN1bjhpX2kyc19nZXRfc3Jfd3NzLAorCS5zZXRfY2hhbl9jZmcJ CT0gc3VuNTBpX2g2X2kyc19zZXRfY2hhbl9jZmcsCisJLnNldF9mbXQJCT0gc3VuNTBpX2g2X2ky c19zZXRfc29jX2ZtdCwKK307CisKIHN0YXRpYyBpbnQgc3VuNGlfaTJzX2luaXRfcmVnbWFwX2Zp ZWxkcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCXN0cnVjdCBzdW40aV9pMnMgKmkycykKIHsK QEAgLTEzMzMsNiArMTU1NSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBz dW40aV9pMnNfbWF0Y2hbXSA9IHsKIAkJLmNvbXBhdGlibGUgPSAiYWxsd2lubmVyLHN1bjUwaS1h NjQtY29kZWMtaTJzIiwKIAkJLmRhdGEgPSAmc3VuNTBpX2E2NF9jb2RlY19pMnNfcXVpcmtzLAog CX0sCisJeworCQkuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNTBpLWg2LWkycyIsCisJCS5k YXRhID0gJnN1bjUwaV9oNl9pMnNfcXVpcmtzLAorCX0sCiAJe30KIH07CiBNT0RVTEVfREVWSUNF X1RBQkxFKG9mLCBzdW40aV9pMnNfbWF0Y2gpOwotLSAKMi4yNS4xCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=