From: "Andreas Bießmann" <andreas.devel@googlemail.com>
To: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: dedekind1@gmail.com, linux-kernel@vger.kernel.org,
Josh Wu <josh.wu@atmel.com>,
linux-mtd@lists.infradead.org, fengguang.wu@intel.com,
hskinnemoen@gmail.com
Subject: Re: [PATCH] avr32: fix build error in atstk1006_defconfig
Date: Tue, 16 Oct 2012 13:30:22 +0200 [thread overview]
Message-ID: <507D454E.6060101@gmail.com> (raw)
In-Reply-To: <20121016091740.GA6243@samfundet.no>
On 16.10.2012 11:17, Hans-Christian Egtvedt wrote:
> Around Tue 16 Oct 2012 15:19:27 +0800 or thereabout, Josh Wu wrote:
>> fixed the following compile error when use avr32 atstk1006_defconfig:
>> drivers/mtd/nand/atmel_nand.c: In function 'pmecc_err_location':
>> drivers/mtd/nand/atmel_nand.c:639: error: implicit declaration of function 'writel_relaxed'
>>
>> which was introduced by commit 1c7b874d33b463 ("mtd: at91: atmel_nand: add Programmable Multibit ECC controller support").
>> The PMECC for nand flash code uses writel_relaxed(). But in avr32, there is no macro "writel_relaxed" defined. This patch add writex_relaxed macro definitions.
>>
>> Signed-off-by: Josh Wu <josh.wu@atmel.com>
>> ---
>> arch/avr32/include/asm/io.h | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/arch/avr32/include/asm/io.h b/arch/avr32/include/asm/io.h
>> index cf60d0a..fc6483f 100644
>> --- a/arch/avr32/include/asm/io.h
>> +++ b/arch/avr32/include/asm/io.h
>> @@ -165,6 +165,10 @@ BUILDIO_IOPORT(l, u32)
>> #define readw_be __raw_readw
>> #define readl_be __raw_readl
>>
>> +#define writeb_relaxed writeb
>> +#define writew_relaxed writew
>> +#define writel_relaxed writel
>> +
>
> I'm wondering if they should be something similar to SH arch:
>
> #define writeb_relaxed(v,c) ((void)__raw_writeb((__force u8)ioswabb(v),c))
I think it is OK to just use the writeX here. These are in fact an
inlined function built out of a macro. The inlined function does nearly
what you have written down here and in contrast to the ARM version omits
the memory barrier.
The main difference between __raw_ access and the writeX/readX access
for AVR32 is this little __swizzle_addr_. It takes the configuration of
SMC (8/16/32 bit access) into account which would be omitted when we
switch to __raw_ accessors here. This would be a major change if one
used the writeX/readX accessors before and switched the SMC to something
different than 32 Bit access.
Best regards
Andreas Bießmann
WARNING: multiple messages have this Message-ID (diff)
From: "Andreas Bießmann" <andreas.devel@googlemail.com>
To: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: Josh Wu <josh.wu@atmel.com>,
fengguang.wu@intel.com, dedekind1@gmail.com,
linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
hskinnemoen@gmail.com
Subject: Re: [PATCH] avr32: fix build error in atstk1006_defconfig
Date: Tue, 16 Oct 2012 13:30:22 +0200 [thread overview]
Message-ID: <507D454E.6060101@gmail.com> (raw)
In-Reply-To: <20121016091740.GA6243@samfundet.no>
On 16.10.2012 11:17, Hans-Christian Egtvedt wrote:
> Around Tue 16 Oct 2012 15:19:27 +0800 or thereabout, Josh Wu wrote:
>> fixed the following compile error when use avr32 atstk1006_defconfig:
>> drivers/mtd/nand/atmel_nand.c: In function 'pmecc_err_location':
>> drivers/mtd/nand/atmel_nand.c:639: error: implicit declaration of function 'writel_relaxed'
>>
>> which was introduced by commit 1c7b874d33b463 ("mtd: at91: atmel_nand: add Programmable Multibit ECC controller support").
>> The PMECC for nand flash code uses writel_relaxed(). But in avr32, there is no macro "writel_relaxed" defined. This patch add writex_relaxed macro definitions.
>>
>> Signed-off-by: Josh Wu <josh.wu@atmel.com>
>> ---
>> arch/avr32/include/asm/io.h | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/arch/avr32/include/asm/io.h b/arch/avr32/include/asm/io.h
>> index cf60d0a..fc6483f 100644
>> --- a/arch/avr32/include/asm/io.h
>> +++ b/arch/avr32/include/asm/io.h
>> @@ -165,6 +165,10 @@ BUILDIO_IOPORT(l, u32)
>> #define readw_be __raw_readw
>> #define readl_be __raw_readl
>>
>> +#define writeb_relaxed writeb
>> +#define writew_relaxed writew
>> +#define writel_relaxed writel
>> +
>
> I'm wondering if they should be something similar to SH arch:
>
> #define writeb_relaxed(v,c) ((void)__raw_writeb((__force u8)ioswabb(v),c))
I think it is OK to just use the writeX here. These are in fact an
inlined function built out of a macro. The inlined function does nearly
what you have written down here and in contrast to the ARM version omits
the memory barrier.
The main difference between __raw_ access and the writeX/readX access
for AVR32 is this little __swizzle_addr_. It takes the configuration of
SMC (8/16/32 bit access) into account which would be omitted when we
switch to __raw_ accessors here. This would be a major change if one
used the writeX/readX accessors before and switched the SMC to something
different than 32 Bit access.
Best regards
Andreas Bießmann
next prev parent reply other threads:[~2012-10-16 11:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-16 7:19 [PATCH] avr32: fix build error in atstk1006_defconfig Josh Wu
2012-10-16 7:19 ` Josh Wu
2012-10-16 9:17 ` Hans-Christian Egtvedt
2012-10-16 9:17 ` Hans-Christian Egtvedt
2012-10-16 10:30 ` Josh Wu
2012-10-16 10:30 ` Josh Wu
2012-10-16 11:30 ` Andreas Bießmann [this message]
2012-10-16 11:30 ` Andreas Bießmann
2012-10-16 18:04 ` Håvard Skinnemoen
2012-10-16 18:04 ` Håvard Skinnemoen
2013-04-01 6:12 ` Josh Wu
2013-04-01 6:12 ` Josh Wu
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=507D454E.6060101@gmail.com \
--to=andreas.devel@googlemail.com \
--cc=dedekind1@gmail.com \
--cc=egtvedt@samfundet.no \
--cc=fengguang.wu@intel.com \
--cc=hskinnemoen@gmail.com \
--cc=josh.wu@atmel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.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.