Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 197444
b: refs/heads/master
c: 59497bb
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Fritz authored and Greg Kroah-Hartman committed May 17, 2010
1 parent 79f67b1 commit ace1fdd
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9153f7b997aef3fcfd0bf1eededfd76595c7dc0b
refs/heads/master: 59497bba59035a2b09ac21f96bb904d1101bd95f
65 changes: 65 additions & 0 deletions trunk/drivers/staging/wlan-ng/prism2usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -285,11 +285,76 @@ static void prism2sta_disconnect_usb(struct usb_interface *interface)
usb_set_intfdata(interface, NULL);
}

#ifdef CONFIG_PM
static int prism2sta_suspend(struct usb_interface *interface,
pm_message_t message)
{
hfa384x_t *hw = NULL;
wlandevice_t *wlandev;
wlandev = (wlandevice_t *) usb_get_intfdata(interface);
if (!wlandev)
return -ENODEV;

hw = wlandev->priv;
if (!hw)
return -ENODEV;

prism2sta_ifstate(wlandev, P80211ENUM_ifstate_disable);

usb_kill_urb(&hw->rx_urb);
usb_kill_urb(&hw->tx_urb);
usb_kill_urb(&hw->ctlx_urb);

return 0;
}

static int prism2sta_resume(struct usb_interface *interface)
{
int result = 0;
hfa384x_t *hw = NULL;
wlandevice_t *wlandev;
wlandev = (wlandevice_t *) usb_get_intfdata(interface);
if (!wlandev)
return -ENODEV;

hw = wlandev->priv;
if (!hw)
return -ENODEV;

/* Do a chip-level reset on the MAC */
if (prism2_doreset) {
result = hfa384x_corereset(hw,
prism2_reset_holdtime,
prism2_reset_settletime, 0);
if (result != 0) {
unregister_wlandev(wlandev);
hfa384x_destroy(hw);
printk(KERN_ERR
"%s: hfa384x_corereset() failed.\n", dev_info);
kfree(wlandev);
kfree(hw);
wlandev = NULL;
return -ENODEV;
}
}

prism2sta_ifstate(wlandev, P80211ENUM_ifstate_enable);

return 0;
}
#else
#define prism2sta_suspend NULL
#define prism2sta_resume NULL
#endif /* CONFIG_PM */

static struct usb_driver prism2_usb_driver = {
.name = "prism2_usb",
.probe = prism2sta_probe_usb,
.disconnect = prism2sta_disconnect_usb,
.id_table = usb_prism_tbl,
.suspend = prism2sta_suspend,
.resume = prism2sta_resume,
.reset_resume = prism2sta_resume,
/* fops, minor? */
};

Expand Down

0 comments on commit ace1fdd

Please sign in to comment.