diff options
author | Shawn Guo <shawn.guo@freescale.com> | 2014-04-14 06:02:26 +0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-04-19 12:50:57 +0400 |
commit | 1c2366298b105824e68e790bff1106e2d4ee2a30 (patch) | |
tree | c354c74402f59cf4feb7b7d4ab7cde1cb26b66d6 /drivers/staging | |
parent | c509bdc20dd255842d4e9302aad12baa7d166911 (diff) | |
download | linux-1c2366298b105824e68e790bff1106e2d4ee2a30.tar.xz |
imx-drm: imx-drm-core: skip components whose parent device is disabled
In a board setup which disables LDB device node completely by changing
status to 'disabled', and only enables HDMI device, we're running into
the problem that imx-drm master never succeeds in binding, and hence
HDMI does not come up either.
&ldb {
status = "disabled";
lvds-channel@1 {
...
status = "okay";
};
};
The imx-drm-core should really skip the LVDS channels no matter what
lvds-channel's status is, if LDB device is disabled. Let's consider
such setup a misconfiguration, give a warning in there and not add the
component.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/imx-drm/imx-drm-core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c index bc7f8bd227c7..c270c9ae6d27 100644 --- a/drivers/staging/imx-drm/imx-drm-core.c +++ b/drivers/staging/imx-drm/imx-drm-core.c @@ -675,6 +675,11 @@ static int imx_drm_platform_probe(struct platform_device *pdev) if (!remote || !of_device_is_available(remote)) { of_node_put(remote); continue; + } else if (!of_device_is_available(remote->parent)) { + dev_warn(&pdev->dev, "parent device of %s is not available\n", + remote->full_name); + of_node_put(remote); + continue; } ret = imx_drm_add_component(&pdev->dev, remote); |