mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 16:01:44 -04:00
i3c: mipi-i3c-hci: Reset RING_OPERATION1 fields during init
The MIPI I3C HCI specification does not define reset values for RING_OPERATION1 fields, and some controllers (e.g., Intel) do not clear them during a software reset. Ensure the ring pointers are explicitly set to zero during bus initialization to avoid inconsistent state. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://patch.msgid.link/20260113072702.16268-2-adrian.hunter@intel.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
committed by
Alexandre Belloni
parent
3502cea99c
commit
78f63ae4a8
@@ -340,6 +340,14 @@ static int hci_dma_init(struct i3c_hci *hci)
|
||||
rh_reg_write(INTR_SIGNAL_ENABLE, regval);
|
||||
|
||||
ring_ready:
|
||||
/*
|
||||
* The MIPI I3C HCI specification does not document reset values for
|
||||
* RING_OPERATION1 fields and some controllers (e.g. Intel controllers)
|
||||
* do not reset the values, so ensure the ring pointers are set to zero
|
||||
* here.
|
||||
*/
|
||||
rh_reg_write(RING_OPERATION1, 0);
|
||||
|
||||
rh_reg_write(RING_CONTROL, RING_CTRL_ENABLE |
|
||||
RING_CTRL_RUN_STOP);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user