PERFORCE change 149773 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Sun Sep 14 20:20:45 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=149773
Change 149773 by hselasky at hselasky_laptop001 on 2008/09/14 20:19:51
Power mode fixes.
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_generic.c#26 edit
.. //depot/projects/usb/src/sys/dev/usb2/include/usb2_ioctl.h#19 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb2/core/usb2_generic.c#26 (text+ko) ====
@@ -843,10 +843,11 @@
di->udi_power = udev->flags.self_powered ? 0 : udev->power;
di->udi_speed = udev->speed;
di->udi_mode = udev->flags.usb2_mode;
+ di->udi_power_mode = udev->power_mode;
if (udev->flags.suspended) {
- di->udi_devstate = USB_DEVSTATE_SUSPENDED;
+ di->udi_suspended = 1;
} else {
- di->udi_devstate = USB_DEVSTATE_ENABLED;
+ di->udi_suspended = 0;
}
hub = udev->parent_hub;
@@ -1754,6 +1755,12 @@
break;
case USB_POWER_MODE_ON:
+ /* enable port */
+ err = usb2_req_set_port_feature(udev->parent_hub,
+ NULL, udev->port_no, UHF_PORT_ENABLE);
+
+ /* FALLTHROUGH */
+
case USB_POWER_MODE_SAVE:
case USB_POWER_MODE_RESUME:
/* TODO: implement USB power save */
==== //depot/projects/usb/src/sys/dev/usb2/include/usb2_ioctl.h#19 (text+ko) ====
@@ -106,11 +106,9 @@
uint8_t udi_hubaddr; /* parent HUB address */
uint8_t udi_hubindex; /* parent HUB device index */
uint8_t udi_hubport; /* parent HUB port */
- uint8_t udi_devstate;
-#define USB_DEVSTATE_ENABLED 0x0
-#define USB_DEVSTATE_SUSPENDED 0x1
-#define USB_DEVSTATE_POWERED 0x2
-#define USB_DEVSTATE_DISABLED 0x3
+ uint8_t udi_power_mode; /* see "USB_POWER_MODE_XXX" */
+ uint8_t udi_suspended; /* set if device is suspended */
+ uint8_t udi_reserved[16]; /* leave space for the future */
char udi_product[128];
char udi_vendor[128];
char udi_serial[64];
@@ -264,7 +262,7 @@
#define USB_SET_PORT_ENABLE _IOW ('U', 143, int)
#define USB_SET_PORT_DISABLE _IOW ('U', 144, int)
#define USB_SET_POWER_MODE _IOW ('U', 145, int)
-#define USB_GET_POWER_MODE _IOW ('U', 146, int)
+#define USB_GET_POWER_MODE _IOR ('U', 146, int)
/* Modem device */
#define USB_GET_CM_OVER_DATA _IOR ('U', 180, int)
More information about the p4-projects
mailing list