summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb/usb_device.c')
-rw-r--r--sys/dev/usb/usb_device.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c
index 0aff977..2463c1f 100644
--- a/sys/dev/usb/usb_device.c
+++ b/sys/dev/usb/usb_device.c
@@ -96,15 +96,12 @@ static const char* statestr[USB_STATE_MAX] = {
[USB_STATE_POWERED] = "POWERED",
[USB_STATE_ADDRESSED] = "ADDRESSED",
[USB_STATE_CONFIGURED] = "CONFIGURED",
- [USB_STATE_SUSPENDED] = "SUSPENDED"
};
const char *
-usb2_statestr(enum usb_dev_state state)
+usb2_statestr(enum usb2_dev_state state)
{
- KASSERT(state < USB_STATE_MAX, ("invalid udev state"));
-
- return (statestr[state]);
+ return ((state < USB_STATE_MAX) ? statestr[state] : "UNKNOWN");
}
/*------------------------------------------------------------------------*
@@ -999,7 +996,7 @@ usb2_detach_device_sub(struct usb2_device *udev, device_t *ppdev,
udev->port_no, udev->address);
if (device_is_attached(dev)) {
- if (udev->state == USB_STATE_SUSPENDED) {
+ if (udev->flags.peer_suspended) {
err = DEVICE_RESUME(dev);
if (err) {
device_printf(dev, "Resume failed!\n");
@@ -1139,7 +1136,7 @@ usb2_probe_and_attach_sub(struct usb2_device *udev,
uaa->temp_dev = NULL;
device_set_ivars(iface->subdev, NULL);
- if (udev->state == USB_STATE_SUSPENDED) {
+ if (udev->flags.peer_suspended) {
err = DEVICE_SUSPEND(iface->subdev);
if (err)
device_printf(iface->subdev, "Suspend failed\n");
@@ -1360,12 +1357,12 @@ usb2_suspend_resume(struct usb2_device *udev, uint8_t do_suspend)
USB_BUS_LOCK(udev->bus);
/* filter the suspend events */
- if ((udev->state == USB_STATE_SUSPENDED && do_suspend) ||
- (udev->state != USB_STATE_SUSPENDED && !do_suspend)) {
+ if (udev->flags.peer_suspended == do_suspend) {
USB_BUS_UNLOCK(udev->bus);
/* nothing to do */
return (0);
}
+ udev->flags.peer_suspended = do_suspend;
USB_BUS_UNLOCK(udev->bus);
/* do the suspend or resume */
@@ -2462,7 +2459,7 @@ usb2_peer_can_wakeup(struct usb2_device *udev)
}
void
-usb2_set_device_state(struct usb2_device *udev, enum usb_dev_state state)
+usb2_set_device_state(struct usb2_device *udev, enum usb2_dev_state state)
{
KASSERT(state < USB_STATE_MAX, ("invalid udev state"));
@@ -2472,7 +2469,7 @@ usb2_set_device_state(struct usb2_device *udev, enum usb_dev_state state)
udev->state = state;
}
-int
+uint8_t
usb2_device_attached(struct usb2_device *udev)
{
return (udev->state > USB_STATE_DETACHED);
OpenPOWER on IntegriCloud