diff options
Diffstat (limited to 'target/linux/realtek/files-5.15/drivers/i2c/busses')
-rw-r--r-- | target/linux/realtek/files-5.15/drivers/i2c/busses/i2c-rtl9300.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/target/linux/realtek/files-5.15/drivers/i2c/busses/i2c-rtl9300.c b/target/linux/realtek/files-5.15/drivers/i2c/busses/i2c-rtl9300.c index 9afd2f823e..54d916d17a 100644 --- a/target/linux/realtek/files-5.15/drivers/i2c/busses/i2c-rtl9300.c +++ b/target/linux/realtek/files-5.15/drivers/i2c/busses/i2c-rtl9300.c @@ -123,13 +123,12 @@ static int rtl9310_i2c_config_xfer(struct rtl9300_i2c *i2c, u16 addr, u16 len) static int i2c_read(void __iomem *r0, u8 *buf, int len) { - int i; - u32 v; - if (len > 16) return -EIO; - for (i = 0; i < len; i++) { + for (int i = 0; i < len; i++) { + u32 v; + if (i % 4 == 0) v = readl(r0 + i); buf[i] = v; @@ -141,13 +140,12 @@ static int i2c_read(void __iomem *r0, u8 *buf, int len) static int i2c_write(void __iomem *r0, u8 *buf, int len) { - u32 v; - int i; - if (len > 16) return -EIO; - for (i = 0; i < len; i++) { + for (int i = 0; i < len; i++) { + u32 v; + if (! (i % 4)) v = 0; v <<= 8; |