linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Guan Xuetao <epip@hera.kernel.org>
Cc: GuanXuetao <gxt@mprc.pku.edu.cn>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	greg@kroah.com
Subject: Re: [PATCH 16/17] unicore32: add (void __iomem *) to io_p2v macro
Date: Mon, 28 Feb 2011 16:35:56 +0100	[thread overview]
Message-ID: <201102281635.56528.arnd@arndb.de> (raw)
In-Reply-To: <e01e265d8c1ee1acf67177717a3611691cccf1da.1298821856.git.epip@hera.kernel.org>

On Sunday 27 February 2011, Guan Xuetao wrote:
> -#define PKUNITY_AC97_CONR              __REG(PKUNITY_AC97_BASE + 0x0000)
> -#define PKUNITY_AC97_OCR               __REG(PKUNITY_AC97_BASE + 0x0004)
> -#define PKUNITY_AC97_ICR               __REG(PKUNITY_AC97_BASE + 0x0008)
> -#define PKUNITY_AC97_CRAC              __REG(PKUNITY_AC97_BASE + 0x000C)
> -#define PKUNITY_AC97_INTR              __REG(PKUNITY_AC97_BASE + 0x0010)
> -#define PKUNITY_AC97_INTRSTAT          __REG(PKUNITY_AC97_BASE + 0x0014)
> -#define PKUNITY_AC97_INTRCLEAR         __REG(PKUNITY_AC97_BASE + 0x0018)
> -#define PKUNITY_AC97_ENABLE            __REG(PKUNITY_AC97_BASE + 0x001C)
> -#define PKUNITY_AC97_OUT_FIFO          __REG(PKUNITY_AC97_BASE + 0x0020)
> -#define PKUNITY_AC97_IN_FIFO           __REG(PKUNITY_AC97_BASE + 0x0030)
> +#define PKUNITY_AC97_CONR              io_p2v(PKUNITY_AC97_BASE + 0x0000)
> +#define PKUNITY_AC97_OCR               io_p2v(PKUNITY_AC97_BASE + 0x0004)
> +#define PKUNITY_AC97_ICR               io_p2v(PKUNITY_AC97_BASE + 0x0008)
> +#define PKUNITY_AC97_CRAC              io_p2v(PKUNITY_AC97_BASE + 0x000C)
> +#define PKUNITY_AC97_INTR              io_p2v(PKUNITY_AC97_BASE + 0x0010)

One more comment on the types here (applies to the entire patch):

It would be more straightforward to the define the underlying base
addresses using io_p2v, and then do a simple addition, instead of
another macro that adds a type cast:

#define PKUNITY_SYSTEM_AHB	io_p2v(0xC0000000)
#define PKUNITY_PERIPHERAL_AHB	io_p2v(0xEE000000)

#define PKUNITY_UART0_BASE	(PKUNITY_PERIPHERAL_AHB + 0x00000000)
#define PKUNITY_AC97_BASE	(PKUNITY_PERIPHERAL_AHB + 0x00400000)

#define PKUNITY_AC97_CONR	(PKUNITY_AC97_BASE + 0x0000)
#define PKUNITY_AC97_OCR	(PKUNITY_AC97_BASE + 0x0004)

It would be nice if you could do that for the entire set of hardware
headers.

In the long run, I would recommend moving away from hardcoded I/O addresses
entirely, but you can do that at the same time as moving to a flattened
device tree. When you do that, every driver will do an individual ioremap
to get the virtual address for a physical location, rather than doing it
once at boot time for all hardware. This makes the code more flexible when
dealing with multiple SoC implemetations, but it's not something that
you need to worry about too much for the initial merge.

	Arnd

  reply	other threads:[~2011-02-28 15:36 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-27 15:59 [PATCH 00/17] unicore32: resend patches after machine related files Guan Xuetao
2011-02-27 15:59 ` [PATCH 01/17] unicore32 machine related files: core files Guan Xuetao
2011-02-28 15:14   ` Arnd Bergmann
2011-02-28 15:14     ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 02/17] unicore32 machine related files: hardware registers Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 03/17] unicore32 machine related files: pci bus handling Guan Xuetao
2011-02-27 15:59 ` [PATCH 04/17] unicore32 machine related files: ps2 driver Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 05/17] unicore32: ADD MAINTAINER for unicore32 architecture Guan Xuetao
2011-02-27 15:59 ` [PATCH 06/17] unicore32 time.c: change calculate method for clock_event_device Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 07/17] unicore32: remove unused lines in arch/unicore32/include/asm/irq.h Guan Xuetao
2011-02-27 15:59 ` [PATCH 08/17] unicore32: modify function names and parameters for irq_chips Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 09/17] unicore32: rename PKUNITY_IOSPACE_BASE to PKUNITY_MMIO_BASE Guan Xuetao
2011-02-27 15:59 ` [PATCH 10/17] unicore32 i8042: adjust io funcs of i8042-unicore32io.h Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 11/17] unicore32 upgrade to v2.6.38-rc5: add one more paramter for pte_alloc_map call Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 12/17] unicore32 i8042 upgrade and bugfix: adjust resource request region type Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-27 15:59 ` [PATCH 13/17] unicore32 io: redefine __REG(x) and re-use readl/writel funcs Guan Xuetao
2011-02-27 15:59   ` Guan Xuetao
2011-02-28 15:17   ` Arnd Bergmann
2011-03-04  8:00     ` Guan Xuetao
2011-03-04  9:49       ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 14/17] unicore32 machine related files: add i2c bus drivers for pkunity-v3 soc Guan Xuetao
2011-02-28 15:21   ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 15/17] unicore32 machine related: add frame buffer driver " Guan Xuetao
2011-02-28 15:18   ` Arnd Bergmann
2011-02-28 15:18     ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 16/17] unicore32: add (void __iomem *) to io_p2v macro Guan Xuetao
2011-02-28 15:35   ` Arnd Bergmann [this message]
2011-03-04 10:12     ` Guan Xuetao
2011-03-04 11:52       ` Arnd Bergmann
2011-02-27 15:59 ` [PATCH 17/17] unicore32: replace unicore32-specific iomap functions with generic lib implementation Guan Xuetao
2011-02-28 15:20   ` Arnd Bergmann

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=201102281635.56528.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=epip@hera.kernel.org \
    --cc=greg@kroah.com \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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).