Changes in uspace/lib/usbdev/src/request.c [9d58539:49bd7ae2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/request.c
r9d58539 r49bd7ae2 143 143 */ 144 144 145 const usb_device_request_setup_packet_t setup_packet = { 146 .request_type = SETUP_REQUEST_TYPE_DEVICE_TO_HOST 147 | (request_type << 5) | recipient, 148 .request = request, 149 .value = value, 150 .index = index, 151 .length = (uint16_t) data_size, 152 }; 153 154 return usb_pipe_control_read(pipe, &setup_packet, sizeof(setup_packet), 145 usb_device_request_setup_packet_t setup_packet; 146 setup_packet.request_type = 128 | (request_type << 5) | recipient; 147 setup_packet.request = request; 148 setup_packet.value = value; 149 setup_packet.index = index; 150 setup_packet.length = (uint16_t) data_size; 151 152 int rc = usb_pipe_control_read(pipe, 153 &setup_packet, sizeof(setup_packet), 155 154 data, data_size, actual_data_size); 155 156 return rc; 156 157 } 157 158 … … 247 248 248 249 return rc; 250 } 251 252 /** Change address of connected device. 253 * This function automatically updates the backing connection to point to 254 * the new address. 255 * 256 * @param pipe Control endpoint pipe (session must be already started). 257 * @param new_address New USB address to be set (in native endianness). 258 * @return Error code. 259 */ 260 int usb_request_set_address(usb_pipe_t *pipe, 261 usb_address_t new_address) 262 { 263 if ((new_address < 0) || (new_address >= USB11_ADDRESS_MAX)) { 264 return EINVAL; 265 } 266 267 uint16_t addr = uint16_host2usb((uint16_t)new_address); 268 269 int rc = usb_control_request_set(pipe, 270 USB_REQUEST_TYPE_STANDARD, USB_REQUEST_RECIPIENT_DEVICE, 271 USB_DEVREQ_SET_ADDRESS, 272 addr, 0, 273 NULL, 0); 274 275 if (rc != EOK) { 276 return rc; 277 } 278 279 assert(pipe->wire != NULL); 280 /* TODO: prevent other from accessing wire now. */ 281 pipe->wire->address = new_address; 282 283 return EOK; 249 284 } 250 285 … … 275 310 } 276 311 277 constuint16_t wValue = descriptor_index | (descriptor_type << 8);312 uint16_t wValue = descriptor_index | (descriptor_type << 8); 278 313 279 314 return usb_control_request_get(pipe,
Note:
See TracChangeset
for help on using the changeset viewer.