68d9cb8214
Run tested: ath79, ipq40xx Build tested: ath79, ipq40xx Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
60 lines
1.8 KiB
Diff
60 lines
1.8 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(-)
|
|
|
|
--- a/drivers/i2c/busses/i2c-pxa.c
|
|
+++ b/drivers/i2c/busses/i2c-pxa.c
|
|
@@ -674,16 +674,6 @@ static void i2c_pxa_slave_stop(struct px
|
|
* 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;
|
|
@@ -691,8 +681,8 @@ static inline void i2c_pxa_start_message
|
|
/*
|
|
* 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.
|
|
@@ -1003,8 +993,8 @@ static void i2c_pxa_irq_txempty(struct p
|
|
/*
|
|
* 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.
|