Changeset db51a6a6 in mainline for uspace/drv
- Timestamp:
- 2018-01-22T12:20:14Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 998773d
- Parents:
- b3c39690
- git-author:
- Ondřej Hlavatý <aearsis@…> (2018-01-22 12:18:02)
- git-committer:
- Ondřej Hlavatý <aearsis@…> (2018-01-22 12:20:14)
- Location:
- uspace/drv/bus/usb
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/ehci_batch.c
rb3c39690 rdb51a6a6 179 179 180 180 /* Assume all data got through */ 181 ehci_batch->base.transfer ed_size = ehci_batch->base.buffer_size;181 ehci_batch->base.transferred_size = ehci_batch->base.buffer_size; 182 182 183 183 /* Check all TDs */ … … 202 202 * we leave the very last(unused) TD behind. 203 203 */ 204 ehci_batch->base.transfer ed_size204 ehci_batch->base.transferred_size 205 205 -= td_remain_size(&ehci_batch->tds[i]); 206 206 } else { … … 215 215 } 216 216 217 assert(ehci_batch->base.transfer ed_size <= ehci_batch->base.buffer_size);217 assert(ehci_batch->base.transferred_size <= ehci_batch->base.buffer_size); 218 218 219 219 if (ehci_batch->base.dir == USB_DIRECTION_IN) 220 220 memcpy(ehci_batch->base.buffer, 221 221 ehci_batch->data_buffer, 222 ehci_batch->base.transfer ed_size);222 ehci_batch->base.transferred_size); 223 223 224 224 /* Clear TD pointers */ -
uspace/drv/bus/usb/ehci/ehci_bus.c
rb3c39690 rdb51a6a6 148 148 if (batch) { 149 149 batch->error = EINTR; 150 batch->transfer ed_size = 0;150 batch->transferred_size = 0; 151 151 usb_transfer_batch_finish(batch); 152 152 } -
uspace/drv/bus/usb/ehci/ehci_rh.c
rb3c39690 rdb51a6a6 146 146 batch->error = virthub_base_request(&instance->base, batch->target, 147 147 batch->dir, (void*) batch->setup.buffer, 148 batch->buffer, batch->buffer_size, &batch->transfer ed_size);148 batch->buffer, batch->buffer_size, &batch->transferred_size); 149 149 if (batch->error == ENAK) { 150 150 usb_log_debug("RH(%p): BATCH(%p) adding as unfinished", … … 180 180 batch->error = virthub_base_request(&instance->base, batch->target, 181 181 batch->dir, (void*) batch->setup.buffer, 182 batch->buffer, batch->buffer_size, &batch->transfer ed_size);182 batch->buffer, batch->buffer_size, &batch->transferred_size); 183 183 usb_transfer_batch_finish(batch); 184 184 } -
uspace/drv/bus/usb/ohci/ohci_batch.c
rb3c39690 rdb51a6a6 187 187 188 188 /* Assume all data got through */ 189 ohci_batch->base.transfer ed_size = ohci_batch->base.buffer_size;189 ohci_batch->base.transferred_size = ohci_batch->base.buffer_size; 190 190 191 191 /* Assume we will leave the last(unused) TD behind */ … … 213 213 * we leave the very last(unused) TD behind. 214 214 */ 215 ohci_batch->base.transfer ed_size215 ohci_batch->base.transferred_size 216 216 -= td_remain_size(ohci_batch->tds[i]); 217 217 } else { … … 244 244 } 245 245 } 246 assert(ohci_batch->base.transfer ed_size <=246 assert(ohci_batch->base.transferred_size <= 247 247 ohci_batch->base.buffer_size); 248 248 … … 254 254 memcpy(ohci_batch->base.buffer, 255 255 ohci_batch->device_buffer + setup_size, 256 ohci_batch->base.transfer ed_size);256 ohci_batch->base.transferred_size); 257 257 258 258 /* Store the remaining TD */ -
uspace/drv/bus/usb/ohci/ohci_bus.c
rb3c39690 rdb51a6a6 152 152 if (batch) { 153 153 batch->error = EINTR; 154 batch->transfer ed_size = 0;154 batch->transferred_size = 0; 155 155 usb_transfer_batch_finish(batch); 156 156 } -
uspace/drv/bus/usb/ohci/ohci_rh.c
rb3c39690 rdb51a6a6 180 180 batch->error = virthub_base_request(&instance->base, batch->target, 181 181 batch->dir, &batch->setup.packet, 182 batch->buffer, batch->buffer_size, &batch->transfer ed_size);182 batch->buffer, batch->buffer_size, &batch->transferred_size); 183 183 if (batch->error == ENAK) { 184 184 /* This is safe because only status change interrupt transfers … … 208 208 batch->error = virthub_base_request(&instance->base, batch->target, 209 209 batch->dir, &batch->setup.packet, 210 batch->buffer, batch->buffer_size, &batch->transfer ed_size);210 batch->buffer, batch->buffer_size, &batch->transferred_size); 211 211 usb_transfer_batch_finish(batch); 212 212 } -
uspace/drv/bus/usb/uhci/hc.c
rb3c39690 rdb51a6a6 362 362 async_usleep(2000); 363 363 batch->base.error = EINTR; 364 batch->base.transfer ed_size = 0;364 batch->base.transferred_size = 0; 365 365 usb_transfer_batch_finish(&batch->base); 366 366 } -
uspace/drv/bus/usb/uhci/uhci_batch.c
rb3c39690 rdb51a6a6 163 163 uhci_batch, USB_TRANSFER_BATCH_ARGS(*batch), 164 164 uhci_batch->td_count); 165 batch->transfer ed_size = 0;165 batch->transferred_size = 0; 166 166 167 167 uhci_endpoint_t *uhci_ep = (uhci_endpoint_t *) batch->ep; … … 185 185 } 186 186 187 batch->transfer ed_size187 batch->transferred_size 188 188 += td_act_size(&uhci_batch->tds[i]); 189 189 if (td_is_short(&uhci_batch->tds[i])) … … 191 191 } 192 192 substract_ret: 193 if (batch->transfer ed_size > 0 && batch->ep->transfer_type == USB_TRANSFER_CONTROL) {194 assert(batch->transfer ed_size >= USB_SETUP_PACKET_SIZE);195 batch->transfer ed_size -= USB_SETUP_PACKET_SIZE;193 if (batch->transferred_size > 0 && batch->ep->transfer_type == USB_TRANSFER_CONTROL) { 194 assert(batch->transferred_size >= USB_SETUP_PACKET_SIZE); 195 batch->transferred_size -= USB_SETUP_PACKET_SIZE; 196 196 } 197 197 198 198 if (batch->dir == USB_DIRECTION_IN) { 199 assert(batch->transfer ed_size <= batch->buffer_size);199 assert(batch->transferred_size <= batch->buffer_size); 200 200 memcpy(batch->buffer, 201 201 uhci_transfer_batch_data_buffer(uhci_batch), 202 batch->transfer ed_size);202 batch->transferred_size); 203 203 } 204 204 -
uspace/drv/bus/usb/uhci/uhci_rh.c
rb3c39690 rdb51a6a6 107 107 batch->error = virthub_base_request(&instance->base, batch->target, 108 108 batch->dir, (void*) batch->setup.buffer, 109 batch->buffer, batch->buffer_size, &batch->transfer ed_size);109 batch->buffer, batch->buffer_size, &batch->transferred_size); 110 110 if (batch->error == ENAK) 111 111 async_usleep(instance->base.endpoint_descriptor.poll_interval * 1000); -
uspace/drv/bus/usb/vhc/transfer.c
rb3c39690 rdb51a6a6 151 151 assert(transfer); 152 152 transfer->batch.error = outcome; 153 transfer->batch.transfer ed_size = data_transfer_size;153 transfer->batch.transferred_size = data_transfer_size; 154 154 usb_transfer_batch_finish(&transfer->batch); 155 155 } -
uspace/drv/bus/usb/xhci/endpoint.c
rb3c39690 rdb51a6a6 209 209 if (batch) { 210 210 batch->error = EINTR; 211 batch->transfer ed_size = 0;211 batch->transferred_size = 0; 212 212 usb_transfer_batch_finish(batch); 213 213 } -
uspace/drv/bus/usb/xhci/isoch.c
rb3c39690 rdb51a6a6 483 483 484 484 /* Withdraw results from previous transfers. */ 485 transfer->batch.transfer ed_size = 0;485 transfer->batch.transferred_size = 0; 486 486 xhci_isoch_transfer_t *res = &isoch->transfers[isoch->dequeue]; 487 487 while (res->state == ISOCH_COMPLETE) { … … 489 489 490 490 res->state = ISOCH_EMPTY; 491 transfer->batch.transfer ed_size += res->size;491 transfer->batch.transferred_size += res->size; 492 492 transfer->batch.error = res->error; 493 493 if (res->error) … … 555 555 if (!it->error) { 556 556 memcpy(transfer->batch.buffer, it->data.virt, it->size); 557 transfer->batch.transfer ed_size = it->size;557 transfer->batch.transferred_size = it->size; 558 558 transfer->batch.error = it->error; 559 559 } -
uspace/drv/bus/usb/xhci/transfers.c
rb3c39690 rdb51a6a6 340 340 case XHCI_TRBC_SUCCESS: 341 341 batch->error = EOK; 342 batch->transfer ed_size = batch->buffer_size - TRB_TRANSFER_LENGTH(*trb);342 batch->transferred_size = batch->buffer_size - TRB_TRANSFER_LENGTH(*trb); 343 343 break; 344 344 … … 346 346 usb_log_warning("Transfer ended with data buffer error."); 347 347 batch->error = EAGAIN; 348 batch->transfer ed_size = 0;348 batch->transferred_size = 0; 349 349 break; 350 350 … … 352 352 usb_log_warning("Babble detected during the transfer."); 353 353 batch->error = EAGAIN; 354 batch->transfer ed_size = 0;354 batch->transferred_size = 0; 355 355 break; 356 356 … … 358 358 usb_log_warning("USB Transaction error."); 359 359 batch->error = ESTALL; 360 batch->transfer ed_size = 0;360 batch->transferred_size = 0; 361 361 break; 362 362 … … 364 364 usb_log_error("Invalid transfer parameters."); 365 365 batch->error = EINVAL; 366 batch->transfer ed_size = 0;366 batch->transferred_size = 0; 367 367 break; 368 368 … … 370 370 usb_log_warning("Stall condition detected."); 371 371 batch->error = ESTALL; 372 batch->transfer ed_size = 0;372 batch->transferred_size = 0; 373 373 break; 374 374 … … 376 376 usb_log_error("Split transcation error detected."); 377 377 batch->error = EAGAIN; 378 batch->transfer ed_size = 0;378 batch->transferred_size = 0; 379 379 break; 380 380 … … 386 386 if (batch->dir == USB_DIRECTION_IN) { 387 387 assert(batch->buffer); 388 assert(batch->transfer ed_size <= batch->buffer_size);389 memcpy(batch->buffer, transfer->hc_buffer.virt, batch->transfer ed_size);388 assert(batch->transferred_size <= batch->buffer_size); 389 memcpy(batch->buffer, transfer->hc_buffer.virt, batch->transferred_size); 390 390 } 391 391
Note:
See TracChangeset
for help on using the changeset viewer.