mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-11 03:22:25 +08:00
714199ec34
Add i2c-pxa updates queued for v5.8, which add bus recovery to this driver; this is needed for the uDPU platform. Signed-off-by: Russell King <linux@armlinux.org.uk>
65 lines
2.0 KiB
Diff
65 lines
2.0 KiB
Diff
From: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Bcc: linux@mail.armlinux.org.uk
|
|
Cc: linux-i2c@vger.kernel.org
|
|
Subject: [PATCH 01/17] i2c: pxa: use official address byte helper
|
|
MIME-Version: 1.0
|
|
Content-Disposition: inline
|
|
Content-Transfer-Encoding: 8bit
|
|
Content-Type: text/plain; charset="utf-8"
|
|
|
|
i2c-pxa was created before i2c_8bit_addr_from_msg() was implemented,
|
|
and used its own i2c_pxa_addr_byte() which is functionally the same.
|
|
Sadly, it was never updated to use this new helper. Switch it over.
|
|
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
---
|
|
drivers/i2c/busses/i2c-pxa.c | 21 +++++++--------------
|
|
1 file changed, 7 insertions(+), 14 deletions(-)
|
|
|
|
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
|
|
index 2c3c3d6935c0..966000923e8e 100644
|
|
--- a/drivers/i2c/busses/i2c-pxa.c
|
|
+++ b/drivers/i2c/busses/i2c-pxa.c
|
|
@@ -675,16 +675,6 @@ static void i2c_pxa_slave_stop(struct pxa_i2c *i2c)
|
|
* PXA I2C Master mode
|
|
*/
|
|
|
|
-static inline unsigned int i2c_pxa_addr_byte(struct i2c_msg *msg)
|
|
-{
|
|
- unsigned int addr = (msg->addr & 0x7f) << 1;
|
|
-
|
|
- if (msg->flags & I2C_M_RD)
|
|
- addr |= 1;
|
|
-
|
|
- return addr;
|
|
-}
|
|
-
|
|
static inline void i2c_pxa_start_message(struct pxa_i2c *i2c)
|
|
{
|
|
u32 icr;
|
|
@@ -693,8 +683,8 @@ static inline void i2c_pxa_start_message(struct pxa_i2c *i2c)
|
|
/*
|
|
* Step 1: target slave address into IDBR
|
|
*/
|
|
- writel(i2c_pxa_addr_byte(i2c->msg), _IDBR(i2c));
|
|
- i2c->req_slave_addr = i2c_pxa_addr_byte(i2c->msg);
|
|
+ i2c->req_slave_addr = i2c_8bit_addr_from_msg(i2c->msg);
|
|
+ writel(i2c->req_slave_addr, _IDBR(i2c));
|
|
|
|
/*
|
|
* Step 2: initiate the write.
|
|
@@ -1006,8 +999,8 @@ static void i2c_pxa_irq_txempty(struct pxa_i2c *i2c, u32 isr)
|
|
/*
|
|
* Write the next address.
|
|
*/
|
|
- writel(i2c_pxa_addr_byte(i2c->msg), _IDBR(i2c));
|
|
- i2c->req_slave_addr = i2c_pxa_addr_byte(i2c->msg);
|
|
+ i2c->req_slave_addr = i2c_8bit_addr_from_msg(i2c->msg);
|
|
+ writel(i2c->req_slave_addr, _IDBR(i2c));
|
|
|
|
/*
|
|
* And trigger a repeated start, and send the byte.
|
|
--
|
|
2.20.1
|
|
|