netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/2] r8169: allow true forced mode setting
@ 2009-05-14 21:46 Francois Romieu
  2009-05-16 12:50 ` Jean Delvare
  2009-05-19  2:25 ` David Miller
  0 siblings, 2 replies; 7+ messages in thread
From: Francois Romieu @ 2009-05-14 21:46 UTC (permalink / raw)
  To: David S. Miller
  Cc: Vincent Steenhoute, Jean Delvare, Martin Michlmayr,
	Xose Vazquez Perez, Ivan Vecera, Edward Hsu, Andrew Morton,
	netdev

Due to mostly historic reasons, including a lack of reliability
of the link handling (especially with the older 8169), the
current r8169 driver emulates forced mode setting by limiting
the advertised modes.

With this change the driver allows real 10/100 forced mode
settings on the 8169 and 8101/8102.

Original idea by Vincent Steenhoute. The RTL_GIGA_MAC_VER_03
tweak was extracted from Realtek's v6.009.00 driver.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Tested-by: Jean Delvare <jdelvare@suse.de>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
---
 drivers/net/r8169.c |  111 ++++++++++++++++++++++++++------------------------
 1 files changed, 58 insertions(+), 53 deletions(-)

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index f86bf31..81ab2f0 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -843,75 +843,80 @@ static int rtl8169_set_speed_xmii(struct net_device *dev,
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
 	void __iomem *ioaddr = tp->mmio_addr;
-	int auto_nego, giga_ctrl;
-
-	auto_nego = mdio_read(ioaddr, MII_ADVERTISE);
-	auto_nego &= ~(ADVERTISE_10HALF | ADVERTISE_10FULL |
-		       ADVERTISE_100HALF | ADVERTISE_100FULL);
-	giga_ctrl = mdio_read(ioaddr, MII_CTRL1000);
-	giga_ctrl &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF);
+	int giga_ctrl, bmcr;
 
 	if (autoneg == AUTONEG_ENABLE) {
+		int auto_nego;
+
+		auto_nego = mdio_read(ioaddr, MII_ADVERTISE);
 		auto_nego |= (ADVERTISE_10HALF | ADVERTISE_10FULL |
 			      ADVERTISE_100HALF | ADVERTISE_100FULL);
-		giga_ctrl |= ADVERTISE_1000FULL | ADVERTISE_1000HALF;
-	} else {
-		if (speed == SPEED_10)
-			auto_nego |= ADVERTISE_10HALF | ADVERTISE_10FULL;
-		else if (speed == SPEED_100)
-			auto_nego |= ADVERTISE_100HALF | ADVERTISE_100FULL;
-		else if (speed == SPEED_1000)
-			giga_ctrl |= ADVERTISE_1000FULL | ADVERTISE_1000HALF;
-
-		if (duplex == DUPLEX_HALF)
-			auto_nego &= ~(ADVERTISE_10FULL | ADVERTISE_100FULL);
-
-		if (duplex == DUPLEX_FULL)
-			auto_nego &= ~(ADVERTISE_10HALF | ADVERTISE_100HALF);
+		auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
 
-		/* This tweak comes straight from Realtek's driver. */
-		if ((speed == SPEED_100) && (duplex == DUPLEX_HALF) &&
-		    ((tp->mac_version == RTL_GIGA_MAC_VER_13) ||
-		     (tp->mac_version == RTL_GIGA_MAC_VER_16))) {
-			auto_nego = ADVERTISE_100HALF | ADVERTISE_CSMA;
-		}
-	}
+		giga_ctrl = mdio_read(ioaddr, MII_CTRL1000);
+		giga_ctrl &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF);
 
-	/* The 8100e/8101e/8102e do Fast Ethernet only. */
-	if ((tp->mac_version == RTL_GIGA_MAC_VER_07) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_08) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_09) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_10) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_13) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_14) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_15) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_16)) {
-		if ((giga_ctrl & (ADVERTISE_1000FULL | ADVERTISE_1000HALF)) &&
-		    netif_msg_link(tp)) {
+		/* The 8100e/8101e/8102e do Fast Ethernet only. */
+		if ((tp->mac_version != RTL_GIGA_MAC_VER_07) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_08) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_09) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_10) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_13) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_14) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_15) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_16)) {
+			giga_ctrl |= ADVERTISE_1000FULL | ADVERTISE_1000HALF;
+		} else if (netif_msg_link(tp)) {
 			printk(KERN_INFO "%s: PHY does not support 1000Mbps.\n",
 			       dev->name);
 		}
-		giga_ctrl &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF);
-	}
 
