Re: [PATCH v2] i2c: designware: size the RX FIFO threshold to the queued transfer

From: Andi Shyti

Date: Tue Oct 20 2026 - 17:06:55 EST


Hi Navon,

please, don't forget to Cc the linux-i2c mailing list.

On Thu, Oct 08, 2026 at 03:52:31AM +0530, Navon John Lukose wrote:
> i2c_dw_xfer_msg() leaves DW_IC_RX_TL at the 0 that i2c_dw_configure_mode()
> writes, so the controller raises RX_FULL once per received byte. Program
> RX_TL from the reads already queued, capped at half the FIFO until the last
> message is queued, so there is room for the rest.
>
> On an Arrow Lake-H LPSS core with rx_fifo_depth 32, a 22-byte HID input
> report costs 2.00 interrupts instead of 21.43, and a 452-byte descriptor
> 0.14 interrupts per byte instead of 1.64. Polling the touchpad with
> HIDIOCGINPUT at 142 Hz draws 1.58 W less platform power (psys, 32 paired
> runs).
>
> Acked-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
> Assisted-by: LLM
> Signed-off-by: Navon John Lukose <navonjohnlukose@xxxxxxxxx>

pushed to i2c/i2c-2.

Thanks,
Andi