mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-04 10:39:07 -05:00
drm/rockchip: handle non-platform devices in rockchip_drm_endpoint_is_subdriver
As discussed at [1] rockchip_drm_endpoint_is_subdriver will currently always return -ENODEV for non-platform-devices (e.g. external i2c bridges), what makes them never being considered in rockchip_rgb_init. As suggested at [1] this additionally adds a of_device_is_available for the node found, which will work for both platform and non-platform devices. Also we can return early for non-platform-devices if they are enabled, as rockchip_sub_drivers contains exclusively platform-devices. [1] https://lore.kernel.org/all/20210316182753.GA25685@earth.li/ Suggested-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Alex Bee <knaerzche@gmail.com> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patchwork.freedesktop.org/patch/msgid/20210914150756.85190-1-knaerzche@gmail.com
This commit is contained in:
@@ -272,10 +272,17 @@ int rockchip_drm_endpoint_is_subdriver(struct device_node *ep)
|
||||
return -ENODEV;
|
||||
|
||||
/* status disabled will prevent creation of platform-devices */
|
||||
if (!of_device_is_available(node)) {
|
||||
of_node_put(node);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
pdev = of_find_device_by_node(node);
|
||||
of_node_put(node);
|
||||
|
||||
/* enabled non-platform-devices can immediately return here */
|
||||
if (!pdev)
|
||||
return -ENODEV;
|
||||
return false;
|
||||
|
||||
/*
|
||||
* All rockchip subdrivers have probed at this point, so
|
||||
|
||||
Reference in New Issue
Block a user