Commit 499a214c authored by Ivo van Doorn's avatar Ivo van Doorn Committed by John W. Linville

rt2x00: Don't free register information on suspend

After suspend & resume the rt2x00 devices won't wakeup
anymore due to a broken register information setup.
The most important problem is the release of the EEPROM
buffer which is completely cleared and never read again
after the suspend.
Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c40af84a
...@@ -369,8 +369,6 @@ int rt2x00pci_suspend(struct pci_dev *pci_dev, pm_message_t state) ...@@ -369,8 +369,6 @@ int rt2x00pci_suspend(struct pci_dev *pci_dev, pm_message_t state)
if (retval) if (retval)
return retval; return retval;
rt2x00pci_free_reg(rt2x00dev);
pci_save_state(pci_dev); pci_save_state(pci_dev);
pci_disable_device(pci_dev); pci_disable_device(pci_dev);
return pci_set_power_state(pci_dev, pci_choose_state(pci_dev, state)); return pci_set_power_state(pci_dev, pci_choose_state(pci_dev, state));
...@@ -381,7 +379,6 @@ int rt2x00pci_resume(struct pci_dev *pci_dev) ...@@ -381,7 +379,6 @@ int rt2x00pci_resume(struct pci_dev *pci_dev)
{ {
struct ieee80211_hw *hw = pci_get_drvdata(pci_dev); struct ieee80211_hw *hw = pci_get_drvdata(pci_dev);
struct rt2x00_dev *rt2x00dev = hw->priv; struct rt2x00_dev *rt2x00dev = hw->priv;
int retval;
if (pci_set_power_state(pci_dev, PCI_D0) || if (pci_set_power_state(pci_dev, PCI_D0) ||
pci_enable_device(pci_dev) || pci_enable_device(pci_dev) ||
...@@ -390,20 +387,7 @@ int rt2x00pci_resume(struct pci_dev *pci_dev) ...@@ -390,20 +387,7 @@ int rt2x00pci_resume(struct pci_dev *pci_dev)
return -EIO; return -EIO;
} }
retval = rt2x00pci_alloc_reg(rt2x00dev); return rt2x00lib_resume(rt2x00dev);
if (retval)
return retval;
retval = rt2x00lib_resume(rt2x00dev);
if (retval)
goto exit_free_reg;
return 0;
exit_free_reg:
rt2x00pci_free_reg(rt2x00dev);
return retval;
} }
EXPORT_SYMBOL_GPL(rt2x00pci_resume); EXPORT_SYMBOL_GPL(rt2x00pci_resume);
#endif /* CONFIG_PM */ #endif /* CONFIG_PM */
......
...@@ -702,8 +702,6 @@ int rt2x00usb_suspend(struct usb_interface *usb_intf, pm_message_t state) ...@@ -702,8 +702,6 @@ int rt2x00usb_suspend(struct usb_interface *usb_intf, pm_message_t state)
if (retval) if (retval)
return retval; return retval;
rt2x00usb_free_reg(rt2x00dev);
/* /*
* Decrease usbdev refcount. * Decrease usbdev refcount.
*/ */
...@@ -717,24 +715,10 @@ int rt2x00usb_resume(struct usb_interface *usb_intf) ...@@ -717,24 +715,10 @@ int rt2x00usb_resume(struct usb_interface *usb_intf)
{ {
struct ieee80211_hw *hw = usb_get_intfdata(usb_intf); struct ieee80211_hw *hw = usb_get_intfdata(usb_intf);
struct rt2x00_dev *rt2x00dev = hw->priv; struct rt2x00_dev *rt2x00dev = hw->priv;
int retval;
usb_get_dev(interface_to_usbdev(usb_intf)); usb_get_dev(interface_to_usbdev(usb_intf));
retval = rt2x00usb_alloc_reg(rt2x00dev); return rt2x00lib_resume(rt2x00dev);
if (retval)
return retval;
retval = rt2x00lib_resume(rt2x00dev);
if (retval)
goto exit_free_reg;
return 0;
exit_free_reg:
rt2x00usb_free_reg(rt2x00dev);
return retval;
} }
EXPORT_SYMBOL_GPL(rt2x00usb_resume); EXPORT_SYMBOL_GPL(rt2x00usb_resume);
#endif /* CONFIG_PM */ #endif /* CONFIG_PM */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment