From: Lukas Wunner <lukas@wunner.de>
To: Su Bao Cheng <baocheng_su@163.com>
Cc: Su Bao Cheng <baocheng.su@siemens.com>,
linux-serial@vger.kernel.org, gregkh@linuxfoundation.org,
jan.kiszka@siemens.com, chao.zeng@siemens.com
Subject: Re: [PATCH] Revert "serial: 8250: Don't touch RTS modem control while in rs485 mode"
Date: Fri, 19 Nov 2021 12:12:08 +0100 [thread overview]
Message-ID: <20211119111208.GA9692@wunner.de> (raw)
In-Reply-To: <e1a9b9bf-45a4-6e71-09f4-1ae730284778@163.com>
On Fri, Nov 12, 2021 at 02:14:11PM +0800, Su Bao Cheng wrote:
> The issue is observed on omap8250 hardware (CPU: AM6548). the use case
> is RS485 half-duplex (2 wire mode), in this mode the RTS pin is used to
> control the direction and is software controller via the MCR[1]
> register. The problem is that the RS485 transmitting is OK, but the
> receiving is not working.
That means the RTS pin is always asserted and never deasserted.
I don't see how that could be related to the patch in question.
It's rather an indication that RS-485 is not enabled on the port.
> The MCR is set to 0 at this line within uart_port_startup():
> retval = uport->ops->startup(uport);
>
> On omap8250, the startup() points to omap_8250_startup(), within it:
> up->mcr = 0;
>
> For software controlled RTS pin of RS485 half-duplex, when not in the
> transmitting, the MCR[1] should be constant to indicate the current
> direction is receiving. This is set in serial8250_em485_stop_tx().
>
> So after this point of setting the MCR to 0, this up->mcr register
> mirror does not reflect the actual desired value anymore. Further
> checking against it leads to false result.
And? up->mcr is not used by the patch. It retrieves the
current value of the RTS bit from the MCR register instead
of using the cached value in up->mcr. And all it seeks to
achieve is *preserve* the current value of the RTS bit.
So I don't see why the cached value up->mcr is relevant here.
Thanks,
Lukas
next prev parent reply other threads:[~2021-11-19 11:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-27 11:16 [PATCH] Revert "serial: 8250: Don't touch RTS modem control while in rs485 mode" Su Bao Cheng
2021-10-27 11:39 ` Lukas Wunner
2021-11-12 6:14 ` Su Bao Cheng
2021-11-19 8:00 ` Jan Kiszka
2021-11-19 8:43 ` Jan Kiszka
2021-11-19 11:17 ` Lukas Wunner
2021-11-19 11:12 ` Lukas Wunner [this message]
2021-11-20 17:18 ` Lukas Wunner
2021-11-21 9:00 ` Jan Kiszka
2021-11-21 17:43 ` Lukas Wunner
2021-11-22 9:01 ` Su Bao Cheng
2021-11-22 17:11 ` Lukas Wunner
2021-12-13 16:12 ` Lukas Wunner
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=20211119111208.GA9692@wunner.de \
--to=lukas@wunner.de \
--cc=baocheng.su@siemens.com \
--cc=baocheng_su@163.com \
--cc=chao.zeng@siemens.com \
--cc=gregkh@linuxfoundation.org \
--cc=jan.kiszka@siemens.com \
--cc=linux-serial@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.