-	auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
+		bmcr = BMCR_ANENABLE | BMCR_ANRESTART;
+
+		if ((tp->mac_version == RTL_GIGA_MAC_VER_11) ||
+		    (tp->mac_version == RTL_GIGA_MAC_VER_12) ||
+		    (tp->mac_version >= RTL_GIGA_MAC_VER_17)) {
+			/*
+			 * Wake up the PHY.
+			 * Vendor specific (0x1f) and reserved (0x0e) MII
+			 * registers.
+			 */
+			mdio_write(ioaddr, 0x1f, 0x0000);
+			mdio_write(ioaddr, 0x0e, 0x0000);
+		}
+
+		mdio_write(ioaddr, MII_ADVERTISE, auto_nego);
+		mdio_write(ioaddr, MII_CTRL1000, giga_ctrl);
+	} else {
+		giga_ctrl = 0;
+
+		if (speed == SPEED_10)
+			bmcr = 0;
+		else if (speed == SPEED_100)
+			bmcr = BMCR_SPEED100;
+		else
+			return -EINVAL;
+
+		if (duplex == DUPLEX_FULL)
+			bmcr |= BMCR_FULLDPLX;
 
-	if ((tp->mac_version == RTL_GIGA_MAC_VER_11) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_12) ||
-	    (tp->mac_version >= RTL_GIGA_MAC_VER_17)) {
-		/*
-		 * Wake up the PHY.
-		 * Vendor specific (0x1f) and reserved (0x0e) MII registers.
-		 */
 		mdio_write(ioaddr, 0x1f, 0x0000);
-		mdio_write(ioaddr, 0x0e, 0x0000);
 	}
 
 	tp->phy_1000_ctrl_reg = giga_ctrl;
 
-	mdio_write(ioaddr, MII_ADVERTISE, auto_nego);
-	mdio_write(ioaddr, MII_CTRL1000, giga_ctrl);
-	mdio_write(ioaddr, MII_BMCR, BMCR_ANENABLE | BMCR_ANRESTART);
+	mdio_write(ioaddr, MII_BMCR, bmcr);
+
+	if (tp->mac_version <= RTL_GIGA_MAC_VER_03) {
+		if ((speed == SPEED_100) && (autoneg != AUTONEG_ENABLE)) {
+			mdio_write(ioaddr, 0x17, 0x2138);
+			mdio_write(ioaddr, 0x0e, 0x0260);
+		} else {
+			mdio_write(ioaddr, 0x17, 0x2108);
+			mdio_write(ioaddr, 0x0e, 0x0000);
+		}
+	}
+
 	return 0;
 }
 
-- 
1.6.0.6


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] r8169: allow true forced mode setting
  2009-05-14 21:46 [PATCH 2/2] r8169: allow true forced mode setting Francois Romieu
@ 2009-05-16 12:50 ` Jean Delvare
  2009-05-16 19:57   ` Xose Vazquez Perez
  2009-05-17 10:34   ` Francois Romieu
  2009-05-19  2:25 ` David Miller
  1 sibling, 2 replies; 7+ messages in thread
From: Jean Delvare @ 2009-05-16 12:50 UTC (permalink / raw)
  To: Francois Romieu
  Cc: David S. Miller, Vincent Steenhoute, Martin Michlmayr,
	Xose Vazquez Perez, Ivan Vecera, Edward Hsu, Andrew Morton,
	netdev

Hi François,

Le jeudi 14 mai 2009, Francois Romieu a écrit :
> Due to mostly historic reasons, including a lack of reliability
> of the link handling (especially with the older 8169), the
> current r8169 driver emulates forced mode setting by limiting
> the advertised modes.
> 
> With this change the driver allows real 10/100 forced mode
> settings on the 8169 and 8101/8102.
> 
> Original idea by Vincent Steenhoute. The RTL_GIGA_MAC_VER_03
> tweak was extracted from Realtek's v6.009.00 driver.

If I read the code correctly, Realtek's driver (v6.010.00) only
applies the quirk for RTL8169S and RTL8110S chips (what I have) and
not the original RTL8169. Your code applies the quirk to all 3
chips. Is this on purpose? Or am I missing something?

> (...)
> +	if (tp->mac_version <= RTL_GIGA_MAC_VER_03) {
> +		if ((speed == SPEED_100) && (autoneg != AUTONEG_ENABLE)) {
> +			mdio_write(ioaddr, 0x17, 0x2138);
> +			mdio_write(ioaddr, 0x0e, 0x0260);
> +		} else {
> +			mdio_write(ioaddr, 0x17, 0x2108);
> +			mdio_write(ioaddr, 0x0e, 0x0000);
> +		}
> +	}
> +
>  	return 0;
>  }

