[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53AF227C.3000102@linaro.org>
Date: Sat, 28 Jun 2014 15:15:56 -0500
From: Alex Elder <elder@...aro.org>
To: One Thousand Gnomes <gnomes@...rguk.ukuu.org.uk>
CC: gregkh@...uxfoundation.org, heikki.krogerus@...ux.intel.com,
david.daney@...ium.com, loic.poulain@...el.com,
linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] serial: 8250_dw: support high baudrates if possible
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists