All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Dooks <ben.dooks@codethink.co.uk>
To: Ben Hutchings <ben.hutchings@codethink.co.uk>
Cc: linux-kernel@lists.codethink.co.uk,
	linux-arm-kernel@lists.infradead.org,
	Ulf Hansson <ulf.hansson@linaro.org>,
	linux-mmc@vger.kernel.org, Chris Ball <chris@printf.net>,
	Ludovic Desroches <ludovic.desroches@atmel.com>,
	Haavard Skinnemoen <hskinnemoen@gmail.com>,
	Hans-Christian Egtvedt <egtvedt@samfundet.no>
Subject: Re: [Linux-kernel] [PATCH 12/13] mmc: atmel-mci: use endian agnostic IO
Date: Tue, 24 Mar 2015 12:53:41 +0000	[thread overview]
Message-ID: <55115E55.4090409@codethink.co.uk> (raw)
In-Reply-To: <1426774966.22122.47.camel@xylophone.i.decadent.org.uk>

On 19/03/15 14:22, Ben Hutchings wrote:
> On Wed, 2015-03-18 at 15:53 +0000, Ben Dooks wrote:
>> Change the __raw IO functions to endian agnostic relaxed ones to allow
>> the driver to function on big endian ARM systems.
>>
>> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
>> --
>> CC: Ludovic Desroches <ludovic.desroches@atmel.com>
>> CC: Chris Ball <chris@printf.net>
>> CC: Ulf Hansson <ulf.hansson@linaro.org>
>> CC: linux-mmc@vger.kernel.org
>> ---
>>  drivers/mmc/host/atmel-mci-regs.h | 9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/atmel-mci-regs.h b/drivers/mmc/host/atmel-mci-regs.h
>> index c97001e..711bb53 100644
>> --- a/drivers/mmc/host/atmel-mci-regs.h
>> +++ b/drivers/mmc/host/atmel-mci-regs.h
>> @@ -135,10 +135,17 @@
>>  #define ATMCI_REGS_SIZE		0x100
>>  
>>  /* Register access macros */
>> -#define atmci_readl(port,reg)				\
>> +#ifdef CONFIG_AVR32
>> +#define atmci_readl(port,reg)			\
>>  	__raw_readl((port)->regs + reg)
>>  #define atmci_writel(port,reg,value)			\
>>  	__raw_writel((value), (port)->regs + reg)
>> +#else
>> +#define atmci_readl(port,reg)			\
>> +	readl_relaxed((port)->regs + reg)
>> +#define atmci_writel(port,reg,value)			\
>> +	writel_relaxed((value), (port)->regs + reg)
>> +#endif
> 
> This pattern is repeated in a lot of drivers; is it worth defining
> atmel_{read,write}l_relaxed() in a common header?
> 
> #ifdef CONFIG_AVR32
> 
> /* CPU and peripherals are both big-endian, so don't byte-swap */
> #define atmel_readl_relaxed(addr)		__raw_readl(addr)
> #define atmel_writel_relaxed(value, addr)	__raw_writel(value, addr)
> 
> #else
> 
> /* Peripherals are little-endian, so byte-swap if CPU isn't */
> #define atmel_readl_relaxed(addr)		readl_relaxed(addr)
> #define atmel_writel_relaxed(value, addr)	writel_relaxed(value, addr)
> 
> #endif
> 
> Ben.

Hi, I think it will probably be a good idea to have an avr32/at91
read/write functions however I will put this forward as a separate
series as it will require both avr32 and at91 maintainers as well
as driver updates.

how about:
	atmel_readl_onchip{b,w,l}
	atmel_writel_onchip{b,w,l}


-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius

WARNING: multiple messages have this Message-ID (diff)
From: ben.dooks@codethink.co.uk (Ben Dooks)
To: linux-arm-kernel@lists.infradead.org
Subject: [Linux-kernel] [PATCH 12/13] mmc: atmel-mci: use endian agnostic IO
Date: Tue, 24 Mar 2015 12:53:41 +0000	[thread overview]
Message-ID: <55115E55.4090409@codethink.co.uk> (raw)
In-Reply-To: <1426774966.22122.47.camel@xylophone.i.decadent.org.uk>

