Message ID | 20200121224828.4070067-1-heiko@sntech.de (mailing list archive) |
---|---|
State | Mainlined |
Commit | 7cd7943dc55e0f75a8e51af2bbdb2b0415cc3eb7 |
Headers | show |
Series | drm/rockchip: rgb: don't count non-existent devices when determining subdrivers | expand |
Hi Heiko, Heiko Stuebner <heiko@sntech.de> wrote on Tue, 21 Jan 2020 23:48:28 +0100: > From: Heiko Stuebner <heiko.stuebner@theobroma-systems.com> > > 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@theobroma-systems.com> > --- > 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@bootlin.com> Thanks, Miquèl
Am Dienstag, 21. Januar 2020, 23:48:28 CET schrieb Heiko Stuebner: > From: Heiko Stuebner <heiko.stuebner@theobroma-systems.com> > > 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@theobroma-systems.com> applied to drm-misc-next
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++;