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-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html