Messages in this thread | | | Date | Thu, 23 Jun 2011 08:12:35 +0800 | From | Shawn Guo <> | Subject | Re: [PATCH 1/3] serial/imx: add device tree support |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |