[PATCH v3 3/4] i2c: imx: use readb_relaxed and writeb_relaxed
From: Stefan Eichenberger
Date: Mon Sep 02 2024 - 03:44:15 EST
From: Stefan Eichenberger <stefan.eichenberger@xxxxxxxxxxx>
Use the relaxed version of readb and writeb to reduce overhead. It is
safe to use the relaxed version because we either do not rely on dma
completion, or we use a dma callback to ensure that the dma transfer is
complete before we continue.
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@xxxxxxxxxxx>
Acked-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
---
drivers/i2c/busses/i2c-imx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index 2e86d363e186d..9917f3e1d06cf 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -313,13 +313,13 @@ static inline int is_vf610_i2c(struct imx_i2c_struct *i2c_imx)
static inline void imx_i2c_write_reg(unsigned int val,
struct imx_i2c_struct *i2c_imx, unsigned int reg)
{
- writeb(val, i2c_imx->base + (reg << i2c_imx->hwdata->regshift));
+ writeb_relaxed(val, i2c_imx->base + (reg << i2c_imx->hwdata->regshift));
}
static inline unsigned char imx_i2c_read_reg(struct imx_i2c_struct *i2c_imx,
unsigned int reg)
{
- return readb(i2c_imx->base + (reg << i2c_imx->hwdata->regshift));
+ return readb_relaxed(i2c_imx->base + (reg << i2c_imx->hwdata->regshift));
}
static void i2c_imx_clear_irq(struct imx_i2c_struct *i2c_imx, unsigned int bits)
--
2.43.0