Ignore:
File:
1 edited

Legend:

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

    r5097bed4 r71ed4849  
    7575        //get some hub info
    7676        usb_address_t addr = usb_drv_get_my_address(hc, device);
    77         dprintf(1,"[usb_hub] address of newly created hub = %d", addr);
     77        dprintf(1,"[usb_hub] addres of newly created hub = %d", addr);
    7878        /*if(addr<0){
    7979                //return result;
     
    174174                dprintf(1,"[usb_hub] THERE ARE NO CONFIGURATIONS AVAILABLE");
    175175        }
    176         /// \TODO check other configurations
    177176        usb_standard_configuration_descriptor_t config_descriptor;
    178177        opResult = usb_drv_req_get_bare_configuration_descriptor(hc,
     
    195194        }
    196195
     196
    197197        for (port = 1; port < hub_info->port_count+1; ++port) {
    198198                usb_hub_set_power_port_request(&request, port);
     
    205205        //ports powered, hub seems to be enabled
    206206
     207
    207208        ipc_hangup(hc);
    208209
    209210        //add the hub to list
    210         futex_down(&usb_hub_list_lock);
    211211        usb_lst_append(&usb_hub_list, hub_info);
    212         futex_up(&usb_hub_list_lock);
    213 
    214212        dprintf(1,"[usb_hub] hub info added to list");
    215213        //(void)hub_info;
     
    235233//
    236234//*********************************************
    237 
    238 /**
    239  * convenience function for releasing default address and writing debug info
    240  * (these few lines are used too often to be written again and again)
    241  * @param hc
    242  * @return
    243  */
    244 inline static int usb_hub_release_default_address(int hc){
    245         int opResult;
    246         dprintf(1,"[usb_hub] releasing default address");
    247         opResult = usb_drv_release_default_address(hc);
    248         if (opResult != EOK) {
    249                 dprintf(1,"[usb_hub] failed to release default address");
    250         }
    251         return opResult;
    252 }
    253235
    254236/**
     
    277259        if (opResult != EOK) {
    278260                dprintf(1,"[usb_hub] something went wrong when reseting a port");
    279                 usb_hub_release_default_address(hc);
    280         }
    281 }
     261        }
     262}
     263
     264/**
     265 * convenience function for releasing default address and writing debug info
     266 * (these few lines are used too often to be written again and again)
     267 * @param hc
     268 * @return
     269 */
     270inline static int usb_hub_release_default_address(int hc){
     271        int opResult;
     272        dprintf(1,"[usb_hub] releasing default address");
     273        opResult = usb_drv_release_default_address(hc);
     274        if (opResult != EOK) {
     275                dprintf(1,"[usb_hub] failed to release default address");
     276        }
     277        return opResult;
     278}
     279
    282280
    283281/**
     
    345343
    346344/**
    347  * unregister device address in hc
     345 * unregister device address in hc, close the port
    348346 * @param hc
    349347 * @param port
     
    354352        //usb_device_request_setup_packet_t request;
    355353        int opResult;
    356        
     354        //disable port
     355        /*usb_hub_set_disable_port_request(&request, port);
     356        opResult = usb_drv_sync_control_write(
     357                        hc, target,
     358                        &request,
     359                        NULL, 0
     360                        );
     361        if (opResult != EOK) {
     362                //continue;
     363                printf("[usb_hub] something went wrong when disabling a port\n");
     364        }*/
    357365        /// \TODO remove device
    358366
     
    449457         */
    450458        usb_general_list_t * lst_item;
    451         futex_down(&usb_hub_list_lock);
    452459        for (lst_item = usb_hub_list.next;
    453460                        lst_item != &usb_hub_list;
    454461                        lst_item = lst_item->next) {
    455                 futex_up(&usb_hub_list_lock);
    456462                usb_hub_info_t * hub_info = ((usb_hub_info_t*)lst_item->data);
    457463                /*
     
    504510                        }
    505511                }
    506                 free(change_bitmap);
    507512
    508513                ipc_hangup(hc);
    509                 futex_down(&usb_hub_list_lock);
    510         }
    511         futex_up(&usb_hub_list_lock);
     514        }
    512515}
    513516
Note: See TracChangeset for help on using the changeset viewer.