[PATCH 4/4] serial/arc-uart: switch to devicetree based probing

Vineet Gupta Vineet.Gupta1 at synopsys.com
Sat Feb 9 17:45:10 EST 2013


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.

>
>> @@ -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.

>> +	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.

Thanks for reviewing.
-Vineet


More information about the devicetree-discuss mailing list