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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox