[PATCH 0/2] Change GCE hardware timeout to software timeout

From: Jason-JH . Lin
Date: Wed Jan 10 2024 - 10:52:52 EST


From: Jason-jh Lin <jason-jh.lin@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

Since the max value of GCE hardware interrupt timeout for wait and poll
instructions is about 1760ms.
It is not enough for the use case of ISP driver below:
GCE Thread A: wait for SOF and set event 1.
GCE Thread B: wait for event 1 and set event 2.
GCE Thread C: wait for event 2 and set event 3.
GCE Thread D: wait for event 3 and set event 4.
GCE Thread E: wait for event 4 and set EOF.
If all GCE Threads start at the same time, the latest GCE Thread E will
wait for event more than 2 seconds.

Therefore, we changed the hardware timeout to software timeout, making it
longer, more certain, and making it configurable by CMDQ client drivers.

Jason-JH.Lin (2):
mailbox: mtk-cmdq: Change GCE hardware timeout to software timeout
mailbox: mtk-cmdq: Add set GCE thread timeout interface

drivers/mailbox/mtk-cmdq-mailbox.c | 183 +++++++++++++++++++++++
include/linux/mailbox/mtk-cmdq-mailbox.h | 4 +
2 files changed, 187 insertions(+)

--
2.18.0