From: Johan Hovold <johan@kernel.org>
To: Jarkko Sonninen <kasper@iki.fi>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5] USB: serial: xr: Add TIOCGRS485 and TIOCSRS485 ioctls
Date: Thu, 20 Jul 2023 15:52:16 +0200 [thread overview]
Message-ID: <ZLk8ECsKZc-akHef@hovoldconsulting.com> (raw)
In-Reply-To: <20230708145651.1860565-1-kasper@iki.fi>
On Sat, Jul 08, 2023 at 05:56:50PM +0300, Jarkko Sonninen wrote:
> Exar devices like XR21B1411 can control an RS485 transceiver by
> automatically asserting the RTS#/RS485 pin before sending data
> and deasserting it when the last stop bit has been transmitted.
> The polarity of the RST#/RS485 signal is configurable and the
> hardware also supports half-duplex turn-around delay and
> address matching mode.
>
> Add support for enabling and disabling RS-485 mode and
> configuring the RST#/RS485 signal polarity using the TIOCGRS485
> and TIOCSRS485 ioctls. Support for half-duplex turn-around delay
> and address matching mode are left unimplemented for now.
>
> User enables RS-485 mode by setting SER_RS485_ENABLED flag in
> struct serial_rs485 flags. User should also set either
> SER_RS485_RTS_ON_SEND or SER_RS485_RTS_AFTER_SEND to select the
> behaviour of the RTS#/RS485 pin. Setting SER_RS485_RTS_AFTER_SEND
> will drive RTS#/RS485 high during transmission. As this is the
> typical application described by Exar, it is selected when
> user sets neither or both flags.
>
> Signed-off-by: Jarkko Sonninen <kasper@iki.fi>
> ---
> Changes in v3:
> - In this version only rs485.flags are stored to state.
> - There is no locking as only one bit of the flags is used.
> - ioctl returns -ENOIOCTLCMD as the actual error handling is in tty code.
> Changes in v4:
> - Store struct rs485 to data
> - Add mutex to protect data->rs485.
> - Implement SER_RS485_RTS_ON_SEND or SER_RS485_RTS_AFTER_SEND flags
> - SER_RS485_RTS_ON_SEND is the default like in serial_core.c
> Change in v5:
> - Use tty->termios_rwsem semaphore instead of own mutex
> - Set SER_RS485_RTS_AFTER_SEND as the default
> - Fix XR_GPIO_MODE_RS485_TX_H setting with SER_RS485_RTS_ON_SEND
> - Add missing __user directives
I've applied this one now but with the small change I just mentioned
that makes SER_RS485_RTS_ON_SEND determine SER_RS485_RTS_AFTER_SEND.
Since this sets SER_RS485_RTS_AFTER_SEND when neither flag is set, I
believe you get the behaviour you preferred (even if
SER_RS485_RTS_AFTER_SEND is now cleared when both flags are set).
Let me know otherwise and we'll discuss it. Here's the result:
https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/commit/?h=usb-next&id=974e2f6a0554685493cc44406bc7d8ba0a3b0e33
Thanks for sticking with. I think the end result looks really good.
Johan
prev parent reply other threads:[~2023-07-20 13:52 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-13 1:04 [PATCH] USB: serial: xr: Add TIOCGRS485 and TIOCSRS485 ioctls Jarkko Sonninen
2023-03-13 7:00 ` Greg Kroah-Hartman
2023-03-13 7:49 ` Jarkko Sonninen
2023-03-13 7:53 ` Greg Kroah-Hartman
2023-03-13 8:27 ` [PATCH v2] " Jarkko Sonninen
2023-03-13 8:45 ` Greg Kroah-Hartman
2023-03-13 9:54 ` Oliver Neukum
2023-03-13 10:47 ` Jarkko Sonninen
2023-03-13 11:27 ` Oliver Neukum
2023-03-13 23:02 ` David Laight
2023-03-14 6:19 ` kernel test robot
2023-03-13 15:07 ` [PATCH] " Jarkko Sonninen
2023-03-13 15:50 ` Greg Kroah-Hartman
2023-03-13 15:53 ` Jarkko Sonninen
2023-03-13 20:18 ` Oliver Neukum
2023-03-14 7:00 ` [PATCH v3] " Jarkko Sonninen
2023-03-14 7:37 ` Greg Kroah-Hartman
2023-03-14 8:00 ` Jarkko Sonninen
2023-04-13 8:57 ` Johan Hovold
2023-04-13 8:53 ` Johan Hovold
2023-04-16 8:40 ` Jarkko Sonninen
2023-04-17 14:50 ` Johan Hovold
2023-04-23 18:59 ` [PATCH v4] " Jarkko Sonninen
2023-04-24 5:32 ` kernel test robot
2023-06-20 12:38 ` Johan Hovold
2023-07-06 19:37 ` Jarkko Sonninen
2023-07-20 13:46 ` Johan Hovold
2023-07-08 14:56 ` [PATCH v5] " Jarkko Sonninen
2023-07-20 13:52 ` Johan Hovold [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZLk8ECsKZc-akHef@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=kasper@iki.fi \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.