Changes in uspace/lib/usb/src/usb.c [820d9bc:05b59393] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usb/src/usb.c
r820d9bc r05b59393 44 44 [USB_SPEED_FULL] = "full", 45 45 [USB_SPEED_HIGH] = "high", 46 [USB_SPEED_SUPER] = "super",47 46 }; 48 47 … … 119 118 } 120 119 120 /** Check setup packet data for signs of toggle reset. 121 * 122 * @param[in] requst Setup requst data. 123 * 124 * @retval -1 No endpoints need reset. 125 * @retval 0 All endpoints need reset. 126 * @retval >0 Specified endpoint needs reset. 127 * 128 */ 129 int usb_request_needs_toggle_reset( 130 const usb_device_request_setup_packet_t *request) 131 { 132 assert(request); 133 switch (request->request) 134 { 135 /* Clear Feature ENPOINT_STALL */ 136 case USB_DEVREQ_CLEAR_FEATURE: /*resets only cleared ep */ 137 /* 0x2 ( HOST to device | STANDART | TO ENPOINT) */ 138 if ((request->request_type == 0x2) && 139 (request->value == USB_FEATURE_ENDPOINT_HALT)) 140 return uint16_usb2host(request->index); 141 break; 142 case USB_DEVREQ_SET_CONFIGURATION: 143 case USB_DEVREQ_SET_INTERFACE: 144 /* Recipient must be device, this resets all endpoints, 145 * In fact there should be no endpoints but EP 0 registered 146 * as different interfaces use different endpoints, 147 * unless you're changing configuration or alternative 148 * interface of an already setup device. */ 149 if (!(request->request_type & SETUP_REQUEST_TYPE_DEVICE_TO_HOST)) 150 return 0; 151 break; 152 default: 153 break; 154 } 155 return -1; 156 } 157 121 158 /** 122 159 * @}
Note:
See TracChangeset
for help on using the changeset viewer.