Thanks,
-- 
Jean Delvare
Suse L3

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] r8169: allow true forced mode setting
  2009-05-16 12:50 ` Jean Delvare
@ 2009-05-16 19:57   ` Xose Vazquez Perez
  2009-05-17 10:34   ` Francois Romieu
  1 sibling, 0 replies; 7+ messages in thread
From: Xose Vazquez Perez @ 2009-05-16 19:57 UTC (permalink / raw)
  To: Jean Delvare
  Cc: Francois Romieu, David S. Miller, Vincent Steenhoute,
	Martin Michlmayr, Ivan Vecera, Edward Hsu, Andrew Morton, netdev

zOn 05/16/2009 02:50 PM, Jean Delvare wrote:

> If I read the code correctly, Realtek's driver (v6.010.00) only
> applies the quirk for RTL8169S and RTL8110S chips (what I have) and
> not the original RTL8169. Your code applies the quirk to all 3
> chips. Is this on purpose? Or am I missing something?

For reference, there it's the latest source code of Realtek drivers 
r8101/r8168/r8169 :

ftp://WebUser:DAx7h9V@202.65.194.212/cn/nic/r8101-1.012.00.tar.bz2
ftp://WebUser:DAx7h9V@202.65.194.212/cn/nic/r8168-8.012.00.tar.bz2
ftp://WebUser:DAx7h9V@202.65.194.212/cn/nic/r8169-6.010.00.tar.bz2

>> (...)
>> +	if (tp->mac_version <= RTL_GIGA_MAC_VER_03) {
>> +		if ((speed == SPEED_100) && (autoneg != AUTONEG_ENABLE)) {
>> +			mdio_write(ioaddr, 0x17, 0x2138);
>> +			mdio_write(ioaddr, 0x0e, 0x0260);
>> +		} else {
>> +			mdio_write(ioaddr, 0x17, 0x2108);
>> +			mdio_write(ioaddr, 0x0e, 0x0000);
>> +		}
>> +	}
>> +
>>  	return 0;
>>  }

-thanks-

regards,

-- 
Polycommander, Erkowit, Urquiola, Andros Patria, Cason, Aegean Sea, Prestige, ...

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] r8169: allow true forced mode setting
  2009-05-16 12:50 ` Jean Delvare
  2009-05-16 19:57   ` Xose Vazquez Perez
@ 2009-05-17 10:34   ` Francois Romieu
  1 sibling, 0 replies; 7+ messages in thread
From: Francois Romieu @ 2009-05-17 10:34 UTC (permalink / raw)
  To: Jean Delvare
  Cc: David S. Miller, Vincent Steenhoute, Martin Michlmayr,
	Xose Vazquez Perez, Ivan Vecera, Edward Hsu, Andrew Morton,
	netdev

Jean Delvare <jdelvare@suse.de> :
[...]
> If I read the code correctly, Realtek's driver (v6.010.00) only
> applies the quirk for RTL8169S and RTL8110S chips (what I have) and
> not the original RTL8169. Your code applies the quirk to all 3
> chips. Is this on purpose? Or am I missing something?

It is on purpose but it is not necessarily conservative enough.

I'll resend it.

Thanks.

-- 
Ueimor

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] r8169: allow true forced mode setting
  2009-05-14 21:46 [PATCH 2/2] r8169: allow true forced mode setting Francois Romieu
  2009-05-16 12:50 ` Jean Delvare
@ 2009-05-19  2:25 ` David Miller
  2009-05-19 20:46   ` Francois Romieu
  1 sibling, 1 reply; 7+ messages in thread
From: David Miller @ 2009-05-19  2:25 UTC (permalink / raw)
  To: romieu
  Cc: vsteenhoute, jdelvare, tbm, xose.vazquez, ivecera, edward_hsu,
	akpm, netdev

From: Francois Romieu <romieu@fr.zoreil.com>
Date: Thu, 14 May 2009 23:46:05 +0200

> Due to mostly historic reasons, including a lack of reliability
> of the link handling (especially with the older 8169), the
> current r8169 driver emulates forced mode setting by limiting
> the advertised modes.
> 
> With this change the driver allows real 10/100 forced mode
> settings on the 8169 and 8101/8102.
> 
> Original idea by Vincent Steenhoute. The RTL_GIGA_MAC_VER_03
> tweak was extracted from Realtek's v6.009.00 driver.
> 
> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
> Tested-by: Jean Delvare <jdelvare@suse.de>
> Cc: Edward Hsu <edward_hsu@realtek.com.tw>

Francois, you say later in this thread that you have a new
version of this patch coming.  Is that coming soon?

I'm holding off on the first one until you submit the new
version of this second one.

Thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/2] r8169: allow true forced mode setting
  2009-05-19  2:25 ` David Miller
