Re: [PATCH 2/2] drm/rockchip: Fix shutdown when no drm-device is set up

Nicolas Frattaroli
2025-02-26T20:30:49Z

On Friday, 21 February 2025 00:41:41 Central European Standard Time Heiko
Stuebner wrote:
> When the drm-driver probes, it mainly creates the component device, where
> all the sub-drivers (vops, hdmi, etc) hook into.
>
> This will cause the shutdown handler to get called on shutdown, even
> though the drm-device might not have been set up, or the component bind
> might have failed.
>
> So use the new component helper to check whether the drm-device is up
> and only then call the drm-atomic helper to release all the drm magic.
>
> This prevents failures when the drm-device is never set, or has been
> freed up already for example by a probe-defer during the component bind.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> ---
> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)

Reviewed-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Tested-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>

Tested on a RK3588 ROCK5B by adding a `return -EPROBE_DEFER` into the middle
of `rockchip_drm_bind` after `component_bind_all` already ran. Without the
patch, I get a stacktrace in `drm_atomic_helper_shutdown`. With the patch, I
don't get one.