Here is a second try at a suspend/resume patch for rtl8187. This one also seems a bit too easy; however, it did work for me, at least for STD. I now realize that my machine didn't power off in my previous test. This time I manually turned it off before restarting. My computer still doesn't STR, thus that was not tested. Larry ============= Index: wireless-testing/drivers/net/wireless/rtl818x/rtl8187_dev.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/rtl818x/rtl8187_dev.c +++ wireless-testing/drivers/net/wireless/rtl818x/rtl8187_dev.c @@ -1464,6 +1464,28 @@ static int __devinit rtl8187_probe(struc return err; } +#ifdef CONFIG_PM + +static int rtl8187_suspend(struct usb_interface *intf, pm_message_t state) +{ + struct ieee80211_hw *dev = usb_get_intfdata(intf); + + rtl8187_stop(dev); + + return 0; +} + +static int rtl8187_resume(struct usb_interface *intf) +{ + struct ieee80211_hw *dev = usb_get_intfdata(intf); + + rtl8187_start(dev); + + return 0; +} + +#endif /* CONFIG_PM */ + static void __devexit rtl8187_disconnect(struct usb_interface *intf) { struct ieee80211_hw *dev = usb_get_intfdata(intf); @@ -1484,6 +1506,10 @@ static struct usb_driver rtl8187_driver .id_table = rtl8187_table, .probe = rtl8187_probe, .disconnect = __devexit_p(rtl8187_disconnect), +#ifdef CONFIG_PM + .suspend = rtl8187_suspend, + .resume = rtl8187_resume, +#endif /* CONFIG_PM */ }; static int __init rtl8187_init(void) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html