@ 2009-05-19 20:46   ` Francois Romieu
  2009-05-19 21:32     ` David Miller
  0 siblings, 1 reply; 7+ messages in thread
From: Francois Romieu @ 2009-05-19 20:46 UTC (permalink / raw)
  To: David Miller
  Cc: vsteenhoute, jdelvare, tbm, xose.vazquez, ivecera, edward_hsu,
	akpm, netdev

Due to mostly historic reasons, including a lack of reliability
of the link handling (especially with the older 8169), the
current r8169 driver emulates forced mode setting by limiting
the advertised modes.

With this change the driver allows real 10/100 forced mode
settings on the 8169 and 8101/8102.

Original idea by Vincent Steenhoute. The RTL_GIGA_MAC_VER_03
tweak was extracted from Realtek's r8169 v6.010.00 driver.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Tested-by: Jean Delvare <jdelvare@suse.de>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
---
 drivers/net/r8169.c |  112 +++++++++++++++++++++++++++------------------------
 1 files changed, 59 insertions(+), 53 deletions(-)

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index f86bf31..30d8867 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -843,75 +843,81 @@ static int rtl8169_set_speed_xmii(struct net_device *dev,
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
 	void __iomem *ioaddr = tp->mmio_addr;
-	int auto_nego, giga_ctrl;
-
-	auto_nego = mdio_read(ioaddr, MII_ADVERTISE);
-	auto_nego &= ~(ADVERTISE_10HALF | ADVERTISE_10FULL |
-		       ADVERTISE_100HALF | ADVERTISE_100FULL);
-	giga_ctrl = mdio_read(ioaddr, MII_CTRL1000);
-	giga_ctrl &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF);
+	int giga_ctrl, bmcr;
 
 	if (autoneg == AUTONEG_ENABLE) {
+		int auto_nego;
+
+		auto_nego = mdio_read(ioaddr, MII_ADVERTISE);
 		auto_nego |= (ADVERTISE_10HALF | ADVERTISE_10FULL |
 			      ADVERTISE_100HALF | ADVERTISE_100FULL);
-		giga_ctrl |= ADVERTISE_1000FULL | ADVERTISE_1000HALF;
-	} else {
-		if (speed == SPEED_10)
-			auto_nego |= ADVERTISE_10HALF | ADVERTISE_10FULL;
-		else if (speed == SPEED_100)
-			auto_nego |= ADVERTISE_100HALF | ADVERTISE_100FULL;
-		else if (speed == SPEED_1000)
-			giga_ctrl |= ADVERTISE_1000FULL | ADVERTISE_1000HALF;
-
-		if (duplex == DUPLEX_HALF)
-			auto_nego &= ~(ADVERTISE_10FULL | ADVERTISE_100FULL);
-
-		if (duplex == DUPLEX_FULL)
-			auto_nego &= ~(ADVERTISE_10HALF | ADVERTISE_100HALF);
+		auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
 
-		/* This tweak comes straight from Realtek's driver. */
-		if ((speed == SPEED_100) && (duplex == DUPLEX_HALF) &&
-		    ((tp->mac_version == RTL_GIGA_MAC_VER_13) ||
-		     (tp->mac_version == RTL_GIGA_MAC_VER_16))) {
-			auto_nego = ADVERTISE_100HALF | ADVERTISE_CSMA;
-		}
-	}
+		giga_ctrl = mdio_read(ioaddr, MII_CTRL1000);
+		giga_ctrl &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF);
 
-	/* The 8100e/8101e/8102e do Fast Ethernet only. */
-	if ((tp->mac_version == RTL_GIGA_MAC_VER_07) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_08) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_09) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_10) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_13) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_14) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_15) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_16)) {
-		if ((giga_ctrl & (ADVERTISE_1000FULL | ADVERTISE_1000HALF)) &&
-		    netif_msg_link(tp)) {
+		/* The 8100e/8101e/8102e do Fast Ethernet only. */
+		if ((tp->mac_version != RTL_GIGA_MAC_VER_07) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_08) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_09) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_10) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_13) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_14) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_15) &&
+		    (tp->mac_version != RTL_GIGA_MAC_VER_16)) {
+			giga_ctrl |= ADVERTISE_1000FULL | ADVERTISE_1000HALF;
+		} else if (netif_msg_link(tp)) {
 			printk(KERN_INFO "%s: PHY does not support 1000Mbps.\n",
 			       dev->name);
 		}
