Message ID | 200810022339.34025.rjw@sisk.pl |
---|---|
State | Accepted, archived |
Delegated to: | Jeff Garzik |
Headers | show |
On Thu, 2 Oct 2008 23:39:33 +0200 "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > From: Rafael J. Wysocki <rjw@sisk.pl> > > sky2: Fix recent WOL regression > > Since dev->power.should_wakeup bit is used by the PCI core to > decide whether the device should wake up the system from sleep > states, set/unset this bit whenever WOL is enabled/disabled using > sky2_set_wol() (this fixes a regression from 2.6.26 on the Tino's > machine). > > Remove an open-coded reference to the standard PCI PM registers that > is not used any more. > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> > Reported-by: Tino Keitel <tino.keitel@gmx.de> > --- Acked-by: Stephen Hemminger <shemminger@vyatta.com> Thanks for fixing this. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Friday, 3 of October 2008, Stephen Hemminger wrote: > On Thu, 2 Oct 2008 23:39:33 +0200 > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > > From: Rafael J. Wysocki <rjw@sisk.pl> > > > > sky2: Fix recent WOL regression > > > > Since dev->power.should_wakeup bit is used by the PCI core to > > decide whether the device should wake up the system from sleep > > states, set/unset this bit whenever WOL is enabled/disabled using > > sky2_set_wol() (this fixes a regression from 2.6.26 on the Tino's > > machine). > > > > Remove an open-coded reference to the standard PCI PM registers that > > is not used any more. > > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> > > Reported-by: Tino Keitel <tino.keitel@gmx.de> > > --- > > Acked-by: Stephen Hemminger <shemminger@vyatta.com> > > Thanks for fixing this. Can you please include this patch into your next push for Jeff? It seems to have been overlooked. Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: "Rafael J. Wysocki" <rjw@sisk.pl> Date: Thu, 9 Oct 2008 00:55:55 +0200 > On Friday, 3 of October 2008, Stephen Hemminger wrote: > > On Thu, 2 Oct 2008 23:39:33 +0200 > > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > > > > From: Rafael J. Wysocki <rjw@sisk.pl> > > > > > > sky2: Fix recent WOL regression > > > > > > Since dev->power.should_wakeup bit is used by the PCI core to > > > decide whether the device should wake up the system from sleep > > > states, set/unset this bit whenever WOL is enabled/disabled using > > > sky2_set_wol() (this fixes a regression from 2.6.26 on the Tino's > > > machine). > > > > > > Remove an open-coded reference to the standard PCI PM registers that > > > is not used any more. > > > > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> > > > Reported-by: Tino Keitel <tino.keitel@gmx.de> > > > --- > > > > Acked-by: Stephen Hemminger <shemminger@vyatta.com> > > > > Thanks for fixing this. > > Can you please include this patch into your next push for Jeff? > > It seems to have been overlooked. I missed this ACK but I did add the patch to my tree as you can see from another email of mine. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thursday, 9 of October 2008, David Miller wrote: > From: "Rafael J. Wysocki" <rjw@sisk.pl> > Date: Thu, 9 Oct 2008 00:55:55 +0200 > > > On Friday, 3 of October 2008, Stephen Hemminger wrote: > > > On Thu, 2 Oct 2008 23:39:33 +0200 > > > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > > > > > > From: Rafael J. Wysocki <rjw@sisk.pl> > > > > > > > > sky2: Fix recent WOL regression > > > > > > > > Since dev->power.should_wakeup bit is used by the PCI core to > > > > decide whether the device should wake up the system from sleep > > > > states, set/unset this bit whenever WOL is enabled/disabled using > > > > sky2_set_wol() (this fixes a regression from 2.6.26 on the Tino's > > > > machine). > > > > > > > > Remove an open-coded reference to the standard PCI PM registers that > > > > is not used any more. > > > > > > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> > > > > Reported-by: Tino Keitel <tino.keitel@gmx.de> > > > > --- > > > > > > Acked-by: Stephen Hemminger <shemminger@vyatta.com> > > > > > > Thanks for fixing this. > > > > Can you please include this patch into your next push for Jeff? > > > > It seems to have been overlooked. > > I missed this ACK but I did add the patch to my tree as you > can see from another email of mine. I saw it, thanks! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Index: linux-2.6/drivers/net/sky2.c =================================================================== --- linux-2.6.orig/drivers/net/sky2.c +++ linux-2.6/drivers/net/sky2.c @@ -3034,7 +3034,8 @@ static int sky2_set_wol(struct net_devic struct sky2_port *sky2 = netdev_priv(dev); struct sky2_hw *hw = sky2->hw; - if (wol->wolopts & ~sky2_wol_supported(sky2->hw)) + if ((wol->wolopts & ~sky2_wol_supported(sky2->hw)) + || !device_can_wakeup(&hw->pdev->dev)) return -EOPNOTSUPP; sky2->wol = wol->wolopts; @@ -3045,6 +3046,8 @@ static int sky2_set_wol(struct net_devic sky2_write32(hw, B0_CTST, sky2->wol ? Y2_HW_WOL_ON : Y2_HW_WOL_OFF); + device_set_wakeup_enable(&hw->pdev->dev, sky2->wol); + if (!netif_running(dev)) sky2_wol_init(sky2); return 0; @@ -4166,18 +4169,6 @@ static int __devinit sky2_test_msi(struc return err; } -static int __devinit pci_wake_enabled(struct pci_dev *dev) -{ - int pm = pci_find_capability(dev, PCI_CAP_ID_PM); - u16 value; - - if (!pm) - return 0; - if (pci_read_config_word(dev, pm + PCI_PM_CTRL, &value)) - return 0; - return value & PCI_PM_CTRL_PME_ENABLE; -} - /* This driver supports yukon2 chipset only */ static const char *sky2_name(u8 chipid, char *buf, int sz) { @@ -4238,7 +4241,7 @@ static int __devinit sky2_probe(struct p } } - wol_default = pci_wake_enabled(pdev) ? WAKE_MAGIC : 0; + wol_default = device_may_wakeup(&pdev->dev) ? WAKE_MAGIC : 0; err = -ENOMEM; hw = kzalloc(sizeof(*hw), GFP_KERNEL);