On 07/23/2015 03:48 AM, Shevchenko, Andriy wrote: > 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. > > I also would like to hear Heikki about this. I think this might be breakage in the base 8250 driver that I caused. I will look at this later tonight. Regards, Peter Hurley >> 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); >> } >> > -- 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