From: Felipe Balbi <balbi@ti.com>
To: Felipe Balbi <balbi@ti.com>
Cc: Taras Kondratiuk <taras.kondratiuk@linaro.org>,
linux-omap@vger.kernel.org, linaro-networking@linaro.org,
Victor Kamensky <victor.kamensky@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC 15/23] usb: musb: raw read and write endian fix
Date: Mon, 25 Nov 2013 16:13:48 -0600 [thread overview]
Message-ID: <20131125221348.GB18046@saruman.home> (raw)
In-Reply-To: <20131125220749.GA18046@saruman.home>
[-- Attachment #1: Type: text/plain, Size: 2590 bytes --]
Hi,
On Mon, Nov 25, 2013 at 04:07:49PM -0600, Felipe Balbi wrote:
> On Sat, Nov 16, 2013 at 02:01:18AM +0200, Taras Kondratiuk wrote:
> > From: Victor Kamensky <victor.kamensky@linaro.org>
> >
> > All OMAP IP blocks expect LE data, but CPU may operate in BE mode.
> > Need to use endian neutral functions to read/write h/w registers.
> > I.e instead of __raw_read[lw] and __raw_write[lw] functions code
> > need to use read[lw]_relaxed and write[lw]_relaxed functions.
> > If the first simply reads/writes register, the second will byteswap
> > it if host operates in BE mode.
> >
> > Changes are trivial sed like replacement of __raw_xxx functions
> > with xxx_relaxed variant.
> >
> > Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
> > Signed-off-by: Taras Kondratiuk <taras.kondratiuk@linaro.org>
> > ---
> > drivers/usb/musb/musb_io.h | 18 +++++++++---------
> > 1 file changed, 9 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/usb/musb/musb_io.h b/drivers/usb/musb/musb_io.h
> > index eebeed7..76f4d2a 100644
> > --- a/drivers/usb/musb/musb_io.h
> > +++ b/drivers/usb/musb/musb_io.h
> > @@ -42,17 +42,17 @@
> > /* NOTE: these offsets are all in bytes */
> >
> > static inline u16 musb_readw(const void __iomem *addr, unsigned offset)
> > - { return __raw_readw(addr + offset); }
> > + { return readw_relaxed(addr + offset); }
>
> x86 doesn't provide any of the write?_relaxed methods so this breaks
> build on x86 at least.
here's an untested patch which would "solve" the problem:
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 34f69cb..b6ad164 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -73,6 +73,9 @@ build_mmio_write(__writel, "l", unsigned int, "r", )
#define __raw_readw __readw
#define __raw_readl __readl
+#define writeb_relaxed(d, a) __writeb(d, a)
+#define writew_relaxed(d, a) __writew(d, a)
+#define writel_relaxed(d, a) __writel(d, a)
#define __raw_writeb __writeb
#define __raw_writew __writew
#define __raw_writel __writel
@@ -85,6 +88,7 @@ build_mmio_read(readq, "q", unsigned long, "=r", :"memory")
build_mmio_write(writeq, "q", unsigned long, "r", :"memory")
#define readq_relaxed(a) readq(a)
+#define writeq_relaxed(d, a) writeq(d, a)
#define __raw_readq(a) readq(a)
#define __raw_writeq(val, addr) writeq(val, addr)
I'm not sure if it's correct though. Someone would have to tell me if
it's correct or not. For now, I have dropped $subject from my
testing/next branch.
--
balbi
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-11-25 22:13 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-16 0:01 [RFC 00/23] OMAP4: big endian support and fixes Taras Kondratiuk
2013-11-16 0:01 ` [RFC 01/23] gpio/omap: raw read and write endian fix Taras Kondratiuk
2013-11-19 9:29 ` Linus Walleij
2013-11-19 15:43 ` Tony Lindgren
2013-11-19 16:51 ` Javier Martinez Canillas
2013-11-19 18:12 ` Kevin Hilman
2013-11-19 18:21 ` Santosh Shilimkar
2013-11-16 0:01 ` [RFC 02/23] watchdog: omap_wdt: " Taras Kondratiuk
2013-11-16 6:27 ` Guenter Roeck
2013-11-17 19:09 ` Wim Van Sebroeck
2013-11-16 0:01 ` [RFC 03/23] OMAPDSS: " Taras Kondratiuk
2013-11-18 13:13 ` Tomi Valkeinen
2013-11-16 0:01 ` [RFC 04/23] mmc: omap: " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 06/23] drivers: bus: omap_l3: " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 07/23] hwrng: omap - " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 08/23] crypto: omap-aes " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 09/23] crypto: omap-sham " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 10/23] Input: omap-keypad " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 11/23] mfd: omap-usb-host: " Taras Kondratiuk
2013-11-18 10:35 ` Lee Jones
2013-11-16 0:01 ` [RFC 12/23] mfd: omap-usb-tll: " Taras Kondratiuk
2013-11-18 10:35 ` Lee Jones
2013-11-16 0:01 ` [RFC 13/23] spi: omap2-mcspi: " Taras Kondratiuk
[not found] ` <1384560086-11994-14-git-send-email-taras.kondratiuk-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-11-16 10:19 ` Mark Brown
2013-11-16 0:01 ` [RFC 14/23] USB: ehci-omap: " Taras Kondratiuk
[not found] ` <1384560086-11994-15-git-send-email-taras.kondratiuk-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-11-18 22:46 ` Felipe Balbi
[not found] ` <1384560086-11994-1-git-send-email-taras.kondratiuk-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-11-16 0:01 ` [RFC 05/23] i2c: omap: " Taras Kondratiuk
[not found] ` <1384560086-11994-6-git-send-email-taras.kondratiuk-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-11-26 12:42 ` Wolfram Sang
2013-11-27 13:48 ` [PATCH] " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 15/23] usb: musb: " Taras Kondratiuk
2013-11-25 22:07 ` Felipe Balbi
2013-11-25 22:13 ` Felipe Balbi [this message]
2013-11-16 0:01 ` [RFC 16/23] ASoC: omap: mcbsp, mcpdm, dmic: " Taras Kondratiuk
2013-11-16 16:09 ` Jarkko Nikula
2013-11-16 17:23 ` Takashi Iwai
2013-11-18 10:30 ` Peter Ujfalusi
2013-11-18 11:15 ` Mark Brown
2013-11-16 0:01 ` [RFC 17/23] ARM: OMAP2+: " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 18/23] ARM: OMAP: dmtimer: " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 19/23] ARM: OMAP: counter-32k: " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 20/23] ARM: OMAP: debug-leds: " Taras Kondratiuk
2013-11-16 0:01 ` [RFC 21/23] ARM: OMAP4: sleep: byteswap data for big-endian Taras Kondratiuk
2013-11-16 0:01 ` [RFC 22/23] ARM: OMAP4: sleep/smp: switch CPU to BE if compiled for BE Taras Kondratiuk
2013-11-16 0:01 ` [RFC 23/23] ARM: OMAP4: enable big endian support Taras Kondratiuk
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=20131125221348.GB18046@saruman.home \
--to=balbi@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=linaro-networking@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=taras.kondratiuk@linaro.org \
--cc=victor.kamensky@linaro.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;
as well as URLs for NNTP newsgroup(s).