Hello Sebastian,

At 2026-08-07 01:02:10, "Sebastian Reichel" <[email protected]> 
wrote:
>If the driver uses devm_reset_control_get_exclusive_deasserted() instead
>of devm_reset_control_get() and thus automatically deasserts during
>probe, the SoC will hang when the device is unbound.
>
>This does not happen, when runtime PM is being used (not yet supported
>in mainline), which suggests the power-domain involved requires this reset
>line to be deasserted.
>
>Even with runtime PM there is no gurantee that the power-domain is
>disabled as it is shared. Considering the power-domain does not have
>the reset dependency described in DT, document the problem but leave
>things in the current state until a better solution is found as the
>reset line is deasserted by default on all supported platforms.
>
>Reported-by: Sashiko <[email protected]>
>Signed-off-by: Sebastian Reichel <[email protected]>

   Reviewed-by: Andy Yan <[email protected]>
>---
> drivers/gpu/drm/bridge/synopsys/dw-dp.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
>diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c 
>b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
>index 21d60e89126f..52e3b37259a6 100644
>--- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c
>+++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
>@@ -2090,6 +2090,10 @@ struct dw_dp *dw_dp_probe(struct platform_device *pdev, 
>const struct dw_dp_plat_
>               return ERR_CAST(dp->hdcp_clk);
>       }
> 
>+      /*
>+       * This reset line is deasserted by default; asserting it hangs the SoC 
>if the
>+       * related power-domain is still active.
>+       */
>       dp->rstc = devm_reset_control_get(dev, NULL);
>       if (IS_ERR(dp->rstc)) {
>               dev_err_probe(dev, PTR_ERR(dp->rstc), "failed to get reset 
> control\n");
>
>-- 
>2.53.0

Reply via email to