RE: artpec.c / serial_core.c hardware flow control problem

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

 




> -----Original Message-----
> From: linux-serial-owner@xxxxxxxxxxxxxxx [mailto:linux-serial-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Alan Cox
> Sent: den 28 juni 2012 18:24
> 
> On Thu, 28 Jun 2012 17:29:27 +0200
> Mikael Johansson <mikael.lars.johansson@xxxxxxxx> wrote:
> 
> > Greetings,
> >
> > We have a problem with drivers/serial/artpec.c (Not yet in main tree)
> > which uses hardware supported flow control (XON/XOFF). We do
> cfmakeraw()
> > and tcsetattr() from userspace to set a termios struct where (c_iflag
> &
> > IXON) is not set. The problem is that the call to tcsetattr() is not
> > propagated down to serial_artpec_set_termios(), the reason being that
> > uart_set_termios() doesn't think that IXON is a RELEVANT_IFLAG and
> > returns prematurely instead of calling uart_change_speed -->
> > ops->set_termios().
> >
> > Could this be fixed by making IXON a RELEVANT_IFLAG?:
> 
> That's actually insufficient for those cases - you can set the
> characters
> used for things as well plus IXANY and IXOFF.
> 
> It's a stupid "optimisation" and the only reason I didn't get rid of it
> before was in case it broke something else. Time for it to go.
> 
> So yeah - I'd just delete it.

Do you mean the entire if () { return; } statement or just the RELEVANT_IFLAG part?

> If you are doing hardware XON/XOFF watch c_cc[VSTART] and c_cc[VSTOP].
> Those control the symbol used for soft flow control.

We use STOP_CHAR(tty), we only have hardware support for stopping transfer,
the tty layer kicks in and enables it again.

> Alan

/Johan

--
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