Changeset fe10e72 in mainline
- Timestamp:
- 2011-02-07T14:42:15Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a72620d
- Parents:
- 3f189c5
- Location:
- uspace/drv/uhci-hcd
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/iface.c
r3f189c5 rfe10e72 106 106 usbhc_iface_transfer_out_callback_t callback, void *arg) 107 107 { 108 size_t max_packet_size = 8; 109 dev_speed_t speed = FULL_SPEED; 110 108 111 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_INTERRUPT, 109 size, FULL_SPEED, data, size, NULL, callback, arg);112 max_packet_size, speed, data, size, NULL, callback, arg); 110 113 if (!tracker) 111 114 return ENOMEM; … … 118 121 usbhc_iface_transfer_in_callback_t callback, void *arg) 119 122 { 123 size_t max_packet_size = 8; 124 dev_speed_t speed = FULL_SPEED; 125 120 126 tracker_t *tracker = tracker_get(dev, target, USB_TRANSFER_INTERRUPT, 121 size, FULL_SPEED, data, size, callback, NULL, arg);127 max_packet_size, speed, data, size, callback, NULL, arg); 122 128 if (!tracker) 123 129 return ENOMEM; -
uspace/drv/uhci-hcd/tracker.c
r3f189c5 rfe10e72 117 117 118 118 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 119 SETUP_PACKET_DATA_SIZE, false, instance->target, USB_PID_SETUP,120 instance->packet);119 SETUP_PACKET_DATA_SIZE, instance->toggle++, false, instance->target, 120 USB_PID_SETUP, instance->packet); 121 121 122 122 instance->buffer_offset += SETUP_PACKET_DATA_SIZE; … … 135 135 136 136 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 137 SETUP_PACKET_DATA_SIZE, false, instance->target, USB_PID_SETUP,138 instance->packet);137 SETUP_PACKET_DATA_SIZE, instance->toggle++, false, instance->target, 138 USB_PID_SETUP, instance->packet); 139 139 140 140 instance->buffer_offset += SETUP_PACKET_DATA_SIZE; … … 164 164 instance->buffer_size - instance->buffer_offset); 165 165 166 //TODO: add toggle here 167 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 168 instance->packet_size, false, instance->target, USB_PID_IN, 169 instance->packet); 166 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 167 instance->packet_size, instance->toggle++, false, instance->target, 168 USB_PID_IN, instance->packet); 170 169 171 170 tracker_schedule(instance); … … 199 198 instance->packet_size); 200 199 201 // TODO: add toggle here 202 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 203 instance->packet_size, false, instance->target, USB_PID_OUT, 204 instance->packet); 200 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 201 instance->packet_size, instance->toggle++, false, instance->target, 202 USB_PID_OUT, instance->packet); 205 203 206 204 tracker_schedule(instance); … … 234 232 instance->packet_size = 0; 235 233 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 236 0, false, instance->target, USB_PID_OUT, NULL);234 0, 1, false, instance->target, USB_PID_OUT, NULL); 237 235 238 236 tracker_schedule(instance); … … 262 260 instance->packet_size = 0; 263 261 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 264 0, false, instance->target, USB_PID_OUT, NULL);262 0, 1, false, instance->target, USB_PID_OUT, NULL); 265 263 266 264 tracker_schedule(instance); … … 292 290 instance->buffer_size - instance->buffer_offset); 293 291 294 //TODO: add toggle here 295 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 296 instance->packet_size, false, instance->target, USB_PID_IN, 297 instance->packet); 292 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 293 instance->packet_size, instance->toggle++, false, instance->target, 294 USB_PID_IN, instance->packet); 298 295 299 296 tracker_schedule(instance); … … 327 324 instance->packet_size); 328 325 329 // TODO: add toggle here 330 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 331 instance->packet_size, false, instance->target, USB_PID_OUT, 332 instance->packet); 326 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 327 instance->packet_size, instance->toggle++, false, instance->target, 328 USB_PID_OUT, instance->packet); 333 329 334 330 tracker_schedule(instance); … … 408 404 409 405 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 410 SETUP_PACKET_DATA_SIZE, false, instance->target, USB_PID_SETUP,406 SETUP_PACKET_DATA_SIZE, 0, false, instance->target, USB_PID_SETUP, 411 407 instance->packet); 412 408 … … 426 422 427 423 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 428 instance->packet_size, false, instance->target, USB_PID_OUT,424 instance->packet_size, 1, false, instance->target, USB_PID_OUT, 429 425 instance->packet); 430 426 instance->next_step = tracker_call_out_and_dispose; … … 441 437 442 438 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 443 instance->packet_size, false, instance->target, USB_PID_IN,439 instance->packet_size, 1, false, instance->target, USB_PID_IN, 444 440 instance->packet); 445 441 … … 460 456 461 457 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 462 instance->packet_size, false, instance->target, USB_PID_IN,458 instance->packet_size, 1, false, instance->target, USB_PID_IN, 463 459 instance->packet); 464 460 … … 477 473 478 474 transfer_descriptor_init(instance->td, DEFAULT_ERROR_COUNT, 479 instance->packet_size, false, instance->target, USB_PID_OUT,475 instance->packet_size, 1, false, instance->target, USB_PID_OUT, 480 476 instance->packet); 481 477 -
uspace/drv/uhci-hcd/uhci.c
r3f189c5 rfe10e72 188 188 assert(current == &tracker->link); 189 189 if (!transfer_descriptor_is_active(tracker->td)) { 190 usb_log_ debug("Found inactive tracker with status: %x.\n",190 usb_log_info("Found inactive tracker with status: %x.\n", 191 191 tracker->td->status); 192 192 list_remove(current); -
uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c
r3f189c5 rfe10e72 39 39 40 40 void transfer_descriptor_init(transfer_descriptor_t *instance, 41 int error_count, size_t size, bool isochronous, usb_target_t target,42 41 int error_count, size_t size, bool toggle, bool isochronous, 42 usb_target_t target, int pid, void *buffer) 43 43 { 44 44 assert(instance); … … 104 104 return USB_OUTCOME_CRCERROR; 105 105 106 assert((((status >> TD_STATUS_ERROR_POS) & TD_STATUS_ERROR_MASK)107 | TD_STATUS_ERROR_RESERVED) == TD_STATUS_ERROR_RESERVED);106 // assert((((status >> TD_STATUS_ERROR_POS) & TD_STATUS_ERROR_MASK) 107 // | TD_STATUS_ERROR_RESERVED) == TD_STATUS_ERROR_RESERVED); 108 108 return USB_OUTCOME_OK; 109 109 } -
uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h
r3f189c5 rfe10e72 92 92 93 93 void transfer_descriptor_init(transfer_descriptor_t *instance, 94 int error_count, size_t size, bool isochronous, usb_target_t target, 95 int pid, void *buffer); 96 94 int error_count, size_t size, bool toggle, bool isochronous, 95 usb_target_t target, int pid, void *buffer); 97 96 98 97 int transfer_descriptor_status(transfer_descriptor_t *instance);
Note:
See TracChangeset
for help on using the changeset viewer.