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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to