aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index c9fd82d3a80d..a32230bbe195 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -1142,19 +1142,9 @@ static void __inline__ fec_request_mii_intr(struct net_device *dev)
1142 printk("FEC: Could not allocate fec(MII) IRQ(66)!\n"); 1142 printk("FEC: Could not allocate fec(MII) IRQ(66)!\n");
1143} 1143}
1144 1144
1145static void __inline__ fec_disable_phy_intr(void) 1145static void __inline__ fec_disable_phy_intr(struct net_device *dev)
1146{ 1146{
1147 volatile unsigned long *icrp; 1147 free_irq(66, dev);
1148 icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1);
1149 *icrp = 0x08000000;
1150}
1151
1152static void __inline__ fec_phy_ack_intr(void)
1153{
1154 volatile unsigned long *icrp;
1155 /* Acknowledge the interrupt */
1156 icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1);
1157 *icrp = 0x0d000000;
1158} 1148}
1159#endif 1149#endif
1160 1150
@@ -1386,7 +1376,7 @@ mii_discover_phy(uint mii_reg, struct net_device *dev)
1386 writel(0, fep->hwp + FEC_MII_SPEED); 1376 writel(0, fep->hwp + FEC_MII_SPEED);
1387 fep->phy_speed = 0; 1377 fep->phy_speed = 0;
1388#ifdef HAVE_mii_link_interrupt 1378#ifdef HAVE_mii_link_interrupt
1389 fec_disable_phy_intr(); 1379 fec_disable_phy_intr(dev);
1390#endif 1380#endif
1391 } 1381 }
1392} 1382}
@@ -1399,8 +1389,6 @@ mii_link_interrupt(int irq, void * dev_id)
1399 struct net_device *dev = dev_id; 1389 struct net_device *dev = dev_id;
1400 struct fec_enet_private *fep = netdev_priv(dev); 1390 struct fec_enet_private *fep = netdev_priv(dev);
1401 1391
1402 fec_phy_ack_intr();
1403
1404 mii_do_cmd(dev, fep->phy->ack_int); 1392 mii_do_cmd(dev, fep->phy->ack_int);
1405 mii_do_cmd(dev, phy_cmd_relink); /* restart and display status */ 1393 mii_do_cmd(dev, phy_cmd_relink); /* restart and display status */
1406 1394