On 19/03/15 14:22, Ben Hutchings wrote:
> On Wed, 2015-03-18 at 15:53 +0000, Ben Dooks wrote:
>> Change the __raw IO functions to endian agnostic relaxed ones to allow
>> the driver to function on big endian ARM systems.
>>
>> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
>> --
>> CC: Ludovic Desroches <ludovic.desroches@atmel.com>
>> CC: Chris Ball <chris@printf.net>
>> CC: Ulf Hansson <ulf.hansson@linaro.org>
>> CC: linux-mmc at vger.kernel.org
>> ---
>>  drivers/mmc/host/atmel-mci-regs.h | 9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/atmel-mci-regs.h b/drivers/mmc/host/atmel-mci-regs.h
>> index c97001e..711bb53 100644
>> --- a/drivers/mmc/host/atmel-mci-regs.h
>> +++ b/drivers/mmc/host/atmel-mci-regs.h
>> @@ -135,10 +135,17 @@
>>  #define ATMCI_REGS_SIZE		0x100
>>  
>>  /* Register access macros */
>> -#define atmci_readl(port,reg)				\
>> +#ifdef CONFIG_AVR32
>> +#define atmci_readl(port,reg)			\
>>  	__raw_readl((port)->regs + reg)
>>  #define atmci_writel(port,reg,value)			\
>>  	__raw_writel((value), (port)->regs + reg)
>> +#else
>> +#define atmci_readl(port,reg)			\
>> +	readl_relaxed((port)->regs + reg)
>> +#define atmci_writel(port,reg,value)			\
>> +	writel_relaxed((value), (port)->regs + reg)
>> +#endif
> 
> This pattern is repeated in a lot of drivers; is it worth defining
> atmel_{read,write}l_relaxed() in a common header?
> 
> #ifdef CONFIG_AVR32
> 
> /* CPU and peripherals are both big-endian, so don't byte-swap */
> #define atmel_readl_relaxed(addr)		__raw_readl(addr)
> #define atmel_writel_relaxed(value, addr)	__raw_writel(value, addr)
> 
> #else
> 
> /* Peripherals are little-endian, so byte-swap if CPU isn't */
> #define atmel_readl_relaxed(addr)		readl_relaxed(addr)
> #define atmel_writel_relaxed(value, addr)	writel_relaxed(value, addr)
> 
> #endif
> 
> Ben.

Hi, I think it will probably be a good idea to have an avr32/at91
read/write functions however I will put this forward as a separate
series as it will require both avr32 and at91 maintainers as well
as driver updates.

how about:
	atmel_readl_onchip{b,w,l}
	atmel_writel_onchip{b,w,l}


