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@xxxxxxxxxx> Looks good to me. Just one nit below. so, Reviewed-by: Yicong Yang <yangyicong@xxxxxxxxxxxxx> > --- > 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; >