diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/fec.c | 18 |
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 | ||
1145 | static void __inline__ fec_disable_phy_intr(void) | 1145 | static 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 | |||
1152 | static 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 | ||