Changeset 55e388a1 in mainline for uspace/drv/usbhub/usbhub.c


Ignore:
Timestamp:
2011-03-24T14:57:53Z (13 years ago)
Author:
Matej Klonfar <maklf@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b53d3b7
Parents:
361e61b (diff), e18e0d6 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Check of initialization of report parser structure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/usbhub/usbhub.c

    r361e61b r55e388a1  
    132132                return opResult;
    133133        }
    134         usb_log_info("setting port count to %d\n",descriptor->ports_count);
     134        usb_log_debug("setting port count to %d\n",descriptor->ports_count);
    135135        hub_info->port_count = descriptor->ports_count;
    136136        hub_info->attached_devs = (usb_hc_attached_device_t*)
     
    157157static int usb_hub_set_configuration(usb_hub_info_t * hub_info){
    158158        //device descriptor
    159         usb_standard_device_descriptor_t std_descriptor;
    160         int opResult = usb_request_get_device_descriptor(
    161                 &hub_info->usb_device->ctrl_pipe,
    162             &std_descriptor);
    163         if(opResult!=EOK){
    164                 usb_log_error("could not get device descriptor, %d\n",opResult);
    165                 return opResult;
    166         }
    167         usb_log_info("hub has %d configurations\n",
    168                         std_descriptor.configuration_count);
    169         if(std_descriptor.configuration_count<1){
     159        usb_standard_device_descriptor_t *std_descriptor
     160            = &hub_info->usb_device->descriptors.device;
     161        usb_log_debug("hub has %d configurations\n",
     162            std_descriptor->configuration_count);
     163        if(std_descriptor->configuration_count<1){
    170164                usb_log_error("THERE ARE NO CONFIGURATIONS AVAILABLE\n");
    171165                //shouldn`t I return?
    172         }
    173 
    174         /* Retrieve full configuration descriptor. */
    175         uint8_t *descriptors = NULL;
    176         size_t descriptors_size = 0;
    177         opResult = usb_request_get_full_configuration_descriptor_alloc(
    178             &hub_info->usb_device->ctrl_pipe, 0,
    179             (void **) &descriptors, &descriptors_size);
    180         if (opResult != EOK) {
    181                 usb_log_error("Could not get configuration descriptor: %s.\n",
    182                     str_error(opResult));
    183                 return opResult;
    184         }
     166                //definitely
     167                return EINVAL;
     168        }
     169
    185170        usb_standard_configuration_descriptor_t *config_descriptor
    186             = (usb_standard_configuration_descriptor_t *) descriptors;
     171            = (usb_standard_configuration_descriptor_t *)
     172            hub_info->usb_device->descriptors.configuration;
    187173
    188174        /* Set configuration. */
    189         opResult = usb_request_set_configuration(&hub_info->usb_device->ctrl_pipe,
     175        int opResult = usb_request_set_configuration(
     176            &hub_info->usb_device->ctrl_pipe,
    190177            config_descriptor->configuration_number);
    191178
     
    197184        usb_log_debug("\tused configuration %d\n",
    198185                        config_descriptor->configuration_number);
    199         free(descriptors);
     186
    200187        return EOK;
    201188}
     
    224211        }
    225212       
    226         usb_endpoint_pipe_start_session(hub_info->control_pipe);
     213        usb_pipe_start_session(hub_info->control_pipe);
    227214        //set hub configuration
    228215        opResult = usb_hub_set_configuration(hub_info);
     
    239226                return opResult;
    240227        }
    241         usb_endpoint_pipe_end_session(hub_info->control_pipe);
     228        usb_pipe_end_session(hub_info->control_pipe);
    242229
    243230
    244231        /// \TODO what is this?
    245         usb_log_debug("adding to ddf");
     232        usb_log_debug("Creating `hub' function.\n");
    246233        ddf_fun_t *hub_fun = ddf_fun_create(hub_info->usb_device->ddf_dev,
    247234                        fun_exposed, "hub");
     
    257244        fid_t fid = fibril_create(usb_hub_control_loop, hub_info);
    258245        if (fid == 0) {
    259                 usb_log_error("failed to start monitoring fibril for new hub");
     246                usb_log_error("failed to start monitoring fibril for new hub.\n");
    260247                return ENOMEM;
    261248        }
    262249        fibril_add_ready(fid);
    263         usb_log_debug("hub fibril created");
    264         usb_log_debug("has %d ports ",hub_info->port_count);
     250        usb_log_debug("Hub fibril created.\n");
     251
     252        usb_log_info("Controlling hub `%s' (%d ports).\n",
     253            hub_info->usb_device->ddf_dev->name, hub_info->port_count);
    265254        return EOK;
    266255}
     
    301290        //if this hub already uses default address, it cannot request it once more
    302291        if(hub->is_default_address_used) return;
    303         usb_log_info("some connection changed\n");
     292        usb_log_debug("some connection changed\n");
    304293        assert(hub->control_pipe->hc_phone);
    305294        int opResult = usb_hub_clear_port_feature(hub->control_pipe,
     
    321310        //reset port
    322311        usb_hub_set_reset_port_request(&request, port);
    323         opResult = usb_endpoint_pipe_control_write(
     312        opResult = usb_pipe_control_write(
    324313                        hub->control_pipe,
    325314                        &request,sizeof(usb_device_request_setup_packet_t),
     
    344333
    345334        int opResult;
    346         usb_log_info("finalizing add device\n");
     335        usb_log_debug("finalizing add device\n");
    347336        opResult = usb_hub_clear_port_feature(hub->control_pipe,
    348337            port, USB_HUB_FEATURE_C_PORT_RESET);
     
    354343        }
    355344        //create connection to device
    356         usb_endpoint_pipe_t new_device_pipe;
     345        usb_pipe_t new_device_pipe;
    357346        usb_device_connection_t new_device_connection;
    358347        usb_device_connection_initialize_on_default_address(
     
    360349                        &hub->connection
    361350                        );
    362         usb_endpoint_pipe_initialize_default_control(
     351        usb_pipe_initialize_default_control(
    363352                        &new_device_pipe,
    364353                        &new_device_connection);
    365         usb_endpoint_pipe_probe_default_control(&new_device_pipe);
     354        usb_pipe_probe_default_control(&new_device_pipe);
    366355
    367356        /* Request address from host controller. */
     
    376365                return;
    377366        }
    378         usb_log_info("setting new address %d\n",new_device_address);
     367        usb_log_debug("setting new address %d\n",new_device_address);
    379368        //opResult = usb_drv_req_set_address(hc, USB_ADDRESS_DEFAULT,
    380369        //    new_device_address);
    381         usb_endpoint_pipe_start_session(&new_device_pipe);
     370        usb_pipe_start_session(&new_device_pipe);
    382371        opResult = usb_request_set_address(&new_device_pipe,new_device_address);
    383         usb_endpoint_pipe_end_session(&new_device_pipe);
     372        usb_pipe_end_session(&new_device_pipe);
    384373        if (opResult != EOK) {
    385374                usb_log_error("could not set address for new device %d\n",opResult);
     
    416405                return;
    417406        }
    418         usb_log_info("new device address %d, handle %zu\n",
     407        usb_log_info("Detected new device on `%s' (port %d), " \
     408            "address %d (handle %llu).\n",
     409            hub->usb_device->ddf_dev->name, (int) port,
    419410            new_device_address, child_handle);
    420 
    421411}
    422412
     
    488478        usb_log_debug("interrupt at port %d\n", port);
    489479        //determine type of change
    490         usb_endpoint_pipe_t *pipe = hub->control_pipe;
     480        usb_pipe_t *pipe = hub->control_pipe;
    491481       
    492482        int opResult;
     
    499489        //endpoint 0
    500490
    501         opResult = usb_endpoint_pipe_control_read(
     491        opResult = usb_pipe_control_read(
    502492                        pipe,
    503493                        &request, sizeof(usb_device_request_setup_packet_t),
     
    515505        if (usb_port_connect_change(&status)) {
    516506                if (usb_port_dev_connected(&status)) {
    517                         usb_log_info("some connection changed\n");
     507                        usb_log_debug("some connection changed\n");
    518508                        usb_hub_init_add_device(hub, port, usb_port_speed(&status));
    519509                } else {
     
    527517                        usb_hub_over_current(hub,port);
    528518                }else{
    529                         usb_log_info("over current condition was auto-resolved on port %d\n",
     519                        usb_log_debug("over current condition was auto-resolved on port %d\n",
    530520                                        port);
    531521                }
     
    533523        //port reset
    534524        if (usb_port_reset_completed(&status)) {
    535                 usb_log_info("port reset complete");
     525                usb_log_debug("port reset complete\n");
    536526                if (usb_port_enabled(&status)) {
    537527                        usb_hub_finalize_add_device(hub, port, usb_port_speed(&status));
     
    560550int usb_hub_check_hub_changes(usb_hub_info_t * hub_info){
    561551        int opResult;
    562         opResult = usb_endpoint_pipe_start_session(
     552        opResult = usb_pipe_start_session(
    563553                        hub_info->status_change_pipe);
    564554        if(opResult != EOK){
     
    578568         * Send the request.
    579569         */
    580         opResult = usb_endpoint_pipe_read(
     570        opResult = usb_pipe_read(
    581571                        hub_info->status_change_pipe,
    582572                        change_bitmap, byte_length, &actual_size
     
    586576                free(change_bitmap);
    587577                usb_log_warning("something went wrong while getting status of hub\n");
    588                 usb_endpoint_pipe_end_session(hub_info->status_change_pipe);
     578                usb_pipe_end_session(hub_info->status_change_pipe);
    589579                return opResult;
    590580        }
    591581        unsigned int port;
    592         opResult = usb_endpoint_pipe_start_session(hub_info->control_pipe);
     582        opResult = usb_pipe_start_session(hub_info->control_pipe);
    593583        if(opResult!=EOK){
    594584                usb_log_error("could not start control pipe session %d\n", opResult);
    595                 usb_endpoint_pipe_end_session(hub_info->status_change_pipe);
     585                usb_pipe_end_session(hub_info->status_change_pipe);
    596586                return opResult;
    597587        }
     
    600590                usb_log_error("could not start host controller session %d\n",
    601591                                opResult);
    602                 usb_endpoint_pipe_end_session(hub_info->control_pipe);
    603                 usb_endpoint_pipe_end_session(hub_info->status_change_pipe);
     592                usb_pipe_end_session(hub_info->control_pipe);
     593                usb_pipe_end_session(hub_info->status_change_pipe);
    604594                return opResult;
    605595        }
     
    615605        }
    616606        usb_hc_connection_close(&hub_info->connection);
    617         usb_endpoint_pipe_end_session(hub_info->control_pipe);
    618         usb_endpoint_pipe_end_session(hub_info->status_change_pipe);
     607        usb_pipe_end_session(hub_info->control_pipe);
     608        usb_pipe_end_session(hub_info->status_change_pipe);
    619609        free(change_bitmap);
    620610        return EOK;
Note: See TracChangeset for help on using the changeset viewer.