3c59x.c patch to 2.6.18 fixing Wake on Lan (WOL)

2007-01-15 Thread Harry Coin

The 3c59x.c in kernel 2.6.18 (and as I see later ones too) attempts
to enable PME from the D0 state. The PME config space on Dell Optiplexs
for this chip has a zero in the capabilities as it doesn't 'wake from d0'.

So the pci_wake call fails, its result is not tested, so no error is reported.

The routine changes the wake request from 0 to D3_hot.  This fix
causes wake on lan (WOL) to work properly on older Dell Optiplex models.

Harry Coin
Bettendorf, Iowa


--- drivers-orig/3c59x.c2007-01-15 00:03:52.0 -0600
+++ drivers-fixed/3c59x.c   2007-01-15 00:46:37.0 -0600
@@ -3090,8 +3090,8 @@
 /* Set Wake-On-LAN mode and put the board into D3 (power-down) state. */
 static void acpi_set_WOL(struct net_device *dev)
 {
-   struct vortex_private *vp = netdev_priv(dev);
-   void __iomem *ioaddr = vp->ioaddr;
+  struct vortex_private *vp = netdev_priv(dev);
+  void __iomem *ioaddr = vp->ioaddr;

if (vp->enable_wol) {
/* Power up on: 1==Downloaded Filter, 2==Magic Packets, 
4==Link Status. */

@@ -3101,7 +3101,7 @@
iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, 
ioaddr + EL3_CMD);

iowrite16(RxEnable, ioaddr + EL3_CMD);

-   pci_enable_wake(VORTEX_PCI(vp), 0, 1);
+   pci_enable_wake(VORTEX_PCI(vp),PCI_D3hot,1);

/* Change the power state to D3; RxEnable doesn't take 
effect. */

pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


3c59x.c patch to 2.6.18 fixing Wake on Lan (WOL)

2007-01-15 Thread Harry Coin

Hello all.

The 3c59x.c in kernel 2.6.18 (and as I see later ones too) attempts
to enable PME from the already awake D0 state. The PME config space on Dell 
Optiplexs

for this chip has a zero in the capabilities for this bit-- no 'wake from d0'.

The pci_enable_wake in 2.6.18 tests the capabilities before enabling PME,
so the pci_wake call fails, its result is not tested, so no error is reported.

The routine changes the wake request from 0 to D3_hot.  This fix
causes wake on lan (WOL) to work properly on older Dell Optiplex models.

Kindly overlook newbie mistakes.  Thank you.

Harry Coin
Bettendorf, Iowa


--- drivers-orig/3c59x.c2007-01-15 00:03:52.0 -0600
+++ drivers-fixed/3c59x.c   2007-01-15 00:46:37.0 -0600
@@ -3090,8 +3090,8 @@
 /* Set Wake-On-LAN mode and put the board into D3 (power-down) state. */
 static void acpi_set_WOL(struct net_device *dev)
 {
-   struct vortex_private *vp = netdev_priv(dev);
-   void __iomem *ioaddr = vp->ioaddr;
+  struct vortex_private *vp = netdev_priv(dev);
+  void __iomem *ioaddr = vp->ioaddr;

if (vp->enable_wol) {
/* Power up on: 1==Downloaded Filter, 2==Magic Packets, 
4==Link Status. */

@@ -3101,7 +3101,7 @@
iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, 
ioaddr + EL3_CMD);

iowrite16(RxEnable, ioaddr + EL3_CMD);

-   pci_enable_wake(VORTEX_PCI(vp), 0, 1);
+   pci_enable_wake(VORTEX_PCI(vp),PCI_D3hot,1);

/* Change the power state to D3; RxEnable doesn't take 
effect. */

pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 3c59x.c patch to 2.6.18 fixing Wake on Lan (WOL)

2007-01-15 Thread Dan Williams
On Mon, 2007-01-15 at 09:12 -0600, Harry Coin wrote:
> Hello all.
> 
> The 3c59x.c in kernel 2.6.18 (and as I see later ones too) attempts
> to enable PME from the already awake D0 state. The PME config space on Dell 
> Optiplexs
> for this chip has a zero in the capabilities for this bit-- no 'wake from d0'.
> 
> The pci_enable_wake in 2.6.18 tests the capabilities before enabling PME,
> so the pci_wake call fails, its result is not tested, so no error is reported.
> 
> The routine changes the wake request from 0 to D3_hot.  This fix
> causes wake on lan (WOL) to work properly on older Dell Optiplex models.
> 
> Kindly overlook newbie mistakes.  Thank you.

You'll want to include a line like:

Signed-off-by: Harry Coin 

which signifies that you are legally able to contribute the attached
patch under the GPL license.  Do this right before the start of the
patch (where you put your signature in the previous mail).

Dan

> Harry Coin
> Bettendorf, Iowa
> 
> 
> --- drivers-orig/3c59x.c2007-01-15 00:03:52.0 -0600
> +++ drivers-fixed/3c59x.c   2007-01-15 00:46:37.0 -0600
> @@ -3090,8 +3090,8 @@
>   /* Set Wake-On-LAN mode and put the board into D3 (power-down) state. */
>   static void acpi_set_WOL(struct net_device *dev)
>   {
> -   struct vortex_private *vp = netdev_priv(dev);
> -   void __iomem *ioaddr = vp->ioaddr;
> +  struct vortex_private *vp = netdev_priv(dev);
> +  void __iomem *ioaddr = vp->ioaddr;
> 
>  if (vp->enable_wol) {
>  /* Power up on: 1==Downloaded Filter, 2==Magic Packets, 
> 4==Link Status. */
> @@ -3101,7 +3101,7 @@
>  iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, 
> ioaddr + EL3_CMD);
>  iowrite16(RxEnable, ioaddr + EL3_CMD);
> 
> -   pci_enable_wake(VORTEX_PCI(vp), 0, 1);
> +   pci_enable_wake(VORTEX_PCI(vp),PCI_D3hot,1);
> 
>  /* Change the power state to D3; RxEnable doesn't take 
> effect. */
>  pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 3c59x.c patch to 2.6.18 fixing Wake on Lan (WOL)

2007-01-15 Thread Harry Coin

At 11:00 AM 1/15/2007 -0500, Dan Williams wrote:

On Mon, 2007-01-15 at 09:12 -0600, Harry Coin wrote:
> Hello all.
>
> The 3c59x.c in kernel 2.6.18 (and as I see later ones too) attempts
> to enable PME from the already awake D0 state. The PME config space on 
Dell

> Optiplexs
> for this chip has a zero in the capabilities for this bit-- no 'wake 
from d0'.

>
> The pci_enable_wake in 2.6.18 tests the capabilities before enabling PME,
> so the pci_wake call fails, its result is not tested, so no error is 
reported.

>
> The routine changes the wake request from 0 to D3_hot.  This fix
> causes wake on lan (WOL) to work properly on older Dell Optiplex models.
>
> Kindly overlook newbie mistakes.  Thank you.

You'll want to include a line like:

Signed-off-by: Harry Coin 

which signifies that you are legally able to contribute the attached
patch under the GPL license.  Do this right before the start of the
patch (where you put your signature in the previous mail).

Dan


 Thank you.  I've added it to a repeat of the original posting copied below.


>
>
> --- drivers-orig/3c59x.c2007-01-15 00:03:52.0 -0600
> +++ drivers-fixed/3c59x.c   2007-01-15 00:46:37.0 -0600
> @@ -3090,8 +3090,8 @@
>   /* Set Wake-On-LAN mode and put the board into D3 (power-down) state. */
>   static void acpi_set_WOL(struct net_device *dev)
>   {
> -   struct vortex_private *vp = netdev_priv(dev);
> -   void __iomem *ioaddr = vp->ioaddr;
> +  struct vortex_private *vp = netdev_priv(dev);
> +  void __iomem *ioaddr = vp->ioaddr;
>
>  if (vp->enable_wol) {
>  /* Power up on: 1==Downloaded Filter, 2==Magic Packets,
> 4==Link Status. */
> @@ -3101,7 +3101,7 @@
>  iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast,
> ioaddr + EL3_CMD);
>  iowrite16(RxEnable, ioaddr + EL3_CMD);
>
> -   pci_enable_wake(VORTEX_PCI(vp), 0, 1);
> +   pci_enable_wake(VORTEX_PCI(vp),PCI_D3hot,1);
>
>  /* Change the power state to D3; RxEnable doesn't take
> effect. */
>  pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);
>
> Harry Coin
> Bettendorf, Iowa

Signed-off-by: Harry Coin [EMAIL PROTECTED]


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html