|
@@ -1178,13 +1178,19 @@ static const struct component_ops sun4i_tcon_ops = {
|
|
|
static int sun4i_tcon_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct device_node *node = pdev->dev.of_node;
|
|
|
+ const struct sun4i_tcon_quirks *quirks;
|
|
|
struct drm_bridge *bridge;
|
|
|
struct drm_panel *panel;
|
|
|
int ret;
|
|
|
|
|
|
- ret = drm_of_find_panel_or_bridge(node, 1, 0, &panel, &bridge);
|
|
|
- if (ret == -EPROBE_DEFER)
|
|
|
- return ret;
|
|
|
+ quirks = of_device_get_match_data(&pdev->dev);
|
|
|
+
|
|
|
+ /* panels and bridges are present only on TCONs with channel 0 */
|
|
|
+ if (quirks->has_channel_0) {
|
|
|
+ ret = drm_of_find_panel_or_bridge(node, 1, 0, &panel, &bridge);
|
|
|
+ if (ret == -EPROBE_DEFER)
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
|
|
|
return component_add(&pdev->dev, &sun4i_tcon_ops);
|
|
|
}
|