[PATCH] seria: sirf: only use lookup table to set baudrate when ioclk=150MHz

Sergei Shtylyov sshtylyov at mvista.com
Tue Dec 25 13:53:32 EST 2012


Hello.

On 12/25/2012 01:26 PM, Barry Song wrote:

> From: Barry Song <Baohua.Song at csr.com>

> The fast lookup table to set baudrate is only right when ioclk
> is 150MHz. for most platforms, ioclk is 150MHz, but some boards
> might set ioclk to other frequency.

> so re-calc the clk_div_reg when ioclk is not 150MHz.

> Signed-off-by: Barry Song <Baohua.Song at csr.com>
> ---
>  drivers/tty/serial/sirfsoc_uart.c |   18 +++++++++++++-----
>  1 files changed, 13 insertions(+), 5 deletions(-)

> diff --git a/drivers/tty/serial/sirfsoc_uart.c b/drivers/tty/serial/sirfsoc_uart.c
> index 142217c..fe28b1f 100644
> --- a/drivers/tty/serial/sirfsoc_uart.c
> +++ b/drivers/tty/serial/sirfsoc_uart.c
> @@ -375,7 +375,12 @@ static void sirfsoc_uart_set_termios(struct uart_port *port,
>  	int		threshold_div;
>  	int		temp;
>  
> -	ioclk_rate = 150000000;
> +	struct clk *clk = clk_get_sys("io", NULL);

   Please keep the coding style and insert emoty line here; you can also remove
preceding empty line (not to break the declaration block).

> +	BUG_ON(IS_ERR(clk));
> +
> +	ioclk_rate = clk_get_rate(clk);
> +	clk_put(clk);
> +
>  	switch (termios->c_cflag & CSIZE) {
>  	default:
>  	case CS8:

WBR, Sergei




More information about the linux-arm-kernel mailing list