Changeset 3bacee1 in mainline for uspace/drv/bus


Ignore:
Timestamp:
2018-04-12T16:27:17Z (8 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3cf22f9
Parents:
76d0981d
git-author:
Jiri Svoboda <jiri@…> (2018-04-11 19:25:33)
git-committer:
Jiri Svoboda <jiri@…> (2018-04-12 16:27:17)
Message:

Make ccheck-fix again and commit more good files.

Location:
uspace/drv/bus
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/isa/i8237.c

    r76d0981d r3bacee1  
    293293
    294294        ret = pio_enable(DMA_CONTROLLER_SECOND_BASE,
    295                 sizeof(dma_controller_regs_second_t), (void **) &controller->second);
     295            sizeof(dma_controller_regs_second_t), (void **) &controller->second);
    296296        if (ret != EOK)
    297297                return EIO;
     
    484484        fibril_mutex_unlock(&guard);
    485485
    486         uint16_t remain = (value_high << 8 | value_low) ;
     486        uint16_t remain = (value_high << 8 | value_low);
    487487        /* 16 bit DMA size is in words,
    488488         * the upper bits are bogus for 16bit transfers so we need to get
     
    490490        if (is_dma16(channel))
    491491                remain <<= 1;
    492         *size =  is_dma16(channel) ? remain + 2: remain + 1;
     492        *size =  is_dma16(channel) ? remain + 2 : remain + 1;
    493493        return EOK;
    494494}
  • uspace/drv/bus/usb/ehci/ehci_batch.c

    r76d0981d r3bacee1  
    5353#define EHCI_TD_MAX_TRANSFER   (16 * 1024)
    5454
    55 static void (*const batch_setup[])(ehci_transfer_batch_t*);
     55static void (*const batch_setup[])(ehci_transfer_batch_t *);
    5656
    5757/** Safely destructs ehci_transfer_batch_t structure
     
    7474 *
    7575 */
    76 ehci_transfer_batch_t * ehci_transfer_batch_create(endpoint_t *ep)
     76ehci_transfer_batch_t *ehci_transfer_batch_create(endpoint_t *ep)
    7777{
    7878        assert(ep);
     
    9999        assert(ehci_batch);
    100100
    101         const size_t setup_size = (ehci_batch->base.ep->transfer_type == USB_TRANSFER_CONTROL)
    102                 ? USB_SETUP_PACKET_SIZE
    103                 : 0;
     101        const size_t setup_size = (ehci_batch->base.ep->transfer_type == USB_TRANSFER_CONTROL) ?
     102            USB_SETUP_PACKET_SIZE :
     103            0;
    104104
    105105        const size_t size = ehci_batch->base.size;
     
    109109
    110110        /* Determine number of TDs needed */
    111         ehci_batch->td_count = (size + EHCI_TD_MAX_TRANSFER - 1)
    112                 / EHCI_TD_MAX_TRANSFER;
     111        ehci_batch->td_count = (size + EHCI_TD_MAX_TRANSFER - 1) /
     112            EHCI_TD_MAX_TRANSFER;
    113113
    114114        /* Control transfer need Setup and Status stage */
     
    173173            ehci_batch->qh->next, ehci_batch->qh->alternate);
    174174
    175         if (!qh_halted(ehci_batch->qh) && (qh_transfer_pending(ehci_batch->qh)
    176             || qh_transfer_active(ehci_batch->qh)))
     175        if (!qh_halted(ehci_batch->qh) && (qh_transfer_pending(ehci_batch->qh) ||
     176            qh_transfer_active(ehci_batch->qh)))
    177177                return false;
    178178
     
    204204                         * we leave the very last(unused) TD behind.
    205205                         */
    206                         ehci_batch->base.transferred_size
    207                             -= td_remain_size(&ehci_batch->tds[i]);
     206                        ehci_batch->base.transferred_size -=
     207                            td_remain_size(&ehci_batch->tds[i]);
    208208                } else {
    209209                        usb_log_debug("Batch %p found error TD(%zu):%08x: %s.",
     
    274274            dma_buffer_phys(&ehci_batch->ehci_dma_buffer, ehci_batch->setup_buffer),
    275275            USB_DIRECTION_BOTH, USB_SETUP_PACKET_SIZE, toggle, false);
    276         usb_log_debug2("Batch %p: Created CONTROL SETUP TD(%"PRIxn"): "
     276        usb_log_debug2("Batch %p: Created CONTROL SETUP TD(%" PRIxn "): "
    277277            "%08x:%08x:%08x", ehci_batch,
    278278            dma_buffer_phys(&ehci_batch->ehci_dma_buffer, &ehci_batch->tds[0]),
     
    292292                    dma_buffer_phys(&ehci_batch->ehci_dma_buffer, &ehci_batch->tds[td_current + 1]),
    293293                    buffer, data_dir, transfer_size, toggle, false);
    294                 usb_log_debug2("Batch %p: Created CONTROL DATA TD(%"PRIxn"): "
     294                usb_log_debug2("Batch %p: Created CONTROL DATA TD(%" PRIxn "): "
    295295                    "%08x:%08x:%08x", ehci_batch,
    296296                    dma_buffer_phys(&ehci_batch->ehci_dma_buffer, &ehci_batch->tds[td_current]),
     
    308308        assert(td_current == ehci_batch->td_count - 1);
    309309        td_init(&ehci_batch->tds[td_current], 0, 0, status_dir, 0, 1, true);
    310         usb_log_debug2("Batch %p: Created CONTROL STATUS TD %d(%"PRIxn"): "
     310        usb_log_debug2("Batch %p: Created CONTROL STATUS TD %d(%" PRIxn "): "
    311311            "%08x:%08x:%08x", ehci_batch, td_current,
    312312            dma_buffer_phys(&ehci_batch->ehci_dma_buffer, &ehci_batch->tds[td_current]),
     
    340340            ehci_batch->data_buffer);
    341341        while (remain_size > 0) {
    342                 const size_t transfer_size = remain_size > EHCI_TD_MAX_TRANSFER
    343                     ? EHCI_TD_MAX_TRANSFER : remain_size;
     342                const size_t transfer_size = remain_size > EHCI_TD_MAX_TRANSFER ?
     343                    EHCI_TD_MAX_TRANSFER : remain_size;
    344344
    345345                const bool last = (remain_size == transfer_size);
    346346                td_init(&ehci_batch->tds[td_current],
    347347                    last ? 0 : dma_buffer_phys(&ehci_batch->ehci_dma_buffer,
    348                             &ehci_batch->tds[td_current + 1]),
     348                    &ehci_batch->tds[td_current + 1]),
    349349                    buffer, ehci_batch->base.dir, transfer_size, -1, last);
    350350
    351                 usb_log_debug2("Batch %p: DATA TD(%"PRIxn": %08x:%08x:%08x",
     351                usb_log_debug2("Batch %p: DATA TD(%" PRIxn ": %08x:%08x:%08x",
    352352                    ehci_batch,
    353353                    dma_buffer_phys(&ehci_batch->ehci_dma_buffer,
    354                         &ehci_batch->tds[td_current]),
     354                    &ehci_batch->tds[td_current]),
    355355                    ehci_batch->tds[td_current].status,
    356356                    ehci_batch->tds[td_current].next,
     
    365365
    366366/** Transfer setup table. */
    367 static void (*const batch_setup[])(ehci_transfer_batch_t*) =
    368 {
     367static void (*const batch_setup[])(ehci_transfer_batch_t *) =
     368    {
    369369        [USB_TRANSFER_CONTROL] = batch_control,
    370370        [USB_TRANSFER_BULK] = batch_data,
  • uspace/drv/bus/usb/ehci/ehci_rh.c

    r76d0981d r3bacee1  
    119119        }
    120120        for (unsigned i = 0; i < instance->port_count; ++i)
    121                 usb_log_debug2("RH(%p-%u): status: %"PRIx32, instance, i,
     121                usb_log_debug2("RH(%p-%u): status: %" PRIx32, instance, i,
    122122                    EHCI_RD(regs->portsc[i]));
    123123
     
    147147        assert(batch);
    148148        batch->error = virthub_base_request(&instance->base, batch->target,
    149             batch->dir, (void*) batch->setup.buffer,
     149            batch->dir, (void *) batch->setup.buffer,
    150150            batch->dma_buffer.virt, batch->size,
    151151            &batch->transferred_size);
     
    195195        }
    196196
    197         usb_transfer_batch_t * const batch = ep->active_batch;
     197        usb_transfer_batch_t *const batch = ep->active_batch;
    198198        endpoint_deactivate_locked(ep);
    199199        instance->status_change_endpoint = NULL;
     
    206206                    instance, batch);
    207207                batch->error = virthub_base_request(&instance->base, batch->target,
    208                     batch->dir, (void*) batch->setup.buffer,
     208                    batch->dir, (void *) batch->setup.buffer,
    209209                    batch->dma_buffer.virt, batch->size,
    210210                    &batch->transferred_size);
     
    304304            EHCI2USB(reg, USB_PORTSC_PORT_POWER_FLAG, USB2_HUB_PORT_STATUS_POWER) |
    305305            (((reg & USB_PORTSC_LINE_STATUS_MASK) == USB_PORTSC_LINE_STATUS_K) ?
    306                 (USB2_HUB_PORT_STATUS_LOW_SPEED) : 0) |
     306            (USB2_HUB_PORT_STATUS_LOW_SPEED) : 0) |
    307307            ((reg & USB_PORTSC_PORT_OWNER_FLAG) ? 0 : USB2_HUB_PORT_STATUS_HIGH_SPEED) |
    308308            EHCI2USB(reg, USB_PORTSC_PORT_TEST_MASK, USB2_HUB_PORT_STATUS_TEST) |
     
    312312            (hub->resume_flag[port] ? USB2_HUB_PORT_STATUS_C_SUSPEND : 0) |
    313313            EHCI2USB(reg, USB_PORTSC_OC_CHANGE_FLAG, USB_HUB_PORT_STATUS_C_OC) |
    314             (hub->reset_flag[port] ? USB_HUB_PORT_STATUS_C_RESET: 0)
    315         );
     314            (hub->reset_flag[port] ? USB_HUB_PORT_STATUS_C_RESET : 0));
    316315        /* Note feature numbers for test and indicator feature do not
    317316         * correspond to the port status bit locations */
    318         usb_log_debug2("RH(%p-%u) port status: %"PRIx32"(%"PRIx32")", hub, port,
     317        usb_log_debug2("RH(%p-%u) port status: %" PRIx32 "(%" PRIx32 ")", hub, port,
    319318            status, reg);
    320319        memcpy(data, &status, sizeof(status));
     
    345344        if (!(EHCI_RD(job->hub->registers->portsc[job->port]) &
    346345            USB_PORTSC_ENABLED_FLAG)) {
    347                 usb_log_info("RH(%p-%u): Port not enabled after reset (%"PRIX32
     346                usb_log_info("RH(%p-%u): Port not enabled after reset (%" PRIX32
    348347                    "), giving up ownership", job->hub, job->port,
    349348                    EHCI_RD(job->hub->registers->portsc[job->port]));
     
    370369}
    371370
    372 static errno_t delayed_job(errno_t (*func)(void*), ehci_rh_t *rh, unsigned port)
     371static errno_t delayed_job(errno_t (*func)(void *), ehci_rh_t *rh, unsigned port)
    373372{
    374373        ehci_rh_job_t *job = malloc(sizeof(*job));
     
    405404        const unsigned feature = uint16_usb2host(setup_packet->value);
    406405        /* Enabled features to clear: see page 269 of USB specs */
    407         switch (feature)
    408         {
     406        switch (feature) {
    409407        case USB_HUB_FEATURE_PORT_POWER:          /*8*/
    410408                usb_log_debug2("RH(%p-%u): Clear port power.", hub, port);
     
    424422                if ((EHCI_RD(hub->registers->portsc[port]) &
    425423                    USB_PORTSC_SUSPEND_FLAG) == 0)
    426                     return EOK;
     424                        return EOK;
    427425                /* Host driven resume */
    428426                EHCI_SET(hub->registers->portsc[port],
     
    542540                        if ((status & USB_PORTSC_CONNECT_CH_FLAG) &&
    543541                            (status & USB_PORTSC_LINE_STATUS_MASK) ==
    544                                 USB_PORTSC_LINE_STATUS_K)
     542                            USB_PORTSC_LINE_STATUS_K)
    545543                                EHCI_SET(hub->registers->portsc[port],
    546544                                    USB_PORTSC_PORT_OWNER_FLAG);
     
    550548        }
    551549
    552         usb_log_debug2("RH(%p): root hub interrupt mask: %"PRIx16, hub, mask);
     550        usb_log_debug2("RH(%p): root hub interrupt mask: %" PRIx16, hub, mask);
    553551
    554552        if (mask == 0)
     
    619617/** Virtual EHCI root hub ops */
    620618static usbvirt_device_ops_t ops = {
    621         .control = control_transfer_handlers,
    622         .data_in[HUB_STATUS_CHANGE_PIPE] = req_status_change_handler,
     619        .control = control_transfer_handlers,
     620        .data_in[HUB_STATUS_CHANGE_PIPE] = req_status_change_handler,
    623621};
  • uspace/drv/bus/usb/ehci/hc.c

    r76d0981d r3bacee1  
    133133
    134134        ehci_regs_t *registers =
    135                 (ehci_regs_t *)(RNGABSPTR(regs) + EHCI_RD8(instance->caps->caplength));
     135            (ehci_regs_t *)(RNGABSPTR(regs) + EHCI_RD8(instance->caps->caplength));
    136136        code->cmds[0].addr = (void *) &registers->usbsts;
    137137        code->cmds[3].addr = (void *) &registers->usbsts;
     
    158158        if (hw_res->mem_ranges.count != 1 ||
    159159            hw_res->mem_ranges.ranges[0].size <
    160                 (sizeof(ehci_caps_regs_t) + sizeof(ehci_regs_t)))
    161             return EINVAL;
     160            (sizeof(ehci_caps_regs_t) + sizeof(ehci_regs_t)))
     161                return EINVAL;
    162162
    163163        errno_t ret = pio_enable_range(&hw_res->mem_ranges.ranges[0],
     
    169169        }
    170170
    171         usb_log_info("HC(%p): Device registers at %"PRIx64" (%zuB) accessible.",
     171        usb_log_info("HC(%p): Device registers at %" PRIx64 " (%zuB) accessible.",
    172172            instance, hw_res->mem_ranges.ranges[0].address.absolute,
    173173            hw_res->mem_ranges.ranges[0].size);
    174174        instance->registers =
    175             (void*)instance->caps + EHCI_RD8(instance->caps->caplength);
     175            (void *)instance->caps + EHCI_RD8(instance->caps->caplength);
    176176        usb_log_info("HC(%p): Device control registers at %" PRIx64, instance,
    177             hw_res->mem_ranges.ranges[0].address.absolute
    178             + EHCI_RD8(instance->caps->caplength));
     177            hw_res->mem_ranges.ranges[0].address.absolute +
     178            EHCI_RD8(instance->caps->caplength));
    179179
    180180        list_initialize(&instance->pending_endpoints);
     
    221221            usb_str_transfer_type_short(ep->transfer_type),
    222222            usb_str_direction(ep->direction));
    223         switch (ep->transfer_type)
    224         {
     223        switch (ep->transfer_type) {
    225224        case USB_TRANSFER_CONTROL:
    226225        case USB_TRANSFER_BULK:
     
    245244            usb_str_transfer_type_short(ep->transfer_type),
    246245            usb_str_direction(ep->direction));
    247         switch (ep->transfer_type)
    248         {
     246        switch (ep->transfer_type) {
    249247        case USB_TRANSFER_INTERRUPT:
    250248                endpoint_list_remove_ep(&instance->int_list, ehci_ep);
     
    305303        }
    306304
    307         endpoint_t * const ep = batch->ep;
    308         ehci_endpoint_t * const ehci_ep = ehci_endpoint_get(ep);
     305        endpoint_t *const ep = batch->ep;
     306        ehci_endpoint_t *const ehci_ep = ehci_endpoint_get(ep);
    309307        ehci_transfer_batch_t *ehci_batch = ehci_transfer_batch_get(batch);
    310308
     
    345343        assert(hc);
    346344
    347         usb_log_debug2("HC(%p): Interrupt: %"PRIx32, hc, status);
     345        usb_log_debug2("HC(%p): Interrupt: %" PRIx32, hc, status);
    348346        if (status & USB_STS_PORT_CHANGE_FLAG) {
    349347                ehci_rh_interrupt(&hc->rh);
     
    361359
    362360                usb_log_debug2("HC(%p): Scanning %lu pending endpoints", hc,
    363                         list_count(&hc->pending_endpoints));
     361                    list_count(&hc->pending_endpoints));
    364362                list_foreach_safe(hc->pending_endpoints, current, next) {
    365                         ehci_endpoint_t *ep
    366                                 = list_get_instance(current, ehci_endpoint_t, pending_link);
    367 
    368                         ehci_transfer_batch_t *batch
    369                                 = ehci_transfer_batch_get(ep->base.active_batch);
     363                        ehci_endpoint_t *ep =
     364                            list_get_instance(current, ehci_endpoint_t, pending_link);
     365
     366                        ehci_transfer_batch_t *batch =
     367                            ehci_transfer_batch_get(ep->base.active_batch);
    370368                        assert(batch);
    371369
     
    429427        assert(instance->periodic_list);
    430428        uintptr_t phys_base =
    431             addr_to_phys((void*)instance->periodic_list);
     429            addr_to_phys((void *)instance->periodic_list);
    432430        assert((phys_base & USB_PERIODIC_LIST_BASE_MASK) == phys_base);
    433431        EHCI_WR(instance->registers->periodiclistbase, phys_base);
     
    437435
    438436        /* Enable Async schedule */
    439         phys_base = addr_to_phys((void*)instance->async_list.list_head);
     437        phys_base = addr_to_phys((void *)instance->async_list.list_head);
    440438        assert((phys_base & USB_ASYNCLIST_MASK) == phys_base);
    441439        EHCI_WR(instance->registers->asynclistaddr, phys_base);
     
    516514
    517515        usb_log_debug2("HC(%p): Initializing Periodic list.", instance);
    518         for (unsigned i = 0; i < PAGE_SIZE/sizeof(link_pointer_t); ++i)
    519         {
     516        for (unsigned i = 0; i < PAGE_SIZE / sizeof(link_pointer_t); ++i) {
    520517                /* Disable everything for now */
    521518                instance->periodic_list[i] =
  • uspace/drv/bus/usb/ehci/hw_struct/transfer_descriptor.c

    r76d0981d r3bacee1  
    9292            ((dir[direction] & TD_STATUS_PID_MASK) << TD_STATUS_PID_SHIFT) |
    9393            ((size & TD_STATUS_TOTAL_MASK) << TD_STATUS_TOTAL_SHIFT) |
    94             (ioc ? TD_STATUS_IOC_FLAG : 0) );
     94            (ioc ? TD_STATUS_IOC_FLAG : 0));
    9595
    9696        if (toggle == 0 || toggle == 1) {
     
    101101        if (buffer != 0) {
    102102                assert(size != 0);
    103                 for (unsigned i = 0; (i < ARRAY_SIZE(instance->buffer_pointer))
    104                     && size; ++i) {
     103                for (unsigned i = 0; (i < ARRAY_SIZE(instance->buffer_pointer)) &&
     104                    size; ++i) {
    105105                        const uintptr_t offset = buffer & TD_BUFFER_POINTER_OFFSET_MASK;
    106106                        assert(offset == 0 || i == 0);
  • uspace/drv/bus/usb/ehci/res.c

    r76d0981d r3bacee1  
    9595        ret = pci_config_space_read_32(
    9696            parent_sess, eecp + USBLEGSUP_OFFSET, &usblegsup);
    97         while ((ret == EOK) && (wait < DEFAULT_WAIT)
    98             && (usblegsup & USBLEGSUP_BIOS_CONTROL)) {
     97        while ((ret == EOK) && (wait < DEFAULT_WAIT) &&
     98            (usblegsup & USBLEGSUP_BIOS_CONTROL)) {
    9999                async_usleep(WAIT_STEP);
    100100                ret = pci_config_space_read_32(parent_sess,
     
    109109
    110110        /* BIOS failed to hand over control, this should not happen. */
    111         usb_log_warning( "BIOS failed to release control after "
     111        usb_log_warning("BIOS failed to release control after "
    112112            "%zu usecs, force it.", wait);
    113113        ret = pci_config_space_write_32(parent_sess,
     
    197197                usb_log_error("Failed to disable extended capabilities: %s.",
    198198                    str_error(ret));
    199                     goto clean;
     199                goto clean;
    200200        }
    201201clean:
  • uspace/drv/bus/usb/ohci/hc.c

    r76d0981d r3bacee1  
    158158        if (hw_res->mem_ranges.count != 1 ||
    159159            hw_res->mem_ranges.ranges[0].size < sizeof(ohci_regs_t))
    160             return EINVAL;
     160                return EINVAL;
    161161
    162162        errno_t ret = pio_enable_range(&hw_res->mem_ranges.ranges[0],
     
    273273        assert(hc);
    274274
    275         if (hc->registers){
     275        if (hc->registers) {
    276276                *status = OHCI_RD(hc->registers->interrupt_status);
    277277                OHCI_WR(hc->registers->interrupt_status, *status);
     
    301301
    302302        endpoint_t *ep = batch->ep;
    303         ohci_endpoint_t * const ohci_ep = ohci_endpoint_get(ep);
     303        ohci_endpoint_t *const ohci_ep = ohci_endpoint_get(ep);
    304304        ohci_transfer_batch_t *ohci_batch = ohci_transfer_batch_get(batch);
    305305        int err;
     
    319319
    320320        /* Control and bulk schedules need a kick to start working */
    321         switch (batch->ep->transfer_type)
    322         {
     321        switch (batch->ep->transfer_type) {
    323322        case USB_TRANSFER_CONTROL:
    324323                OHCI_SET(hc->registers->command_status, CS_CLF);
     
    364363
    365364                list_foreach_safe(hc->pending_endpoints, current, next) {
    366                         ohci_endpoint_t *ep
    367                                 = list_get_instance(current, ohci_endpoint_t, pending_link);
    368 
    369                         ohci_transfer_batch_t *batch
    370                                 = ohci_transfer_batch_get(ep->base.active_batch);
     365                        ohci_endpoint_t *ep =
     366                            list_get_instance(current, ohci_endpoint_t, pending_link);
     367
     368                        ohci_transfer_batch_t *batch =
     369                            ohci_transfer_batch_get(ep->base.active_batch);
    371370                        assert(batch);
    372371
     
    407406                 */
    408407                volatile uint32_t *ohci_emulation_reg =
    409                 (uint32_t*)((char*)instance->registers + LEGACY_REGS_OFFSET);
     408                    (uint32_t *)((char *)instance->registers + LEGACY_REGS_OFFSET);
    410409                usb_log_debug("OHCI legacy register %p: %x.",
    411410                    ohci_emulation_reg, OHCI_RD(*ohci_emulation_reg));
  • uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c

    r76d0981d r3bacee1  
    8181        /* Status: address, endpoint nr, direction mask and max packet size. */
    8282        OHCI_MEM32_WR(instance->status,
    83             ((ep->device->address & ED_STATUS_FA_MASK) << ED_STATUS_FA_SHIFT)
    84             | ((ep->endpoint & ED_STATUS_EN_MASK) << ED_STATUS_EN_SHIFT)
    85             | ((dir[ep->direction] & ED_STATUS_D_MASK) << ED_STATUS_D_SHIFT)
    86             | ((ep->max_packet_size & ED_STATUS_MPS_MASK) << ED_STATUS_MPS_SHIFT));
     83            ((ep->device->address & ED_STATUS_FA_MASK) << ED_STATUS_FA_SHIFT) |
     84            ((ep->endpoint & ED_STATUS_EN_MASK) << ED_STATUS_EN_SHIFT) |
     85            ((dir[ep->direction] & ED_STATUS_D_MASK) << ED_STATUS_D_SHIFT) |
     86            ((ep->max_packet_size & ED_STATUS_MPS_MASK) << ED_STATUS_MPS_SHIFT));
    8787
    8888        /* Low speed flag */
  • uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.h

    r76d0981d r3bacee1  
    119119{
    120120        assert(instance);
    121         return (OHCI_MEM32_RD(instance->td_head) & ED_TDHEAD_HALTED_FLAG)
    122             || (OHCI_MEM32_RD(instance->status) & ED_STATUS_K_FLAG);
     121        return (OHCI_MEM32_RD(instance->td_head) & ED_TDHEAD_HALTED_FLAG) ||
     122            (OHCI_MEM32_RD(instance->status) & ED_STATUS_K_FLAG);
    123123}
    124124
     
    137137{
    138138        assert(instance);
    139         return (OHCI_MEM32_RD(instance->td_head) & ED_TDHEAD_PTR_MASK)
    140             != (OHCI_MEM32_RD(instance->td_tail) & ED_TDTAIL_PTR_MASK);
     139        return (OHCI_MEM32_RD(instance->td_head) & ED_TDHEAD_PTR_MASK) !=
     140            (OHCI_MEM32_RD(instance->td_tail) & ED_TDTAIL_PTR_MASK);
    141141}
    142142
  • uspace/drv/bus/usb/ohci/hw_struct/transfer_descriptor.c

    r76d0981d r3bacee1  
    6868        /* Set PID and Error code */
    6969        OHCI_MEM32_WR(instance->status,
    70             ((dir[direction] & TD_STATUS_DP_MASK) << TD_STATUS_DP_SHIFT)
    71             | ((CC_NOACCESS2 & TD_STATUS_CC_MASK) << TD_STATUS_CC_SHIFT));
     70            ((dir[direction] & TD_STATUS_DP_MASK) << TD_STATUS_DP_SHIFT) |
     71            ((CC_NOACCESS2 & TD_STATUS_CC_MASK) << TD_STATUS_CC_SHIFT));
    7272
    7373        if (toggle == 0 || toggle == 1) {
  • uspace/drv/bus/usb/ohci/hw_struct/transfer_descriptor.h

    r76d0981d r3bacee1  
    103103{
    104104        assert(instance);
    105         const int cc = (OHCI_MEM32_RD(instance->status) >> TD_STATUS_CC_SHIFT)
    106                 & TD_STATUS_CC_MASK;
     105        const int cc = (OHCI_MEM32_RD(instance->status) >> TD_STATUS_CC_SHIFT) &
     106            TD_STATUS_CC_MASK;
    107107        /* This value is changed on transfer completion,
    108108         * either to CC_NOERROR or and error code.
     
    122122{
    123123        assert(instance);
    124         const int cc = (OHCI_MEM32_RD(instance->status)
    125             >> TD_STATUS_CC_SHIFT) & TD_STATUS_CC_MASK;
     124        const int cc = (OHCI_MEM32_RD(instance->status) >>
     125            TD_STATUS_CC_SHIFT) & TD_STATUS_CC_MASK;
    126126        return cc_to_rc(cc);
    127127}
  • uspace/drv/bus/usb/ohci/ohci_batch.c

    r76d0981d r3bacee1  
    4848#include "ohci_bus.h"
    4949
    50 static void (*const batch_setup[])(ohci_transfer_batch_t*);
     50static void (*const batch_setup[])(ohci_transfer_batch_t *);
    5151
    5252/** Safely destructs ohci_transfer_batch_t structure
     
    6767 * NULL otherwise.
    6868 */
    69 ohci_transfer_batch_t * ohci_transfer_batch_create(endpoint_t *ep)
     69ohci_transfer_batch_t *ohci_transfer_batch_create(endpoint_t *ep)
    7070{
    7171        assert(ep);
     
    9797                return ENOTSUP;
    9898
    99         ohci_batch->td_count = (usb_batch->size + OHCI_TD_MAX_TRANSFER - 1)
    100             / OHCI_TD_MAX_TRANSFER;
     99        ohci_batch->td_count = (usb_batch->size + OHCI_TD_MAX_TRANSFER - 1) /
     100            OHCI_TD_MAX_TRANSFER;
    101101        /* Control transfer need Setup and Status stage */
    102102        if (usb_batch->ep->transfer_type == USB_TRANSFER_CONTROL) {
     
    110110
    111111        const size_t td_size = ohci_batch->td_count * sizeof(td_t);
    112         const size_t setup_size = (usb_batch->ep->transfer_type == USB_TRANSFER_CONTROL)
    113                 ? USB_SETUP_PACKET_SIZE
    114                 : 0;
     112        const size_t setup_size = (usb_batch->ep->transfer_type == USB_TRANSFER_CONTROL) ?
     113            USB_SETUP_PACKET_SIZE :
     114            0;
    115115
    116116        if (dma_buffer_alloc(&ohci_batch->ohci_dma_buffer, td_size + setup_size)) {
     
    190190                         * we leave the very last(unused) TD behind.
    191191                         */
    192                         usb_batch->transferred_size
    193                             -= td_remain_size(ohci_batch->tds[i]);
     192                        usb_batch->transferred_size -=
     193                            td_remain_size(ohci_batch->tds[i]);
    194194                } else {
    195195                        usb_log_debug("Batch %p found error TD(%zu):%08x.",
     
    289289        /* Data stage */
    290290        size_t td_current = 1;
    291         const char* buffer = ohci_batch->data_buffer;
     291        const char *buffer = ohci_batch->data_buffer;
    292292        size_t remain_size = ohci_batch->base.size;
    293293        while (remain_size > 0) {
     
    347347        char *buffer = ohci_batch->data_buffer;
    348348        while (remain_size > 0) {
    349                 const size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER
    350                     ? OHCI_TD_MAX_TRANSFER : remain_size;
     349                const size_t transfer_size = remain_size > OHCI_TD_MAX_TRANSFER ?
     350                    OHCI_TD_MAX_TRANSFER : remain_size;
    351351
    352352                td_init(
     
    374374
    375375/** Transfer setup table. */
    376 static void (*const batch_setup[])(ohci_transfer_batch_t*) =
    377 {
     376static void (*const batch_setup[])(ohci_transfer_batch_t *) =
     377    {
    378378        [USB_TRANSFER_CONTROL] = batch_control,
    379379        [USB_TRANSFER_BULK] = batch_data,
  • uspace/drv/bus/usb/ohci/ohci_bus.c

    r76d0981d r3bacee1  
    134134static void ohci_unregister_ep(endpoint_t *ep)
    135135{
    136         ohci_bus_t * const bus = (ohci_bus_t *) endpoint_get_bus(ep);
    137         hc_t * const hc = bus->hc;
     136        ohci_bus_t *const bus = (ohci_bus_t *) endpoint_get_bus(ep);
     137        hc_t *const hc = bus->hc;
    138138        assert(ep);
    139139
     
    151151        endpoint_set_offline_locked(ep);
    152152        list_remove(&ohci_ep->pending_link);
    153         usb_transfer_batch_t * const batch = ep->active_batch;
     153        usb_transfer_batch_t *const batch = ep->active_batch;
    154154        endpoint_deactivate_locked(ep);
    155155        fibril_mutex_unlock(&hc->guard);
  • uspace/drv/bus/usb/ohci/ohci_rh.c

    r76d0981d r3bacee1  
    9494        } else {
    9595                instance->hub_descriptor.rempow[1] =
    96                      ((port_desc >> RHDB_DR_SHIFT) >> 8) & 0xff;
     96                    ((port_desc >> RHDB_DR_SHIFT) >> 8) & 0xff;
    9797        }
    9898
     
    224224        }
    225225
    226         usb_transfer_batch_t * const batch = ep->active_batch;
     226        usb_transfer_batch_t *const batch = ep->active_batch;
    227227        endpoint_deactivate_locked(ep);
    228228        instance->status_change_endpoint = NULL;
     
    347347        const unsigned feature = uint16_usb2host(setup_packet->value);
    348348        /* Enabled features to clear: see page 269 of USB specs */
    349         switch (feature)
    350         {
     349        switch (feature) {
    351350        case USB_HUB_FEATURE_PORT_POWER:          /*8*/
    352351                rhda = OHCI_RD(hub->registers->rh_desc_a);
     
    418417                /* Ganged power switching, one port powers all */
    419418                if (!(rhda & RHDA_PSM_FLAG)) {
    420                         OHCI_WR(hub->registers->rh_status,RHS_SET_GLOBAL_POWER);
     419                        OHCI_WR(hub->registers->rh_status, RHS_SET_GLOBAL_POWER);
    421420                        return EOK;
    422421                }
     
    467466        for (unsigned port = 1; port <= hub->port_count; ++port) {
    468467                /* Write-clean bits are those that indicate change */
    469                 if (OHCI_RD(hub->registers->rh_port_status[port - 1])
    470                     & RHPS_CHANGE_WC_MASK) {
     468                if (OHCI_RD(hub->registers->rh_port_status[port - 1]) &
     469                    RHPS_CHANGE_WC_MASK) {
    471470                        mask |= (1 << port);
    472471                }
     
    542541/** Virtual OHCI root hub ops */
    543542static usbvirt_device_ops_t ops = {
    544         .control = control_transfer_handlers,
    545         .data_in[HUB_STATUS_CHANGE_PIPE] = req_status_change_handler,
     543        .control = control_transfer_handlers,
     544        .data_in[HUB_STATUS_CHANGE_PIPE] = req_status_change_handler,
    546545};
  • uspace/drv/bus/usb/uhci/hc.c

    r76d0981d r3bacee1  
    142142        memcpy(code->cmds, uhci_irq_commands, sizeof(uhci_irq_commands));
    143143        uhci_regs_t *registers = (uhci_regs_t *) RNGABSPTR(regs);
    144         code->cmds[0].addr = (void*)&registers->usbsts;
    145         code->cmds[3].addr = (void*)&registers->usbsts;
     144        code->cmds[0].addr = (void *)&registers->usbsts;
     145        code->cmds[3].addr = (void *)&registers->usbsts;
    146146
    147147        usb_log_debug("I/O regs at %p (size %zu), IRQ %d.",
     
    215215        if (hw_res->io_ranges.count != 1 ||
    216216            hw_res->io_ranges.ranges[0].size < sizeof(uhci_regs_t))
    217             return EINVAL;
     217                return EINVAL;
    218218
    219219        instance->hw_failures = 0;
     
    224224        if (ret != EOK) {
    225225                usb_log_error("Failed to gain access to registers: %s.",
    226                     str_error(ret));
     226                    str_error(ret));
    227227                return ret;
    228228        }
     
    285285        /* Reset hc, all states and counters. Hope that hw is not broken */
    286286        pio_write_16(&registers->usbcmd, UHCI_CMD_HCRESET);
    287         do { async_usleep(10); }
    288         while ((pio_read_16(&registers->usbcmd) & UHCI_CMD_HCRESET) != 0);
     287        do {
     288                async_usleep(10);
     289        } while ((pio_read_16(&registers->usbcmd) & UHCI_CMD_HCRESET) != 0);
    289290
    290291        /* Set frame to exactly 1ms */
     
    331332static errno_t endpoint_register(endpoint_t *ep)
    332333{
    333         hc_t * const hc = bus_to_hc(endpoint_get_bus(ep));
     334        hc_t *const hc = bus_to_hc(endpoint_get_bus(ep));
    334335
    335336        const errno_t err = usb2_bus_endpoint_register(&hc->bus_helper, ep);
     
    353354static void endpoint_unregister(endpoint_t *ep)
    354355{
    355         hc_t * const hc = bus_to_hc(endpoint_get_bus(ep));
     356        hc_t *const hc = bus_to_hc(endpoint_get_bus(ep));
    356357        usb2_bus_endpoint_unregister(&hc->bus_helper, ep);
    357358
     
    390391        }
    391392
    392         uhci_transfer_batch_t * const batch =
    393                 uhci_transfer_batch_get(ep->active_batch);
     393        uhci_transfer_batch_t *const batch =
     394            uhci_transfer_batch_get(ep->active_batch);
    394395
    395396        /* Remove the batch from the schedule to stop it from being finished. */
     
    412413static int device_enumerate(device_t *dev)
    413414{
    414         hc_t * const hc = bus_to_hc(dev->bus);
     415        hc_t *const hc = bus_to_hc(dev->bus);
    415416        return usb2_bus_device_enumerate(&hc->bus_helper, dev);
    416417}
     
    418419static void device_gone(device_t *dev)
    419420{
    420         hc_t * const hc = bus_to_hc(dev->bus);
     421        hc_t *const hc = bus_to_hc(dev->bus);
    421422        usb2_bus_device_gone(&hc->bus_helper, dev);
    422423}
     
    482483        /* Set all frames to point to the first queue head */
    483484        const uint32_t queue = LINK_POINTER_QH(
    484                 addr_to_phys(instance->transfers_interrupt.queue_head));
     485            addr_to_phys(instance->transfers_interrupt.queue_head));
    485486
    486487        for (unsigned i = 0; i < UHCI_FRAME_LIST_COUNT; ++i) {
     
    524525        /* Connect lists into one schedule */
    525526        transfer_list_set_next(&instance->transfers_control_full,
    526                 &instance->transfers_bulk_full);
     527            &instance->transfers_bulk_full);
    527528        transfer_list_set_next(&instance->transfers_control_slow,
    528                 &instance->transfers_control_full);
     529            &instance->transfers_control_full);
    529530        transfer_list_set_next(&instance->transfers_interrupt,
    530                 &instance->transfers_control_slow);
     531            &instance->transfers_control_slow);
    531532
    532533        /*FSBR, This feature is not needed (adds no benefit) and is supposedly
     
    539540        /* Assign pointers to be used during scheduling */
    540541        instance->transfers[USB_SPEED_FULL][USB_TRANSFER_INTERRUPT] =
    541           &instance->transfers_interrupt;
     542            &instance->transfers_interrupt;
    542543        instance->transfers[USB_SPEED_LOW][USB_TRANSFER_INTERRUPT] =
    543           &instance->transfers_interrupt;
     544            &instance->transfers_interrupt;
    544545        instance->transfers[USB_SPEED_FULL][USB_TRANSFER_CONTROL] =
    545           &instance->transfers_control_full;
     546            &instance->transfers_control_full;
    546547        instance->transfers[USB_SPEED_LOW][USB_TRANSFER_CONTROL] =
    547           &instance->transfers_control_slow;
     548            &instance->transfers_control_slow;
    548549        instance->transfers[USB_SPEED_FULL][USB_TRANSFER_BULK] =
    549           &instance->transfers_bulk_full;
     550            &instance->transfers_bulk_full;
    550551
    551552        return EOK;
     
    582583                return uhci_rh_schedule(&hc->rh, batch);
    583584
    584         transfer_list_t * const list =
     585        transfer_list_t *const list =
    585586            hc->transfers[ep->device->speed][ep->transfer_type];
    586587
     
    629630                int frnum = pio_read_16(&instance->registers->frnum) & 0x3ff;
    630631
    631                 uintptr_t expected_pa = instance->frame_list[frnum]
    632                     & LINK_POINTER_ADDRESS_MASK;
     632                uintptr_t expected_pa = instance->frame_list[frnum] &
     633                    LINK_POINTER_ADDRESS_MASK;
    633634                uintptr_t real_pa = addr_to_phys(QH(interrupt));
    634635                if (expected_pa != real_pa) {
     
    653654                expected_pa = QH(control_full)->next & LINK_POINTER_ADDRESS_MASK;
    654655                real_pa = addr_to_phys(QH(bulk_full));
    655                 if (expected_pa != real_pa ) {
     656                if (expected_pa != real_pa) {
    656657                        usb_log_debug("Bulk QH: %p vs. %p.",
    657658                            (void *) expected_pa, (void *) real_pa);
  • uspace/drv/bus/usb/uhci/hw_struct/transfer_descriptor.c

    r76d0981d r3bacee1  
    7272        assert(instance);
    7373        assert(size < 1024);
    74         assert((pid == USB_PID_SETUP) || (pid == USB_PID_IN)
    75             || (pid == USB_PID_OUT));
     74        assert((pid == USB_PID_SETUP) || (pid == USB_PID_IN) ||
     75            (pid == USB_PID_OUT));
    7676
    7777        const uint32_t next_pa = addr_to_phys(next);
    7878        assert((next_pa & LINK_POINTER_ADDRESS_MASK) == next_pa);
    7979
    80         instance->next = 0
    81             | LINK_POINTER_VERTICAL_FLAG
    82             | (next_pa ? next_pa : LINK_POINTER_TERMINATE_FLAG);
     80        instance->next = 0 |
     81            LINK_POINTER_VERTICAL_FLAG |
     82            (next_pa ? next_pa : LINK_POINTER_TERMINATE_FLAG);
    8383
    84         instance->status = 0
    85             | ((err_count & TD_STATUS_ERROR_COUNT_MASK)
    86                 << TD_STATUS_ERROR_COUNT_POS)
    87             | (low_speed ? TD_STATUS_LOW_SPEED_FLAG : 0)
    88             | (iso ? TD_STATUS_ISOCHRONOUS_FLAG : 0)
    89             | TD_STATUS_ERROR_ACTIVE;
     84        instance->status = 0 |
     85            ((err_count & TD_STATUS_ERROR_COUNT_MASK) <<
     86            TD_STATUS_ERROR_COUNT_POS) |
     87            (low_speed ? TD_STATUS_LOW_SPEED_FLAG : 0) |
     88            (iso ? TD_STATUS_ISOCHRONOUS_FLAG : 0) |
     89            TD_STATUS_ERROR_ACTIVE;
    9090
    9191        if (pid == USB_PID_IN && !iso) {
     
    9393        }
    9494
    95         instance->device = 0
    96             | (((size - 1) & TD_DEVICE_MAXLEN_MASK) << TD_DEVICE_MAXLEN_POS)
    97             | (toggle ? TD_DEVICE_DATA_TOGGLE_ONE_FLAG : 0)
    98             | ((target.address & TD_DEVICE_ADDRESS_MASK)
    99                 << TD_DEVICE_ADDRESS_POS)
    100             | ((target.endpoint & TD_DEVICE_ENDPOINT_MASK)
    101                 << TD_DEVICE_ENDPOINT_POS)
    102             | ((pid & TD_DEVICE_PID_MASK) << TD_DEVICE_PID_POS);
     95        instance->device = 0 |
     96            (((size - 1) & TD_DEVICE_MAXLEN_MASK) << TD_DEVICE_MAXLEN_POS) |
     97            (toggle ? TD_DEVICE_DATA_TOGGLE_ONE_FLAG : 0) |
     98            ((target.address & TD_DEVICE_ADDRESS_MASK) <<
     99            TD_DEVICE_ADDRESS_POS) |
     100            ((target.endpoint & TD_DEVICE_ENDPOINT_MASK) <<
     101            TD_DEVICE_ENDPOINT_POS) |
     102            ((pid & TD_DEVICE_PID_MASK) << TD_DEVICE_PID_POS);
    103103
    104104        instance->buffer_ptr = addr_to_phys(buffer);
     
    175175            (s & TD_STATUS_ERROR_BIT_STUFF) ? " BIT_STUFF," : "",
    176176            (s & TD_STATUS_ERROR_RESERVED) ? " RESERVED," : "",
    177             td_act_size(instance)
    178         );
     177            td_act_size(instance));
    179178}
    180179/**
  • uspace/drv/bus/usb/uhci/hw_struct/transfer_descriptor.h

    r76d0981d r3bacee1  
    129129        const size_t act_size = td_act_size(instance);
    130130        const size_t max_size =
    131             ((instance->device >> TD_DEVICE_MAXLEN_POS) + 1)
    132             & TD_DEVICE_MAXLEN_MASK;
     131            ((instance->device >> TD_DEVICE_MAXLEN_POS) + 1) &
     132            TD_DEVICE_MAXLEN_MASK;
    133133        return
    134134            (instance->status | TD_STATUS_SPD_FLAG) && act_size < max_size;
  • uspace/drv/bus/usb/uhci/transfer_list.c

    r76d0981d r3bacee1  
    6666        }
    6767        const uint32_t queue_head_pa = addr_to_phys(instance->queue_head);
    68         usb_log_debug2("Transfer list %s setup with QH: %p (%#" PRIx32" ).",
     68        usb_log_debug2("Transfer list %s setup with QH: %p (%#" PRIx32 " ).",
    6969            name, instance->queue_head, queue_head_pa);
    7070
     
    203203        fibril_mutex_lock(&instance->guard);
    204204        while (!list_empty(&instance->batch_list)) {
    205                 link_t * const current = list_first(&instance->batch_list);
     205                link_t *const current = list_first(&instance->batch_list);
    206206                uhci_transfer_batch_t *batch = uhci_transfer_batch_from_link(current);
    207207                transfer_list_remove_batch(instance, batch);
     
    240240                qpos = "NOT FIRST";
    241241        }
    242         assert((prev_qh->next & LINK_POINTER_ADDRESS_MASK)
    243             == addr_to_phys(uhci_batch->qh));
     242        assert((prev_qh->next & LINK_POINTER_ADDRESS_MASK) ==
     243            addr_to_phys(uhci_batch->qh));
    244244        prev_qh->next = uhci_batch->qh->next;
    245245
  • uspace/drv/bus/usb/uhci/uhci_rh.c

    r76d0981d r3bacee1  
    107107        do {
    108108                batch->error = virthub_base_request(&instance->base, batch->target,
    109                     batch->dir, (void*) batch->setup.buffer,
     109                    batch->dir, (void *) batch->setup.buffer,
    110110                    batch->dma_buffer.virt, batch->size, &batch->transferred_size);
    111111                if (batch->error == ENAK)
     
    151151        port_status &= ~STATUS_IN_RESET;
    152152        pio_write_16(port, port_status);
    153         while ((port_status = pio_read_16(port)) & STATUS_IN_RESET);
     153        while ((port_status = pio_read_16(port)) & STATUS_IN_RESET)
     154                ;
    154155        /* PIO delay, should not be longer than 3ms as the device might
    155156         * enter suspend state. */
     
    201202
    202203        const uint16_t value = pio_read_16(hub->ports[port]);
    203         data[0] = ((value & STATUS_LINE_D_MINUS) ? 1 : 0)
    204             | ((value & STATUS_LINE_D_PLUS) ? 2 : 0);
    205         RH_DEBUG(hub, port, "Bus state %" PRIx8 "(source %" PRIx16")",
     204        data[0] = ((value & STATUS_LINE_D_MINUS) ? 1 : 0) |
     205            ((value & STATUS_LINE_D_PLUS) ? 2 : 0);
     206        RH_DEBUG(hub, port, "Bus state %" PRIx8 "(source %" PRIx16 ")",
    206207            data[0], value);
    207208        *act_size = 1;
     
    246247            UHCI2USB(val, STATUS_ENABLED_CHANGED, USB2_HUB_PORT_STATUS_C_ENABLE) |
    247248//          UHCI2USB(val, STATUS_SUSPEND, USB2_HUB_PORT_STATUS_C_SUSPEND) |
    248             (hub->reset_changed[port] ?  USB_HUB_PORT_STATUS_C_RESET : 0)
    249         );
     249            (hub->reset_changed[port] ?  USB_HUB_PORT_STATUS_C_RESET : 0));
    250250        RH_DEBUG(hub, port, "Port status %" PRIx32 " (source %" PRIx16
    251251            "%s)", uint32_usb2host(status), val,
     
    413413        const uint8_t status =
    414414            ((((status_a & STATUS_CHANGE_BITS) != 0) || hub->reset_changed[0]) ?
    415                 0x2 : 0) |
     415            0x2 : 0) |
    416416            ((((status_b & STATUS_CHANGE_BITS) != 0) || hub->reset_changed[1]) ?
    417                 0x4 : 0);
     417            0x4 : 0);
    418418        if (status)
    419419                RH_DEBUG(hub, -1, "Event mask %" PRIx8
     
    421421                    " (status_b %" PRIx16 "%s)", status,
    422422                    status_a, hub->reset_changed[0] ? "-reset" : "",
    423                     status_b, hub->reset_changed[1] ? "-reset" : "" );
     423                    status_b, hub->reset_changed[1] ? "-reset" : "");
    424424        ((uint8_t *)buffer)[0] = status;
    425425        *actual_size = 1;
     
    496496
    497497static usbvirt_device_ops_t ops = {
    498         .control = control_transfer_handlers,
    499         .data_in[HUB_STATUS_CHANGE_PIPE] = req_status_change_handler,
     498        .control = control_transfer_handlers,
     499        .data_in[HUB_STATUS_CHANGE_PIPE] = req_status_change_handler,
    500500};
  • uspace/drv/bus/usb/usbdiag/tests.c

    r76d0981d r3bacee1  
    111111                                if (beef_buffer[i] != test_data) {
    112112                                        usb_log_error("Read of %s IN endpoint returned "
    113                                                 "invalid data at address %zu. [ 0x%X != 0x%X ]",
    114                                                 usb_str_transfer_type(pipe->desc.transfer_type), i * sizeof(test_data), beef_buffer[i], test_data);
     113                                            "invalid data at address %zu. [ 0x%X != 0x%X ]",
     114                                            usb_str_transfer_type(pipe->desc.transfer_type), i * sizeof(test_data), beef_buffer[i], test_data);
    115115                                        rc = EINVAL;
    116116                                }
  • uspace/drv/bus/usb/usbhub/port.c

    r76d0981d r3bacee1  
    126126        port_log(debug, port, "Resetting port.");
    127127        if ((err = usb_hub_set_port_feature(port->hub, port->port_number,
    128                             USB_HUB_FEATURE_PORT_RESET))) {
     128            USB_HUB_FEATURE_PORT_RESET))) {
    129129                port_log(warning, port, "Port reset request failed: %s",
    130130                    str_error(err));
     
    140140        port_log(debug, port, "Enumerating device.");
    141141        if ((err = usbhc_device_enumerate(exch, port->port_number,
    142                             port->speed))) {
     142            port->speed))) {
    143143                port_log(error, port, "Failed to enumerate device: %s",
    144144                    str_error(err));
     
    165165        port_log(debug, port, "Issuing a warm reset.");
    166166        if ((err = usb_hub_set_port_feature(port->hub, port->port_number,
    167                             USB3_HUB_FEATURE_BH_PORT_RESET))) {
     167            USB3_HUB_FEATURE_BH_PORT_RESET))) {
    168168                port_log(warning, port, "Port reset request failed: %s",
    169169                    str_error(err));
     
    179179        port_log(debug, port, "Enumerating device.");
    180180        if ((err = usbhc_device_enumerate(exch, port->port_number,
    181                             port->speed))) {
     181            port->speed))) {
    182182                port_log(error, port, "Failed to enumerate device: %s",
    183183                    str_error(err));
     
    200200        }
    201201
    202         const errno_t err = port->hub->speed == USB_SPEED_SUPER
    203                 ? enumerate_device_usb3(port, exch)
    204                 : enumerate_device_usb2(port, exch);
     202        const errno_t err = port->hub->speed == USB_SPEED_SUPER ?
     203            enumerate_device_usb3(port, exch) :
     204            enumerate_device_usb2(port, exch);
    205205
    206206        usb_device_bus_exchange_end(exch);
     
    211211{
    212212        const bool connected = !!(status & USB_HUB_PORT_STATUS_CONNECTION);
    213         port_log(debug, port, "Connection change: device %s.", connected
    214             ? "attached" : "removed");
     213        port_log(debug, port, "Connection change: device %s.", connected ?
     214            "attached" : "removed");
    215215
    216216        if (connected) {
  • uspace/drv/bus/usb/usbhub/status.h

    r76d0981d r3bacee1  
    5959        if (hub_speed == USB_SPEED_SUPER)
    6060                return USB_SPEED_SUPER;
    61         if (hub_speed == USB_SPEED_HIGH
    62             && (status & USB2_HUB_PORT_STATUS_HIGH_SPEED))
     61        if (hub_speed == USB_SPEED_HIGH &&
     62            (status & USB2_HUB_PORT_STATUS_HIGH_SPEED))
    6363                return USB_SPEED_HIGH;
    6464        if ((status & USB2_HUB_PORT_STATUS_LOW_SPEED) != 0)
  • uspace/drv/bus/usb/usbhub/usbhub.c

    r76d0981d r3bacee1  
    8383 */
    8484static const usb_endpoint_description_t
    85         status_change_single_tt_only = HUB_STATUS_CHANGE_EP(0),
    86         status_change_mtt_available = HUB_STATUS_CHANGE_EP(1);
     85    status_change_single_tt_only = HUB_STATUS_CHANGE_EP(0),
     86    status_change_mtt_available = HUB_STATUS_CHANGE_EP(1);
    8787
    8888const usb_endpoint_description_t *usb_hub_endpoints [] = {
     
    107107
    108108static bool usb_hub_polling_error_callback(usb_device_t *dev,
    109         errno_t err_code, void *arg)
     109    errno_t err_code, void *arg)
    110110{
    111111        assert(dev);
     
    113113
    114114        usb_log_error("Device %s polling error: %s",
    115                 usb_device_get_name(dev), str_error(err_code));
     115            usb_device_get_name(dev), str_error(err_code));
    116116
    117117        return true;
     
    153153        }
    154154
    155         const usb_endpoint_description_t *status_change = hub_dev->mtt_available
    156             ? &status_change_mtt_available
    157             : &status_change_single_tt_only;
    158 
    159         usb_endpoint_mapping_t *status_change_mapping
    160                 = usb_device_get_mapped_ep_desc(hub_dev->usb_device, status_change);
     155        const usb_endpoint_description_t *status_change = hub_dev->mtt_available ?
     156            &status_change_mtt_available :
     157            &status_change_single_tt_only;
     158
     159        usb_endpoint_mapping_t *status_change_mapping =
     160            usb_device_get_mapped_ep_desc(hub_dev->usb_device, status_change);
    161161        if (!status_change_mapping) {
    162162                usb_log_error("Failed to map the Status Change Endpoint of a hub.");
     
    212212        if (ret != EOK) {
    213213                usb_log_error("(%p) Failed to unbind '%s' function: %s.",
    214                    hub, HUB_FNC_NAME, str_error(ret));
     214                    hub, HUB_FNC_NAME, str_error(ret));
    215215                return ret;
    216216        }
     
    272272 */
    273273static errno_t usb_hub_polling_init(usb_hub_dev_t *hub_dev,
    274         usb_endpoint_mapping_t *mapping)
     274    usb_endpoint_mapping_t *mapping)
    275275{
    276276        errno_t err;
     
    377377        usb_pipe_t *control_pipe = usb_device_get_default_pipe(hub_dev->usb_device);
    378378
    379         usb_descriptor_type_t desc_type = hub_dev->speed >= USB_SPEED_SUPER
    380                 ? USB_DESCTYPE_SSPEED_HUB : USB_DESCTYPE_HUB;
     379        usb_descriptor_type_t desc_type = hub_dev->speed >= USB_SPEED_SUPER ?
     380            USB_DESCTYPE_SSPEED_HUB : USB_DESCTYPE_HUB;
    381381
    382382        /* Get hub descriptor. */
     
    420420            descriptor.characteristics & HUB_CHAR_POWER_PER_PORT_FLAG;
    421421
    422         const uint8_t protocol = usb_device_descriptors(hub_dev->usb_device)
    423                 ->device.device_protocol;
     422        const uint8_t protocol = usb_device_descriptors(hub_dev->usb_device)->device.device_protocol;
    424423        hub_dev->mtt_available = (protocol == 2);
    425424
     
    456455
    457456        if (config_size < sizeof(usb_standard_configuration_descriptor_t)) {
    458             usb_log_error("Configuration descriptor is not big enough"
    459                 " to fit standard configuration descriptor.\n");
    460             return EOVERFLOW;
     457                usb_log_error("Configuration descriptor is not big enough"
     458                    " to fit standard configuration descriptor.\n");
     459                return EOVERFLOW;
    461460        }
    462461
  • uspace/drv/bus/usb/usbmid/explore.c

    r76d0981d r3bacee1  
    8989        for (; interface_ptr != NULL;
    9090            interface_ptr = usb_dp_get_sibling_descriptor(
    91                 &parser, &data, config_descriptor, interface_ptr))
    92         {
     91            &parser, &data, config_descriptor, interface_ptr)) {
    9392                /* The second byte is DESCTYPE byte in all desriptors. */
    9493                if (interface_ptr[1] != USB_DESCTYPE_INTERFACE)
    9594                        continue;
    9695
    97                 const usb_standard_interface_descriptor_t *interface
    98                     = (usb_standard_interface_descriptor_t *) interface_ptr;
     96                const usb_standard_interface_descriptor_t *interface =
     97                    (usb_standard_interface_descriptor_t *) interface_ptr;
    9998
    10099                /* Skip alternate interfaces. */
     
    112111                usbmid_interface_t *iface = NULL;
    113112                const errno_t rc = usbmid_spawn_interface_child(usb_dev, &iface,
    114                         &usb_device_descriptors(usb_dev)->device, interface);
     113                    &usb_device_descriptors(usb_dev)->device, interface);
    115114                if (rc != EOK) {
    116115                        //TODO: Do something about that failure.
  • uspace/drv/bus/usb/vhc/hub/virthub.c

    r76d0981d r3bacee1  
    101101        .descriptor_type = USB_DESCTYPE_CONFIGURATION,
    102102        .total_length =
    103                 sizeof(usb_standard_configuration_descriptor_t)
    104                 + sizeof(std_interface_descriptor)
    105                 + sizeof(hub_descriptor)
    106                 + sizeof(endpoint_descriptor)
    107                 ,
     103            sizeof(usb_standard_configuration_descriptor_t) +
     104            sizeof(std_interface_descriptor) +
     105            sizeof(hub_descriptor) +
     106            sizeof(endpoint_descriptor),
    108107        .interface_count = 1,
    109108        .configuration_number = HUB_CONFIGURATION_ID,
     
    133132        .descriptor = &std_configuration_descriptor,
    134133        .extra = extra_descriptors,
    135         .extra_count = sizeof(extra_descriptors)/sizeof(extra_descriptors[0])
     134        .extra_count = sizeof(extra_descriptors) / sizeof(extra_descriptors[0])
    136135};
    137136
     
    148147 * @return Error code.
    149148 */
    150 errno_t virthub_init(usbvirt_device_t *dev, const char* name)
     149errno_t virthub_init(usbvirt_device_t *dev, const char *name)
    151150{
    152151        if (dev == NULL) {
  • uspace/drv/bus/usb/vhc/hub/virthubops.c

    r76d0981d r3bacee1  
    4949
    5050        switch (new_state) {
    51                 case USBVIRT_STATE_CONFIGURED:
    52                         hub_set_port_state_all(hub, HUB_PORT_STATE_POWERED_OFF);
    53                         break;
    54                 case USBVIRT_STATE_ADDRESS:
    55                         hub_set_port_state_all(hub, HUB_PORT_STATE_NOT_CONFIGURED);
    56                         break;
    57                 default:
    58                         break;
     51        case USBVIRT_STATE_CONFIGURED:
     52                hub_set_port_state_all(hub, HUB_PORT_STATE_POWERED_OFF);
     53                break;
     54        case USBVIRT_STATE_ADDRESS:
     55                hub_set_port_state_all(hub, HUB_PORT_STATE_NOT_CONFIGURED);
     56                break;
     57        default:
     58                break;
    5959        }
    6060
     
    137137
    138138        switch (feature) {
    139                 case USB2_HUB_FEATURE_PORT_ENABLE:
    140                         if ((port_state != HUB_PORT_STATE_NOT_CONFIGURED)
    141                             && (port_state != HUB_PORT_STATE_POWERED_OFF)) {
    142                                 hub_set_port_state(hub, port, HUB_PORT_STATE_DISABLED);
    143                         }
     139        case USB2_HUB_FEATURE_PORT_ENABLE:
     140                if ((port_state != HUB_PORT_STATE_NOT_CONFIGURED) &&
     141                    (port_state != HUB_PORT_STATE_POWERED_OFF)) {
     142                        hub_set_port_state(hub, port, HUB_PORT_STATE_DISABLED);
     143                }
     144                rc = EOK;
     145                break;
     146
     147        case USB2_HUB_FEATURE_PORT_SUSPEND:
     148                if (port_state != HUB_PORT_STATE_SUSPENDED) {
    144149                        rc = EOK;
    145150                        break;
    146 
    147                 case USB2_HUB_FEATURE_PORT_SUSPEND:
    148                         if (port_state != HUB_PORT_STATE_SUSPENDED) {
    149                                 rc = EOK;
    150                                 break;
    151                         }
    152                         hub_set_port_state(hub, port, HUB_PORT_STATE_RESUMING);
    153                         rc = EOK;
    154                         break;
    155 
    156                 case USB_HUB_FEATURE_PORT_POWER:
    157                         if (port_state != HUB_PORT_STATE_NOT_CONFIGURED) {
    158                                 hub_set_port_state(hub, port, HUB_PORT_STATE_POWERED_OFF);
    159                         }
    160                         rc = EOK;
    161                         break;
    162 
    163                 case USB_HUB_FEATURE_C_PORT_CONNECTION:
    164                         hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_CONNECTION);
    165                         rc = EOK;
    166                         break;
    167 
    168                 case USB2_HUB_FEATURE_C_PORT_ENABLE:
    169                         hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_ENABLE);
    170                         rc = EOK;
    171                         break;
    172 
    173                 case USB2_HUB_FEATURE_C_PORT_SUSPEND:
    174                         hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_SUSPEND);
    175                         rc = EOK;
    176                         break;
    177 
    178                 case USB_HUB_FEATURE_C_PORT_OVER_CURRENT:
    179                         hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_OVER_CURRENT);
    180                         rc = EOK;
    181                         break;
    182 
    183                 case USB_HUB_FEATURE_C_PORT_RESET:
    184                         hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_RESET);
    185                         rc = EOK;
    186                         break;
    187 
    188                 default:
    189                         rc = ENOTSUP;
    190                         break;
     151                }
     152                hub_set_port_state(hub, port, HUB_PORT_STATE_RESUMING);
     153                rc = EOK;
     154                break;
     155
     156        case USB_HUB_FEATURE_PORT_POWER:
     157                if (port_state != HUB_PORT_STATE_NOT_CONFIGURED) {
     158                        hub_set_port_state(hub, port, HUB_PORT_STATE_POWERED_OFF);
     159                }
     160                rc = EOK;
     161                break;
     162
     163        case USB_HUB_FEATURE_C_PORT_CONNECTION:
     164                hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_CONNECTION);
     165                rc = EOK;
     166                break;
     167
     168        case USB2_HUB_FEATURE_C_PORT_ENABLE:
     169                hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_ENABLE);
     170                rc = EOK;
     171                break;
     172
     173        case USB2_HUB_FEATURE_C_PORT_SUSPEND:
     174                hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_SUSPEND);
     175                rc = EOK;
     176                break;
     177
     178        case USB_HUB_FEATURE_C_PORT_OVER_CURRENT:
     179                hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_OVER_CURRENT);
     180                rc = EOK;
     181                break;
     182
     183        case USB_HUB_FEATURE_C_PORT_RESET:
     184                hub_clear_port_status_change(hub, port, HUB_STATUS_C_PORT_RESET);
     185                rc = EOK;
     186                break;
     187
     188        default:
     189                rc = ENOTSUP;
     190                break;
    191191        }
    192192
     
    310310
    311311        switch (feature) {
    312                 case USB_HUB_FEATURE_PORT_RESET:
    313                         if (port_state != HUB_PORT_STATE_POWERED_OFF) {
    314                                 hub_set_port_state(hub, port, HUB_PORT_STATE_RESETTING);
    315                         }
    316                         rc = EOK;
    317                         break;
    318 
    319                 case USB2_HUB_FEATURE_PORT_SUSPEND:
    320                         if (port_state == HUB_PORT_STATE_ENABLED) {
    321                                 hub_set_port_state(hub, port, HUB_PORT_STATE_SUSPENDED);
    322                         }
    323                         rc = EOK;
    324                         break;
    325 
    326                 case USB_HUB_FEATURE_PORT_POWER:
    327                         if (port_state == HUB_PORT_STATE_POWERED_OFF) {
    328                                 hub_set_port_state(hub, port, HUB_PORT_STATE_DISCONNECTED);
    329                         }
    330                         rc = EOK;
    331                         break;
    332 
    333                 default:
    334                         break;
     312        case USB_HUB_FEATURE_PORT_RESET:
     313                if (port_state != HUB_PORT_STATE_POWERED_OFF) {
     314                        hub_set_port_state(hub, port, HUB_PORT_STATE_RESETTING);
     315                }
     316                rc = EOK;
     317                break;
     318
     319        case USB2_HUB_FEATURE_PORT_SUSPEND:
     320                if (port_state == HUB_PORT_STATE_ENABLED) {
     321                        hub_set_port_state(hub, port, HUB_PORT_STATE_SUSPENDED);
     322                }
     323                rc = EOK;
     324                break;
     325
     326        case USB_HUB_FEATURE_PORT_POWER:
     327                if (port_state == HUB_PORT_STATE_POWERED_OFF) {
     328                        hub_set_port_state(hub, port, HUB_PORT_STATE_DISCONNECTED);
     329                }
     330                rc = EOK;
     331                break;
     332
     333        default:
     334                break;
    335335        }
    336336
  • uspace/drv/bus/usb/xhci/commands.c

    r76d0981d r3bacee1  
    159159        }
    160160
    161         return cmd_link
    162             ? list_get_instance(cmd_link, xhci_cmd_t, _header.link)
    163             : NULL;
     161        return cmd_link ?
     162            list_get_instance(cmd_link, xhci_cmd_t, _header.link) :
     163            NULL;
    164164}
    165165
  • uspace/drv/bus/usb/xhci/debug.c

    r76d0981d r3bacee1  
    382382}
    383383
    384 void xhci_dump_input_ctx(const xhci_hc_t * hc, const struct xhci_input_ctx *ictx)
     384void xhci_dump_input_ctx(const xhci_hc_t *hc, const struct xhci_input_ctx *ictx)
    385385{
    386386        xhci_device_ctx_t *device_ctx = XHCI_GET_DEVICE_CTX(ictx, hc);
     
    400400
    401401        for (uint8_t dci = 1; dci <= XHCI_EP_COUNT; dci++)
    402                 if (XHCI_INPUT_CTRL_CTX_DROP(*ctrl_ctx, dci)
    403                     || XHCI_INPUT_CTRL_CTX_ADD(*ctrl_ctx, dci)) {
     402                if (XHCI_INPUT_CTRL_CTX_DROP(*ctrl_ctx, dci) ||
     403                    XHCI_INPUT_CTRL_CTX_ADD(*ctrl_ctx, dci)) {
    404404                        usb_log_debug("Endpoint context DCI %u:", dci);
    405405                        xhci_ep_ctx_t *ep_ctx = XHCI_GET_EP_CTX(device_ctx, hc, dci);
  • uspace/drv/bus/usb/xhci/endpoint.c

    r76d0981d r3bacee1  
    5959 */
    6060static errno_t xhci_endpoint_init(xhci_endpoint_t *xhci_ep, device_t *dev,
    61         const usb_endpoint_descriptors_t *desc)
     61    const usb_endpoint_descriptors_t *desc)
    6262{
    6363        errno_t rc;
     
    8888        if (dev->speed >= USB_SPEED_SUPER) {
    8989                ep->packets_per_uframe = xhci_ep->max_burst * xhci_ep->mult;
    90                 if (ep->transfer_type == USB_TRANSFER_ISOCHRONOUS
    91                         || ep->transfer_type == USB_TRANSFER_INTERRUPT) {
     90                if (ep->transfer_type == USB_TRANSFER_ISOCHRONOUS ||
     91                    ep->transfer_type == USB_TRANSFER_INTERRUPT) {
    9292                        ep->max_transfer_size = ep->max_packet_size * ep->packets_per_uframe;
    9393                }
     
    100100         * others have 2-based log of it.
    101101         */
    102         if (dev->speed >= USB_SPEED_HIGH
    103             || ep->transfer_type != USB_TRANSFER_INTERRUPT) {
     102        if (dev->speed >= USB_SPEED_HIGH ||
     103            ep->transfer_type != USB_TRANSFER_INTERRUPT) {
    104104                xhci_ep->interval = 1 << (xhci_ep->interval - 1);
    105105        }
     
    141141 */
    142142endpoint_t *xhci_endpoint_create(device_t *dev,
    143         const usb_endpoint_descriptors_t *desc)
     143    const usb_endpoint_descriptors_t *desc)
    144144{
    145145        const usb_transfer_type_t type = USB_ED_GET_TRANSFER_TYPE(desc->endpoint);
    146146
    147         xhci_endpoint_t *ep = calloc(1, sizeof(xhci_endpoint_t)
    148                 + (type == USB_TRANSFER_ISOCHRONOUS) * sizeof(*ep->isoch));
     147        xhci_endpoint_t *ep = calloc(1, sizeof(xhci_endpoint_t) +
     148            (type == USB_TRANSFER_ISOCHRONOUS) * sizeof(*ep->isoch));
    149149        if (!ep)
    150150                return NULL;
     
    230230        }
    231231
    232         usb_transfer_batch_t * const batch = ep->active_batch;
     232        usb_transfer_batch_t *const batch = ep->active_batch;
    233233
    234234        const errno_t err = hc_stop_endpoint(xhci_ep);
     
    289289
    290290        case USB_TRANSFER_ISOCHRONOUS:
    291                 return in ? EP_TYPE_ISOCH_IN
    292                           : EP_TYPE_ISOCH_OUT;
     291                return in ? EP_TYPE_ISOCH_IN :
     292                    EP_TYPE_ISOCH_OUT;
    293293
    294294        case USB_TRANSFER_BULK:
    295                 return in ? EP_TYPE_BULK_IN
    296                           : EP_TYPE_BULK_OUT;
     295                return in ? EP_TYPE_BULK_IN :
     296                    EP_TYPE_BULK_OUT;
    297297
    298298        case USB_TRANSFER_INTERRUPT:
    299                 return in ? EP_TYPE_INTERRUPT_IN
    300                           : EP_TYPE_INTERRUPT_OUT;
     299                return in ? EP_TYPE_INTERRUPT_IN :
     300                    EP_TYPE_INTERRUPT_OUT;
    301301        }
    302302
  • uspace/drv/bus/usb/xhci/hc.c

    r76d0981d r3bacee1  
    8787        xhci_port_speed_t *speeds = hc->speeds;
    8888
    89         for (xhci_extcap_t *ec = hc->xecp; ec; ec = xhci_extcap_next(ec)) {
     89        for (xhci_extcap_t * ec = hc->xecp; ec; ec = xhci_extcap_next(ec)) {
    9090                xhci_dump_extcap(ec);
    9191                switch (XHCI_REG_RD(ec, XHCI_EC_CAP_ID)) {
     
    151151                                         * mapping also for devices connected to hubs.
    152152                                         */
    153                                         if (psiv < ARRAY_SIZE(default_psiv_to_port_speed)
    154                                            && default_psiv_to_port_speed[psiv].major == major
    155                                            && default_psiv_to_port_speed[psiv].minor == minor
    156                                            && default_psiv_to_port_speed[psiv].rx_bps == bps
    157                                            && default_psiv_to_port_speed[psiv].tx_bps == bps) {
     153                                        if (psiv < ARRAY_SIZE(default_psiv_to_port_speed) &&
     154                                            default_psiv_to_port_speed[psiv].major == major &&
     155                                            default_psiv_to_port_speed[psiv].minor == minor &&
     156                                            default_psiv_to_port_speed[psiv].rx_bps == bps &&
     157                                            default_psiv_to_port_speed[psiv].tx_bps == bps) {
    158158                                                speeds[psiv] = default_psiv_to_port_speed[psiv];
    159159                                                usb_log_debug("Assumed default %s speed of USB %u.",
    160                                                         usb_str_speed(speeds[psiv].usb_speed), major);
     160                                                    usb_str_speed(speeds[psiv].usb_speed), major);
    161161                                                continue;
    162162                                        }
     
    173173                                                speeds[psiv].tx_bps = bps;
    174174                                                usb_log_debug("Speed %u set up for bps %" PRIu64
    175                                                         " / %" PRIu64 ".", psiv, speeds[psiv].rx_bps,
    176                                                         speeds[psiv].tx_bps);
     175                                                    " / %" PRIu64 ".", psiv, speeds[psiv].rx_bps,
     176                                                    speeds[psiv].tx_bps);
    177177                                        }
    178178                                }
     
    384384        code->rangecount = 1;
    385385        code->ranges[0] = (irq_pio_range_t) {
    386             .base = RNGABS(hc->mmio_range),
    387             .size = RNGSZ(hc->mmio_range),
     386                .base = RNGABS(hc->mmio_range),
     387                .size = RNGSZ(hc->mmio_range),
    388388        };
    389389
     
    391391        memcpy(code->cmds, irq_commands, sizeof(irq_commands));
    392392
    393         void *intr0_iman = RNGABSPTR(hc->mmio_range)
    394             + XHCI_REG_RD(hc->cap_regs, XHCI_CAP_RTSOFF)
    395             + offsetof(xhci_rt_regs_t, ir[0]);
    396         void *usbsts = RNGABSPTR(hc->mmio_range)
    397             + XHCI_REG_RD(hc->cap_regs, XHCI_CAP_LENGTH)
    398             + offsetof(xhci_op_regs_t, usbsts);
     393        void *intr0_iman = RNGABSPTR(hc->mmio_range) +
     394            XHCI_REG_RD(hc->cap_regs, XHCI_CAP_RTSOFF) +
     395            offsetof(xhci_rt_regs_t, ir[0]);
     396        void *usbsts = RNGABSPTR(hc->mmio_range) +
     397            XHCI_REG_RD(hc->cap_regs, XHCI_CAP_LENGTH) +
     398            offsetof(xhci_op_regs_t, usbsts);
    399399
    400400        code->cmds[0].addr = intr0_iman;
     
    425425        for (int i = 0; i <= (XHCI_LEGSUP_BIOS_TIMEOUT_US / XHCI_LEGSUP_POLLING_DELAY_1MS); i++) {
    426426                usb_log_debug("LEGSUP: elapsed: %i ms, bios: %x, os: %x", i,
    427                         XHCI_REG_RD(hc->legsup, XHCI_LEGSUP_SEM_BIOS),
    428                         XHCI_REG_RD(hc->legsup, XHCI_LEGSUP_SEM_OS));
     427                    XHCI_REG_RD(hc->legsup, XHCI_LEGSUP_SEM_BIOS),
     428                    XHCI_REG_RD(hc->legsup, XHCI_LEGSUP_SEM_OS));
    429429                if (XHCI_REG_RD(hc->legsup, XHCI_LEGSUP_SEM_BIOS) == 0) {
    430430                        return XHCI_REG_RD(hc->legsup, XHCI_LEGSUP_SEM_OS) == 1 ? EOK : EIO;
     
    559559        const uint32_t usbsts = XHCI_REG_RD_FIELD(&hc->op_regs->usbsts, 32);
    560560
    561         return !(usbcmd & XHCI_REG_MASK(XHCI_OP_RS))
    562             ||  (usbsts & XHCI_REG_MASK(XHCI_OP_HCE))
    563             ||  (usbsts & XHCI_REG_MASK(XHCI_OP_HSE));
     561        return !(usbcmd & XHCI_REG_MASK(XHCI_OP_RS)) ||
     562            (usbsts & XHCI_REG_MASK(XHCI_OP_HCE)) ||
     563            (usbsts & XHCI_REG_MASK(XHCI_OP_HSE));
    564564}
    565565
     
    589589        struct timeval tv;
    590590        getuptime(&tv);
    591         usb_log_debug("Microframe index wrapped (@%lu.%li, %"PRIu64" total).",
     591        usb_log_debug("Microframe index wrapped (@%lu.%li, %" PRIu64 " total).",
    592592            tv.tv_sec, tv.tv_usec, hc->wrap_count);
    593593        hc->wrap_time = ((uint64_t) tv.tv_sec) * 1000000 + ((uint64_t) tv.tv_usec);
     
    634634        errno_t err;
    635635        xhci_trb_t trb;
    636         xhci_hc_t * const hc = arg;
     636        xhci_hc_t *const hc = arg;
    637637        assert(hc);
    638638
     
    654654 */
    655655static void hc_run_event_ring(xhci_hc_t *hc, xhci_event_ring_t *event_ring,
    656         xhci_interrupter_regs_t *intr)
     656    xhci_interrupter_regs_t *intr)
    657657{
    658658        errno_t err;
     
    720720        if (status) {
    721721                usb_log_error("Non-zero status after interrupt handling (%08x) "
    722                         " - missing something?", status);
     722                    " - missing something?", status);
    723723        }
    724724}
     
    766766{
    767767        return (2 * ep->base.endpoint) +
    768                 (ep->base.transfer_type == USB_TRANSFER_CONTROL
    769                  || ep->base.direction == USB_DIRECTION_IN);
     768            (ep->base.transfer_type == USB_TRANSFER_CONTROL ||
     769            ep->base.direction == USB_DIRECTION_IN);
    770770}
    771771
    772772void hc_ring_ep_doorbell(xhci_endpoint_t *ep, uint32_t stream_id)
    773773{
    774         xhci_device_t * const dev = xhci_ep_to_dev(ep);
    775         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     774        xhci_device_t *const dev = xhci_ep_to_dev(ep);
     775        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    776776        const uint8_t dci = endpoint_dci(ep);
    777777        const uint32_t target = (stream_id << 16) | (dci & 0x1ff);
     
    786786{
    787787        errno_t err;
    788         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     788        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    789789
    790790        /* Prepare memory for the context */
     
    821821{
    822822        errno_t err;
    823         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     823        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    824824        xhci_cmd_t cmd;
    825825
     
    846846static errno_t create_configure_ep_input_ctx(xhci_device_t *dev, dma_buffer_t *dma_buf)
    847847{
    848         const xhci_hc_t * hc = bus_to_hc(dev->base.bus);
     848        const xhci_hc_t *hc = bus_to_hc(dev->base.bus);
    849849        const errno_t err = dma_buffer_alloc(dma_buf, XHCI_INPUT_CTX_SIZE(hc));
    850850        if (err)
     
    870870{
    871871        errno_t err = ENOMEM;
    872         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     872        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    873873        xhci_endpoint_t *ep0 = xhci_endpoint_get(dev->base.endpoints[0]);
    874874
     
    920920errno_t hc_configure_device(xhci_device_t *dev)
    921921{
    922         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     922        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    923923        xhci_cmd_t cmd;
    924924
     
    945945errno_t hc_deconfigure_device(xhci_device_t *dev)
    946946{
    947         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     947        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    948948        xhci_cmd_t cmd;
    949949        errno_t err;
     
    972972errno_t hc_add_endpoint(xhci_endpoint_t *ep)
    973973{
    974         xhci_device_t * const dev = xhci_ep_to_dev(ep);
     974        xhci_device_t *const dev = xhci_ep_to_dev(ep);
    975975        const unsigned dci = endpoint_dci(ep);
    976976        xhci_cmd_t cmd;
     
    984984        xhci_input_ctx_t *ictx = ictx_dma_buf.virt;
    985985
    986         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     986        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    987987        XHCI_INPUT_CTRL_CTX_ADD_SET(*XHCI_GET_CTRL_CTX(ictx, hc), dci);
    988988
     
    10071007errno_t hc_drop_endpoint(xhci_endpoint_t *ep)
    10081008{
    1009         xhci_device_t * const dev = xhci_ep_to_dev(ep);
    1010         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     1009        xhci_device_t *const dev = xhci_ep_to_dev(ep);
     1010        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    10111011        const unsigned dci = endpoint_dci(ep);
    10121012        xhci_cmd_t cmd;
     
    10431043errno_t hc_update_endpoint(xhci_endpoint_t *ep)
    10441044{
    1045         xhci_device_t * const dev = xhci_ep_to_dev(ep);
     1045        xhci_device_t *const dev = xhci_ep_to_dev(ep);
    10461046        const unsigned dci = endpoint_dci(ep);
    10471047        xhci_cmd_t cmd;
    10481048
    10491049        dma_buffer_t ictx_dma_buf;
    1050         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     1050        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    10511051
    10521052        errno_t err = dma_buffer_alloc(&ictx_dma_buf, XHCI_INPUT_CTX_SIZE(hc));
     
    10781078errno_t hc_stop_endpoint(xhci_endpoint_t *ep)
    10791079{
    1080         xhci_device_t * const dev = xhci_ep_to_dev(ep);
     1080        xhci_device_t *const dev = xhci_ep_to_dev(ep);
    10811081        const unsigned dci = endpoint_dci(ep);
    1082         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     1082        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    10831083        xhci_cmd_t cmd;
    10841084        errno_t err;
     
    11041104errno_t hc_reset_endpoint(xhci_endpoint_t *ep)
    11051105{
    1106         xhci_device_t * const dev = xhci_ep_to_dev(ep);
     1106        xhci_device_t *const dev = xhci_ep_to_dev(ep);
    11071107        const unsigned dci = endpoint_dci(ep);
    1108         xhci_hc_t * const hc = bus_to_hc(dev->base.bus);
     1108        xhci_hc_t *const hc = bus_to_hc(dev->base.bus);
    11091109        xhci_cmd_t cmd;
    11101110        errno_t err;
     
    11261126errno_t hc_reset_ring(xhci_endpoint_t *ep, uint32_t stream_id)
    11271127{
    1128         xhci_device_t * const dev = xhci_ep_to_dev(ep);
     1128        xhci_device_t *const dev = xhci_ep_to_dev(ep);
    11291129        const unsigned dci = endpoint_dci(ep);
    11301130        uintptr_t addr;
     
    11351135        xhci_trb_ring_reset_dequeue_state(ring, &addr);
    11361136
    1137         xhci_hc_t * const hc = bus_to_hc(endpoint_get_bus(&ep->base));
     1137        xhci_hc_t *const hc = bus_to_hc(endpoint_get_bus(&ep->base));
    11381138
    11391139        xhci_cmd_init(&cmd, XHCI_CMD_SET_TR_DEQUEUE_POINTER);
  • uspace/drv/bus/usb/xhci/hw_struct/regs.h

    r76d0981d r3bacee1  
    235235#define XHCI_CAP_CIC          hccparams2, 32,  FLAG,  5
    236236
    237 static inline unsigned xhci_get_max_spbuf(xhci_cap_regs_t *cap_regs) {
    238         return XHCI_REG_RD(cap_regs, XHCI_CAP_MAX_SPBUF_HI) << 5
    239                 | XHCI_REG_RD(cap_regs, XHCI_CAP_MAX_SPBUF_LO);
     237static inline unsigned xhci_get_max_spbuf(xhci_cap_regs_t *cap_regs)
     238{
     239        return XHCI_REG_RD(cap_regs, XHCI_CAP_MAX_SPBUF_HI) << 5 |
     240            XHCI_REG_RD(cap_regs, XHCI_CAP_MAX_SPBUF_LO);
    240241}
    241242
  • uspace/drv/bus/usb/xhci/hw_struct/trb.h

    r76d0981d r3bacee1  
    166166
    167167        return chain_bit &&
    168             (type == XHCI_TRB_TYPE_NORMAL
    169             || type == XHCI_TRB_TYPE_DATA_STAGE
    170             || type == XHCI_TRB_TYPE_STATUS_STAGE
    171             || type == XHCI_TRB_TYPE_ISOCH);
     168            (type == XHCI_TRB_TYPE_NORMAL ||
     169            type == XHCI_TRB_TYPE_DATA_STAGE ||
     170            type == XHCI_TRB_TYPE_STATUS_STAGE ||
     171            type == XHCI_TRB_TYPE_ISOCH);
    172172}
    173173
  • uspace/drv/bus/usb/xhci/isoch.c

    r76d0981d r3bacee1  
    4949{
    5050        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    51         xhci_isoch_t * const isoch = ep->isoch;
     51        xhci_isoch_t *const isoch = ep->isoch;
    5252
    5353        fibril_mutex_initialize(&isoch->guard);
     
    7070static void isoch_reset(xhci_endpoint_t *ep)
    7171{
    72         xhci_isoch_t * const isoch = ep->isoch;
     72        xhci_isoch_t *const isoch = ep->isoch;
    7373        assert(fibril_mutex_is_locked(&isoch->guard));
    7474
     
    8787static void isoch_reset_no_timer(xhci_endpoint_t *ep)
    8888{
    89         xhci_isoch_t * const isoch = ep->isoch;
     89        xhci_isoch_t *const isoch = ep->isoch;
    9090        assert(fibril_mutex_is_locked(&isoch->guard));
    9191        /*
     
    9797}
    9898
    99 static void isoch_reset_timer(void *ep) {
    100         xhci_isoch_t * const isoch = xhci_endpoint_get(ep)->isoch;
     99static void isoch_reset_timer(void *ep)
     100{
     101        xhci_isoch_t *const isoch = xhci_endpoint_get(ep)->isoch;
    101102        fibril_mutex_lock(&isoch->guard);
    102103        isoch_reset(ep);
     
    109110 */
    110111#define RESET_TIMER_DELAY 100000
    111 static void timer_schedule_reset(xhci_endpoint_t *ep) {
    112         xhci_isoch_t * const isoch = ep->isoch;
    113         const suseconds_t delay = isoch->buffer_count * ep->interval * 125
    114             + RESET_TIMER_DELAY;
     112static void timer_schedule_reset(xhci_endpoint_t *ep)
     113{
     114        xhci_isoch_t *const isoch = ep->isoch;
     115        const suseconds_t delay = isoch->buffer_count * ep->interval * 125 +
     116            RESET_TIMER_DELAY;
    115117
    116118        fibril_timer_clear_locked(isoch->reset_timer);
    117119        fibril_timer_set_locked(isoch->reset_timer, delay,
    118                 isoch_reset_timer, ep);
     120            isoch_reset_timer, ep);
    119121}
    120122
     
    122124{
    123125        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    124         xhci_isoch_t * const isoch = ep->isoch;
     126        xhci_isoch_t *const isoch = ep->isoch;
    125127
    126128        if (isoch->feeding_timer) {
     
    141143 * Allocate isochronous buffers. Create the feeding timer.
    142144 */
    143 errno_t isoch_alloc_transfers(xhci_endpoint_t *ep) {
    144         assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    145         xhci_isoch_t * const isoch = ep->isoch;
     145errno_t isoch_alloc_transfers(xhci_endpoint_t *ep)
     146{
     147        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
     148        xhci_isoch_t *const isoch = ep->isoch;
    146149
    147150        isoch->feeding_timer = fibril_timer_create(&isoch->guard);
     
    151154
    152155        isoch->transfers = calloc(isoch->buffer_count, sizeof(xhci_isoch_transfer_t));
    153         if(!isoch->transfers)
     156        if (!isoch->transfers)
    154157                goto err;
    155158
     
    185188        size_t tdpc = it->size / 1024 + ((it->size % 1024) ? 1 : 0);
    186189        size_t tbc = tdpc / ep->max_burst;
    187         if (!tdpc % ep->max_burst) --tbc;
     190        if (!tdpc % ep->max_burst)
     191                --tbc;
    188192        size_t bsp = tdpc % ep->max_burst;
    189193        size_t tlbpc = (bsp ? bsp : ep->max_burst) - 1;
     
    220224         */
    221225        uint64_t epoch = hc->wrap_count;
    222         if (reg_mfindex < EPOCH_LOW_MFINDEX
    223             && get_system_time() - hc->wrap_time > EPOCH_DELAY) {
     226        if (reg_mfindex < EPOCH_LOW_MFINDEX &&
     227            get_system_time() - hc->wrap_time > EPOCH_DELAY) {
    224228                ++epoch;
    225229        }
     
    229233static inline void calc_next_mfindex(xhci_endpoint_t *ep, xhci_isoch_transfer_t *it)
    230234{
    231         xhci_isoch_t * const isoch = ep->isoch;
     235        xhci_isoch_t *const isoch = ep->isoch;
    232236        if (isoch->last_mf == -1U) {
    233237                const xhci_bus_t *bus = bus_to_xhci_bus(ep->base.device->bus);
     
    270274 */
    271275static inline void window_decide(window_decision_t *res, xhci_hc_t *hc,
    272         uint64_t mfindex)
     276    uint64_t mfindex)
    273277{
    274278        const uint64_t current_mf = get_current_microframe(hc);
     
    300304{
    301305        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    302         xhci_isoch_t * const isoch = ep->isoch;
     306        xhci_isoch_t *const isoch = ep->isoch;
    303307        assert(fibril_mutex_is_locked(&isoch->guard));
    304308
     
    309313
    310314        while (isoch->transfers[isoch->hw_enqueue].state == ISOCH_FILLED) {
    311                 xhci_isoch_transfer_t * const it = &isoch->transfers[isoch->hw_enqueue];
     315                xhci_isoch_transfer_t *const it = &isoch->transfers[isoch->hw_enqueue];
    312316                suseconds_t delay;
    313317
     
    321325                        delay = wd.offset * 125;
    322326                        usb_log_debug("[isoch] delaying feeding buffer %zu for %ldus",
    323                                 it - isoch->transfers, delay);
     327                            it - isoch->transfers, delay);
    324328                        fibril_timer_set_locked(isoch->feeding_timer, delay,
    325329                            isoch_feed_out_timer, ep);
     
    346350                         */
    347351                        usb_log_debug("[isoch] missed feeding buffer %zu at 0x%llx by "
    348                                 "%llu uframes", it - isoch->transfers, it->mfindex, wd.offset);
     352                            "%llu uframes", it - isoch->transfers, it->mfindex, wd.offset);
    349353                        it->state = ISOCH_COMPLETE;
    350354                        it->error = EOK;
     
    370374static void isoch_feed_out_timer(void *ep)
    371375{
    372         xhci_isoch_t * const isoch = xhci_endpoint_get(ep)->isoch;
     376        xhci_isoch_t *const isoch = xhci_endpoint_get(ep)->isoch;
    373377        fibril_mutex_lock(&isoch->guard);
    374378        isoch_feed_out(ep);
     
    386390{
    387391        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    388         xhci_isoch_t * const isoch = ep->isoch;
     392        xhci_isoch_t *const isoch = ep->isoch;
    389393        assert(fibril_mutex_is_locked(&isoch->guard));
    390394
     
    395399
    396400        while (isoch->transfers[isoch->enqueue].state <= ISOCH_FILLED) {
    397                 xhci_isoch_transfer_t * const it = &isoch->transfers[isoch->enqueue];
     401                xhci_isoch_transfer_t *const it = &isoch->transfers[isoch->enqueue];
    398402                suseconds_t delay;
    399403
     
    419423                case WINDOW_TOO_LATE:
    420424                        usb_log_debug("[isoch] missed feeding buffer %zu at 0x%llx by"
    421                                 "%llu uframes", it - isoch->transfers, it->mfindex, wd.offset);
     425                            "%llu uframes", it - isoch->transfers, it->mfindex, wd.offset);
    422426                        /* Missed the opportunity to schedule. Schedule ASAP. */
    423427                        it->mfindex += wd.offset;
     
    458462static void isoch_feed_in_timer(void *ep)
    459463{
    460         xhci_isoch_t * const isoch = xhci_endpoint_get(ep)->isoch;
     464        xhci_isoch_t *const isoch = xhci_endpoint_get(ep)->isoch;
    461465        fibril_mutex_lock(&isoch->guard);
    462466        isoch_feed_in(ep);
     
    477481        xhci_endpoint_t *ep = xhci_endpoint_get(transfer->batch.ep);
    478482        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    479         xhci_isoch_t * const isoch = ep->isoch;
     483        xhci_isoch_t *const isoch = ep->isoch;
    480484
    481485        /* This shall be already checked by endpoint */
     
    541545        xhci_endpoint_t *ep = xhci_endpoint_get(transfer->batch.ep);
    542546        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    543         xhci_isoch_t * const isoch = ep->isoch;
     547        xhci_isoch_t *const isoch = ep->isoch;
    544548
    545549        if (transfer->batch.size < ep->base.max_transfer_size) {
     
    585589
    586590void isoch_handle_transfer_event(xhci_hc_t *hc, xhci_endpoint_t *ep,
    587         xhci_trb_t *trb)
    588 {
    589         assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
    590         xhci_isoch_t * const isoch = ep->isoch;
     591    xhci_trb_t *trb)
     592{
     593        assert(ep->base.transfer_type == USB_TRANSFER_ISOCHRONOUS);
     594        xhci_isoch_t *const isoch = ep->isoch;
    591595
    592596        fibril_mutex_lock(&ep->isoch->guard);
     
    632636                }
    633637
    634                 xhci_isoch_transfer_t * const it = &isoch->transfers[di];
     638                xhci_isoch_transfer_t *const it = &isoch->transfers[di];
    635639
    636640                if (it->state == ISOCH_FED && it->interrupt_trb_phys == trb->parameter) {
  • uspace/drv/bus/usb/xhci/rh.c

    r76d0981d r3bacee1  
    5454/* This mask only lists registers, which imply port change. */
    5555static const uint32_t port_events_mask =
    56         XHCI_REG_MASK(XHCI_PORT_CSC) |
    57         XHCI_REG_MASK(XHCI_PORT_PEC) |
    58         XHCI_REG_MASK(XHCI_PORT_WRC) |
    59         XHCI_REG_MASK(XHCI_PORT_OCC) |
    60         XHCI_REG_MASK(XHCI_PORT_PRC) |
    61         XHCI_REG_MASK(XHCI_PORT_PLC) |
    62         XHCI_REG_MASK(XHCI_PORT_CEC);
     56    XHCI_REG_MASK(XHCI_PORT_CSC) |
     57    XHCI_REG_MASK(XHCI_PORT_PEC) |
     58    XHCI_REG_MASK(XHCI_PORT_WRC) |
     59    XHCI_REG_MASK(XHCI_PORT_OCC) |
     60    XHCI_REG_MASK(XHCI_PORT_PRC) |
     61    XHCI_REG_MASK(XHCI_PORT_PLC) |
     62    XHCI_REG_MASK(XHCI_PORT_CEC);
    6363
    6464static const uint32_t port_reset_mask =
    65         XHCI_REG_MASK(XHCI_PORT_WRC) |
    66         XHCI_REG_MASK(XHCI_PORT_PRC);
     65    XHCI_REG_MASK(XHCI_PORT_WRC) |
     66    XHCI_REG_MASK(XHCI_PORT_PRC);
    6767
    6868typedef struct rh_port {
     
    167167                return ENOENT;
    168168
    169         unsigned psiv = (status & XHCI_REG_MASK(XHCI_PORT_PS))
    170             >> XHCI_REG_SHIFT(XHCI_PORT_PS);
     169        unsigned psiv = (status & XHCI_REG_MASK(XHCI_PORT_PS)) >>
     170            XHCI_REG_SHIFT(XHCI_PORT_PS);
    171171        const usb_speed_t speed = port->rh->hc->speeds[psiv].usb_speed;
    172172
     
    233233static void handle_port_change(xhci_rh_t *rh, uint8_t port_id)
    234234{
    235         rh_port_t * const port = &rh->ports[port_id - 1];
     235        rh_port_t *const port = &rh->ports[port_id - 1];
    236236
    237237        uint32_t status = XHCI_REG_RD_FIELD(&port->regs->portsc, 32);
     
    280280
    281281void xhci_rh_set_ports_protocol(xhci_rh_t *rh,
    282         unsigned offset, unsigned count, unsigned major)
     282    unsigned offset, unsigned count, unsigned major)
    283283{
    284284        for (unsigned i = offset; i < offset + count; i++)
     
    297297                handle_port_change(rh, i + 1);
    298298
    299                 rh_port_t * const port = &rh->ports[i];
     299                rh_port_t *const port = &rh->ports[i];
    300300
    301301                /*
     
    304304                 * such ports.
    305305                 */
    306                 if (XHCI_REG_RD(port->regs, XHCI_PORT_CCS)
    307                     && port->base.state == PORT_DISABLED)
     306                if (XHCI_REG_RD(port->regs, XHCI_PORT_CCS) &&
     307                    port->base.state == PORT_DISABLED)
    308308                        usb_port_connected(&port->base, &rh_enumerate_device);
    309309        }
     
    320320
    321321        for (uint8_t i = 0; i < rh->max_ports; ++i) {
    322                 rh_port_t * const port = &rh->ports[i];
     322                rh_port_t *const port = &rh->ports[i];
    323323                usb_port_disabled(&port->base, &rh_remove_device);
    324324                usb_port_fini(&port->base);
     
    328328static int rh_worker(void *arg)
    329329{
    330         xhci_rh_t * const rh = arg;
     330        xhci_rh_t *const rh = arg;
    331331
    332332        xhci_trb_t trb;
  • uspace/drv/bus/usb/xhci/streams.c

    r76d0981d r3bacee1  
    8888{
    8989        usb_log_debug("Allocating primary stream context array of size %u "
    90                 "for endpoint " XHCI_EP_FMT, count, XHCI_EP_ARGS(*xhci_ep));
     90            "for endpoint " XHCI_EP_FMT, count, XHCI_EP_ARGS(*xhci_ep));
    9191
    9292        if ((dma_buffer_alloc(&xhci_ep->primary_stream_ctx_dma,
    93                 count * sizeof(xhci_stream_ctx_t)))) {
     93            count * sizeof(xhci_stream_ctx_t)))) {
    9494                return ENOMEM;
    9595        }
     
    110110{
    111111        usb_log_debug("Deallocating primary stream structures for "
    112                 "endpoint " XHCI_EP_FMT, XHCI_EP_ARGS(*xhci_ep));
     112            "endpoint " XHCI_EP_FMT, XHCI_EP_ARGS(*xhci_ep));
    113113
    114114        dma_buffer_free(&xhci_ep->primary_stream_ctx_dma);
     
    138138{
    139139        usb_log_debug("Freeing stream rings and context arrays of endpoint "
    140                 XHCI_EP_FMT, XHCI_EP_ARGS(*xhci_ep));
     140            XHCI_EP_FMT, XHCI_EP_ARGS(*xhci_ep));
    141141
    142142        for (size_t index = 0; index < xhci_ep->primary_stream_data_size; ++index) {
     
    153153 */
    154154static errno_t initialize_primary_stream(xhci_hc_t *hc, xhci_endpoint_t *xhci_ep,
    155         unsigned index)
     155    unsigned index)
    156156{
    157157        xhci_stream_ctx_t *ctx = &xhci_ep->primary_stream_ctx_array[index];
     
    206206 */
    207207static errno_t initialize_secondary_streams(xhci_hc_t *hc, xhci_endpoint_t *xhci_ep,
    208         unsigned idx, unsigned count)
     208    unsigned idx, unsigned count)
    209209{
    210210        if (count == 0) {
     
    218218        if ((count & (count - 1)) != 0 || count < 8 || count > 256) {
    219219                usb_log_error("The secondary stream array size must be a power of 2 "
    220                         "between 8 and 256.");
     220                    "between 8 and 256.");
    221221                return EINVAL;
    222222        }
     
    233233
    234234        if ((dma_buffer_alloc(&data->secondary_stream_ctx_dma,
    235                 count * sizeof(xhci_stream_ctx_t)))) {
     235            count * sizeof(xhci_stream_ctx_t)))) {
    236236                free(data->secondary_data);
    237237                return ENOMEM;
     
    275275 */
    276276static void setup_stream_context(xhci_endpoint_t *xhci_ep, xhci_ep_ctx_t *ctx,
    277         unsigned pstreams, unsigned lsa)
     277    unsigned pstreams, unsigned lsa)
    278278{
    279279        XHCI_EP_TYPE_SET(*ctx, xhci_endpoint_type(xhci_ep));
     
    295295 */
    296296static errno_t verify_stream_conditions(xhci_hc_t *hc, xhci_device_t *dev,
    297         xhci_endpoint_t *xhci_ep, unsigned count)
    298 {
    299         if (xhci_ep->base.transfer_type != USB_TRANSFER_BULK
    300                 || dev->base.speed != USB_SPEED_SUPER) {
     297    xhci_endpoint_t *xhci_ep, unsigned count)
     298{
     299        if (xhci_ep->base.transfer_type != USB_TRANSFER_BULK ||
     300            dev->base.speed != USB_SPEED_SUPER) {
    301301                usb_log_error("Streams are only supported by superspeed bulk endpoints.");
    302302                return EINVAL;
     
    321321        if (count > max_psa_size) {
    322322                usb_log_error("Host controller only supports "
    323                         "%u primary streams.", max_psa_size);
     323                    "%u primary streams.", max_psa_size);
    324324                return EINVAL;
    325325        }
     
    327327        if (count > xhci_ep->max_streams) {
    328328                usb_log_error("Endpoint " XHCI_EP_FMT " supports only %" PRIu32 " streams.",
    329                         XHCI_EP_ARGS(*xhci_ep), xhci_ep->max_streams);
     329                    XHCI_EP_ARGS(*xhci_ep), xhci_ep->max_streams);
    330330                return EINVAL;
    331331        }
     
    346346 */
    347347errno_t xhci_endpoint_remove_streams(xhci_hc_t *hc, xhci_device_t *dev,
    348         xhci_endpoint_t *xhci_ep)
     348    xhci_endpoint_t *xhci_ep)
    349349{
    350350        if (!xhci_ep->primary_stream_data_size) {
     
    374374 */
    375375errno_t xhci_endpoint_request_primary_streams(xhci_hc_t *hc, xhci_device_t *dev,
    376         xhci_endpoint_t *xhci_ep, unsigned count)
     376    xhci_endpoint_t *xhci_ep, unsigned count)
    377377{
    378378        errno_t err = verify_stream_conditions(hc, dev, xhci_ep, count);
     
    422422 */
    423423errno_t xhci_endpoint_request_secondary_streams(xhci_hc_t *hc, xhci_device_t *dev,
    424         xhci_endpoint_t *xhci_ep, unsigned *sizes, unsigned count)
     424    xhci_endpoint_t *xhci_ep, unsigned *sizes, unsigned count)
    425425{
    426426        /* Check if HC supports secondary indexing */
     
    454454        if (max * count > xhci_ep->max_streams) {
    455455                usb_log_error("Endpoint " XHCI_EP_FMT " supports only %" PRIu32 " streams.",
    456                         XHCI_EP_ARGS(*xhci_ep), xhci_ep->max_streams);
     456                    XHCI_EP_ARGS(*xhci_ep), xhci_ep->max_streams);
    457457                return EINVAL;
    458458        }
  • uspace/drv/bus/usb/xhci/test/reg-ops.c

    r76d0981d r3bacee1  
    2323#define EQ(exp, act) PCUT_ASSERT_INT_EQUALS((exp), (act))
    2424
    25 PCUT_TEST(ops_8_field) {
     25PCUT_TEST(ops_8_field)
     26{
    2627        RESET;
    2728        EQ(0, XHCI_REG_RD(regs, REG_8_FIELD));
     
    4142}
    4243
    43 PCUT_TEST(ops_8_range) {
     44PCUT_TEST(ops_8_range)
     45{
    4446        RESET;
    4547        EQ(0, XHCI_REG_RD(regs, REG_8_RANGE));
     
    5860}
    5961
    60 PCUT_TEST(ops_8_flag) {
     62PCUT_TEST(ops_8_flag)
     63{
    6164        RESET;
    6265        EQ(0, XHCI_REG_RD(regs, REG_8_FLAG));
     
    7679}
    7780
    78 PCUT_TEST(ops_16_field) {
     81PCUT_TEST(ops_16_field)
     82{
    7983        RESET;
    8084        EQ(0, XHCI_REG_RD(regs, REG_16_FIELD));
     
    9397}
    9498
    95 PCUT_TEST(ops_16_range) {
     99PCUT_TEST(ops_16_range)
     100{
    96101        RESET;
    97102        EQ(0, XHCI_REG_RD(regs, REG_16_RANGE));
     
    110115}
    111116
    112 PCUT_TEST(ops_16_flag) {
     117PCUT_TEST(ops_16_flag)
     118{
    113119        RESET;
    114120        EQ(0, XHCI_REG_RD(regs, REG_16_FLAG));
     
    128134}
    129135
    130 PCUT_TEST(ops_32_field) {
     136PCUT_TEST(ops_32_field)
     137{
    131138        RESET;
    132139        EQ(0, XHCI_REG_RD(regs, REG_32_FIELD));
     
    145152}
    146153
    147 PCUT_TEST(ops_32_range) {
     154PCUT_TEST(ops_32_range)
     155{
    148156        RESET;
    149157        EQ(0, XHCI_REG_RD(regs, REG_32_RANGE));
     
    162170}
    163171
    164 PCUT_TEST(ops_32_flag) {
     172PCUT_TEST(ops_32_flag)
     173{
    165174        RESET;
    166175        EQ(0, XHCI_REG_RD(regs, REG_32_FLAG));
  • uspace/drv/bus/usb/xhci/transfers.c

    r76d0981d r3bacee1  
    5151 *  See Table 7 of xHCI specification.
    5252 */
    53 static inline stage_dir_flag_t get_status_direction_flag(xhci_trb_t* trb,
    54         uint8_t bmRequestType, uint16_t wLength)
     53static inline stage_dir_flag_t get_status_direction_flag(xhci_trb_t *trb,
     54    uint8_t bmRequestType, uint16_t wLength)
    5555{
    5656        /* See Table 7 of xHCI specification */
    57         return SETUP_REQUEST_TYPE_IS_DEVICE_TO_HOST(bmRequestType) && (wLength > 0)
    58                 ? STAGE_OUT
    59                 : STAGE_IN;
     57        return SETUP_REQUEST_TYPE_IS_DEVICE_TO_HOST(bmRequestType) && (wLength > 0) ?
     58            STAGE_OUT :
     59            STAGE_IN;
    6060}
    6161
     
    6969 *  See Table 8 of xHCI specification.
    7070 */
    71 static inline data_stage_type_t get_transfer_type(xhci_trb_t* trb, uint8_t
    72         bmRequestType, uint16_t wLength)
     71static inline data_stage_type_t get_transfer_type(xhci_trb_t *trb, uint8_t
     72    bmRequestType, uint16_t wLength)
    7373{
    7474        if (wLength == 0)
     
    7676
    7777        /* See Table 7 of xHCI specification */
    78         return SETUP_REQUEST_TYPE_IS_DEVICE_TO_HOST(bmRequestType)
    79                 ? DATA_STAGE_IN
    80                 : DATA_STAGE_NO;
     78        return SETUP_REQUEST_TYPE_IS_DEVICE_TO_HOST(bmRequestType) ?
     79            DATA_STAGE_IN :
     80            DATA_STAGE_NO;
    8181}
    8282
     
    8686
    8787        return request_type == USB_REQUEST_TYPE_STANDARD &&
    88                 (setup->request == USB_DEVREQ_SET_CONFIGURATION
    89                 || setup->request == USB_DEVREQ_SET_INTERFACE);
     88            (setup->request == USB_DEVREQ_SET_CONFIGURATION ||
     89            setup->request == USB_DEVREQ_SET_INTERFACE);
    9090}
    9191
     
    9595 * Bus callback.
    9696 */
    97 usb_transfer_batch_t * xhci_transfer_create(endpoint_t* ep)
     97usb_transfer_batch_t *xhci_transfer_create(endpoint_t *ep)
    9898{
    9999        xhci_transfer_t *transfer = calloc(1, sizeof(xhci_transfer_t));
     
    108108 * Destroy a xHCI transfer.
    109109 */
    110 void xhci_transfer_destroy(usb_transfer_batch_t* batch)
     110void xhci_transfer_destroy(usb_transfer_batch_t *batch)
    111111{
    112112        xhci_transfer_t *transfer = xhci_transfer_from_batch(batch);
     
    137137
    138138        const size_t chunk_mask = dma_policy_chunk_mask(ts->buf.policy);
    139         ts->chunk_size = (chunk_mask > MAX_CHUNK_SIZE + 1)
    140                 ? MAX_CHUNK_SIZE : (chunk_mask + 1);
     139        ts->chunk_size = (chunk_mask > MAX_CHUNK_SIZE + 1) ?
     140            MAX_CHUNK_SIZE : (chunk_mask + 1);
    141141
    142142        ts->remaining = transfer->batch.size;
     
    183183}
    184184
    185 static errno_t schedule_control(xhci_hc_t* hc, xhci_transfer_t* transfer)
     185static errno_t schedule_control(xhci_hc_t *hc, xhci_transfer_t *transfer)
    186186{
    187187        usb_transfer_batch_t *batch = &transfer->batch;
    188188        xhci_endpoint_t *xhci_ep = xhci_endpoint_get(transfer->batch.ep);
    189189
    190         usb_device_request_setup_packet_t* setup = &batch->setup.packet;
     190        usb_device_request_setup_packet_t *setup = &batch->setup.packet;
    191191
    192192        trb_splitter_t splitter;
     
    210210            get_transfer_type(trb_setup, setup->request_type, setup->length));
    211211
    212         stage_dir_flag_t stage_dir = (transfer->batch.dir == USB_DIRECTION_IN)
    213                                 ? STAGE_IN : STAGE_OUT;
     212        stage_dir_flag_t stage_dir = (transfer->batch.dir == USB_DIRECTION_IN) ?
     213            STAGE_IN : STAGE_OUT;
    214214
    215215        /* Data stage - first TRB is special */
     
    243243}
    244244
    245 static errno_t schedule_bulk_intr(xhci_hc_t* hc, xhci_transfer_t *transfer)
    246 {
    247         xhci_trb_ring_t * const ring = get_ring(transfer);
     245static errno_t schedule_bulk_intr(xhci_hc_t *hc, xhci_transfer_t *transfer)
     246{
     247        xhci_trb_ring_t *const ring = get_ring(transfer);
    248248        if (!ring)
    249249                return EINVAL;
     
    266266                /* Set the interrupt bit for last TRB */
    267267                TRB_CTRL_SET_IOC(trbs[trbs_used - 1], 1);
    268         }
    269         else {
     268        } else {
    270269                /* Clear the chain bit on the last TRB */
    271270                TRB_CTRL_SET_CHAIN(trbs[trbs_used - 1], 1);
     
    280279
    281280        return xhci_trb_ring_enqueue_multiple(ring, trbs, trbs_used,
    282                 &transfer->interrupt_trb_phys);
    283 }
    284 
    285 static int schedule_isochronous(xhci_transfer_t* transfer)
     281            &transfer->interrupt_trb_phys);
     282}
     283
     284static int schedule_isochronous(xhci_transfer_t *transfer)
    286285{
    287286        endpoint_t *ep = transfer->batch.ep;
    288287
    289         return ep->direction == USB_DIRECTION_OUT
    290                 ? isoch_schedule_out(transfer)
    291                 : isoch_schedule_in(transfer);
    292 }
    293 
    294 errno_t xhci_handle_transfer_event(xhci_hc_t* hc, xhci_trb_t* trb)
     288        return ep->direction == USB_DIRECTION_OUT ?
     289            isoch_schedule_out(transfer) :
     290            isoch_schedule_in(transfer);
     291}
     292
     293errno_t xhci_handle_transfer_event(xhci_hc_t *hc, xhci_trb_t *trb)
    295294{
    296295        uintptr_t addr = trb->parameter;
     
    327326                    transfer->interrupt_trb_phys);
    328327                batch = &transfer->batch;
    329         }
    330         else {
     328        } else {
    331329                xhci_trb_ring_update_dequeue(&ep->ring, addr);
    332330
     
    354352        const xhci_trb_completion_code_t completion_code = TRB_COMPLETION_CODE(*trb);
    355353        switch (completion_code) {
    356                 case XHCI_TRBC_SHORT_PACKET:
    357                 case XHCI_TRBC_SUCCESS:
    358                         batch->error = EOK;
    359                         batch->transferred_size = batch->size - TRB_TRANSFER_LENGTH(*trb);
    360                         break;
    361 
    362                 case XHCI_TRBC_DATA_BUFFER_ERROR:
    363                         usb_log_warning("Transfer ended with data buffer error.");
    364                         batch->error = EAGAIN;
    365                         batch->transferred_size = 0;
    366                         break;
    367 
    368                 case XHCI_TRBC_BABBLE_DETECTED_ERROR:
    369                         usb_log_warning("Babble detected during the transfer.");
    370                         batch->error = EAGAIN;
    371                         batch->transferred_size = 0;
    372                         break;
    373 
    374                 case XHCI_TRBC_USB_TRANSACTION_ERROR:
    375                         usb_log_warning("USB Transaction error.");
    376                         batch->error = EAGAIN;
    377                         batch->transferred_size = 0;
    378                         break;
    379 
    380                 case XHCI_TRBC_TRB_ERROR:
    381                         usb_log_error("Invalid transfer parameters.");
    382                         batch->error = EINVAL;
    383                         batch->transferred_size = 0;
    384                         break;
    385 
    386                 case XHCI_TRBC_STALL_ERROR:
    387                         usb_log_warning("Stall condition detected.");
    388                         batch->error = ESTALL;
    389                         batch->transferred_size = 0;
    390                         break;
    391 
    392                 case XHCI_TRBC_SPLIT_TRANSACTION_ERROR:
    393                         usb_log_error("Split transcation error detected.");
    394                         batch->error = EAGAIN;
    395                         batch->transferred_size = 0;
    396                         break;
    397 
    398                 default:
    399                         usb_log_warning("Transfer not successfull: %u", completion_code);
    400                         batch->error = EIO;
     354        case XHCI_TRBC_SHORT_PACKET:
     355        case XHCI_TRBC_SUCCESS:
     356                batch->error = EOK;
     357                batch->transferred_size = batch->size - TRB_TRANSFER_LENGTH(*trb);
     358                break;
     359
     360        case XHCI_TRBC_DATA_BUFFER_ERROR:
     361                usb_log_warning("Transfer ended with data buffer error.");
     362                batch->error = EAGAIN;
     363                batch->transferred_size = 0;
     364                break;
     365
     366        case XHCI_TRBC_BABBLE_DETECTED_ERROR:
     367                usb_log_warning("Babble detected during the transfer.");
     368                batch->error = EAGAIN;
     369                batch->transferred_size = 0;
     370                break;
     371
     372        case XHCI_TRBC_USB_TRANSACTION_ERROR:
     373                usb_log_warning("USB Transaction error.");
     374                batch->error = EAGAIN;
     375                batch->transferred_size = 0;
     376                break;
     377
     378        case XHCI_TRBC_TRB_ERROR:
     379                usb_log_error("Invalid transfer parameters.");
     380                batch->error = EINVAL;
     381                batch->transferred_size = 0;
     382                break;
     383
     384        case XHCI_TRBC_STALL_ERROR:
     385                usb_log_warning("Stall condition detected.");
     386                batch->error = ESTALL;
     387                batch->transferred_size = 0;
     388                break;
     389
     390        case XHCI_TRBC_SPLIT_TRANSACTION_ERROR:
     391                usb_log_error("Split transcation error detected.");
     392                batch->error = EAGAIN;
     393                batch->transferred_size = 0;
     394                break;
     395
     396        default:
     397                usb_log_warning("Transfer not successfull: %u", completion_code);
     398                batch->error = EIO;
    401399        }
    402400
     
    456454         * the Reset Endpoint command.
    457455         */
    458         if (batch->ep->transfer_type == USB_TRANSFER_CONTROL
    459             && batch->dir == USB_DIRECTION_OUT) {
     456        if (batch->ep->transfer_type == USB_TRANSFER_CONTROL &&
     457            batch->dir == USB_DIRECTION_OUT) {
    460458                const usb_device_request_setup_packet_t *request = &batch->setup.packet;
    461                 if (request->request == USB_DEVREQ_CLEAR_FEATURE
    462                     && request->request_type == USB_REQUEST_RECIPIENT_ENDPOINT
    463                     && request->value == USB_FEATURE_ENDPOINT_HALT) {
     459                if (request->request == USB_DEVREQ_CLEAR_FEATURE &&
     460                    request->request_type == USB_REQUEST_RECIPIENT_ENDPOINT &&
     461                    request->value == USB_FEATURE_ENDPOINT_HALT) {
    464462                        const uint16_t index = uint16_usb2host(request->index);
    465463                        const usb_endpoint_t ep_num = index & 0xf;
    466                         const usb_direction_t dir = (index >> 7)
    467                             ? USB_DIRECTION_IN
    468                             : USB_DIRECTION_OUT;
     464                        const usb_direction_t dir = (index >> 7) ?
     465                            USB_DIRECTION_IN :
     466                            USB_DIRECTION_OUT;
    469467                        endpoint_t *halted_ep = bus_find_endpoint(&xhci_dev->base, ep_num, dir);
    470468                        if (halted_ep) {
     
    488486                        } else {
    489487                                usb_log_warning("Device(%u): Resetting unregistered endpoint"
    490                                         " %u %s.", xhci_dev->base.address, ep_num,
    491                                         usb_str_direction(dir));
     488                                    " %u %s.", xhci_dev->base.address, ep_num,
     489                                    usb_str_direction(dir));
    492490                        }
    493491                }
  • uspace/drv/bus/usb/xhci/trb_ring.c

    r76d0981d r3bacee1  
    122122
    123123        list_initialize(&ring->segments);
    124         size_t segment_count = (initial_size + SEGMENT_TRB_USEFUL_COUNT - 1)
    125                 / SEGMENT_TRB_USEFUL_COUNT;
     124        size_t segment_count = (initial_size + SEGMENT_TRB_USEFUL_COUNT - 1) /
     125            SEGMENT_TRB_USEFUL_COUNT;
    126126
    127127        for (size_t i = 0; i < segment_count; ++i) {
     
    134134        }
    135135
    136         trb_segment_t * const segment = get_first_segment(&ring->segments);
     136        trb_segment_t *const segment = get_first_segment(&ring->segments);
    137137        xhci_trb_t *last = segment_end(segment) - 1;
    138138        xhci_trb_link_fill(last, segment->phys);
     
    198198static bool trb_generates_interrupt(xhci_trb_t *trb)
    199199{
    200         return TRB_TYPE(*trb) >= XHCI_TRB_TYPE_ENABLE_SLOT_CMD
    201                 || TRB_IOC(*trb);
     200        return TRB_TYPE(*trb) >= XHCI_TRB_TYPE_ENABLE_SLOT_CMD ||
     201            TRB_IOC(*trb);
    202202}
    203203
     
    220220 */
    221221errno_t xhci_trb_ring_enqueue_multiple(xhci_trb_ring_t *ring, xhci_trb_t *first_trb,
    222         size_t trbs, uintptr_t *phys)
     222    size_t trbs, uintptr_t *phys)
    223223{
    224224        errno_t err;
     
    230230        fibril_mutex_lock(&ring->guard);
    231231
    232         xhci_trb_t * const saved_enqueue_trb = ring->enqueue_trb;
    233         trb_segment_t * const saved_enqueue_segment = ring->enqueue_segment;
     232        xhci_trb_t *const saved_enqueue_trb = ring->enqueue_trb;
     233        trb_segment_t *const saved_enqueue_segment = ring->enqueue_segment;
    234234        if (phys)
    235235                *phys = (uintptr_t)NULL;
     
    365365{
    366366        list_foreach(ring->segments, segments_link, trb_segment_t, segment)
    367                 memset(segment->trb_storage, 0, sizeof(segment->trb_storage));
    368 
    369         trb_segment_t * const segment = get_first_segment(&ring->segments);
     367            memset(segment->trb_storage, 0, sizeof(segment->trb_storage));
     368
     369        trb_segment_t *const segment = get_first_segment(&ring->segments);
    370370        ring->dequeue_segment = segment;
    371371        ring->dequeue_trb = segment_begin(segment);
Note: See TracChangeset for help on using the changeset viewer.