Changeset cd3fa47 in mainline for uspace/drv/bus/usb/ehci/ehci_rh.c
- Timestamp:
- 2018-01-21T18:35:09Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3f02935
- Parents:
- 32b2a6f2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/ehci_rh.c
r32b2a6f2 rcd3fa47 247 247 248 248 #define BIT_VAL(val, bit) ((val & bit) ? 1 : 0) 249 #define EHCI2USB(val, bit, feat) (BIT_VAL(val, bit) << feat)249 #define EHCI2USB(val, bit, mask) (BIT_VAL(val, bit) ? mask : 0) 250 250 251 251 /** Port status request handler. … … 269 269 const uint32_t reg = EHCI_RD(hub->registers->portsc[port]); 270 270 const uint32_t status = uint32_host2usb( 271 EHCI2USB(reg, USB_PORTSC_CONNECT_FLAG, USB_HUB_ FEATURE_PORT_CONNECTION) |272 EHCI2USB(reg, USB_PORTSC_ENABLED_FLAG, USB_HUB_ FEATURE_PORT_ENABLE) |273 EHCI2USB(reg, USB_PORTSC_SUSPEND_FLAG, USB _HUB_FEATURE_PORT_SUSPEND) |274 EHCI2USB(reg, USB_PORTSC_OC_ACTIVE_FLAG, USB_HUB_ FEATURE_PORT_OVER_CURRENT) |275 EHCI2USB(reg, USB_PORTSC_PORT_RESET_FLAG, USB_HUB_ FEATURE_PORT_RESET) |276 EHCI2USB(reg, USB_PORTSC_PORT_POWER_FLAG, USB _HUB_FEATURE_PORT_POWER) |271 EHCI2USB(reg, USB_PORTSC_CONNECT_FLAG, USB_HUB_PORT_STATUS_CONNECTION) | 272 EHCI2USB(reg, USB_PORTSC_ENABLED_FLAG, USB_HUB_PORT_STATUS_ENABLE) | 273 EHCI2USB(reg, USB_PORTSC_SUSPEND_FLAG, USB2_HUB_PORT_STATUS_SUSPEND) | 274 EHCI2USB(reg, USB_PORTSC_OC_ACTIVE_FLAG, USB_HUB_PORT_STATUS_OC) | 275 EHCI2USB(reg, USB_PORTSC_PORT_RESET_FLAG, USB_HUB_PORT_STATUS_RESET) | 276 EHCI2USB(reg, USB_PORTSC_PORT_POWER_FLAG, USB2_HUB_PORT_STATUS_POWER) | 277 277 (((reg & USB_PORTSC_LINE_STATUS_MASK) == USB_PORTSC_LINE_STATUS_K) ? 278 ( 1 << USB_HUB_FEATURE_PORT_LOW_SPEED) : 0) |279 ((reg & USB_PORTSC_PORT_OWNER_FLAG) ? 0 : (1 << USB_HUB_FEATURE_PORT_HIGH_SPEED)) |280 EHCI2USB(reg, USB_PORTSC_PORT_TEST_MASK, 11) |281 EHCI2USB(reg, USB_PORTSC_INDICATOR_MASK, 12) |282 EHCI2USB(reg, USB_PORTSC_CONNECT_CH_FLAG, USB_HUB_ FEATURE_C_PORT_CONNECTION) |283 EHCI2USB(reg, USB_PORTSC_EN_CHANGE_FLAG, USB _HUB_FEATURE_C_PORT_ENABLE) |284 (hub->resume_flag[port] ? (1 << USB_HUB_FEATURE_C_PORT_SUSPEND): 0) |285 EHCI2USB(reg, USB_PORTSC_OC_CHANGE_FLAG, USB_HUB_ FEATURE_C_PORT_OVER_CURRENT) |286 (hub->reset_flag[port] ? (1 << USB_HUB_FEATURE_C_PORT_RESET): 0)278 (USB2_HUB_PORT_STATUS_LOW_SPEED) : 0) | 279 ((reg & USB_PORTSC_PORT_OWNER_FLAG) ? 0 : USB2_HUB_PORT_STATUS_HIGH_SPEED) | 280 EHCI2USB(reg, USB_PORTSC_PORT_TEST_MASK, USB2_HUB_PORT_STATUS_TEST) | 281 EHCI2USB(reg, USB_PORTSC_INDICATOR_MASK, USB2_HUB_PORT_STATUS_INDICATOR) | 282 EHCI2USB(reg, USB_PORTSC_CONNECT_CH_FLAG, USB_HUB_PORT_STATUS_C_CONNECTION) | 283 EHCI2USB(reg, USB_PORTSC_EN_CHANGE_FLAG, USB2_HUB_PORT_STATUS_C_ENABLE) | 284 (hub->resume_flag[port] ? USB2_HUB_PORT_STATUS_C_SUSPEND : 0) | 285 EHCI2USB(reg, USB_PORTSC_OC_CHANGE_FLAG, USB_HUB_PORT_STATUS_C_OC) | 286 (hub->reset_flag[port] ? USB_HUB_PORT_STATUS_C_RESET: 0) 287 287 ); 288 288 /* Note feature numbers for test and indicator feature do not … … 385 385 return EOK; 386 386 387 case USB _HUB_FEATURE_PORT_ENABLE: /*1*/387 case USB2_HUB_FEATURE_PORT_ENABLE: /*1*/ 388 388 usb_log_debug2("RH(%p-%u): Clear port enable.", hub, port); 389 389 EHCI_CLR(hub->registers->portsc[port], … … 391 391 return EOK; 392 392 393 case USB _HUB_FEATURE_PORT_SUSPEND: /*2*/393 case USB2_HUB_FEATURE_PORT_SUSPEND: /*2*/ 394 394 usb_log_debug2("RH(%p-%u): Clear port suspend.", hub, port); 395 395 /* If not in suspend it's noop */ … … 409 409 USB_PORTSC_CONNECT_CH_FLAG); 410 410 return EOK; 411 case USB _HUB_FEATURE_C_PORT_ENABLE: /*17*/411 case USB2_HUB_FEATURE_C_PORT_ENABLE: /*17*/ 412 412 usb_log_debug2("RH(%p-%u): Clear port enable change.", 413 413 hub, port); … … 421 421 USB_PORTSC_OC_CHANGE_FLAG); 422 422 return EOK; 423 case USB _HUB_FEATURE_C_PORT_SUSPEND: /*18*/423 case USB2_HUB_FEATURE_C_PORT_SUSPEND: /*18*/ 424 424 usb_log_debug2("RH(%p-%u): Clear port suspend change.", 425 425 hub, port); … … 456 456 const unsigned feature = uint16_usb2host(setup_packet->value); 457 457 switch (feature) { 458 case USB _HUB_FEATURE_PORT_ENABLE: /*1*/458 case USB2_HUB_FEATURE_PORT_ENABLE: /*1*/ 459 459 usb_log_debug2("RH(%p-%u): Set port enable.", hub, port); 460 460 EHCI_SET(hub->registers->portsc[port], 461 461 USB_PORTSC_ENABLED_FLAG); 462 462 return EOK; 463 case USB _HUB_FEATURE_PORT_SUSPEND: /*2*/463 case USB2_HUB_FEATURE_PORT_SUSPEND: /*2*/ 464 464 usb_log_debug2("RH(%p-%u): Set port suspend.", hub, port); 465 465 EHCI_SET(hub->registers->portsc[port],
Note:
See TracChangeset
for help on using the changeset viewer.