mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
i2c: npcm: Correct register access width
[ Upstream commitea9f8426d1
] The SMBnCTL3 register is 8-bit wide and the 32-bit access was always incorrect, but simply didn't cause a visible error on the 32-bit machine. On the 64-bit machine, the kernel message reports that ESR value is 0x96000021. Checking Arm Architecture Reference Manual Armv8 suggests that it's the alignment fault. SMBnCTL3's address is 0xE. Fixes:56a1485b10
("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver") Signed-off-by: Tyrone Ting <kfting@nuvoton.com> Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Signed-off-by: Wolfram Sang <wsa@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
3371b37c93
commit
14a945738a
1 changed files with 2 additions and 2 deletions
|
@ -359,14 +359,14 @@ static int npcm_i2c_get_SCL(struct i2c_adapter *_adap)
|
|||
{
|
||||
struct npcm_i2c *bus = container_of(_adap, struct npcm_i2c, adap);
|
||||
|
||||
return !!(I2CCTL3_SCL_LVL & ioread32(bus->reg + NPCM_I2CCTL3));
|
||||
return !!(I2CCTL3_SCL_LVL & ioread8(bus->reg + NPCM_I2CCTL3));
|
||||
}
|
||||
|
||||
static int npcm_i2c_get_SDA(struct i2c_adapter *_adap)
|
||||
{
|
||||
struct npcm_i2c *bus = container_of(_adap, struct npcm_i2c, adap);
|
||||
|
||||
return !!(I2CCTL3_SDA_LVL & ioread32(bus->reg + NPCM_I2CCTL3));
|
||||
return !!(I2CCTL3_SDA_LVL & ioread8(bus->reg + NPCM_I2CCTL3));
|
||||
}
|
||||
|
||||
static inline u16 npcm_i2c_get_index(struct npcm_i2c *bus)
|
||||
|
|
Loading…
Reference in a new issue