aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cris/eth_v10.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-09-24 20:08:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-24 20:08:56 -0400
commit5f8fe4270e53d38421ba34c428c3b58933b48e50 (patch)
tree2148a3ba1ec842d0d0ad8f3e3eb209eb6eba673d /drivers/net/cris/eth_v10.c
parentd9fbd9a2cd5ac1b286a7d7cdb1a180ce1edaee2f (diff)
parent24924ece4482d5466ffcd0affedce63816c88e53 (diff)
Merge branch 'for-linus' of git://repo.or.cz/cris-mirror
* 'for-linus' of git://repo.or.cz/cris-mirror: CRIS: Cleanup linker script using new linker script macros. ARRAY_SIZE changes CRIS: convert to asm-generic/hardirq.h CRISv10: Don't autonegotiate if autonegotiation is off CRIS: fix defconfig build failure CRIS: add pgprot_noncached
Diffstat (limited to 'drivers/net/cris/eth_v10.c')
-rw-r--r--drivers/net/cris/eth_v10.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c
index 15c0195ebd31..a24be34a3f7a 100644
--- a/drivers/net/cris/eth_v10.c
+++ b/drivers/net/cris/eth_v10.c
@@ -768,10 +768,24 @@ e100_negotiate(struct net_device* dev)
768 768
769 e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_ADVERTISE, data); 769 e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_ADVERTISE, data);
770 770
771 /* Renegotiate with link partner */ 771 data = e100_get_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR);
772 if (autoneg_normal) { 772 if (autoneg_normal) {
773 data = e100_get_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR); 773 /* Renegotiate with link partner */
774 data |= BMCR_ANENABLE | BMCR_ANRESTART; 774 data |= BMCR_ANENABLE | BMCR_ANRESTART;
775 } else {
776 /* Don't negotiate speed or duplex */
777 data &= ~(BMCR_ANENABLE | BMCR_ANRESTART);
778
779 /* Set speed and duplex static */
780 if (current_speed_selection == 10)
781 data &= ~BMCR_SPEED100;
782 else
783 data |= BMCR_SPEED100;
784
785 if (current_duplex != full)
786 data &= ~BMCR_FULLDPLX;
787 else
788 data |= BMCR_FULLDPLX;
775 } 789 }
776 e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR, data); 790 e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR, data);
777} 791}