diff options
author | Shawn Guo <shawn.guo@freescale.com> | 2014-04-13 22:02:26 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-04-19 04:50:57 -0400 |
commit | 1c2366298b105824e68e790bff1106e2d4ee2a30 (patch) | |
tree | c354c74402f59cf4feb7b7d4ab7cde1cb26b66d6 | |
parent | c509bdc20dd255842d4e9302aad12baa7d166911 (diff) |
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>
-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) | |||
675 | if (!remote || !of_device_is_available(remote)) { | 675 | if (!remote || !of_device_is_available(remote)) { |
676 | of_node_put(remote); | 676 | of_node_put(remote); |
677 | continue; | 677 | continue; |
678 | } else if (!of_device_is_available(remote->parent)) { | ||
679 | dev_warn(&pdev->dev, "parent device of %s is not available\n", | ||
680 | remote->full_name); | ||
681 | of_node_put(remote); | ||
682 | continue; | ||
678 | } | 683 | } |
679 | 684 | ||
680 | ret = imx_drm_add_component(&pdev->dev, remote); | 685 | ret = imx_drm_add_component(&pdev->dev, remote); |