Re: [PATCH 1/3] serial/imx: add device tree support

From: Shawn Guo
Date: Wed Jun 22 2011 - 20:07:27 EST


On Wed, Jun 22, 2011 at 09:52:11AM -0600, Grant Likely wrote:
[...]
>
> >> > -       line = of_get_property(node, "id", NULL);
> >> > -       if (!line)
> >> > +       line = of_get_device_index(node, "serial");
> >> > +       if (IS_ERR_VALUE(line))
> >> >                return -ENODEV;
> >>
> >> Personally, it an alias isn't present, then I'd dynamically assign a port id.
> >>
> > We probably can not.  The driver works with being told the correct
> > port id which is defined by soc.  Instead of dynamically assigning
> > a port id, we have to tell the driver the exact hardware port id of
> > the device that is being probed.
>
> Are you sure? It doesn't look like the driver behaviour uses id for
> anything other than an index into the statically allocated serial port
> instance table. I don't see any change of behaviour based on the port
> number anywhere.
>
Sorry, I did not make this clear. In serial_imx_probe(), the port
gets created and then saved as below.

imx_ports[sport->port.line] = sport;

While in imx_console_setup(), it addresses the port as following.

sport = imx_ports[co->index];

When users specify their console as ttymxc0, they mean they are
using the first i.mx uart hardware port, in turn ttymxc1 for the
second port ...

That said, imx_port[0] has to be the first hardware port, imx_port[1]
has to be the second one ... That's why port id sport->port.line
can not be dynamically assigned, otherwise console may not work.

--
Regards,
Shawn

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/