[PATCH/RFC v3 06/19] video: display: OF support

Philipp Zabel p.zabel at pengutronix.de
Wed Aug 21 02:10:12 PDT 2013


Hi Laurent,

Am Mittwoch, den 21.08.2013, 03:02 +0200 schrieb Laurent Pinchart:
> Hi Philipp,
> 
> On Tuesday 13 August 2013 16:37:07 Philipp Zabel wrote:
> > Hi Laurent,
> > 
> > thanks for this update. I'm very happy about the move to the display entity
> > model, given that the i.MX6 IPU has both drm/display and v4l2/capture ports
> > in a single device - this will allow to use a unified device tree binding
> > scheme.
> 
> Thanks for the support :-)
> 
> > I'm still trying to see how this all fits together, so far I have only one
> > comment, below.
> > 
> > Am Freitag, den 09.08.2013, 19:14 +0200 schrieb Laurent Pinchart:
> > [...]
> > 
> > > +static int display_of_parse_dt(struct display_entity_notifier *notifier,
> > > +			       struct list_head *entities,
> > > +			       struct device_node *node)
> > > +{
> > > +	struct display_entity_of *entity;
> > > +	struct device_node *remote;
> > > +	struct device_node *ep = NULL;
> > > +	struct device_node *next;
> > > +	unsigned int num_entities = 0;
> > > +	int ret = 0;
> > > +
> > > +	/* Walk the device tree and build a list of nodes. */
> > > +	dev_dbg(notifier->dev, "parsing node %s\n", node->full_name);
> > > +
> > > +	while (1) {
> > > +		next = display_of_get_next_endpoint(node, ep);
> > > +		if (next == NULL)
> > > +			break;
> > > +
> > > +		of_node_put(ep);
> > > +		ep = next;
> > > +
> > > +		dev_dbg(notifier->dev, "handling endpoint %s\n", ep->full_name);
> > > +
> > > +		remote = display_of_get_remote_port_parent(ep);
> > > +		if (remote == NULL)
> > > +			continue;
> > > +
> > > +		/* Skip entities that we have already processed. */
> > > +		if (display_of_find_entity(entities, remote) || remote == node) {
> > > +			dev_dbg(notifier->dev,
> > > +				"entity %s already in list, skipping\n",
> > > +				remote->full_name);
> > > +			continue;
> > > +		}
> > 
> > device tree nodes with status = "disabled" should be skipped here:
> > 
> >                 if (!of_device_is_available(remote)) {
> >                         dev_dbg(notifier->dev,
> >                                 "entity %s is disabled, skipping\n",
> >                                 remote->full_name);
> >                         continue;
> >                 }
> > 
> > Otherwise the completion notification will never be delivered if there
> > are any disabled entities in the graph.
> 
> That's a good point, but if a device is disabled, why would it be in the DT 
> graph in the first place ? Do you have a use case for this ?

This is mostly about separate encoders inside the SoC, which are always
present but not useful unless the board designer connected something to
the external pads. Those might be contained in the SoC .dtsi but have
status = "disabled" set for board device tree writers' convenience.
My use case would be the LVDS encoder bridge or the Synopsys Designware
HDMI TX on i.MX6.

regards
Philipp



More information about the dri-devel mailing list