[PATCH v2 2/4] drm/sun4i: tcon: Refactor the LVDS and panel probing

Chen-Yu Tsai wens at csie.org
Mon Oct 5 14:28:58 UTC 2020


On Mon, Oct 5, 2020 at 10:19 PM Maxime Ripard <maxime at cerno.tech> 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


More information about the dri-devel mailing list