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

Grant Likely grant.likely at secretlab.ca
Wed Jun 22 23:35:19 EDT 2011


On Wed, Jun 22, 2011 at 6:12 PM, Shawn Guo <shawn.guo at freescale.com> wrote:
> 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.

My point still stands.  If there is no number specifically assigned to
a device, then numbering should be dynamic.  That's standard behaviour
for Linux device drivers, and I get nervous every time I see a driver
that make an assumption to the contrary, especially when there is no
good reason for it.  Besides, you still can ensure the console is
reliable by having an alias for the console device.

g.



More information about the linux-arm-kernel mailing list