Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

i3c: master: dw-i3c: Balance PM runtime usage count on probe failure

When DW_I3C_DISABLE_RUNTIME_PM_QUIRK is set, the probe function calls
pm_runtime_get_noresume() to prevent runtime suspend. However, if
i3c_master_register() fails, the error path does not balance this
call, leaving the usage count incremented.

Add pm_runtime_put_noidle() in the error cleanup path to properly
balance the usage count.

Fixes: fba0e56ee752 ("i3c: dw: Disable runtime PM on Agilex5 to avoid bus hang on IBI")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260321-dw-i3c-1-v1-1-821623aac7bb@gmail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

authored by

Felix Gu and committed by
Alexandre Belloni
19d6dd32 bef1eef6

+2
+2
drivers/i3c/master/dw-i3c-master.c
··· 1667 1667 return 0; 1668 1668 1669 1669 err_disable_pm: 1670 + if (master->quirks & DW_I3C_DISABLE_RUNTIME_PM_QUIRK) 1671 + pm_runtime_put_noidle(&pdev->dev); 1670 1672 pm_runtime_disable(&pdev->dev); 1671 1673 pm_runtime_set_suspended(&pdev->dev); 1672 1674 pm_runtime_dont_use_autosuspend(&pdev->dev);