From: Daniel Thompson <daniel.thompson@linaro.org>
To: Srinivas Kandagatla <srinivas.kandagatla@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, patches@linaro.org,
linaro-kernel@lists.linaro.org,
Maxime Coquelin <maxime.coquelin@st.com>,
Patrice Chotard <patrice.chotard@st.com>,
Jiri Slaby <jslaby@suse.cz>,
kernel@stlinux.com, linux-serial@vger.kernel.org
Subject: Re: [PATCH 3.17-rc3 v2] serial: asc: Adopt readl_/writel_relaxed()
Date: Tue, 09 Sep 2014 12:15:16 +0100 [thread overview]
Message-ID: <540EE144.8030504@linaro.org> (raw)
In-Reply-To: <CALNtEFgd=Lw3AdO2cq_X66_kVdjRyu8sVKN5UX3tzKS5c6d_JA@mail.gmail.com>
On 09/09/14 12:08, Srinivas Kandagatla wrote:
> Hi Dan,
>
> After Greg's comment, Am ok with the patch and sorry for the noise.
> Good that you removed the barier() too.
Yes.
I got interested in Greg's question about which architectures don't have
readl_relaxed() and, in the process, discovered I was wrong about that
being needed anyway.
> You can have my Ack.
>
> --srini
>
> On Tue, Sep 9, 2014 at 11:03 AM, Daniel Thompson
> <daniel.thompson@linaro.org <mailto:daniel.thompson@linaro.org>> wrote:
>
> The architectures supported by this driver, arm and sh, have expensive
> implementations of writel(), reliant on spin locks and explicit L2 cache
> management. These architectures provide a cheaper writel_relaxed() which
> is much better suited to peripherals that do not perform DMA. The
> situation with readl()/readl_relaxed()is similar although less acute.
>
> This driver does not use DMA and will be more power efficient and more
> robust (due to absence of spin locks during console I/O) if it uses the
> relaxed variants.
>
> The driver supports COMPILE_TEST and therefore falls back to writel()
> when writel_relaxed() does not exist.
>
> Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org
> <mailto:daniel.thompson@linaro.org>>
> Cc: Srinivas Kandagatla <srinivas.kandagatla@gmail.com
> <mailto:srinivas.kandagatla@gmail.com>>
> Cc: Maxime Coquelin <maxime.coquelin@st.com
> <mailto:maxime.coquelin@st.com>>
> Cc: Patrice Chotard <patrice.chotard@st.com
> <mailto:patrice.chotard@st.com>>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org
> <mailto:gregkh@linuxfoundation.org>>
> Cc: Jiri Slaby <jslaby@suse.cz <mailto:jslaby@suse.cz>>
> Cc: kernel@stlinux.com <mailto:kernel@stlinux.com>
> Cc: linux-serial@vger.kernel.org <mailto:linux-serial@vger.kernel.org>
> ---
>
> Notes:
> Changes since v1:
>
> * Added fallback to writel() to permit COMPILE_TESTing (review
> of Greg Kroah-Hartmam).
>
> drivers/tty/serial/st-asc.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/tty/serial/st-asc.c b/drivers/tty/serial/st-asc.c
> index 8b2d735..a3fc167 100644
> --- a/drivers/tty/serial/st-asc.c
> +++ b/drivers/tty/serial/st-asc.c
> @@ -151,12 +151,16 @@ static inline struct asc_port
> *to_asc_port(struct uart_port *port)
>
> static inline u32 asc_in(struct uart_port *port, u32 offset)
> {
> - return readl(port->membase + offset);
> + return readl_relaxed(port->membase + offset);
> }
>
> static inline void asc_out(struct uart_port *port, u32 offset, u32
> value)
> {
> +#ifdef writel_relaxed
> + writel_relaxed(value, port->membase + offset);
> +#else
> writel(value, port->membase + offset);
> +#endif
> }
>
> /*
> --
> 1.9.3
>
>
prev parent reply other threads:[~2014-09-09 11:15 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-03 12:00 [PATCH 3.17-rc3] serial: asc: Adopt readl_/writel_relaxed() Daniel Thompson
2014-09-08 23:27 ` Greg Kroah-Hartman
2014-09-09 9:38 ` Daniel Thompson
2014-09-09 10:03 ` [PATCH 3.17-rc3 v2] " Daniel Thompson
[not found] ` <CALNtEFgd=Lw3AdO2cq_X66_kVdjRyu8sVKN5UX3tzKS5c6d_JA@mail.gmail.com>
2014-09-09 11:15 ` Daniel Thompson [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=540EE144.8030504@linaro.org \
--to=daniel.thompson@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=jslaby@suse.cz \
--cc=kernel@stlinux.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=maxime.coquelin@st.com \
--cc=patches@linaro.org \
--cc=patrice.chotard@st.com \
--cc=srinivas.kandagatla@gmail.com \
/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.