[PATCH 4/4] serial/arc-uart: switch to devicetree based probing
Grant Likely
grant.likely at secretlab.ca
Thu Feb 14 07:47:07 EST 2013
On Sat, 9 Feb 2013 12:15:10 +0530, Vineet Gupta <Vineet.Gupta1 at synopsys.com> wrote:
> On Saturday 09 February 2013 04:31 AM, Grant Likely wrote:
> > On Fri, 11 Jan 2013 11:50:23 +0530, Vineet Gupta <Vineet.Gupta1 at synopsys.com> wrote:
> >> +- clock-frequency : the input clock frequency for the UART
> >> +- baud : baud rate for UART
> > change 'baud' to 'current-speed'. There is already precedence for this
> > with other serial devices.
>
> While I'm OK with this - I can only see of_serial.c following the rule :-)
> More importantly I'm not clear about the logistics of this fix. Obviously this has
> a bearing on DT files in arch/arc/boot/*. So are such changes (platform + driver)
> routed thru the subsystem tree or the arch tree or bits from both with
> bisectability not considered - which feels wrong. We have to also consider the
> fact that Greg has closed the tty/serial for 3.9. So while I have no objection to
> your comment, it seems that the it needs to wait till 3.9-rc1 - or is there an
> alternate way.
I would consider it a bug fix. The binding isn't what it should be and
it needs to be addressed before appearing in a released kernel. If this
patch has already been merged, then write and post a fixup patch.
> >
> >> @@ -673,8 +693,18 @@ static int __init arc_serial_probe_earlyprintk(struct platform_device *pdev)
> >> static int arc_serial_probe(struct platform_device *pdev)
> >> {
> >> int rc, dev_id;
> >> + struct device_node *np = pdev->dev.of_node;
> >> +
> >> + /* no device tree device */
> >> + if (!np)
> >> + return -ENODEV;
> > This breaks non-DT users. Is this what you intend? It creates a flag day
> > where users have to switch from non-DT to DT cold-turkey.
>
> Not supporting non-DT user was not the idea - it just simplifies the code a bit
> given that it would only even be runtime used in a ARC Linux port based platform -
> which unconditionally enables OF. Further - the ARC port itself is not yet
> upstream so there are no "official" user of this in tree driver.
> FWIW, ARC Linux port was recently reviewed on lkml/arch mailing lists and is now
> in linux-next for a possible 3.9 merge.
If there are no users, then nobody is broken. If this driver only
supports DT platforms then my comment can be ignored.
> >> + dev_id = of_alias_get_id(np, "serial");
> >> + if (dev_id < 0) {
> >> + dev_err(&pdev->dev, "failed to get alias id: %d\n", dev_id);
> >> + return dev_id;
> >> + }
> > Don't fail on this. If you can't get an id then choose one dynamically.
>
> You mean just assume 0.
No, I mean dynamically assign an ID from ids that are available. Say you
had two of these devices in a system, and neither had an alias; they
couldn't both be '0'. :-)
g.
>
> Thanks for reviewing.
> -Vineet
--
Grant Likely, B.Sc, P.Eng.
Secret Lab Technologies, Ltd.
More information about the devicetree-discuss
mailing list