-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius

  reply	other threads:[~2015-03-24 12:53 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-18 15:52 ATSAMA5D big endian work Ben Dooks
2015-03-18 15:53 ` [PATCH 01/13] ARM: at91: Add big endian configuration for ATSAMA5D devices Ben Dooks
2015-03-19  9:03   ` Jean-Christophe PLAGNIOL-VILLARD
2015-03-18 15:53 ` [PATCH 02/13] tty: serial: atmel: fix big-endian on ARMv7 devices Ben Dooks
2015-03-18 15:53   ` Ben Dooks
2015-03-26 21:46   ` Greg Kroah-Hartman
2015-03-26 21:46     ` Greg Kroah-Hartman
2015-03-18 15:53 ` [PATCH 03/13] ARM: at91: use readl/writel relaxed instead of __raw for big endian Ben Dooks
2015-03-18 15:53 ` [PATCH 04/13] ARM: at91: setup.c: use endian agnostic IO functions Ben Dooks
2015-03-18 15:53 ` [PATCH 05/13] ARM: at91: debug: fix debug in big endian mode Ben Dooks
2015-03-18 15:53 ` [PATCH 06/13] ARM: at91: PIT: make IO endian agnostic Ben Dooks
2015-03-18 15:53   ` Ben Dooks
2015-03-23 11:27   ` Nicolas Ferre
2015-03-23 11:27     ` Nicolas Ferre
2015-03-26  9:54     ` Daniel Lezcano
2015-03-26  9:54       ` Daniel Lezcano
2015-03-18 15:53 ` [PATCH 07/13] clocksource: tcb_clksrc: " Ben Dooks
2015-03-18 15:53   ` Ben Dooks
2015-03-26  9:55   ` Daniel Lezcano
2015-03-26  9:55     ` Daniel Lezcano
2015-03-26 11:08     ` Nicolas Ferre
2015-03-26 11:08       ` Nicolas Ferre
2015-03-26 11:38       ` Ben Dooks
2015-03-26 11:38         ` Ben Dooks
2015-03-18 15:53 ` [PATCH 08/13] rtc: at91rm9200: " Ben Dooks
2015-03-19  9:02   ` [rtc-linux] " Jean-Christophe PLAGNIOL-VILLARD
2015-03-19  9:34     ` Ben Dooks
2015-03-19 16:13   ` Nicolas Ferre
     [not found] ` <1426693992-31163-1-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2015-03-18 15:53   ` [PATCH 09/13] spi: atmel: use endian agnostic IO Ben Dooks
2015-03-18 15:53     ` Ben Dooks
     [not found]     ` <1426693992-31163-10-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2015-03-19  0:56       ` Mark Brown
2015-03-19  0:56         ` Mark Brown
2015-03-19  8:53       ` Nicolas Ferre
2015-03-19  8:53         ` Nicolas Ferre
2015-03-22 18:01       ` Mark Brown
2015-03-22 18:01         ` Mark Brown
2015-03-18 15:53 ` [PATCH 10/13] usb: gadget: atmel_usba: use endian agnostic IO on ARM Ben Dooks
2015-03-19 16:46   ` Nicolas Ferre
2015-03-19 18:50     ` Felipe Balbi
2015-03-18 15:53 ` [PATCH 11/13] can: at91_can: use endian agnostic IO accessors Ben Dooks
2015-03-18 15:53   ` Ben Dooks
2015-03-19 16:47   ` Nicolas Ferre
2015-03-19 16:47     ` Nicolas Ferre
2015-03-20  9:06   ` Marc Kleine-Budde
2015-03-20  9:06     ` Marc Kleine-Budde
2015-03-18 15:53 ` [PATCH 12/13] mmc: atmel-mci: use endian agnostic IO Ben Dooks
2015-03-18 15:53   ` Ben Dooks
2015-03-19 14:22   ` [Linux-kernel] " Ben Hutchings
2015-03-19 14:22     ` Ben Hutchings
2015-03-24 12:53     ` Ben Dooks [this message]
2015-03-24 12:53       ` Ben Dooks
2015-03-25  6:14       ` Hans-Christian Egtvedt
2015-03-25  6:14         ` Hans-Christian Egtvedt
2015-03-24 14:08   ` Ludovic Desroches
2015-03-24 14:08     ` Ludovic Desroches
2015-03-25  8:52   ` Ulf Hansson
2015-03-25  8:52     ` Ulf Hansson
2015-03-18 18:30 ` ATSAMA5D big endian work Alexandre Belloni
2015-03-19  9:34   ` Ben Dooks
2015-03-19 13:30     ` Alexandre Belloni
2015-03-20 16:58       ` Ben Dooks
2015-03-20 17:19         ` Alexandre Belloni
2015-03-20 17:29           ` Ben Dooks
2015-03-23 11:31             ` Nicolas Ferre
2015-03-19  9:42 ` [Linux-kernel] " Ben Dooks

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=55115E55.4090409@codethink.co.uk \
    --to=ben.dooks@codethink.co.uk \
    --cc=ben.hutchings@codethink.co.uk \
    --cc=chris@printf.net \
    --cc=egtvedt@samfundet.no \
    --cc=hskinnemoen@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@lists.codethink.co.uk \
    --cc=linux-mmc@vger.kernel.org \
    --cc=ludovic.desroches@atmel.com \
    --cc=ulf.hansson@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 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.