Changes in / [039c66c:fcf07e6] in mainline


Ignore:
Location:
uspace/drv/usbhub
Files:
2 edited

Legend:

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

    r039c66c rfcf07e6  
    7272int usb_hub_control_loop(void * hub_info_param){
    7373        usb_hub_info_t * hub_info = (usb_hub_info_t*)hub_info_param;
    74         int errorCode = EOK;
    75 
    76         while(errorCode == EOK){
    77                 errorCode = usb_hub_check_hub_changes(hub_info);
     74        while(true){
     75                usb_hub_check_hub_changes(hub_info);
    7876                async_usleep(1000 * 1000 );/// \TODO proper number once
    7977        }
    80         dprintf(USB_LOG_LEVEL_ERROR,
    81                                 "something in ctrl loop went wrong, errno %d",errorCode);
    8278        return 0;
    8379}
     
    384380 * @param target
    385381 */
    386 static void usb_hub_init_add_device(usb_hub_info_t * hub, uint16_t port,
    387                 bool isLowSpeed) {
     382static void usb_hub_init_add_device(usb_hub_info_t * hub, uint16_t port) {
    388383        usb_device_request_setup_packet_t request;
    389384        int opResult;
     
    391386        assert(hub->endpoints.control.hc_phone);
    392387        //get default address
    393         usb_speed_t speed = isLowSpeed?USB_SPEED_LOW:USB_SPEED_FULL;
    394         opResult = usb_hc_reserve_default_address(&hub->connection, speed);
     388        //opResult = usb_drv_reserve_default_address(hc);
     389        opResult = usb_hc_reserve_default_address(&hub->connection, USB_SPEED_LOW);
    395390       
    396391        if (opResult != EOK) {
     
    451446        usb_address_t new_device_address = usb_hc_request_address(
    452447                        &hub->connection,
    453                         speed
     448                        speed/// \TODO fullspeed??
    454449                        );
    455450        if (new_device_address < 0) {
     
    515510static void usb_hub_removed_device(
    516511    usb_hub_info_t * hub,uint16_t port) {
    517                
     512        //usb_device_request_setup_packet_t request;
     513        int opResult;
     514       
    518515        /** \TODO remove device from device manager - not yet implemented in
    519516         * devide manager
     
    522519        //close address
    523520        if(hub->attached_devs[port].address!=0){
    524                 /*uncomment this code to use it when DDF allows device removal
     521                //opResult = usb_drv_release_address(hc,hub->attached_devs[port].address);
    525522                opResult = usb_hc_unregister_device(
    526523                                &hub->connection, hub->attached_devs[port].address);
     
    531528                hub->attached_devs[port].address = 0;
    532529                hub->attached_devs[port].handle = 0;
    533                  */
    534530        }else{
    535531                dprintf(USB_LOG_LEVEL_WARNING, "this is strange, disconnected device had no address");
     
    601597                if (usb_port_dev_connected(&status)) {
    602598                        dprintf(USB_LOG_LEVEL_INFO, "some connection changed");
    603                         usb_hub_init_add_device(hub, port, usb_port_low_speed(&status));
     599                        usb_hub_init_add_device(hub, port);
    604600                } else {
    605601                        usb_hub_removed_device(hub, port);
     
    639635/**
    640636 * Check changes on particular hub
    641  * @param hub_info_param pointer to usb_hub_info_t structure
    642  * @return error code if there is problem when initializing communication with
    643  * hub, EOK otherwise
    644  */
    645 int usb_hub_check_hub_changes(usb_hub_info_t * hub_info){
     637 * @param hub_info_param
     638 */
     639void usb_hub_check_hub_changes(usb_hub_info_t * hub_info){
    646640        int opResult;
    647641        opResult = usb_endpoint_pipe_start_session(&hub_info->endpoints.status_change);
     
    649643                dprintf(USB_LOG_LEVEL_ERROR,
    650644                                "could not initialize communication for hub; %d", opResult);
    651                 return opResult;
     645                return;
    652646        }
    653647
     
    671665                dprintf(USB_LOG_LEVEL_WARNING, "something went wrong while getting status of hub");
    672666                usb_endpoint_pipe_end_session(&hub_info->endpoints.status_change);
    673                 return opResult;
     667                return;
    674668        }
    675669        unsigned int port;
     
    679673                                opResult);
    680674                usb_endpoint_pipe_end_session(&hub_info->endpoints.status_change);
    681                 return opResult;
     675                return;
    682676        }
    683677        opResult = usb_hc_connection_open(&hub_info->connection);
     
    687681                usb_endpoint_pipe_end_session(&hub_info->endpoints.control);
    688682                usb_endpoint_pipe_end_session(&hub_info->endpoints.status_change);
    689                 return opResult;
     683                return;
    690684        }
    691685
     
    703697        usb_endpoint_pipe_end_session(&hub_info->endpoints.status_change);
    704698        free(change_bitmap);
    705         return EOK;
    706699}
    707700
  • uspace/drv/usbhub/usbhub.h

    r039c66c rfcf07e6  
    8787
    8888/**
    89  * Check changes on specified hub
     89 * check changes on specified hub
    9090 * @param hub_info_param pointer to usb_hub_info_t structure
    91  * @return error code if there is problem when initializing communication with
    92  * hub, EOK otherwise
    9391 */
    94 int usb_hub_check_hub_changes(usb_hub_info_t * hub_info_param);
     92void usb_hub_check_hub_changes(usb_hub_info_t * hub_info_param);
    9593
    9694
Note: See TracChangeset for help on using the changeset viewer.