From: Arnd Bergmann <arnd@arndb.de>
To: Eric Miao <eric.y.miao@gmail.com>
Cc: "Russell King - ARM Linux" <linux@arm.linux.org.uk>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Jason Chagas <jason.chagas@marvell.com>,
Haojian Zhuang <haojian.zhuang@marvell.com>
Subject: Re: [PATCH 13/26] ARM: pxa: use correct __iomem annotations
Date: Fri, 7 Oct 2011 12:16:50 +0200 [thread overview]
Message-ID: <201110071216.50783.arnd@arndb.de> (raw)
In-Reply-To: <CAMPhdO_CGvoc8GZQS3TWpv0gqOXhmHyEbamcQr28K5iLgOBnuw@mail.gmail.com>
On Friday 07 October 2011, Eric Miao wrote:
> > @@ -18,11 +24,11 @@
> > * peripherals on APB, let's count it into the ABP mapping area.
> > */
> > #define APB_PHYS_BASE 0xd4000000
> > -#define APB_VIRT_BASE 0xfe000000
> > +#define APB_VIRT_BASE IOMEM(0xfe000000)
>
> To be honest, I'd really like to keep the *_VIRT_BASE definitions to be
> type independent.
>
> And have the actual register definitions to be casted to void __iomem *
> when being defined, e.g.
>
> #define APBC_REG(x) IOMEM(APBC_VIRT_BASE + (x))
>
> #define APBC_UART1 APBC_REG(0x000)
>
> Arnd, do we have some standard guidelines on this for all SoCs
> to follow? As I know, it's currently still being a mess.
We don't have any formal guidelines yet, but I'd really love to get
rid of all the arbitrary type casts to make use of the built-in
type checking of the compiler and sparse. A virtual base address
for registers is conventionally an __iomem pointer, so defining it
as something else is completely bogus. I have started making patches
for a number of platforms for this.
Ideally we should have very little code directly using, but the fact
is that they are there and we won't remove them all anytime soon, so
we should at least use the correct types here.
Another issue that goes together with this is that right now our
readl/writel macros accept any input type (pointer, __iomem pointer,
unsigned long, unsigned int), and I have a patch to make that stricter
but that requires fixing up all the places where we do a
readl(APBC_VIRT_BASE + x) that Russell mentioned.
The only place where this requires adding extra type casts right now is
the iotable setup, which I hope we can also fix eventually by splitting
the static I/O mapping setup from other static mappings (MT_MEMORY,
MT_MEMORY_NONCACHED, ...).
Arnd
next prev parent reply other threads:[~2011-10-07 10:17 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-01 20:03 [PATCH 00/26] ARM: pxa specific randconfig fixes Arnd Bergmann
2011-10-01 20:03 ` [PATCH 01/26] usb/gadget/pxa25x: is_vbus_present is gone Arnd Bergmann
2011-10-06 12:19 ` Felipe Balbi
2011-10-07 2:27 ` Eric Miao
2011-10-01 20:03 ` [PATCH 02/26] sound/pxa-zylonite: use a valid device for dev_err() Arnd Bergmann
2011-10-02 18:16 ` Mark Brown
2011-10-02 18:36 ` Arnd Bergmann
2011-10-02 18:44 ` Mark Brown
2011-10-02 19:48 ` Arnd Bergmann
2011-10-02 18:24 ` Mark Brown
2011-10-01 20:03 ` [PATCH 03/26] scsi/mvsas: use proper namespace for IRQ_* symbols Arnd Bergmann
2011-10-01 20:03 ` [PATCH 04/26] net/pxa168_eth: add missing include of interrupt.h Arnd Bergmann
2011-10-07 3:48 ` Eric Miao
2011-10-01 20:03 ` [PATCH 05/26] ARM: pxa: make zylonite_pxa*_init declaration match code Arnd Bergmann
2011-10-07 3:47 ` Eric Miao
2011-10-01 20:03 ` [PATCH 06/26] ARM: pxa: add missing header inclusions Arnd Bergmann
2011-10-07 5:08 ` Eric Miao
2011-10-08 8:03 ` Russell King - ARM Linux
2011-10-08 10:23 ` Jamie Iles
2011-10-08 10:24 ` Eric Miao
2011-10-01 20:03 ` [PATCH 07/26] ARM: pxa: mbxfb: disable broken debugfs code Arnd Bergmann
2011-10-07 5:10 ` Eric Miao
2011-10-01 20:03 ` [PATCH 08/26] ARM: pxa: move z2 to generic cpu_suspend Arnd Bergmann
2011-10-07 5:59 ` Eric Miao
2011-10-07 9:56 ` Arnd Bergmann
2011-10-08 12:37 ` Eric Miao
2011-10-08 13:00 ` Arnd Bergmann
2011-10-08 13:02 ` Eric Miao
2011-10-01 20:03 ` [PATCH 09/26] ARM: pxa: export symbols from pxa3xx-ulpi Arnd Bergmann
2011-10-07 6:01 ` Eric Miao
2011-10-01 20:03 ` [PATCH 10/26] ARM: pxa: allow selecting just one of TREO680/CENTRO Arnd Bergmann
2011-10-07 6:12 ` Eric Miao
2011-10-01 20:03 ` [PATCH 11/26] ARM: pxa: allow building palm27x without pxafb Arnd Bergmann
2011-10-07 6:19 ` Eric Miao
2011-10-07 9:57 ` Arnd Bergmann
2011-10-01 20:03 ` [PATCH 12/26] ARM: pxa: pxa95x/saarb depends on pxa3xx code Arnd Bergmann
2011-10-07 7:28 ` Eric Miao
2011-10-07 9:59 ` Arnd Bergmann
2011-10-01 20:03 ` [PATCH 13/26] ARM: pxa: use correct __iomem annotations Arnd Bergmann
2011-10-07 8:11 ` Eric Miao
2011-10-07 8:51 ` Russell King - ARM Linux
2011-10-07 10:16 ` Arnd Bergmann [this message]
2011-10-08 12:43 ` Eric Miao
2011-10-01 20:03 ` [PATCH 14/26] mtd: nand_h1900 never worked Arnd Bergmann
2011-10-07 8:21 ` Eric Miao
2011-10-16 11:38 ` Artem Bityutskiy
2011-10-01 20:03 ` [PATCH 15/26] irda/ficp: only works on some pxa models Arnd Bergmann
2011-10-07 8:22 ` Eric Miao
2011-10-01 20:03 ` [PATCH 16/26] ARM: pxa: CPU_PJ4 requires IWMMXT Arnd Bergmann
2011-10-02 16:03 ` Russell King - ARM Linux
2011-10-02 17:46 ` Arnd Bergmann
2011-10-04 0:59 ` Eric Miao
2011-10-04 7:33 ` Arnd Bergmann
2011-10-01 20:03 ` [PATCH 17/26] ARM: pxa: pxa95x is incompatible with earlier pxa Arnd Bergmann
2011-10-08 2:57 ` Haojian Zhuang
2011-10-08 3:21 ` Eric Miao
2011-10-08 3:32 ` Haojian Zhuang
2011-10-08 13:24 ` Arnd Bergmann
2011-10-09 6:21 ` Haojian Zhuang
2011-10-09 6:36 ` Eric Miao
2011-10-09 6:39 ` Haojian Zhuang
2011-10-09 7:28 ` Eric Miao
2011-10-09 11:31 ` Arnd Bergmann
2011-10-09 11:35 ` Arnd Bergmann
2011-10-01 20:03 ` [PATCH 18/26] ARM: pxa: MTD_XIP is not actually working any more Arnd Bergmann
2011-10-08 7:44 ` Eric Miao
2011-10-08 17:36 ` Nicolas Pitre
2011-10-01 20:03 ` [PATCH 19/26] ARM: pxa: CPU_FREQ_TABLE is needed for CPU_FREQ Arnd Bergmann
2011-10-08 8:34 ` Eric Miao
2011-10-01 20:03 ` [PATCH 20/26] ARM: pxa: select FB_PXA on saar and tevorevb Arnd Bergmann
2011-10-08 9:50 ` Eric Miao
2011-10-08 10:07 ` Arnd Bergmann
2011-10-01 20:03 ` [PATCH 21/26] ARM: pxa: select POWER_SUPPLY on raumfeld Arnd Bergmann
2011-10-08 9:59 ` Eric Miao
2011-10-01 20:03 ` [PATCH 22/26] ARM: pxa: only select SMC91x on xcep when networking is enabled Arnd Bergmann
2011-10-08 10:10 ` Eric Miao
2011-10-01 20:03 ` [PATCH 23/26] ARM: pxa: viper: select I2C_GPIO only when I2C is on Arnd Bergmann
2011-10-01 20:03 ` [PATCH 24/26] ARM: pxa: centro and treo680 need palm27x Arnd Bergmann
2011-10-08 10:20 ` Eric Miao
2011-10-08 11:31 ` Marek Vasut
2011-10-01 20:03 ` [PATCH 25/26] ARM: pxa: eseries does not require FB Arnd Bergmann
2011-10-01 20:03 ` [PATCH 26/26] ARM: pxa: sharpsl pm needs SPI Arnd Bergmann
2011-10-08 10:22 ` Eric Miao
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=201110071216.50783.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=eric.y.miao@gmail.com \
--cc=haojian.zhuang@marvell.com \
--cc=jason.chagas@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
/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