Hi Chen-Yu, Sorry for the delay On Sat, Aug 29, 2020 at 02:43:53PM +0800, Chen-Yu Tsai wrote: > > +static int sun4i_tcon_register_panel(struct drm_device *drm, > > + struct sun4i_tcon *tcon) > > +{ > > + struct device_node *companion; > > + struct device_node *remote; > > + struct device *dev = tcon->dev; > > + bool has_lvds_alt; > > + bool has_lvds_rst; > > + int ret; > > + > > + /* > > + * If we have an LVDS panel connected to the TCON, we should > > + * just probe the LVDS connector. Otherwise, let's just register > > + * an RGB panel. > > + */ > > + remote = of_graph_get_remote_node(dev->of_node, 1, 0); > > + if (!tcon->quirks->supports_lvds || > > + !of_device_is_compatible(remote, "panel-lvds")) > > + return sun4i_rgb_init(drm, tcon); > > Slightly related: IIRC there are a few LVDS panels supported in panel-simple > so they don't use the panel-lvds compatible. Any idea how to deal with those? I agree that this is an issue, I'm not entirely sure how to fix it. The proper fix would be to have multiple output ports, one for each output type, but given how our current binding looks like I'm not sure how we could retro-fit that without some horror-looking code. Maybe we can add a property on the endpoint? Maxime