Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:

Pre-existing issues:
- [High] Unbalanced Lifecycle Operations: `drm_dp_aux_register` is called 
during bridge attach, but unregistered during driver remove.
--

--- Patch [2]: [PATCH v6 02/13] drm/bridge: it6505: balance and disable runtime 
PM on remove ---
commit ff66d772f6681026b2d4511d26d9b73d925d8240
Author: Daniel Golle <[email protected]>

drm/bridge: it6505: balance and disable runtime PM on remove

This commit disables runtime PM in the remove function and drops the
usage reference held for a connected display, fixing an unbalanced
runtime PM warning that occurs upon rebinding the driver.

> diff --git a/drivers/gpu/drm/bridge/ite-it6505.c 
> b/drivers/gpu/drm/bridge/ite-it6505.c
> --- a/drivers/gpu/drm/bridge/ite-it6505.c
> +++ b/drivers/gpu/drm/bridge/ite-it6505.c
> @@ -3662,6 +3662,9 @@ static void it6505_i2c_remove(struct i2c_client *client)

[Severity: High]
This isn't a bug introduced by this patch, but does this driver have an
unbalanced lifecycle for the AUX channel adapter?

Registration happens during bridge attach:

it6505_bridge_attach() {
        ...
        ret = drm_dp_aux_register(&it6505->aux);
        ...
}

However, the unregistration happens just above this diff context in
it6505_i2c_remove() rather than in it6505_bridge_detach():

it6505_i2c_remove() {
        ...
        drm_dp_aux_unregister(&it6505->aux);
        ...
}

If the DRM driver or device undergoes an unbind and rebind cycle, the
detach and attach callbacks will execute without the underlying I2C driver
being removed.

Could this lead to drm_dp_aux_register() being called a second time
without a prior unregister, causing it to fail with -EEXIST since the
adapter is already registered?

>       cancel_work_sync(&it6505->hdcp_wait_ksv_list);
>       cancel_delayed_work_sync(&it6505->hdcp_work);
>       cancel_work_sync(&it6505->extcon_wq);
> +     if (it6505->extcon_state)
> +             pm_runtime_put_sync(&client->dev);
> +     pm_runtime_disable(&client->dev);
>       it6505_poweroff(it6505);
>       it6505_remove_edid(it6505);
>  }

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=2

Reply via email to