aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sh_eth.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sh_eth.c')
-rw-r--r--drivers/net/sh_eth.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index 4c4dcbf19026..f49d0800c1d1 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -772,13 +772,15 @@ static void sh_eth_error(struct net_device *ndev, int intr_status)
772 mdp->stats.tx_carrier_errors++; 772 mdp->stats.tx_carrier_errors++;
773 if (felic_stat & ECSR_LCHNG) { 773 if (felic_stat & ECSR_LCHNG) {
774 /* Link Changed */ 774 /* Link Changed */
775 if (mdp->cd->no_psr) { 775 if (mdp->cd->no_psr || mdp->no_ether_link) {
776 if (mdp->link == PHY_DOWN) 776 if (mdp->link == PHY_DOWN)
777 link_stat = 0; 777 link_stat = 0;
778 else 778 else
779 link_stat = PHY_ST_LINK; 779 link_stat = PHY_ST_LINK;
780 } else { 780 } else {
781 link_stat = (ctrl_inl(ioaddr + PSR)); 781 link_stat = (ctrl_inl(ioaddr + PSR));
782 if (mdp->ether_link_active_low)
783 link_stat = ~link_stat;
782 } 784 }
783 if (!(link_stat & PHY_ST_LINK)) { 785 if (!(link_stat & PHY_ST_LINK)) {
784 /* Link Down : disable tx and rx */ 786 /* Link Down : disable tx and rx */
@@ -1410,6 +1412,8 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
1410 mdp->phy_id = pd->phy; 1412 mdp->phy_id = pd->phy;
1411 /* EDMAC endian */ 1413 /* EDMAC endian */
1412 mdp->edmac_endian = pd->edmac_endian; 1414 mdp->edmac_endian = pd->edmac_endian;
1415 mdp->no_ether_link = pd->no_ether_link;
1416 mdp->ether_link_active_low = pd->ether_link_active_low;
1413 1417
1414 /* set cpu data */ 1418 /* set cpu data */
1415 mdp->cd = &sh_eth_my_cpu_data; 1419 mdp->cd = &sh_eth_my_cpu_data;