Changeset 338d54a7 in mainline for uspace/drv/bus
- Timestamp:
- 2018-03-10T22:55:07Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 850fd32
- Parents:
- 5ef16903
- Location:
- uspace/drv/bus/usb
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/ohci_rh.c
r5ef16903 r338d54a7 343 343 ohci_rh_t *hub; 344 344 unsigned port; 345 uint32_t rhda; 345 346 TEST_SIZE_INIT(0, port, hub); 346 347 const unsigned feature = uint16_usb2host(setup_packet->value); … … 349 350 { 350 351 case USB_HUB_FEATURE_PORT_POWER: /*8*/ 351 { 352 const uint32_t rhda = 353 OHCI_RD(hub->registers->rh_desc_a); 354 /* No power switching */ 355 if (rhda & RHDA_NPS_FLAG) 356 return ENOTSUP; 357 /* Ganged power switching, one port powers all */ 358 if (!(rhda & RHDA_PSM_FLAG)) { 359 OHCI_WR(hub->registers->rh_status, 360 RHS_CLEAR_GLOBAL_POWER); 361 return EOK; 362 } 363 OHCI_WR(hub->registers->rh_port_status[port], 364 RHPS_CLEAR_PORT_POWER); 352 rhda = OHCI_RD(hub->registers->rh_desc_a); 353 /* No power switching */ 354 if (rhda & RHDA_NPS_FLAG) 355 return ENOTSUP; 356 /* Ganged power switching, one port powers all */ 357 if (!(rhda & RHDA_PSM_FLAG)) { 358 OHCI_WR(hub->registers->rh_status, 359 RHS_CLEAR_GLOBAL_POWER); 365 360 return EOK; 366 361 } 367 362 OHCI_WR(hub->registers->rh_port_status[port], 363 RHPS_CLEAR_PORT_POWER); 364 return EOK; 368 365 case USB2_HUB_FEATURE_PORT_ENABLE: /*1*/ 369 366 OHCI_WR(hub->registers->rh_port_status[port], … … 407 404 ohci_rh_t *hub; 408 405 unsigned port; 406 uint32_t rhda; 409 407 TEST_SIZE_INIT(0, port, hub); 410 408 const unsigned feature = uint16_usb2host(setup_packet->value); … … 412 410 switch (feature) { 413 411 case USB_HUB_FEATURE_PORT_POWER: /*8*/ 414 { 415 const uint32_t rhda = OHCI_RD(hub->registers->rh_desc_a); 416 417 /* No power switching */ 418 if (rhda & RHDA_NPS_FLAG) 419 return EOK; 420 421 /* Ganged power switching, one port powers all */ 422 if (!(rhda & RHDA_PSM_FLAG)) { 423 OHCI_WR(hub->registers->rh_status,RHS_SET_GLOBAL_POWER); 424 return EOK; 425 } 412 rhda = OHCI_RD(hub->registers->rh_desc_a); 413 414 /* No power switching */ 415 if (rhda & RHDA_NPS_FLAG) 416 return EOK; 417 418 /* Ganged power switching, one port powers all */ 419 if (!(rhda & RHDA_PSM_FLAG)) { 420 OHCI_WR(hub->registers->rh_status,RHS_SET_GLOBAL_POWER); 421 return EOK; 426 422 } 427 423 /* Fall through, for per port power */ -
uspace/drv/bus/usb/xhci/isoch.c
r5ef16903 r338d54a7 310 310 while (isoch->transfers[isoch->hw_enqueue].state == ISOCH_FILLED) { 311 311 xhci_isoch_transfer_t * const it = &isoch->transfers[isoch->hw_enqueue]; 312 suseconds_t delay; 312 313 313 314 assert(it->state == ISOCH_FILLED); … … 317 318 318 319 switch (wd.position) { 319 case WINDOW_TOO_SOON: {320 const suseconds_tdelay = wd.offset * 125;320 case WINDOW_TOO_SOON: 321 delay = wd.offset * 125; 321 322 usb_log_debug("[isoch] delaying feeding buffer %zu for %ldus", 322 323 it - isoch->transfers, delay); … … 324 325 isoch_feed_out_timer, ep); 325 326 goto out; 326 }327 327 328 328 case WINDOW_INSIDE: … … 396 396 while (isoch->transfers[isoch->enqueue].state <= ISOCH_FILLED) { 397 397 xhci_isoch_transfer_t * const it = &isoch->transfers[isoch->enqueue]; 398 suseconds_t delay; 398 399 399 400 /* IN buffers are "filled" with free space */ … … 408 409 409 410 switch (wd.position) { 410 case WINDOW_TOO_SOON: {411 case WINDOW_TOO_SOON: 411 412 /* Not allowed to feed yet. Defer to later. */ 412 const suseconds_tdelay = wd.offset * 125;413 delay = wd.offset * 125; 413 414 usb_log_debug("[isoch] delaying feeding buffer %zu for %ldus", 414 415 it - isoch->transfers, delay); … … 416 417 isoch_feed_in_timer, ep); 417 418 goto out; 418 }419 420 419 case WINDOW_TOO_LATE: 421 420 usb_log_debug("[isoch] missed feeding buffer %zu at 0x%llx by"
Note:
See TracChangeset
for help on using the changeset viewer.