-		giga_ctrl &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF);
-	}
 
-	auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
+		bmcr = BMCR_ANENABLE | BMCR_ANRESTART;
+
+		if ((tp->mac_version == RTL_GIGA_MAC_VER_11) ||
+		    (tp->mac_version == RTL_GIGA_MAC_VER_12) ||
+		    (tp->mac_version >= RTL_GIGA_MAC_VER_17)) {
+			/*
+			 * Wake up the PHY.
+			 * Vendor specific (0x1f) and reserved (0x0e) MII
+			 * registers.
+			 */
+			mdio_write(ioaddr, 0x1f, 0x0000);
+			mdio_write(ioaddr, 0x0e, 0x0000);
+		}
+
+		mdio_write(ioaddr, MII_ADVERTISE, auto_nego);
+		mdio_write(ioaddr, MII_CTRL1000, giga_ctrl);
+	} else {
+		giga_ctrl = 0;
+
+		if (speed == SPEED_10)
+			bmcr = 0;
+		else if (speed == SPEED_100)
+			bmcr = BMCR_SPEED100;
+		else
+			return -EINVAL;
+
+		if (duplex == DUPLEX_FULL)
+			bmcr |= BMCR_FULLDPLX;
 
-	if ((tp->mac_version == RTL_GIGA_MAC_VER_11) ||
-	    (tp->mac_version == RTL_GIGA_MAC_VER_12) ||
-	    (tp->mac_version >= RTL_GIGA_MAC_VER_17)) {
-		/*
-		 * Wake up the PHY.
-		 * Vendor specific (0x1f) and reserved (0x0e) MII registers.
-		 */
 		mdio_write(ioaddr, 0x1f, 0x0000);
-		mdio_write(ioaddr, 0x0e, 0x0000);
 	}
 
 	tp->phy_1000_ctrl_reg = giga_ctrl;
 
-	mdio_write(ioaddr, MII_ADVERTISE, auto_nego);
-	mdio_write(ioaddr, MII_CTRL1000, giga_ctrl);
-	mdio_write(ioaddr, MII_BMCR, BMCR_ANENABLE | BMCR_ANRESTART);
+	mdio_write(ioaddr, MII_BMCR, bmcr);
+
+	if ((tp->mac_version == RTL_GIGA_MAC_VER_02) ||
+	    (tp->mac_version == RTL_GIGA_MAC_VER_03)) {
+		if ((speed == SPEED_100) && (autoneg != AUTONEG_ENABLE)) {
+			mdio_write(ioaddr, 0x17, 0x2138);
+			mdio_write(ioaddr, 0x0e, 0x0260);
+		} else {
+			mdio_write(ioaddr, 0x17, 0x2108);
+			mdio_write(ioaddr, 0x0e, 0x0000);
+		}
+	}
+
 	return 0;
 }
 
-- 
1.6.0.6


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] r8169: allow true forced mode setting
  2009-05-19 20:46   ` Francois Romieu
@ 2009-05-19 21:32     ` David Miller
  0 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2009-05-19 21:32 UTC (permalink / raw)
  To: romieu
  Cc: vsteenhoute, jdelvare, tbm, xose.vazquez, ivecera, edward_hsu,
	akpm, netdev

From: Francois Romieu <romieu@fr.zoreil.com>
Date: Tue, 19 May 2009 22:46:48 +0200

> Due to mostly historic reasons, including a lack of reliability
> of the link handling (especially with the older 8169), the
> current r8169 driver emulates forced mode setting by limiting
> the advertised modes.
> 
> With this change the driver allows real 10/100 forced mode
> settings on the 8169 and 8101/8102.
> 
> Original idea by Vincent Steenhoute. The RTL_GIGA_MAC_VER_03
> tweak was extracted from Realtek's r8169 v6.010.00 driver.
> 
> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
> Tested-by: Jean Delvare <jdelvare@suse.de>

Applied to net-next-2.6, thanks!

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-05-19 21:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-14 21:46 [PATCH 2/2] r8169: allow true forced mode setting Francois Romieu
2009-05-16 12:50 ` Jean Delvare
2009-05-16 19:57   ` Xose Vazquez Perez
2009-05-17 10:34   ` Francois Romieu
2009-05-19  2:25 ` David Miller
2009-05-19 20:46   ` Francois Romieu
2009-05-19 21:32     ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).