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 b47201874d84..29234380e6c6 100644 --- a/drivers/net/fec.c +++ b/drivers/net/fec.c | |||
@@ -1154,19 +1154,9 @@ static void __inline__ fec_request_mii_intr(struct net_device *dev) | |||
1154 | printk("FEC: Could not allocate fec(MII) IRQ(66)!\n"); | 1154 | printk("FEC: Could not allocate fec(MII) IRQ(66)!\n"); |
1155 | } | 1155 | } |
1156 | 1156 | ||
1157 | static void __inline__ fec_disable_phy_intr(void) | 1157 | static void __inline__ fec_disable_phy_intr(struct net_device *dev) |
1158 | { | 1158 | { |
1159 | volatile unsigned long *icrp; | 1159 | free_irq(66, dev); |
1160 | icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1); | ||
1161 | *icrp = 0x08000000; | ||
1162 | } | ||
1163 | |||
1164 | static void __inline__ fec_phy_ack_intr(void) | ||
1165 | { | ||
1166 | volatile unsigned long *icrp; | ||
1167 | /* Acknowledge the interrupt */ | ||
1168 | icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1); | ||
1169 | *icrp = 0x0d000000; | ||
1170 | } | 1160 | } |
1171 | #endif | 1161 | #endif |
1172 | 1162 | ||
@@ -1398,7 +1388,7 @@ mii_discover_phy(uint mii_reg, struct net_device *dev) | |||
1398 | writel(0, fep->hwp + FEC_MII_SPEED); | 1388 | writel(0, fep->hwp + FEC_MII_SPEED); |
1399 | fep->phy_speed = 0; | 1389 | fep->phy_speed = 0; |
1400 | #ifdef HAVE_mii_link_interrupt | 1390 | #ifdef HAVE_mii_link_interrupt |
1401 | fec_disable_phy_intr(); | 1391 | fec_disable_phy_intr(dev); |
1402 | #endif | 1392 | #endif |
1403 | } | 1393 | } |
1404 | } | 1394 | } |
@@ -1411,8 +1401,6 @@ mii_link_interrupt(int irq, void * dev_id) | |||
1411 | struct net_device *dev = dev_id; | 1401 | struct net_device *dev = dev_id; |
1412 | struct fec_enet_private *fep = netdev_priv(dev); | 1402 | struct fec_enet_private *fep = netdev_priv(dev); |
1413 | 1403 | ||
1414 | fec_phy_ack_intr(); | ||
1415 | |||
1416 | mii_do_cmd(dev, fep->phy->ack_int); | 1404 | mii_do_cmd(dev, fep->phy->ack_int); |
1417 | mii_do_cmd(dev, phy_cmd_relink); /* restart and display status */ | 1405 | mii_do_cmd(dev, phy_cmd_relink); /* restart and display status */ |
1418 | 1406 | ||