On 07/01/2014 05:02 PM, One Thousand Gnomes wrote: > On Sat, 28 Jun 2014 15:15:56 -0500 > Alex Elder <elder@xxxxxxxxxx> wrote: > >> 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. > > Which assumes an arbitrarily configurable clock, whereas you want to find > the correct clock and multiplier combination for the baud rate. > > Most of these ports are wired to fixed clocks (which is fine) or clocks > with limited numbers of supported frequencies (which is not). Yes, I acknowledged that in my earlier response. But over the weekend I decided to abandon hope that I'd be able to verify there are no problems for affected machines, and re-formulated my patch. https://lkml.org/lkml/2014/7/1/323 > Your patch is an improvement but doesn't really fix the overall problem. > If we have enough devices with variable clocks for it to be useful then > fine - but can we merge it with a big FIXME note so that whoever comes > along wondering why their clock doesn't work or behaves very oddly can > figure it out and fix that case ? What I've done now is define a dw8250_adjustable_clk() predicate that indicates the UART baud can be adjusted by changing the clock rate. Anyone who wants to activate this functionality can just modify that function to recognize their device. -Alex > Alan > -- 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