Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 605db7f in mainline


Ignore:
Timestamp:
2015-07-03T21:39:22Z (6 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
master
Children:
05b51e37
Parents:
34c9cfc
Message:

ehci,rh: Add more comprehensive RH debug messages

File:
1 edited

Legend:

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

    r34c9cfc r605db7f  
    106106            (EHCI_RD(caps->hcsparams) >> EHCI_CAPS_HCS_N_PORTS_SHIFT) &
    107107            EHCI_CAPS_HCS_N_PORTS_MASK;
    108         usb_log_debug2("hcsparams: %x.\n", EHCI_RD(caps->hcsparams));
    109         usb_log_info("%s: Found %u ports.\n", name, instance->port_count);
     108        usb_log_debug2("RH(%p): hcsparams: %x.\n", instance,
     109            EHCI_RD(caps->hcsparams));
     110        usb_log_info("RH(%p): Found %u ports.\n", instance,
     111            instance->port_count);
    110112
    111113        if (EHCI_RD(caps->hcsparams) & EHCI_CAPS_HCS_PPC_FLAG) {
    112                 usb_log_info("%s: Per-port power switching.\n", name);
     114                usb_log_info("RH(%p): Per-port power switching.", instance);
    113115        } else {
    114                 usb_log_info("%s: No power switching.\n", name);
     116                usb_log_info("RH(%p): No power switching.", instance);
    115117        }
    116118
     
    146148            batch->buffer, batch->buffer_size, &batch->transfered_size);
    147149        if (batch->error == ENAK) {
    148                 usb_log_debug("EHCI RH(%p): BATCH(%p) adding as unfinished\n",
     150                usb_log_debug("RH(%p): BATCH(%p) adding as unfinished",
    149151                    instance, batch);
    150152                /* This is safe because only status change interrupt transfers
     
    156158                usb_transfer_batch_finish(batch, NULL);
    157159                usb_transfer_batch_destroy(batch);
    158                 usb_log_debug("EHCI RH(%p): BATCH(%p) virtual request: %s\n",
     160                usb_log_debug("RH(%p): BATCH(%p) virtual request complete: %s",
    159161                    instance, batch, str_error(batch->error));
    160162        }
     
    174176        usb_transfer_batch_t *batch = instance->unfinished_interrupt_transfer;
    175177        instance->unfinished_interrupt_transfer = NULL;
     178        usb_log_debug2("RH(%p): Interrupt. Processing batch: %p",
     179            instance, batch);
    176180        if (batch) {
    177181                const usb_target_t target = {{
     
    290294        );
    291295        /* Note feature numbers for test and indicator feature do not
    292          * corespond to the port status bit locations */
     296         * correspond to the port status bit locations */
     297        usb_log_debug2("RH(%p-%u) port status: %"PRIx32, hub, port, status);
    293298        memcpy(data, &status, sizeof(status));
    294299        *act_size = sizeof(status);
     
    305310        ehci_rh_job_t *job = arg;
    306311        async_usleep(50000);
    307         usb_log_debug("EHCI_RH(%p-%u): Clearing reset", job->hub, job->port);
     312        usb_log_debug("RH(%p-%u): Clearing reset", job->hub, job->port);
    308313        EHCI_CLR(job->hub->registers->portsc[job->port],
    309314            USB_PORTSC_PORT_RESET_FLAG);
     
    313318                async_usleep(1);
    314319        };
    315         usb_log_debug("EHCI_RH(%p-%u): Reset complete", job->hub, job->port);
     320        usb_log_debug("RH(%p-%u): Reset complete", job->hub, job->port);
    316321        /* Handle port ownership, if the port is not enabled
    317322         * after reset it's a full speed device */
    318323        if (!(EHCI_RD(job->hub->registers->portsc[job->port]) &
    319324            USB_PORTSC_ENABLED_FLAG)) {
    320                 usb_log_debug("EHCI_RH(%p-%u): Port not enabled after reset, "
     325                usb_log_debug("RH(%p-%u): Port not enabled after reset, "
    321326                "giving up ownership", job->hub, job->port);
    322327                EHCI_SET(job->hub->registers->portsc[job->port],
     
    334339        ehci_rh_job_t *job = arg;
    335340        async_usleep(20000);
     341        usb_log_debug("RH(%p-%u): Stopping resume", job->hub, job->port);
    336342        EHCI_CLR(job->hub->registers->portsc[job->port],
    337343            USB_PORTSC_RESUME_FLAG);
     
    355361        }
    356362        fibril_add_ready(fib);
     363        usb_log_debug2("RH(%p-%u): Scheduled delayed stop job.", rh, port);
    357364        return EOK;
    358365}
     
    379386        {
    380387        case USB_HUB_FEATURE_PORT_POWER:          /*8*/
     388                usb_log_debug2("RH(%p-%u): Clear port power.", hub, port);
    381389                EHCI_CLR(hub->registers->portsc[port],
    382390                    USB_PORTSC_PORT_POWER_FLAG);
     
    384392
    385393        case USB_HUB_FEATURE_PORT_ENABLE:         /*1*/
     394                usb_log_debug2("RH(%p-%u): Clear port enable.", hub, port);
    386395                EHCI_CLR(hub->registers->portsc[port],
    387396                    USB_PORTSC_ENABLED_FLAG);
     
    389398
    390399        case USB_HUB_FEATURE_PORT_SUSPEND:        /*2*/
     400                usb_log_debug2("RH(%p-%u): Clear port suspend.", hub, port);
    391401                /* If not in suspend it's noop */
    392402                if ((EHCI_RD(hub->registers->portsc[port]) &
     
    396406                EHCI_SET(hub->registers->portsc[port],
    397407                    USB_PORTSC_RESUME_FLAG);
    398                 delayed_job(stop_resume, hub, port);
    399                 return EOK;
     408                //TODO: What if creating the delayed job fails?
     409                return delayed_job(stop_resume, hub, port);
    400410
    401411        case USB_HUB_FEATURE_C_PORT_CONNECTION:   /*16*/
     412                usb_log_debug2("RH(%p-%u): Clear port connection change.",
     413                    hub, port);
    402414                EHCI_SET(hub->registers->portsc[port],
    403415                    USB_PORTSC_CONNECT_CH_FLAG);
    404416                return EOK;
    405417        case USB_HUB_FEATURE_C_PORT_ENABLE:       /*17*/
     418                usb_log_debug2("RH(%p-%u): Clear port enable change.",
     419                    hub, port);
    406420                EHCI_SET(hub->registers->portsc[port],
    407421                    USB_PORTSC_CONNECT_CH_FLAG);
    408422                return EOK;
    409423        case USB_HUB_FEATURE_C_PORT_OVER_CURRENT: /*19*/
     424                usb_log_debug2("RH(%p-%u): Clear port OC change.",
     425                    hub, port);
    410426                EHCI_SET(hub->registers->portsc[port],
    411427                    USB_PORTSC_OC_CHANGE_FLAG);
    412428                return EOK;
    413429        case USB_HUB_FEATURE_C_PORT_SUSPEND:      /*18*/
     430                usb_log_debug2("RH(%p-%u): Clear port suspend change.",
     431                    hub, port);
    414432                hub->resume_flag[port] = false;
    415433                return EOK;
    416434        case USB_HUB_FEATURE_C_PORT_RESET:        /*20*/
     435                usb_log_debug2("RH(%p-%u): Clear port reset change.",
     436                    hub, port);
    417437                hub->reset_flag[port] = false;
    418438                return EOK;
    419439
    420440        default:
     441                usb_log_warning("RH(%p-%u): Clear unknown feature: %u",
     442                    hub, port, feature);
    421443                return ENOTSUP;
    422444        }
     
    441463        switch (feature) {
    442464        case USB_HUB_FEATURE_PORT_ENABLE:  /*1*/
     465                usb_log_debug2("RH(%p-%u): Set port enable.", hub, port);
    443466                EHCI_SET(hub->registers->portsc[port],
    444467                    USB_PORTSC_ENABLED_FLAG);
    445468                return EOK;
    446469        case USB_HUB_FEATURE_PORT_SUSPEND: /*2*/
     470                usb_log_debug2("RH(%p-%u): Set port suspend.", hub, port);
    447471                EHCI_SET(hub->registers->portsc[port],
    448472                    USB_PORTSC_SUSPEND_FLAG);
    449473                return EOK;
    450474        case USB_HUB_FEATURE_PORT_RESET:   /*4*/
     475                usb_log_debug2("RH(%p-%u): Set port reset.", hub, port);
    451476                EHCI_SET(hub->registers->portsc[port],
    452477                    USB_PORTSC_PORT_RESET_FLAG);
    453                 delayed_job(stop_reset, hub, port);
    454                 return EOK;
     478                //TODO: What if creating the delayed job fails?
     479                return delayed_job(stop_reset, hub, port);
    455480        case USB_HUB_FEATURE_PORT_POWER:   /*8*/
     481                usb_log_debug2("RH(%p-%u): Set port power.", hub, port);
    456482                EHCI_SET(hub->registers->portsc[port],
    457483                    USB_PORTSC_PORT_POWER_FLAG);
    458484                return EOK;
    459485        default:
     486                usb_log_warning("RH(%p-%u): Set unknown feature: %u",
     487                    hub, port, feature);
    460488                return ENOTSUP;
    461489        }
     
    501529        }
    502530
    503         usb_log_debug2("EHCI root hub interrupt mask: %hx.\n", mask);
     531        usb_log_debug2("RH(%p): root hub interrupt mask: %"PRIx16, hub, mask);
    504532
    505533        if (mask == 0)
Note: See TracChangeset for help on using the changeset viewer.