removing get_immrbase()??
Arnd Bergmann
arnd at arndb.de
Thu Apr 23 23:53:55 EST 2009
On Wednesday 22 April 2009, Kumar Gala wrote:
First of all, thanks for bringing this up, I'd love to see get_immrbase() gone.
> arch/powerpc/sysdev/cpm1.c: mpc8xx_immr = ioremap(get_immrbase(),
> 0x4000);
> not sure? ideas?
Nobody has commented on this, so I've taken a brief look at it.
I'd suggest moving the logic up one step at a time. im_cpm, im_siu_conf and
im_ioport could be defined locally in sysdev/cpm1.c rather than through
mpc8xx_immr, all you need for this is to export accessor functions from cpm1 for
iop_pcso and cp_cptr:
void cpm1_set_iop_pcso(u16 pcso)
{
setbits16(cpm1_ioport.iop_pcso, pcso);
}
void cpm1_clear_iop_pcso(u16 pcso)
{
clearbits16(cpm1_ioport.iop_pcso, pcso);
}
...
im_sit, im_sitk, im_clkrst and im_clkrstk should be defined locally in m8xx_setup.c,
which is the only place that they are used in. Fortunately, the are all contiguous
in the address sapce, so they can be moved into one new data structure with
a single static pointer to it in m8xx_setup.c:
static struct {
struct sys_int_timers sit;
struct clk_and_reset clkrst;
struct sitk sitk;
struct cark clkrstk;
} *m8xx_setup_regs;
When this is done, 8xx_immap.h along with all the unused stuff therein can be removed.
In the last step, the device trees can be cleaned up so that you can of_iomap
the regions in those two files directly.
Arnd <><
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20090423/2dd96b16/attachment.htm>
More information about the Linuxppc-dev
mailing list