Re: [PATCH] dt: remove of_alias_get_id() reference

From: Shawn Guo
Date: Thu Aug 04 2011 - 13:13:21 EST


On Thu, Aug 04, 2011 at 01:33:37PM +0300, Felipe Balbi wrote:
> On Thu, Aug 04, 2011 at 11:30:27AM +0100, Grant Likely wrote:
> > of_alias_get_id() is broken and being reverted. Remove the reference
> > to it and replace with a single incrementing id number.
> >
> > There is no risk of regression here on the imx driver since the imx
> > change to use of_alias_get_id() is commit 22698aa2, "serial/imx: add
> > device tree probe support" which is new for v3.1, and it won't get
> > used unless CONFIG_OF is enabled and the board is booted using a
> > device tree. A single incrementing integer is sufficient for now.
> >
> > Signed-off-by: Grant Likely <grant.likely@xxxxxxxxxxxx>
> > Acked-by: Shawn Guo <shawn.guo@xxxxxxxxxx>
> > ---
> >
> > I'm about to ask Linus to pull this patch through the devicetree/merge
> > branch along with the of_alias revert.
> >
> > drivers/tty/serial/imx.c | 13 ++++---------
> > 1 files changed, 4 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> > index 827db76..7e91b3d 100644
> > --- a/drivers/tty/serial/imx.c
> > +++ b/drivers/tty/serial/imx.c
> > @@ -1286,22 +1286,17 @@ static int serial_imx_resume(struct platform_device *dev)
> > static int serial_imx_probe_dt(struct imx_port *sport,
> > struct platform_device *pdev)
> > {
> > + static int portnum = 0;
>
> would it be better to use an IDR here ?
>

This patch is a step back to avoid using of_alias_* api since it's
been reverted. But we need to fix the api to make it right later.
That said the serial will still go after the of_alias_get_id.

What we want is a fixed device id for specified serial instance,
which is defined by device tree (in turn by hardware), instead of
a random id. I'm not sure that I completely understand what IDR is
exactly for. But from the documentation in lib/idr.c, I feel it's
not what we need here. Or can you please elaborate why it fits here?

/*
* You call it to allocate an id (an int) an associate with that id a
* pointer or what ever, we treat it as a (void *). You can pass this
* id to a user for him to pass back at a later time. You then pass
* that id to this code and it returns your pointer.
*/

--
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/