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