Changes in / [3746bfe:eedac04] in mainline
- Location:
- uspace/drv/uhci-hcd
- Files:
-
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c
r3746bfe reedac04 69 69 || (pid == USB_PID_OUT)); 70 70 71 const uint32_t next_pa = addr_to_phys(next); 72 assert((next_pa & LINK_POINTER_ADDRESS_MASK) == next_pa); 73 71 74 instance->next = 0 72 75 | LINK_POINTER_VERTICAL_FLAG 73 | ( (next != NULL) ? addr_to_phys(next): LINK_POINTER_TERMINATE_FLAG);76 | (next_pa ? next_pa : LINK_POINTER_TERMINATE_FLAG); 74 77 75 78 instance->status = 0 … … 90 93 | ((pid & TD_DEVICE_PID_MASK) << TD_DEVICE_PID_POS); 91 94 92 instance->buffer_ptr = 0; 93 94 if (size) { 95 instance->buffer_ptr = (uintptr_t)addr_to_phys(buffer); 96 } 95 instance->buffer_ptr = addr_to_phys(buffer); 97 96 98 97 usb_log_debug2("Created TD(%p): %X:%X:%X:%X(%p).\n", -
uspace/drv/uhci-hcd/utils/device_keeper.c
r3746bfe reedac04 179 179 } else { 180 180 if (toggle) { 181 instance->devices[target.address].toggle_status |= (1 << target.endpoint); 181 instance->devices[target.address].toggle_status |= 182 (1 << target.endpoint); 182 183 } else { 183 instance->devices[target.address].toggle_status &= ~(1 << target.endpoint); 184 instance->devices[target.address].toggle_status &= 185 ~(1 << target.endpoint); 184 186 } 185 187 ret = EOK; … … 201 203 fibril_mutex_lock(&instance->guard); 202 204 203 usb_address_t new_address = instance->last_address + 1; 204 while (instance->devices[new_address].occupied) { 205 usb_address_t new_address = instance->last_address; 206 do { 207 ++new_address; 208 if (new_address > USB11_ADDRESS_MAX) 209 new_address = 1; 205 210 if (new_address == instance->last_address) { 206 211 fibril_mutex_unlock(&instance->guard); 207 212 return ENOSPC; 208 213 } 209 if (new_address == USB11_ADDRESS_MAX) 210 new_address = 1; 211 ++new_address; 212 } 214 } while (instance->devices[new_address].occupied); 213 215 214 216 assert(new_address != USB_ADDRESS_DEFAULT); -
uspace/drv/uhci-hcd/utils/malloc32.h
r3746bfe reedac04 50 50 static inline uintptr_t addr_to_phys(void *addr) 51 51 { 52 if (addr == NULL) 53 return 0; 54 52 55 uintptr_t result; 53 56 int ret = as_get_physical_mapping(addr, &result);
Note:
See TracChangeset
for help on using the changeset viewer.