Re: [PATCH V3] tty/serial: add support for Xilinx PS UART

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



O
> +	if (percent_err >= 3)
> +		dev_err(port->dev, "Error too large, baud rate not set\n");

So in this cause baud isn't the one the user asked. Also the user can
make it spew errors by continually generating wrong rates.

If the error is large go for the nearest you can and return it. The core
tty code will do all the rest including reporting to the user they didn't
get their wishes.

> +	else {
> +		/* Set the values for the new baud rate */
> +		xuartps_writel(brgr_val, XUARTPS_BAUDGEN_OFFSET);
> +		xuartps_writel(brdiv_val, XUARTPS_BAUDDIV_OFFSET);

and in this it may not be exact.

I suspect this routine needs to return the actual baud rate (or maybe
baudrate/error code)


> +	/* Min baud rate = 6bps and Max Baud Rate is 10Mbps for 100Mhz clk */
> +	baud = uart_get_baud_rate(port, termios, old, 0, 10000000);
> +	xuartps_set_baud_rate(port, baud);
> +	if (tty_termios_baud_rate(termios))
> +		tty_termios_encode_baud_rate(termios, baud, baud);

and this should do something like

	baud = xuartps_set_baud_rate(port baud);

> +
> +	/*
> +	 * Update the per-port timeout.
> +	 */
> +	uart_update_timeout(port, termios->c_cflag, baud);

[which would also fix this timeout!]

Otherwise looks ready to merge
--
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


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux