forked from Minki/linux
FS_ENET: OF-related fixup for FEC and SCC MAC's
Updated direct resource pass with ioremap call, make it grant proper IRQ mapping, stuff incompatible with the new approach were respectively put under #ifndef CONFIG_PPC_MERGE. It is required so that both ppc and powerpc could utilize fs_enet effectively. Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
0c0b3ae68e
commit
b1f54ba34f
@ -104,9 +104,9 @@ static int do_pd_setup(struct fs_enet_private *fep)
|
||||
fep->interrupt = platform_get_irq_byname(pdev,"interrupt");
|
||||
if (fep->interrupt < 0)
|
||||
return -EINVAL;
|
||||
|
||||
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs");
|
||||
fep->fec.fecp =(void*)r->start;
|
||||
fep->fec.fecp = ioremap(r->start, r->end - r->start + 1);
|
||||
|
||||
if(fep->fec.fecp == NULL)
|
||||
return -EINVAL;
|
||||
@ -319,11 +319,14 @@ static void restart(struct net_device *dev)
|
||||
* Clear any outstanding interrupt.
|
||||
*/
|
||||
FW(fecp, ievent, 0xffc0);
|
||||
#ifndef CONFIG_PPC_MERGE
|
||||
FW(fecp, ivec, (fep->interrupt / 2) << 29);
|
||||
|
||||
#else
|
||||
FW(fecp, ivec, (virq_to_hw(fep->interrupt) / 2) << 29);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* adjust to speed (only for DUET & RMII)
|
||||
* adjust to speed (only for DUET & RMII)
|
||||
*/
|
||||
#ifdef CONFIG_DUET
|
||||
if (fpi->use_rmii) {
|
||||
@ -418,6 +421,7 @@ static void stop(struct net_device *dev)
|
||||
|
||||
static void pre_request_irq(struct net_device *dev, int irq)
|
||||
{
|
||||
#ifndef CONFIG_PPC_MERGE
|
||||
immap_t *immap = fs_enet_immap;
|
||||
u32 siel;
|
||||
|
||||
@ -431,6 +435,7 @@ static void pre_request_irq(struct net_device *dev, int irq)
|
||||
siel &= ~(0x80000000 >> (irq & ~1));
|
||||
out_be32(&immap->im_siu_conf.sc_siel, siel);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void post_free_irq(struct net_device *dev, int irq)
|
||||
|
@ -121,13 +121,13 @@ static int do_pd_setup(struct fs_enet_private *fep)
|
||||
return -EINVAL;
|
||||
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs");
|
||||
fep->scc.sccp = (void *)r->start;
|
||||
fep->scc.sccp = ioremap(r->start, r->end - r->start + 1);
|
||||
|
||||
if (fep->scc.sccp == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pram");
|
||||
fep->scc.ep = (void *)r->start;
|
||||
fep->scc.ep = ioremap(r->start, r->end - r->start + 1);
|
||||
|
||||
if (fep->scc.ep == NULL)
|
||||
return -EINVAL;
|
||||
@ -397,6 +397,7 @@ static void stop(struct net_device *dev)
|
||||
|
||||
static void pre_request_irq(struct net_device *dev, int irq)
|
||||
{
|
||||
#ifndef CONFIG_PPC_MERGE
|
||||
immap_t *immap = fs_enet_immap;
|
||||
u32 siel;
|
||||
|
||||
@ -410,6 +411,7 @@ static void pre_request_irq(struct net_device *dev, int irq)
|
||||
siel &= ~(0x80000000 >> (irq & ~1));
|
||||
out_be32(&immap->im_siu_conf.sc_siel, siel);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void post_free_irq(struct net_device *dev, int irq)
|
||||
|
@ -349,7 +349,7 @@ static int __init fixed_init(void)
|
||||
fixed_mdio_register_device(0, 100, 1);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIX_FIXED_MII_10_FDX
|
||||
#ifdef CONFIG_FIXED_MII_10_FDX
|
||||
fixed_mdio_register_device(0, 10, 1);
|
||||
#endif
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user