RE: [PATCH] serial: 8250_pci: Auto CTS control by HW if AFE enabled

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

 



On Wed, 2015-07-22 at 23:47 +0800, qipeng.zha wrote:
> From: "qipeng.zha" <qipeng.zha@xxxxxxxxx>
> 
> According to DesignWare 8250 spec, if auto flow control mode is 
> enabled, a change in CTS does not cause an interrupt, so sw-assisted 
> CTS flow control mode will not work properly.
> 
> There reported an GPS firmware download failure issue, and we verified 
> the root cause is, the default sw-assisted CTS flow control mode can 
> not work properly since no interrupt when got CTS signal.
> 
> This patch is to enable auto CTS mode by defaut if CRTSCTS is enable 
> for DesignWare 8250 controller.

>Have you checked this for ACPI enumerated UART? In that case 8250_dw.c is used and it doesn't have this as well.
Yes, confirmed same issue with 8250_dw.c and update in following patch.

>I also would like to hear Heikki about this.


> 
> Signed-off-by: Huiquan Zhong <huiquan.zhong@xxxxxxxxx>
> Signed-off-by: qipeng.zha <qipeng.zha@xxxxxxxxx>
> ---
>  drivers/tty/serial/8250/8250_pci.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/tty/serial/8250/8250_pci.c
> b/drivers/tty/serial/8250/8250_pci.c
> index 892eb32..5aeabe4 100644
> --- a/drivers/tty/serial/8250/8250_pci.c
> +++ b/drivers/tty/serial/8250/8250_pci.c
> @@ -1438,6 +1438,10 @@ byt_set_termios(struct uart_port *p, struct 
> ktermios *termios,
>  	reg |= BYT_PRV_CLK_EN | BYT_PRV_CLK_UPDATE;
>  	writel(reg, p->membase + BYT_PRV_CLK);
>  
> +	p->status &= ~UPSTAT_AUTOCTS;
> +	if (termios->c_cflag & CRTSCTS)
> +		p->status |= UPSTAT_AUTOCTS;
> +
>  	serial8250_do_set_termios(p, termios, old);  }
>  

--
Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> Intel Finland Oy
��.n��������+%������w��{.n�����{��ǫ����{ay�ʇڙ���f���h������_�(�階�ݢj"��������G����?���&��




[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