From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Ondrej Jirman <megous@megous.com>, Chen-Yu Tsai <wens@csie.org>,
Maxime Ripard <maxime@cerno.tech>,
Sasha Levin <sashal@kernel.org>,
linux-arm-kernel@lists.infradead.org
Subject: [PATCH AUTOSEL 5.4 02/32] bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
Date: Mon, 6 Apr 2020 20:01:20 -0400 [thread overview]
Message-ID: <20200407000151.16768-2-sashal@kernel.org> (raw)
In-Reply-To: <20200407000151.16768-1-sashal@kernel.org>
From: Ondrej Jirman <megous@megous.com>
[ Upstream commit a43ab30dcd4a1abcdd0d2461bf1cf7c0817f6cd3 ]
When doing a 16-bit read that returns data in the MSB byte, the
RSB_DATA register will keep the MSB byte unchanged when doing
the following 8-bit read. sunxi_rsb_read() will then return
a result that contains high byte from 16-bit read mixed with
the 8-bit result.
The consequence is that after this happens the PMIC's regmap will
look like this: (0x33 is the high byte from the 16-bit read)
% cat /sys/kernel/debug/regmap/sunxi-rsb-3a3/registers
00: 33
01: 33
02: 33
03: 33
04: 33
05: 33
06: 33
07: 33
08: 33
09: 33
0a: 33
0b: 33
0c: 33
0d: 33
0e: 33
[snip]
Fix this by masking the result of the read with the correct mask
based on the size of the read. There are no 16-bit users in the
mainline kernel, so this doesn't need to get into the stable tree.
Signed-off-by: Ondrej Jirman <megous@megous.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/bus/sunxi-rsb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/bus/sunxi-rsb.c b/drivers/bus/sunxi-rsb.c
index be79d6c6a4e45..1bb00a959c67f 100644
--- a/drivers/bus/sunxi-rsb.c
+++ b/drivers/bus/sunxi-rsb.c
@@ -345,7 +345,7 @@ static int sunxi_rsb_read(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr,
if (ret)
goto unlock;
- *buf = readl(rsb->regs + RSB_DATA);
+ *buf = readl(rsb->regs + RSB_DATA) & GENMASK(len * 8 - 1, 0);
unlock:
mutex_unlock(&rsb->lock);
--
2.20.1
next prev parent reply other threads:[~2020-04-07 0:07 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-07 0:01 [PATCH AUTOSEL 5.4 01/32] ARM: dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high voltage Sasha Levin
2020-04-07 0:01 ` Sasha Levin [this message]
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 03/32] ARM: dts: Fix dm814x Ethernet by changing to use rgmii-id mode Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 04/32] bpf: Fix deadlock with rq_lock in bpf_send_signal() Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 05/32] net/mlx5e: kTLS, Fix wrong value in record tracker enum Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 06/32] iwlwifi: consider HE capability when setting LDPC Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 07/32] iwlwifi: yoyo: don't add TLV offset when reading FIFOs Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 08/32] iwlwifi: dbg: don't abort if sending DBGC_SUSPEND_RESUME fails Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 09/32] iwlwifi: mvm: Fix rate scale NSS configuration Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 10/32] Input: tm2-touchkey - add support for Coreriver TC360 variant Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 11/32] soc: fsl: dpio: register dpio irq handlers after dpio create Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 12/32] rxrpc: Abstract out the calculation of whether there's Tx space Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 13/32] rxrpc: Fix call interruptibility handling Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 14/32] rxrpc: Fix sendmsg(MSG_WAITALL) handling Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 15/32] net: stmmac: platform: Fix misleading interrupt error msg Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 16/32] net: vxge: fix wrong __VA_ARGS__ usage Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 17/32] hinic: fix a bug of waitting for IO stopped Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 18/32] hinic: fix the bug of clearing event queue Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 19/32] hinic: fix out-of-order excution in arm cpu Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 20/32] hinic: fix wrong para of wait_for_completion_timeout Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 21/32] hinic: fix wrong value of MIN_SKB_LEN Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 22/32] selftests/net: add definition for SOL_DCCP to fix compilation errors for old libc Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 23/32] IB/hfi1: Ensure pq is not left on waitlist Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 24/32] netfilter: nf_tables: Allow set back-ends to report partial overlaps on insertion Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 25/32] netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start() Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 26/32] netfilter: nft_set_rbtree: Detect partial overlaps on insertion Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 27/32] cxgb4/ptp: pass the sign of offset delta in FW CMD Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 28/32] drm/scheduler: fix rare NULL ptr race Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 29/32] cfg80211: Do not warn on same channel at the end of CSA Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 30/32] qlcnic: Fix bad kzalloc null test Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 31/32] i2c: st: fix missing struct parameter description Sasha Levin
2020-04-07 0:01 ` [PATCH AUTOSEL 5.4 32/32] i2c: pca-platform: Use platform_irq_get_optional Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200407000151.16768-2-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime@cerno.tech \
--cc=megous@megous.com \
--cc=stable@vger.kernel.org \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox