|
@@ -1605,6 +1605,8 @@ static void sh_eth_emac_interrupt(struct net_device *ndev)
|
|
sh_eth_write(ndev, felic_stat, ECSR); /* clear int */
|
|
sh_eth_write(ndev, felic_stat, ECSR); /* clear int */
|
|
if (felic_stat & ECSR_ICD)
|
|
if (felic_stat & ECSR_ICD)
|
|
ndev->stats.tx_carrier_errors++;
|
|
ndev->stats.tx_carrier_errors++;
|
|
|
|
+ if (felic_stat & ECSR_MPD)
|
|
|
|
+ pm_wakeup_event(&mdp->pdev->dev, 0);
|
|
if (felic_stat & ECSR_LCHNG) {
|
|
if (felic_stat & ECSR_LCHNG) {
|
|
/* Link Changed */
|
|
/* Link Changed */
|
|
if (mdp->cd->no_psr || mdp->no_ether_link)
|
|
if (mdp->cd->no_psr || mdp->no_ether_link)
|
|
@@ -1624,8 +1626,6 @@ static void sh_eth_emac_interrupt(struct net_device *ndev)
|
|
sh_eth_rcv_snd_enable(ndev);
|
|
sh_eth_rcv_snd_enable(ndev);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if (felic_stat & ECSR_MPD)
|
|
|
|
- pm_wakeup_event(&mdp->pdev->dev, 0);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/* error control function */
|
|
/* error control function */
|