[PATCH] atmel_serial: RS485: receiving enabled when sending data
Greg KH
greg at kroah.com
Tue Aug 23 11:39:32 EDT 2011
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<br at pwrnet.de>
> >> Signed-off-by: Claudio Scordino<claudio at evidence.eu.com>
> >> ---
> >> 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 <foo at foo.org>
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
More information about the linux-arm-kernel
mailing list