linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 --]

  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).