Changes in / [dd6f59f:df949c5] in mainline


Ignore:
Location:
uspace/drv
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci-hcd/batch.c

    rdd6f59f rdf949c5  
    318318                ++packet;
    319319        }
    320         instance->tds[packet - 1].status |= TD_STATUS_COMPLETE_INTERRUPT_FLAG;
    321320        device_keeper_set_toggle(instance->manager, instance->target, toggle);
    322321}
  • uspace/drv/uhci-hcd/uhci.c

    rdd6f59f rdf949c5  
    372372        assert(instance);
    373373        /* 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);
    381378}
    382379/*----------------------------------------------------------------------------*/
     
    393390
    394391        while (1) {
    395                 /* read and ack interrupts */
    396392                uint16_t status = pio_read_16(&instance->registers->usbsts);
    397                 pio_write_16(&instance->registers->usbsts, 0x1f);
    398393                if (status != 0)
    399394                        usb_log_debug2("UHCI status: %x.\n", status);
     395                status |= 1;
    400396                uhci_interrupt(instance, status);
     397                pio_write_16(&instance->registers->usbsts, 0x1f);
    401398                async_usleep(UHCI_CLEANER_TIMEOUT);
    402399        }
  • uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.h

    rdd6f59f rdf949c5  
    9191
    9292
    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);
     93void 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);
    9696
    9797int td_status(td_t *instance);
  • uspace/drv/uhci-rhd/port.c

    rdd6f59f rdf949c5  
    181181        uhci_port_t *port = (uhci_port_t *) arg;
    182182
    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);
    184185
    185186        /*
     
    189190        async_usleep(100000);
    190191
    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)
    193195         */
    194196        {
    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);
    196199                port_status_t port_status = uhci_port_read_status(port);
    197200                port_status |= STATUS_IN_RESET;
    198201                uhci_port_write_status(port, port_status);
    199                 async_usleep(50000);
     202                async_usleep(10000);
    200203                port_status = uhci_port_read_status(port);
    201204                port_status &= ~STATUS_IN_RESET;
    202205                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        }
    208209
    209210        /* Enable the port. */
    210211        uhci_port_set_enabled(port, true);
    211 
    212212        return EOK;
    213213}
     
    226226        assert(usb_hc_connection_is_opened(&port->hc_connection));
    227227
    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);
    229230
    230231        usb_address_t dev_addr;
Note: See TracChangeset for help on using the changeset viewer.