Subject: [PATCH] atmel_serial: RS485: receiving enabled when sending data

From: [email-masked] (Greg KH)
Date: Tue, 23 Aug 2011 08:39:32 -0700

On Tue, Aug 23, 2011 at 10:30:46AM +0200, Claudio Scordino wrote:
> Il 22/08/2011 23:18, Greg KH ha scritto:
> > On Mon, Aug 15, 2011 at 04:28:15PM +0200, Bernhard Roth wrote:
> >> Hello!
> >>
> >> By default the atmel_serial driver in RS485 mode disables receiving
> >> data until all data in the send buffer has been sent. This flag
> >> allows to receive data even whilst sending data. This is very useful
> >> to
> >>
> >> - check if the data has been sent correctly over the RS485 bus
> >> - assure that no collision happened
> >> - check for short circuits/termination issues on the RS485 bus
> >>
> >> Usually this functionality is realized by hardware, wether
> >> controlling the RX-Enable pin of the RS485 transceiver with RTS
> >> (driver control signal) or pulling it LOW permanently. The present
> >> atmel_serial driver makes this impossible, thus requiring following
> >> patch.
> >>
> >> Usage example:
> >>
> >>      struct serial_rs485     rs485;
> >>
> >>      memset(&rs485, 0, sizeof(rs485));
> >>      rs485.flags = SER_RS485_ENABLED | SER_RS485_RX_DURING_TX;
> >>      ioctl(fd, TIOCSRS485,&rs485);
> >>
> >>
> >>
> >>
> >> atmel_serial: RS485: receiving enabled when sending data
> >>
> >> By default the atmel_serial driver in RS485 mode disables receiving
> >> data until
> >> all data in the send buffer has been sent. This flag allows to receive data
> >> even whilst sending data.
> >>
> >> Signed-off-by: Bernhard Roth<[email-masked]>
> >> Signed-off-by: Claudio Scordino<[email-masked]>
> >> ---
> >>   drivers/tty/serial/atmel_serial.c |   17 ++++++++++-------
> >>   include/linux/serial.h            |    1 +
> >>   2 files changed, 11 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/drivers/tty/serial/atmel_serial.c
> >> b/drivers/tty/serial/atmel_serial.c
> >> index af9b781..5f6c745 100644
> >> --- a/drivers/tty/serial/atmel_serial.c
> >> +++ b/drivers/tty/serial/atmel_serial.c
> >> @@ -339,8 +339,9 @@ static void atmel_stop_tx(struct uart_port *port)
> >>       /* Disable interrupts */
> >>       UART_PUT_IDR(port, atmel_port->tx_done_mask);
> >>
> >> -    if (atmel_port->rs485.flags&  SER_RS485_ENABLED)
> >> -        atmel_start_rx(port);
> >> +    if ((atmel_port->rs485.flags&  SER_RS485_ENABLED)&&
> >> +        !(atmel_port->rs485.flags&  SER_RS485_RX_DURING_TX))
> >> +            atmel_start_rx(port);
> > 
> > Can you fix your email client to not strip patches of tabs and resend
> > this so that I can apply it?
> > 
> > thanks,
> > 
> > greg k-h
> 
> Hi Greg,
> 
>     please find below the patch with the right tabs.
> 
> Remind however that the main author of the patch is Bernhard, not me.

Then properly send the patch so that this is shown.  Please just add a:

From: foo <[email-masked]>

as the first line of the patch changelog portion and git will fix things
up correctly.  Documentation/SubmittingPatches describes this in detail.

Care to resend your updated version, with this corrected author
information, so I get it right?

thanks,

greg k-h