From: Vitaly Bordug <vitb@kernel.crashing.org>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 2/9] 8xx: Infrastructure code cleanup.
Date: Thu, 13 Sep 2007 12:16:40 +0400 [thread overview]
Message-ID: <20070913121640.5764f656@localhost.localdomain> (raw)
In-Reply-To: <20070913071125.GC24281@localhost.localdomain>
On Thu, 13 Sep 2007 17:11:25 +1000
David Gibson wrote:
> Didn't notice this before - only when some yak shaving led me into
> looking at the horrors of the 8xx imm mapping code...
>
> But..
> [snip]
> > diff --git a/include/asm-powerpc/fs_pd.h
> > b/include/asm-powerpc/fs_pd.h index c624915..733e8cb 100644
> > --- a/include/asm-powerpc/fs_pd.h
> > +++ b/include/asm-powerpc/fs_pd.h
> > @@ -45,22 +45,11 @@
> > #include <asm/8xx_immap.h>
> > #include <asm/mpc8xx.h>
> >
> > -#define
> > immr_map(member) \
> > -({
> > \
> > - u32 offset = offsetof(immap_t,
> > member); \
> > - void *addr = ioremap (IMAP_ADDR +
> > offset, \
> > -
> > sizeof( ((immap_t*)0)->member)); \
> > -
> > addr;
> > \ -}) -
> > -#define immr_map_size(member,
> > size) \
> > -({
> > \
> > - u32 offset = offsetof(immap_t,
> > member); \
> > - void *addr = ioremap (IMAP_ADDR + offset,
> > size); \
> > -
> > addr;
> > \ -}) +extern immap_t __iomem *mpc8xx_immr;
> >
> > -#define immr_unmap(addr) iounmap(addr)
> > +#define immr_map(member) (&mpc8xx_immr->member)
> > +#define immr_map_size(member, size) (&mpc8xx_immr->member)
> > +#define immr_unmap(addr) iounmap(addr)
>
> This looks bogus. You're replacing the old crap immr_map() functions,
> which ioremap()ed the registers every time, with a much simpler
> version which uses an established-once mapping of the register
> region. AFAICT, anywah.
>
> So far, so good - but your immr_unmap() still does an iounmap() which
> is surely wrong - it should now be a no-op, leaving the mpc8xx_immr
> mapping intact. You probably get away with it by accident, because I
> imagine attempting to unmap an unaligned chunk of the region will just
> fail.
>
yes, it should do nop instead of iounmap.
> In fact, with this patch in place, I'd like to see another patch which
> removes all calls to immr_map() and immr_unmap(), simply accessing the
> common mapping directly.
>
Sorry, but originally, that stuff was created to get rid of BSP ifdefs in drivers. For PQ family, it is a common practice
to have single driver handling all 3 CPU families, which use the same logic, but immr structure differs a little bit.
At this point it's clear case-by-case ioremapping does not have firm benefit, but getting back to the way it was is useless either.
In ideal world, we'd have all those stuff put into dts and have specific drivers be a shim layer between core hw and IO drivers.
--
Sincerely, Vitaly
next prev parent reply other threads:[~2007-09-13 8:16 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-28 20:11 [PATCH v3 1/8] Generic bitbanged MDIO library Scott Wood
2007-08-28 20:14 ` [PATCH v3 2/8] fs_enet: Whitespace cleanup Scott Wood
2007-08-28 20:14 ` [PATCH v3 3/8] fs_enet: Include linux/string.h from linux/fs_enet_pd.h Scott Wood
2007-08-28 20:14 ` [PATCH v3 4/8] fs_enet: Don't share the interrupt Scott Wood
2007-08-28 20:14 ` [PATCH v3 5/8] fs_enet: mac-fcc: Eliminate __fcc-* macros Scott Wood
2007-08-28 20:14 ` [PATCH v3 6/8] fs_enet: Align receive buffers Scott Wood
2007-08-28 20:14 ` [PATCH v3 7/8] fs_enet: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set Scott Wood
2007-08-28 20:14 ` [PATCH v3 8/8] fs_enet: sparse fixes Scott Wood
2007-08-28 20:16 ` [PATCH 1/3] fsl_soc.c cleanup Scott Wood
2007-08-29 5:30 ` David Gibson
2007-09-11 5:35 ` Kumar Gala
2007-09-11 13:57 ` Scott Wood
2007-09-11 15:48 ` Kumar Gala
2007-09-11 15:51 ` Scott Wood
2007-09-11 16:22 ` Kumar Gala
2007-09-11 16:24 ` Scott Wood
2007-09-11 16:45 ` SOC registers/immr determination from device tree (was Re: [PATCH 1/3] fsl_soc.c cleanup) Kumar Gala
2007-09-11 17:03 ` Scott Wood
2007-09-11 17:08 ` Josh Boyer
2007-09-11 17:54 ` Kumar Gala
2007-08-28 20:16 ` [PATCH 2/3] Introduce new CPM device bindings Scott Wood
2007-08-29 5:39 ` David Gibson
2007-08-29 13:58 ` Scott Wood
2007-08-30 0:55 ` David Gibson
2007-08-30 5:48 ` Scott Wood
2007-08-30 5:58 ` David Gibson
2007-08-30 14:10 ` Scott Wood
2007-08-31 2:48 ` David Gibson
2007-08-28 20:16 ` [PATCH 3/3] Add early debug console for CPM serial ports Scott Wood
2007-08-29 5:45 ` David Gibson
2007-08-29 14:02 ` Scott Wood
2007-08-29 19:58 ` Scott Wood
2007-08-30 0:58 ` David Gibson
2007-08-30 0:57 ` David Gibson
2007-08-28 20:16 ` [PATCH 1/4] ppc: Add clrbits8 and setbits8 Scott Wood
2007-08-28 20:16 ` [PATCH 2/4] cpm_uart: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set Scott Wood
2007-08-28 20:16 ` [PATCH 3/4] cpm_uart: sparse fixes Scott Wood
2007-08-28 20:16 ` [PATCH 4/4] cpm_uart: Issue STOP_TX command before initializing console Scott Wood
2007-08-28 20:17 ` [PATCH 1/9] 8xx: Fix CONFIG_PIN_TLB Scott Wood
2007-08-29 21:09 ` Vitaly Bordug
2007-08-28 20:17 ` [PATCH 2/9] 8xx: Infrastructure code cleanup Scott Wood
2007-09-13 7:11 ` David Gibson
2007-09-13 8:16 ` Vitaly Bordug [this message]
2007-09-14 4:09 ` David Gibson
2007-09-14 8:21 ` Vitaly Bordug
2007-09-15 2:25 ` David Gibson
2007-09-13 14:40 ` Scott Wood
2007-08-28 20:17 ` [PATCH 3/9] 8xx: Add pin and clock setting functions Scott Wood
2007-08-29 21:38 ` Vitaly Bordug
2007-08-31 20:44 ` Scott Wood
2007-09-05 7:39 ` Vitaly Bordug
2007-09-05 17:37 ` Scott Wood
2007-08-28 20:17 ` [PATCH 4/9] 8xx: Work around CPU15 erratum Scott Wood
2007-08-28 20:17 ` [PATCH 5/9] 8xx: Don't call non-existent Soft_emulate_8xx from SoftwareEmulation Scott Wood
2007-08-28 20:17 ` [PATCH 6/9] 8xx: Set initial memory limit John Traill
2007-08-28 20:19 ` Scott Wood
2007-08-28 20:19 ` [PATCH 7/9] 8xx: mpc885ads cleanup Scott Wood
2007-08-29 22:03 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 8/9] 8xx: Embedded Planet EP88xC support Scott Wood
2007-08-28 20:19 ` [PATCH 9/9] 8xx: Adder 875 support Scott Wood
2007-08-28 20:19 ` [PATCH 1/9] cpm2: Infrastructure code cleanup Scott Wood
2007-08-28 20:19 ` [PATCH 2/9] cpm2: Fix off-by-one error in setbrg() Scott Wood
2007-08-29 22:09 ` Vitaly Bordug
2007-08-30 20:13 ` Scott Wood
2007-08-30 21:52 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 3/9] cpm2: Add SCCs to cpm2_clk_setup(), and cpm2_smc_clk_setup() Scott Wood
2007-08-29 22:25 ` Vitaly Bordug
2007-08-30 20:15 ` Scott Wood
2007-09-04 20:43 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 4/9] cpm2: Add cpm2_set_pin() Scott Wood
2007-09-04 20:51 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 5/9] mpc82xx: Remove a bunch of cruft that duplicates generic functionality Scott Wood
2007-08-28 20:19 ` [PATCH 6/9] mpc82xx: Rename mpc82xx_ads to mpc8272_ads Scott Wood
2007-08-29 5:55 ` David Gibson
2007-08-28 20:19 ` [PATCH 7/9] mpc8272ads: Change references from 82xx_ADS to 8272_ADS Scott Wood
2007-08-28 20:19 ` [PATCH 8/9] mpc82xx: Update mpc8272ads, and factor out PCI and reset Scott Wood
2007-08-29 22:41 ` Kumar Gala
2007-08-30 5:56 ` Scott Wood
2007-08-30 14:56 ` Kumar Gala
2007-08-30 15:17 ` Scott Wood
2007-08-28 20:19 ` [PATCH 9/9] mpc82xx: Add pq2fads board support Scott Wood
-- strict thread matches above, loose matches on Subject: below --
2007-09-05 19:27 [PATCH 1/9] 8xx: Fix CONFIG_PIN_TLB Scott Wood
2007-09-05 19:27 ` [PATCH 2/9] 8xx: Infrastructure code cleanup Scott Wood
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=20070913121640.5764f656@localhost.localdomain \
--to=vitb@kernel.crashing.org \
--cc=david@gibson.dropbear.id.au \
--cc=linuxppc-dev@ozlabs.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).