Re: [PATCH] usb: typec: anx7411: use devm_pm_runtime_enable()
From: Heikki Krogerus
Date: Fri Jul 03 2026 - 09:38:42 EST
On Wed, Jul 01, 2026 at 08:40:06PM +0900, Myeonghun Pak wrote:
> anx7411_i2c_probe() enables runtime PM before returning successfully, but
> anx7411_i2c_remove() tears down the Type-C partner state, workqueue, dummy
> I2C device, mux, switch and port without disabling runtime PM.
>
> Use devm_pm_runtime_enable() so runtime PM is disabled automatically on
> driver detach. Since devres action registration can fail, route that
> failure through the existing probe unwind path.
>
> This issue was identified during our ongoing static-analysis research while
> reviewing kernel code.
>
> Fixes: fe6d8a9c8e64 ("usb: typec: anx7411: Add Analogix PD ANX7411 support")
> Cc: stable@xxxxxxxxxxxxxxx
> Co-developed-by: Ijae Kim <ae878000@xxxxxxxxx>
> Signed-off-by: Ijae Kim <ae878000@xxxxxxxxx>
> Signed-off-by: Myeonghun Pak <mhun512@xxxxxxxxx>
Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>
> ---
> drivers/usb/typec/anx7411.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/typec/anx7411.c b/drivers/usb/typec/anx7411.c
> index 604868ebf422..41df115912b9 100644
> --- a/drivers/usb/typec/anx7411.c
> +++ b/drivers/usb/typec/anx7411.c
> @@ -1537,7 +1537,9 @@ static int anx7411_i2c_probe(struct i2c_client *client)
> if (anx7411_typec_check_connection(plat))
> dev_err(dev, "check status\n");
>
> - pm_runtime_enable(dev);
> + ret = devm_pm_runtime_enable(dev);
> + if (ret)
> + goto free_wq;
>
> return 0;
>
> --
> 2.47.1
--
heikki