netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch
@ 2007-08-06 22:16 Francois Romieu
  2007-08-06 22:21 ` [PATCH 1/2] r8169: PHY power-on fix Francois Romieu
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Francois Romieu @ 2007-08-06 22:16 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev, akpm

Please pull from branch 'r8169-for-jeff-20070806' in repository

git://electric-eye.fr.zoreil.com/home/romieu/linux-2.6.git r8169-for-jeff-20070806

to get the changes below.

Distance from 'upstream-fixes' (c196d80f994ef4ffefd5a7c62e3f42bd75d538bc)
-------------------------------------------------------------------------

313b0305b5a1e7e0fb39383befbf79558ce68a9c
2584fbc3a61897de5eddd56b39a4fa9cd074eca2

Diffstat
--------

 drivers/net/r8169.c |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

Shortlog
--------

Francois Romieu (1):
      r8169: avoid needless NAPI poll scheduling

Roger So (1):
      r8169: PHY power-on fix

Patch
-----

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index bb6896a..631e55d 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -725,6 +725,12 @@ static int rtl8169_set_speed_xmii(struct net_device *dev,
 
 	auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
 
+	if (tp->mac_version == RTL_GIGA_MAC_VER_12) {
+		/* Vendor specific (0x1f) and reserved (0x0e) MII registers. */
+		mdio_write(ioaddr, 0x1f, 0x0000);
+		mdio_write(ioaddr, 0x0e, 0x0000);
+	}
+
 	tp->phy_auto_nego_reg = auto_nego;
 	tp->phy_1000_ctrl_reg = giga_ctrl;
 
@@ -2761,14 +2767,16 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 			rtl8169_check_link_status(dev, tp, ioaddr);
 
 #ifdef CONFIG_R8169_NAPI
-		RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
-		tp->intr_mask = ~tp->napi_event;
-
-		if (likely(netif_rx_schedule_prep(dev)))
-			__netif_rx_schedule(dev);
-		else if (netif_msg_intr(tp)) {
-			printk(KERN_INFO "%s: interrupt %04x taken in poll\n",
-			       dev->name, status);
+		if (status & tp->napi_event) {
+			RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
+			tp->intr_mask = ~tp->napi_event;
+
+			if (likely(netif_rx_schedule_prep(dev)))
+				__netif_rx_schedule(dev);
+			else if (netif_msg_intr(tp)) {
+				printk(KERN_INFO "%s: interrupt %04x in poll\n",
+				       dev->name, status);
+			}
 		}
 		break;
 #else
-- 
Ueimor

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

* [PATCH 1/2] r8169: PHY power-on fix
  2007-08-06 22:16 [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch Francois Romieu
@ 2007-08-06 22:21 ` Francois Romieu
  2007-08-06 22:22 ` [PATCH 2/2] r8169: avoid needless NAPI poll scheduling Francois Romieu
  2007-08-07 21:28 ` [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch Jeff Garzik
  2 siblings, 0 replies; 4+ messages in thread
From: Francois Romieu @ 2007-08-06 22:21 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev, akpm, Roger So, Edward Hsu

Fix extracted from Realtek's driver (8.002.00/20070713) for the PHY
attached to 8111/8168b chipsets.

The check against mac_version is just usual paranoia during the bugfix
period of the kernel cycle. -- FR

Tested on Asus M2A-VM motherboard by Roger So.
No regression on my Asrock 945G DVI either (built-in 8168 + 2x8169).

Signed-off-by: Roger So <roger.so@gmail.com>
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
---
 drivers/net/r8169.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index bb6896a..ec4f545 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -725,6 +725,12 @@ static int rtl8169_set_speed_xmii(struct net_device *dev,
 
 	auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
 
+	if (tp->mac_version == RTL_GIGA_MAC_VER_12) {
+		/* Vendor specific (0x1f) and reserved (0x0e) MII registers. */
+		mdio_write(ioaddr, 0x1f, 0x0000);
+		mdio_write(ioaddr, 0x0e, 0x0000);
+	}
+
 	tp->phy_auto_nego_reg = auto_nego;
 	tp->phy_1000_ctrl_reg = giga_ctrl;
 
-- 
1.4.4.2


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

* [PATCH 2/2] r8169: avoid needless NAPI poll scheduling
  2007-08-06 22:16 [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch Francois Romieu
  2007-08-06 22:21 ` [PATCH 1/2] r8169: PHY power-on fix Francois Romieu
@ 2007-08-06 22:22 ` Francois Romieu
  2007-08-07 21:28 ` [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch Jeff Garzik
  2 siblings, 0 replies; 4+ messages in thread
From: Francois Romieu @ 2007-08-06 22:22 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev, akpm, Edward Hsu, Andy Gospodarek

Theory  : though needless, it should not have hurt.
Practice: it does not play nice with DEBUG_SHIRQ + LOCKDEP + UP
(see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=242572).

The patch makes sense in itself but I should dig why it has an effect
on #242572 (assuming that NAPI do not change in a near future).

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
---
 drivers/net/r8169.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index ec4f545..631e55d 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2767,14 +2767,16 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 			rtl8169_check_link_status(dev, tp, ioaddr);
 
 #ifdef CONFIG_R8169_NAPI
-		RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
-		tp->intr_mask = ~tp->napi_event;
-
-		if (likely(netif_rx_schedule_prep(dev)))
-			__netif_rx_schedule(dev);
-		else if (netif_msg_intr(tp)) {
-			printk(KERN_INFO "%s: interrupt %04x taken in poll\n",
-			       dev->name, status);
+		if (status & tp->napi_event) {
+			RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
+			tp->intr_mask = ~tp->napi_event;
+
+			if (likely(netif_rx_schedule_prep(dev)))
+				__netif_rx_schedule(dev);
+			else if (netif_msg_intr(tp)) {
+				printk(KERN_INFO "%s: interrupt %04x in poll\n",
+				       dev->name, status);
+			}
 		}
 		break;
 #else
-- 
1.4.4.2


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

* Re: [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch
  2007-08-06 22:16 [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch Francois Romieu
  2007-08-06 22:21 ` [PATCH 1/2] r8169: PHY power-on fix Francois Romieu
  2007-08-06 22:22 ` [PATCH 2/2] r8169: avoid needless NAPI poll scheduling Francois Romieu
@ 2007-08-07 21:28 ` Jeff Garzik
  2 siblings, 0 replies; 4+ messages in thread
From: Jeff Garzik @ 2007-08-07 21:28 UTC (permalink / raw)
  To: Francois Romieu; +Cc: netdev, akpm

Francois Romieu wrote:
> Please pull from branch 'r8169-for-jeff-20070806' in repository
> 
> git://electric-eye.fr.zoreil.com/home/romieu/linux-2.6.git r8169-for-jeff-20070806
> 
> to get the changes below.
> 
> Distance from 'upstream-fixes' (c196d80f994ef4ffefd5a7c62e3f42bd75d538bc)
> -------------------------------------------------------------------------
> 
> 313b0305b5a1e7e0fb39383befbf79558ce68a9c
> 2584fbc3a61897de5eddd56b39a4fa9cd074eca2
> 
> Diffstat
> --------
> 
>  drivers/net/r8169.c |   24 ++++++++++++++++--------
>  1 files changed, 16 insertions(+), 8 deletions(-)
> 
> Shortlog
> --------
> 
> Francois Romieu (1):
>       r8169: avoid needless NAPI poll scheduling
> 
> Roger So (1):
>       r8169: PHY power-on fix

pulled



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

end of thread, other threads:[~2007-08-07 21:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-06 22:16 [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch Francois Romieu
2007-08-06 22:21 ` [PATCH 1/2] r8169: PHY power-on fix Francois Romieu
2007-08-06 22:22 ` [PATCH 2/2] r8169: avoid needless NAPI poll scheduling Francois Romieu
2007-08-07 21:28 ` [PATCH 0/2] r8169: pull request for 'r8169-for-jeff-20070806' branch Jeff Garzik

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).