Changes in / [dd6f59f:df949c5] in mainline
- Location:
- uspace/drv
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/batch.c
rdd6f59f rdf949c5 318 318 ++packet; 319 319 } 320 instance->tds[packet - 1].status |= TD_STATUS_COMPLETE_INTERRUPT_FLAG;321 320 device_keeper_set_toggle(instance->manager, instance->target, toggle); 322 321 } -
uspace/drv/uhci-hcd/uhci.c
rdd6f59f rdf949c5 372 372 assert(instance); 373 373 /* TODO: Check interrupt cause here */ 374 /* Lower 2 bits are transaction error and transaction complete */ 375 if (status & 0x3) { 376 transfer_list_remove_finished(&instance->transfers_interrupt); 377 transfer_list_remove_finished(&instance->transfers_control_slow); 378 transfer_list_remove_finished(&instance->transfers_control_full); 379 transfer_list_remove_finished(&instance->transfers_bulk_full); 380 } 374 transfer_list_remove_finished(&instance->transfers_interrupt); 375 transfer_list_remove_finished(&instance->transfers_control_slow); 376 transfer_list_remove_finished(&instance->transfers_control_full); 377 transfer_list_remove_finished(&instance->transfers_bulk_full); 381 378 } 382 379 /*----------------------------------------------------------------------------*/ … … 393 390 394 391 while (1) { 395 /* read and ack interrupts */396 392 uint16_t status = pio_read_16(&instance->registers->usbsts); 397 pio_write_16(&instance->registers->usbsts, 0x1f);398 393 if (status != 0) 399 394 usb_log_debug2("UHCI status: %x.\n", status); 395 status |= 1; 400 396 uhci_interrupt(instance, status); 397 pio_write_16(&instance->registers->usbsts, 0x1f); 401 398 async_usleep(UHCI_CLEANER_TIMEOUT); 402 399 } -
uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h
rdd6f59f rdf949c5 91 91 92 92 93 void td_init(td_t *instance, int error_count, size_t size, bool toggle, 94 bool iso, bool low_speed, usb_target_t target, usb_packet_id pid,95 void *buffer,td_t *next);93 void td_init(td_t *instance, int error_count, size_t size, bool toggle, bool iso, 94 bool low_speed, usb_target_t target, usb_packet_id pid, void *buffer, 95 td_t *next); 96 96 97 97 int td_status(td_t *instance); -
uspace/drv/uhci-rhd/port.c
rdd6f59f rdf949c5 181 181 uhci_port_t *port = (uhci_port_t *) arg; 182 182 183 usb_log_debug2("%s: new_device_enable_port.\n", port->id_string); 183 usb_log_debug2("%s: new_device_enable_port.\n", 184 port->id_string); 184 185 185 186 /* … … 189 190 async_usleep(100000); 190 191 191 /* 192 * Resets from root ports should be nominally 50ms 192 193 /* The hub maintains the reset signal to that port for 10 ms 194 * (See Section 11.5.1.5) 193 195 */ 194 196 { 195 usb_log_debug("%s: Reset Signal start.\n", port->id_string); 197 usb_log_debug("%s: Reset Signal start.\n", 198 port->id_string); 196 199 port_status_t port_status = uhci_port_read_status(port); 197 200 port_status |= STATUS_IN_RESET; 198 201 uhci_port_write_status(port, port_status); 199 async_usleep( 50000);202 async_usleep(10000); 200 203 port_status = uhci_port_read_status(port); 201 204 port_status &= ~STATUS_IN_RESET; 202 205 uhci_port_write_status(port, port_status); 203 usb_log_debug("%s: Reset Signal stop.\n", port->id_string); 204 } 205 206 /* the reset recovery time 10ms */ 207 async_usleep(10000); 206 usb_log_debug("%s: Reset Signal stop.\n", 207 port->id_string); 208 } 208 209 209 210 /* Enable the port. */ 210 211 uhci_port_set_enabled(port, true); 211 212 212 return EOK; 213 213 } … … 226 226 assert(usb_hc_connection_is_opened(&port->hc_connection)); 227 227 228 usb_log_info("%s: Detected new device.\n", port->id_string); 228 usb_log_info("%s: Detected new device.\n", 229 port->id_string); 229 230 230 231 usb_address_t dev_addr;
Note:
See TracChangeset
for help on using the changeset viewer.