Re: [PATCH] serial: 8250_dw: support high baudrates if possible
From: Alex Elder
Date: Sat Jun 28 2014 - 16:15:56 EST
On 06/28/2014 10:36 AM, One Thousand Gnomes wrote:
> On Fri, 27 Jun 2014 12:25:20 -0500
>> + rate = 16 * max(115200U, (unsigned int)baud);
>> +
>
> This assumes an arbitarily configurable clock, which is not I think the
> usual case.
If the clock's rate can't change, this will return an error,
and the recorded rate (p->uartclk) will not be changed.
This should only matter when attempting to set a baud rate higher
than 115200. It *is* possible that some particular high rate
will realize a better signal rate than whatever results from
requesting 16 times the baud (or even 16 * 115200).
I could make this work *only* for my particular part(s) by
relying on a different device tree compatible string and
setting a flag. It would be nice if other implementations
could benefit from this though.
-Alex
>> + /*
>> + * Request a different clock rate if necessary, and
>> + * record it if successful.
>> + */
>> + if (rate != p->uartclk) {
>> + BUG_ON(!data->clk);
>> + if (!clk_set_rate(data->clk, (unsigned long)rate))
>> + p->uartclk = rate;
>> + }
>
>
--
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/