i3c: master: svc: Fix npcm845 FIFO_EMPTY quirk
authorStanley Chu <yschu@nuvoton.com>
Wed, 30 Jul 2025 00:37:19 +0000 (08:37 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 30 Jul 2025 23:36:16 +0000 (01:36 +0200)
commitbc4a09d8e79cadccdd505f47b01903a80bc666e7
treeecfce86343e82eea1f665b51e44ff89a5e68bc76
parentd028219a9f1485914492bf373406f6a0e665ace2
i3c: master: svc: Fix npcm845 FIFO_EMPTY quirk

In a private write transfer, the driver pre-fills the FIFO to work around
the FIFO_EMPTY quirk. However, if an IBIWON event occurs, the hardware
emits a NACK and the driver initiates a retry. During the retry, driver
attempts to pre-fill the FIFO again if there is remaining data, but since
the FIFO is already full, this leads to data loss.

Check available space in FIFO to prevent overflow.

Fixes: 4008a74e0f9b ("i3c: master: svc: Fix npcm845 FIFO empty issue")
Signed-off-by: Stanley Chu <yschu@nuvoton.com>
Link: https://lore.kernel.org/r/20250730003719.1825593-1-yschu@nuvoton.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master/svc-i3c-master.c