diff mbox series

[1/2] i2c: hisi: Optimized the value setting of maxwrite limit to fifo depth - 1

Message ID 20240123080222.1512009-2-liudingyuan@huawei.com
State Superseded
Headers show
Series [1/2] i2c: hisi: Optimized the value setting of maxwrite limit to fifo depth - 1 | expand

Commit Message

Devyn Liu Jan. 23, 2024, 8:02 a.m. UTC
The driver finishs a write cycle by read the fifo tx full status
or write limit decrease to 0. The driver starts to write data to
the FIFO after the I2C FIFO almost empty interrupt is reported.
The threshold for FIFO empty interrupt is that the amount of data in
the FIFO is less than or equal to 1.
Reduce write maxwrite to the fifo depth - 1. Limiting the number of
data to be written at a time to remaining fifo capacity.

Signed-off-by: Devyn Liu <liudingyuan@huawei.com>
---
 drivers/i2c/busses/i2c-hisi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Yicong Yang Feb. 1, 2024, 2:06 a.m. UTC | #1
On 2024/1/23 16:02, Devyn Liu wrote:
> The driver finishs a write cycle by read the fifo tx full status
> or write limit decrease to 0. The driver starts to write data to
> the FIFO after the I2C FIFO almost empty interrupt is reported.
> The threshold for FIFO empty interrupt is that the amount of data in
> the FIFO is less than or equal to 1.
> Reduce write maxwrite to the fifo depth - 1. Limiting the number of
> data to be written at a time to remaining fifo capacity.
> 
> Signed-off-by: Devyn Liu <liudingyuan@huawei.com>

Looks good to me. Just one nit below. so,

Reviewed-by: Yicong Yang <yangyicong@hisilicon.com>

> ---
>  drivers/i2c/busses/i2c-hisi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/i2c-hisi.c b/drivers/i2c/busses/i2c-hisi.c
> index dfad5bad5075..82a0c739aae4 100644
> --- a/drivers/i2c/busses/i2c-hisi.c
> +++ b/drivers/i2c/busses/i2c-hisi.c
> @@ -266,7 +266,7 @@ static int hisi_i2c_read_rx_fifo(struct hisi_i2c_controller *ctlr)
>  
>  static void hisi_i2c_xfer_msg(struct hisi_i2c_controller *ctlr)
>  {
> -	int max_write = HISI_I2C_TX_FIFO_DEPTH;
> +	int max_write = HISI_I2C_TX_FIFO_DEPTH - 1;

Would it be more readable to use HISI_I2C_TX_F_AE_THRESH instead of '1'?

>  	bool need_restart = false, last_msg;
>  	struct i2c_msg *cur_msg;
>  	u32 cmd, fifo_state;
>
diff mbox series

Patch

diff --git a/drivers/i2c/busses/i2c-hisi.c b/drivers/i2c/busses/i2c-hisi.c
index dfad5bad5075..82a0c739aae4 100644
--- a/drivers/i2c/busses/i2c-hisi.c
+++ b/drivers/i2c/busses/i2c-hisi.c
@@ -266,7 +266,7 @@  static int hisi_i2c_read_rx_fifo(struct hisi_i2c_controller *ctlr)
 
 static void hisi_i2c_xfer_msg(struct hisi_i2c_controller *ctlr)
 {
-	int max_write = HISI_I2C_TX_FIFO_DEPTH;
+	int max_write = HISI_I2C_TX_FIFO_DEPTH - 1;
 	bool need_restart = false, last_msg;
 	struct i2c_msg *cur_msg;
 	u32 cmd, fifo_state;