Changeset 5f97ef44 in mainline for uspace/drv/bus/usb


Ignore:
Timestamp:
2018-07-13T14:10:15Z (7 years ago)
Author:
Jiří Zárevúcky <jiri.zarevucky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e3787a0
Parents:
9912f49
git-author:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-13 14:08:57)
git-committer:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-13 14:10:15)
Message:

Sleep is more natural as part of the fibril API.
(the implementation will move later)

Location:
uspace/drv/bus/usb
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/ehci/ehci_rh.c

    r9912f49 r5f97ef44  
    334334{
    335335        ehci_rh_job_t *job = arg;
    336         async_usleep(50000);
     336        fibril_usleep(50000);
    337337        usb_log_debug("RH(%p-%u): Clearing reset", job->hub, job->port);
    338338        EHCI_CLR(job->hub->registers->portsc[job->port],
     
    341341        while (EHCI_RD(job->hub->registers->portsc[job->port]) &
    342342            USB_PORTSC_PORT_RESET_FLAG) {
    343                 async_usleep(1);
     343                fibril_usleep(1);
    344344        }
    345345        usb_log_debug("RH(%p-%u): Reset complete", job->hub, job->port);
     
    365365{
    366366        ehci_rh_job_t *job = arg;
    367         async_usleep(20000);
     367        fibril_usleep(20000);
    368368        usb_log_debug("RH(%p-%u): Stopping resume", job->hub, job->port);
    369369        EHCI_CLR(job->hub->registers->portsc[job->port],
  • uspace/drv/bus/usb/ehci/hc.c

    r9912f49 r5f97ef44  
    408408                /* Wait until hc is halted */
    409409                while ((EHCI_RD(instance->registers->usbsts) & USB_STS_HC_HALTED_FLAG) == 0) {
    410                         async_usleep(1);
     410                        fibril_usleep(1);
    411411                }
    412412                usb_log_info("HC(%p): EHCI turned off.", instance);
     
    419419        usb_log_info("HC(%p): Waiting for HW reset.", instance);
    420420        while (EHCI_RD(instance->registers->usbcmd) & USB_CMD_HC_RESET_FLAG) {
    421                 async_usleep(1);
     421                fibril_usleep(1);
    422422        }
    423423        usb_log_debug("HC(%p): HW reset OK.", instance);
  • uspace/drv/bus/usb/ehci/res.c

    r9912f49 r5f97ef44  
    9999        while ((ret == EOK) && (wait < DEFAULT_WAIT) &&
    100100            (usblegsup & USBLEGSUP_BIOS_CONTROL)) {
    101                 async_usleep(WAIT_STEP);
     101                fibril_usleep(WAIT_STEP);
    102102                ret = pci_config_space_read_32(parent_sess,
    103103                    eecp + USBLEGSUP_OFFSET, &usblegsup);
  • uspace/drv/bus/usb/ohci/hc.c

    r9912f49 r5f97ef44  
    425425                /* Hope that SMM actually knows its stuff or we can hang here */
    426426                while (OHCI_RD(instance->registers->control) & C_IR) {
    427                         async_usleep(1000);
     427                        fibril_usleep(1000);
    428428                }
    429429                usb_log_info("SMM driver: Ownership taken.");
    430430                C_HCFS_SET(instance->registers->control, C_HCFS_RESET);
    431                 async_usleep(50000);
     431                fibril_usleep(50000);
    432432                return EOK;
    433433        }
     
    443443                /* HC is suspended assert resume for 20ms */
    444444                C_HCFS_SET(instance->registers->control, C_HCFS_RESUME);
    445                 async_usleep(20000);
     445                fibril_usleep(20000);
    446446                usb_log_info("BIOS driver: HC resumed.");
    447447                return EOK;
     
    453453         */
    454454        usb_log_debug("Host controller found in reset state.");
    455         async_usleep(50000);
     455        fibril_usleep(50000);
    456456        return EOK;
    457457}
     
    479479        OHCI_WR(instance->registers->command_status, CS_HCR);
    480480        while (OHCI_RD(instance->registers->command_status) & CS_HCR) {
    481                 async_usleep(10);
     481                fibril_usleep(10);
    482482                time += 10;
    483483        }
  • uspace/drv/bus/usb/uhci/hc.c

    r9912f49 r5f97ef44  
    280280        /* Reset everything, who knows what touched it before us */
    281281        pio_write_16(&registers->usbcmd, UHCI_CMD_GLOBAL_RESET);
    282         async_usleep(50000); /* 50ms according to USB spec(root hub reset) */
     282        fibril_usleep(50000); /* 50ms according to USB spec(root hub reset) */
    283283        pio_write_16(&registers->usbcmd, 0);
    284284
     
    286286        pio_write_16(&registers->usbcmd, UHCI_CMD_HCRESET);
    287287        do {
    288                 async_usleep(10);
     288                fibril_usleep(10);
    289289        } while ((pio_read_16(&registers->usbcmd) & UHCI_CMD_HCRESET) != 0);
    290290
     
    405405         * the buffers.
    406406         */
    407         async_usleep(20000);
     407        fibril_usleep(20000);
    408408        batch->base.error = EINTR;
    409409        batch->base.transferred_size = 0;
     
    660660                            (void *) expected_pa, (void *) real_pa);
    661661                }
    662                 async_usleep(UHCI_DEBUGER_TIMEOUT);
     662                fibril_usleep(UHCI_DEBUGER_TIMEOUT);
    663663        }
    664664        return EOK;
  • uspace/drv/bus/usb/uhci/uhci_rh.c

    r9912f49 r5f97ef44  
    110110                    batch->dma_buffer.virt, batch->size, &batch->transferred_size);
    111111                if (batch->error == ENAK)
    112                         async_usleep(instance->base.endpoint_descriptor.poll_interval * 1000);
     112                        fibril_usleep(instance->base.endpoint_descriptor.poll_interval * 1000);
    113113                //TODO This is flimsy, but we can't exit early because
    114114                //ENAK is technically an error condition
     
    147147        port_status |= STATUS_IN_RESET;
    148148        pio_write_16(port, port_status);
    149         async_usleep(50000);
     149        fibril_usleep(50000);
    150150        port_status = pio_read_16(port);
    151151        port_status &= ~STATUS_IN_RESET;
  • uspace/drv/bus/usb/vhc/hub/hub.c

    r9912f49 r5f97ef44  
    465465            (struct delay_port_state_change *) arg;
    466466
    467         async_usleep(change->delay);
     467        fibril_usleep(change->delay);
    468468
    469469        hub_acquire(change->hub);
  • uspace/drv/bus/usb/vhc/transfer.c

    r9912f49 r5f97ef44  
    242242                if (list_empty(&dev->transfer_queue)) {
    243243                        fibril_mutex_unlock(&dev->guard);
    244                         async_usleep(10 * 1000);
     244                        fibril_usleep(10 * 1000);
    245245                        fibril_mutex_lock(&dev->guard);
    246246                        continue;
     
    290290                }
    291291
    292                 async_usleep(1000 * 100);
     292                fibril_usleep(1000 * 100);
    293293                fibril_mutex_lock(&dev->guard);
    294294        }
  • uspace/drv/bus/usb/xhci/hc.c

    r9912f49 r5f97ef44  
    430430                        return XHCI_REG_RD(hc->legsup, XHCI_LEGSUP_SEM_OS) == 1 ? EOK : EIO;
    431431                }
    432                 async_usleep(XHCI_LEGSUP_POLLING_DELAY_1MS);
     432                fibril_usleep(XHCI_LEGSUP_POLLING_DELAY_1MS);
    433433        }
    434434        usb_log_error("BIOS did not release XHCI legacy hold!");
  • uspace/drv/bus/usb/xhci/hw_struct/common.h

    r9912f49 r5f97ef44  
    103103
    104104        for (; retries > 0 && value != expected; --retries) {
    105                 async_usleep(10000);
     105                fibril_usleep(10000);
    106106                value = *reg & mask;
    107107        }
Note: See TracChangeset for help on using the changeset viewer.