From patchwork Sun Jan 1 18:33:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 13086422 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 08FDFC3DA7D for ; Sun, 1 Jan 2023 18:34:40 +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:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6r1XpopPGEIHx7AWTxzZXhuFKGaDMlpkiqJaSxkNrPI=; b=tAVijFNssMfyCQ JgznOgq6c6V06ZCtobKYdxSvmxD1b62fcY3prfU3yPuSqgQhEdWInKSlOZpyKI1LHBy+xvUqCk60i /R2sW9obnrFqLnrdIYZmNqZGFANuS1beLe1rcE/N3kSs1u1pKnjGFozSBXZlEwmQkbJAEW8kwJmxe bGnzboj4Faz2QGiK15KaH2WiOKvtUkCcqYCd+XM1u6SwTy/dpq9dViGawXI8xDBkXIn0Wy1yWwHpL 6f908A7eFOveR465zcUWkhImsBvYXdCvhJ7NEe83UfuaZgJaeU0aF6sb6CYMkstlV+lALClsJ2+lf 74mmsgEoRoEcqnZVtHXA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pC39P-003hDg-P7; Sun, 01 Jan 2023 18:33:39 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pC397-003h5M-Rg for linux-arm-kernel@lists.infradead.org; Sun, 01 Jan 2023 18:33:25 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id AD1FB320039A; Sun, 1 Jan 2023 13:33:20 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sun, 01 Jan 2023 13:33:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= cc:cc:content-transfer-encoding:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1672598000; x=1672684400; bh=Bc rNw+w4SNGHCE4lx9Q7z+Zcv9oKolCWuuHkfZmCA7w=; b=vIIeS466ptQuOHMydg 7+zt+zhwPQTGDtQHXGc9usTB8nIXqFaguDCPX543aOJlLFFcEBO2CM9wx6o07mVF FuIrsiVecs9RegpKtHGCz6zEaCVQGDr7PbI6OuMVpq78iJ+5VoByKApOnVIANXbV arNpT1xxF1+WOOMwGKTAXWiCmBJSiImbLUPa3egcH+fW5TedFxWsw7n8qQ2Wrzto lLtnu88TlQDPIfts5Kn2tWc+HTt9DBC2oX6FTMZdMx/n4Df5m9C0XqQaD/dQtBXv obGCzIppON567mN20UZkaNnQDcS0bQuxB9yFcsYVwObdP4ISN49Ezinpa7mbM+4R Z/2g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1672598000; x=1672684400; bh=BcrNw+w4SNGHC E4lx9Q7z+Zcv9oKolCWuuHkfZmCA7w=; b=JTk2uFeou2tfXoKp6XM7d+lV8OikV 4wirUf5qLap69gsp49CJuYnJ8VLcWcCMV+f2k6AtibiKr9nI/Xw8S9N1KII/xqOZ nn/txguuYokG4nKsRofw1cepDfNMna16DEJ6ToNQFqg8BppvoPs4JxahPJXAF16O vIa/TNbAtXMjxg7XkFJeYpvksJfplDLJzvJvLA3hyo6DIcdAUHpXWmGKOy0RgnPH 1dDjn6b8AMe0iXSHvBdfZz2E0LIuDWgE+8k51A5rLXriFSW3bEo10MDV5bXBGZ/9 NKllMIB0rRrxzsSBJM8yrfEEveOHZMXuI0Lxn8fzyN6sp33Y8rbG12kaA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrjedtgdduudduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgrmhhu vghlucfjohhllhgrnhguuceoshgrmhhuvghlsehshhholhhlrghnugdrohhrgheqnecugg ftrfgrthhtvghrnhepudekteeuudehtdelteevgfduvddvjefhfedulefgudevgeeghefg udefiedtveetnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepshgrmhhuvghlsehshhholhhlrghnugdrohhrgh X-ME-Proxy: Feedback-ID: i0ad843c9:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 1 Jan 2023 13:33:19 -0500 (EST) From: Samuel Holland To: Srinivas Kandagatla , Chen-Yu Tsai , Jernej Skrabec Cc: Samuel Holland , Greg Kroah-Hartman , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev, stable@vger.kernel.org, Heiko Stuebner Subject: [PATCH v2 1/2] nvmem: sunxi_sid: Always use 32-bit MMIO reads Date: Sun, 1 Jan 2023 12:33:15 -0600 Message-Id: <20230101183316.43642-2-samuel@sholland.org> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230101183316.43642-1-samuel@sholland.org> References: <20230101183316.43642-1-samuel@sholland.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230101_103322_051143_404759EE X-CRM114-Status: GOOD ( 15.43 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The SID SRAM on at least some SoCs (A64 and D1) returns different values when read with bus cycles narrower than 32 bits. This is not immediately obvious, because memcpy_fromio() uses word-size accesses as long as enough data is being copied. The vendor driver always uses 32-bit MMIO reads, so do the same here. This is faster than the register-based method, which is currently used as a workaround on A64. And it fixes the values returned on D1, where the SRAM method was being used. The special case for the last word is needed to maintain .word_size == 1 for sysfs ABI compatibility, as noted previously in commit de2a3eaea552 ("nvmem: sunxi_sid: Optimize register read-out method"). Cc: stable@vger.kernel.org Fixes: 07ae4fde9efa ("nvmem: sunxi_sid: Add support for D1 variant") Tested-by: Heiko Stuebner Signed-off-by: Samuel Holland Reviewed-by: Jernej Skrabec --- (no changes since v1) drivers/nvmem/sunxi_sid.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c index 5750e1f4bcdb..92dfe4cb10e3 100644 --- a/drivers/nvmem/sunxi_sid.c +++ b/drivers/nvmem/sunxi_sid.c @@ -41,8 +41,21 @@ static int sunxi_sid_read(void *context, unsigned int offset, void *val, size_t bytes) { struct sunxi_sid *sid = context; + u32 word; + + /* .stride = 4 so offset is guaranteed to be aligned */ + __ioread32_copy(val, sid->base + sid->value_offset + offset, bytes / 4); - memcpy_fromio(val, sid->base + sid->value_offset + offset, bytes); + val += round_down(bytes, 4); + offset += round_down(bytes, 4); + bytes = bytes % 4; + + if (!bytes) + return 0; + + /* Handle any trailing bytes */ + word = readl_relaxed(sid->base + sid->value_offset + offset); + memcpy(val, &word, bytes); return 0; } From patchwork Sun Jan 1 18:33:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 13086423 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 7AE6CC3DA7D for ; Sun, 1 Jan 2023 18:35:05 +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:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=E2sUxgKhugdFWnSMGRBY9ZSTg85cqhNtyizoXduhEBc=; b=DqgxTRd11aS/to JoL/0gHsSAPR4l+32Q7ZuPK2PboDHEbJgp1ss5KHZEOyXS7Xubh452Jt4BRJocN0cr1YcBl8KBjvV 30UX/gkpFei7bS94T6QX3WDCvsnlC1xJEc1sRBEyzf87wLiRS++4Z+yjxNfPLBjKCY3K6flmqU94k m2a+v7pviDzVQU+qG645nC8daatHtuLTSVtHzHbSTPV4+/Q/xjnNlHsocCtfkTvSWe6sCFxGdDBnq Q1fH2waviVxp00gmkfZOcia/VCV2rZjtje7i2OzLuq9/Ljgvp5CXkhDJA1R/73J36+bYQEHwyEvBT d2+nTfB9TAxGgK1JXGcQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pC39d-003hGx-6c; Sun, 01 Jan 2023 18:33:53 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pC39A-003h6q-0p for linux-arm-kernel@lists.infradead.org; Sun, 01 Jan 2023 18:33:25 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id E1C8732005D8; Sun, 1 Jan 2023 13:33:22 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sun, 01 Jan 2023 13:33:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= cc:cc:content-transfer-encoding:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1672598002; x=1672684402; bh=gF Jp7uQ/NboepQjd9pK1M3B4deROdXdMSMySU0IDyhg=; b=G1bvr603ZRIBxeV9ii m58ikTrF4KFUEqluhod1Z/SP4WP3s3e0+HpMPwYpBpHjugkRcKJ9H6/QM8LM1vO/ t65lRFm0gp516OYvHDF4bhIF3tMKL56T6xTTK6DcTMqZ1Jc5qwnuG1gG5n0NzBZT cibCNXixttIgZFKmbYzm5YHHZuc58Qoy+SYXR1zB1fvF2F5dc6Il1MTWOoOs5BEa yfK4Hl4eJ+/NpQ7lkKHCr+l4Eu89ZDs9KUh3SExnvD/CBVV5Lu0nRfYeEIFDAuHA t2/2JwrusTQY5YxN0vzsqQ19APKtSxA1URgJ6IfB1lHAuqbljGIN0E6U7YckN2+I 6UPw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1672598002; x=1672684402; bh=gFJp7uQ/Nboep Qjd9pK1M3B4deROdXdMSMySU0IDyhg=; b=BZLrHMJ6yNFS7YrUYJCIPzaX6nal2 AMdi5SKhAF0Z9Q8BF4euGd7iHadoJcWrME+6pWsPsHiP9nI7LMUFetM5rRxFuzPP b8pGjO4O1lidzz9cE7bqiZ+gKvQD6DGEju61PJZlfAKmWFqtemQPs0IrDrp92Na5 ZAZ7xYo5C3a89CS1KaHrqMQgq1pq3muJ6rTqZae8riVC4ltNP6aiHYVQ4dC9e1IG AqyAfT1zsDvEJRe5hdYHuXWqNElxq9bu8k8/MlHzyqahGeUhjwXYZY6xVFrh/ckh HXKN3xJ7u/AS8CvWlqutSz9DKH4T/CahaFt8Cgnla40JYl03cmdI+HVKQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrjedtgdduudduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgrmhhu vghlucfjohhllhgrnhguuceoshgrmhhuvghlsehshhholhhlrghnugdrohhrgheqnecugg ftrfgrthhtvghrnhepudekteeuudehtdelteevgfduvddvjefhfedulefgudevgeeghefg udefiedtveetnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepshgrmhhuvghlsehshhholhhlrghnugdrohhrgh X-ME-Proxy: Feedback-ID: i0ad843c9:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 1 Jan 2023 13:33:21 -0500 (EST) From: Samuel Holland To: Srinivas Kandagatla , Chen-Yu Tsai , Jernej Skrabec Cc: Samuel Holland , Greg Kroah-Hartman , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev Subject: [PATCH v2 2/2] nvmem: sunxi_sid: Drop the workaround on A64 Date: Sun, 1 Jan 2023 12:33:16 -0600 Message-Id: <20230101183316.43642-3-samuel@sholland.org> X-Mailer: git-send-email 2.37.4 In-Reply-To: <20230101183316.43642-1-samuel@sholland.org> References: <20230101183316.43642-1-samuel@sholland.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230101_103324_187502_52CA98E9 X-CRM114-Status: GOOD ( 12.59 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Now that the SRAM readout code is fixed by using 32-bit accesses, it always returns the same values as register readout, so the A64 variant no longer needs the workaround. This makes the D1 variant structure redundant, so remove it. Signed-off-by: Samuel Holland --- (no changes since v1) drivers/nvmem/sunxi_sid.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c index 92dfe4cb10e3..a970f1741cc6 100644 --- a/drivers/nvmem/sunxi_sid.c +++ b/drivers/nvmem/sunxi_sid.c @@ -197,15 +197,9 @@ static const struct sunxi_sid_cfg sun8i_h3_cfg = { .need_register_readout = true, }; -static const struct sunxi_sid_cfg sun20i_d1_cfg = { - .value_offset = 0x200, - .size = 0x100, -}; - static const struct sunxi_sid_cfg sun50i_a64_cfg = { .value_offset = 0x200, .size = 0x100, - .need_register_readout = true, }; static const struct sunxi_sid_cfg sun50i_h6_cfg = { @@ -218,7 +212,7 @@ static const struct of_device_id sunxi_sid_of_match[] = { { .compatible = "allwinner,sun7i-a20-sid", .data = &sun7i_a20_cfg }, { .compatible = "allwinner,sun8i-a83t-sid", .data = &sun50i_a64_cfg }, { .compatible = "allwinner,sun8i-h3-sid", .data = &sun8i_h3_cfg }, - { .compatible = "allwinner,sun20i-d1-sid", .data = &sun20i_d1_cfg }, + { .compatible = "allwinner,sun20i-d1-sid", .data = &sun50i_a64_cfg }, { .compatible = "allwinner,sun50i-a64-sid", .data = &sun50i_a64_cfg }, { .compatible = "allwinner,sun50i-h5-sid", .data = &sun50i_a64_cfg }, { .compatible = "allwinner,sun50i-h6-sid", .data = &sun50i_h6_cfg },