On Mon, Oct 5, 2020 at 10:19 PM Maxime Ripard <maxime@xxxxxxxxxx> wrote: > > 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? I guess that works. :) Since the LCD and LVDS outputs use the same pins, it's not like we really would have multiple output ports. ChenYu