aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2018-09-23 08:05:10 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2019-03-18 05:42:14 -0400
commit4e17763c321f085e40e1fabef9677628d0fb84fe (patch)
treec2f1184f0c3eb4efd3fb6630003d126087ebc6b7 /drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
parent30b71761957c541cd9dfd6cd10e3feb21a8ddca1 (diff)
drm/omap: Whitelist DT nodes to fixup with omapdss, prefix
The omapdss driver patches DT at runtime to prepend an "omapdss," prefix to the compatible string of all encoders, panels and connectors. This mechanism ensures they get bound to the omapdss-specific drivers instead of generic drivers. Now that we have drm_bridge support in omapdrm, we need to selectively disable this mechanism. Add a whitelist of compatible strings to patch, and fill it with all the devices we support. They will be removed one by one once corresponding drm_bridge drivers become available and get successfully tested with omapdrm. The omapdss components load check code is updated accordingly to ignore devices managed by external bridge drivers. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
index 3bfb95d230e0..309b7b453e98 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
@@ -184,6 +184,25 @@ static const struct of_device_id omapdss_of_match[] __initconst = {
184 {}, 184 {},
185}; 185};
186 186
187static const struct of_device_id omapdss_of_fixups_whitelist[] __initconst = {
188 { .compatible = "composite-video-connector" },
189 { .compatible = "dvi-connector" },
190 { .compatible = "hdmi-connector" },
191 { .compatible = "lgphilips,lb035q02" },
192 { .compatible = "nec,nl8048hl11" },
193 { .compatible = "panel-dpi" },
194 { .compatible = "panel-dsi-cm" },
195 { .compatible = "sharp,ls037v7dw01" },
196 { .compatible = "sony,acx565akm" },
197 { .compatible = "svideo-connector" },
198 { .compatible = "ti,opa362" },
199 { .compatible = "ti,tfp410" },
200 { .compatible = "ti,tpd12s015" },
201 { .compatible = "toppoly,td028ttec1" },
202 { .compatible = "tpo,td028ttec1" },
203 { .compatible = "tpo,td043mtea1" },
204};
205
187static int __init omapdss_boot_init(void) 206static int __init omapdss_boot_init(void)
188{ 207{
189 struct device_node *dss, *child; 208 struct device_node *dss, *child;
@@ -210,7 +229,7 @@ static int __init omapdss_boot_init(void)
210 n = list_first_entry(&dss_conv_list, struct dss_conv_node, 229 n = list_first_entry(&dss_conv_list, struct dss_conv_node,
211 list); 230 list);
212 231
213 if (!n->root) 232 if (of_match_node(omapdss_of_fixups_whitelist, n->node))
214 omapdss_omapify_node(n->node); 233 omapdss_omapify_node(n->node);
215 234
216 list_del(&n->list); 235 list_del(&n->list);