Re: [PATCH] drm/rockchip: rgb: don't count non-existent devices when determining subdrivers

From: Miquel Raynal
Date: Tue Mar 10 2020 - 05:53:16 EST


Hi Heiko,

Heiko Stuebner <heiko@xxxxxxxxx> wrote on Tue, 21 Jan 2020 23:48:28
+0100:

> From: Heiko Stuebner <heiko.stuebner@xxxxxxxxxxxxxxxxxxxxx>
>
> rockchip_drm_endpoint_is_subdriver() may also return error codes.
> For example if the target-node is in the disabled state, so no
> platform-device is getting created for it.
>
> In that case current code would count that as external rgb device,
> which in turn would make probing the rockchip-drm device fail.
>
> So only count the target as rgb device if the function actually
> returns 0.
>
> Signed-off-by: Heiko Stuebner <heiko.stuebner@xxxxxxxxxxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/rockchip/rockchip_rgb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_rgb.c b/drivers/gpu/drm/rockchip/rockchip_rgb.c
> index ae730275a34f..79a7e60633e0 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_rgb.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_rgb.c
> @@ -98,7 +98,8 @@ struct rockchip_rgb *rockchip_rgb_init(struct device *dev,
> if (of_property_read_u32(endpoint, "reg", &endpoint_id))
> endpoint_id = 0;
>
> - if (rockchip_drm_endpoint_is_subdriver(endpoint) > 0)
> + /* if subdriver (> 0) or error case (< 0), ignore entry */
> + if (rockchip_drm_endpoint_is_subdriver(endpoint) != 0)
> continue;
>
> child_count++;

Reviewed-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>

Thanks,
MiquÃl