Changeset 4c25c2fb in mainline
- Timestamp:
- 2018-01-15T15:02:57Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 745a3f1
- Parents:
- 01d9707
- Location:
- uspace
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/hw_struct/queue_head.c
r01d9707 r4c25c2fb 83 83 uint32_t ep_cap = QH_EP_CAP_C_MASK_SET(3 << 2) | 84 84 QH_EP_CAP_MULTI_SET(ep->packets_per_uframe); 85 if (ep->device->speed != USB_SPEED_HIGH) { 85 if (usb_speed_is_11(ep->device->speed)) { 86 assert(ep->device->tt.dev != NULL); 86 87 ep_cap |= 87 88 QH_EP_CAP_TT_PORT_SET(ep->device->tt.port) | 88 QH_EP_CAP_TT_ADDR_SET(ep->device->tt. address);89 QH_EP_CAP_TT_ADDR_SET(ep->device->tt.dev->address); 89 90 } 90 91 if (ep->transfer_type == USB_TRANSFER_INTERRUPT) { -
uspace/drv/bus/usb/xhci/bus.c
r01d9707 r4c25c2fb 149 149 xhci_device_t *xhci_dev = xhci_device_get(dev); 150 150 151 hcd_setup_device_tt(dev);152 153 151 /* Calculate route string */ 154 152 xhci_device_t *xhci_hub = xhci_device_get(dev->hub); -
uspace/lib/drv/include/usb_iface.h
r01d9707 r4c25c2fb 67 67 typedef int16_t usb_address_t; 68 68 69 /** USB address for the purposes of Transaction Translation.70 */71 typedef struct {72 usb_address_t address;73 unsigned port;74 } usb_tt_address_t;75 76 69 /** USB transfer type. */ 77 70 typedef enum { -
uspace/lib/usbhost/include/usb/host/bus.h
r01d9707 r4c25c2fb 71 71 72 72 /* Transaction translator */ 73 usb_tt_address_t tt; 73 struct { 74 device_t *dev; 75 unsigned port; 76 } tt; 74 77 75 78 /* The following are not set by the library */ -
uspace/lib/usbhost/include/usb/host/hcd.h
r01d9707 r4c25c2fb 114 114 */ 115 115 extern int hcd_get_ep0_max_packet_size(uint16_t *, bus_t *, device_t *); 116 extern void hcd_setup_device_tt(device_t *);117 116 118 117 /** How many toggles need to be reset */ -
uspace/lib/usbhost/src/bus.c
r01d9707 r4c25c2fb 97 97 98 98 /** 99 * Setup devices Transaction Translation. 100 * 101 * This applies for Low/Full speed devices under High speed hub only. Other 102 * devices just inherit TT from the hub. 103 * 104 * Roothub must be handled specially. 105 */ 106 static void device_setup_tt(device_t *dev) 107 { 108 if (!dev->hub) 109 return; 110 111 if (dev->hub->speed == USB_SPEED_HIGH && usb_speed_is_11(dev->speed)) { 112 /* For LS devices under HS hub */ 113 dev->tt.dev = dev->hub; 114 dev->tt.port = dev->port; 115 } 116 else { 117 /* Inherit hub's TT */ 118 dev->tt = dev->hub->tt; 119 } 120 } 121 122 /** 99 123 * Invoke the device_enumerate bus operation. 100 124 * … … 111 135 if (dev->online) 112 136 return EINVAL; 137 138 device_setup_tt(dev); 113 139 114 140 const int r = ops->device_enumerate(dev); -
uspace/lib/usbhost/src/hcd.c
r01d9707 r4c25c2fb 426 426 } 427 427 return EOK; 428 }429 430 /**431 * Setup devices Transaction Translation.432 *433 * This applies for Low/Full speed devices under High speed hub only. Other434 * devices just inherit TT from the hub.435 *436 * Roothub must be handled specially.437 */438 void hcd_setup_device_tt(device_t *dev)439 {440 if (!dev->hub)441 return;442 443 if (dev->hub->speed == USB_SPEED_HIGH && usb_speed_is_11(dev->speed)) {444 /* For LS devices under HS hub */445 dev->tt.address = dev->hub->address;446 dev->tt.port = dev->port;447 }448 else {449 /* Inherit hub's TT */450 dev->tt = dev->hub->tt;451 }452 428 } 453 429 -
uspace/lib/usbhost/src/usb2_bus.c
r01d9707 r4c25c2fb 196 196 usb_log_debug("Found new %s speed USB device.", usb_str_speed(dev->speed)); 197 197 198 if (!dev->hub) {199 /* The device is the roothub */200 dev->tt = (usb_tt_address_t) {201 .address = -1,202 .port = 0,203 };204 } else {205 hcd_setup_device_tt(dev);206 }207 208 198 /* Assign an address to the device */ 209 199 if ((err = address_device(dev))) {
Note:
See TracChangeset
for help on using the changeset viewer.