Lines Matching refs:usba_device

183 	usba_device_t		*usba_device;  in usba_bus_ctl()  local
200 usba_device = usba_get_usba_device(rdip); in usba_bus_ctl()
211 if (usba_device) { in usba_bus_ctl()
216 usba_device->usb_dev_descr->idVendor, in usba_bus_ctl()
217 usba_device->usb_dev_descr->idProduct); in usba_bus_ctl()
222 usba_device->usb_dev_descr->idVendor, in usba_bus_ctl()
223 usba_device->usb_dev_descr->idProduct, in usba_bus_ctl()
224 usba_device->usb_cfg_value, in usba_bus_ctl()
230 usba_device->usb_dev_descr->idVendor, in usba_bus_ctl()
231 usba_device->usb_dev_descr->idProduct, in usba_bus_ctl()
232 usba_device->usb_cfg_value, in usba_bus_ctl()
235 switch (usba_device->usb_port_status) { in usba_bus_ctl()
255 (usba_device->usb_dev_descr->bcdUSB & 0xff00) >> 8, in usba_bus_ctl()
256 usba_device->usb_dev_descr->bcdUSB & 0xff, in usba_bus_ctl()
267 ddi_get_instance(rdip), usba_device->usb_addr); in usba_bus_ctl()
304 usba_device = usba_get_usba_device(child_dip); in usba_bus_ctl()
305 if (usba_device == NULL) { in usba_bus_ctl()
364 mutex_enter(&usba_device->usb_mutex); in usba_bus_ctl()
365 usba_device->usb_ref_count++; in usba_bus_ctl()
369 (void *)usba_device, usba_device->usb_ref_count); in usba_bus_ctl()
371 mutex_exit(&usba_device->usb_mutex); in usba_bus_ctl()
378 usba_device = usba_get_usba_device(child_dip); in usba_bus_ctl()
380 if (usba_device != NULL) { in usba_bus_ctl()
385 mutex_enter(&usba_device->usb_mutex); in usba_bus_ctl()
386 usba_device->usb_ref_count--; in usba_bus_ctl()
391 (void *)usba_device, usba_device->usb_ref_count); in usba_bus_ctl()
393 mutex_exit(&usba_device->usb_mutex); in usba_bus_ctl()
467 usba_set_usb_address(usba_device_t *usba_device) in usba_set_usb_address() argument
474 mutex_enter(&usba_device->usb_mutex); in usba_set_usb_address()
476 hcdi = usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip); in usba_set_usb_address()
494 usba_device->usb_addr = address; in usba_set_usb_address()
496 mutex_exit(&usba_device->usb_mutex); in usba_set_usb_address()
501 usba_device->usb_addr = 0; in usba_set_usb_address()
507 mutex_exit(&usba_device->usb_mutex); in usba_set_usb_address()
518 usba_unset_usb_address(usba_device_t *usba_device) in usba_unset_usb_address() argument
525 mutex_enter(&usba_device->usb_mutex); in usba_unset_usb_address()
526 address = usba_device->usb_addr; in usba_unset_usb_address()
527 hcdi = usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip); in usba_unset_usb_address()
545 usba_device->usb_addr = 0; in usba_unset_usb_address()
547 mutex_exit(&usba_device->usb_mutex); in usba_unset_usb_address()
555 usba_device_t *usba_device = usba_get_usba_device(dip); in usba_get_evdata() local
558 ASSERT(usba_device != NULL); in usba_get_evdata()
560 mutex_enter(&usba_device->usb_mutex); in usba_get_evdata()
561 evdata = usba_device->usb_evdata; in usba_get_evdata()
564 mutex_exit(&usba_device->usb_mutex); in usba_get_evdata()
573 evdata->ev_next = usba_device->usb_evdata; in usba_get_evdata()
574 usba_device->usb_evdata = evdata; in usba_get_evdata()
575 mutex_exit(&usba_device->usb_mutex); in usba_get_evdata()
587 usba_device_t *usba_device; in usba_alloc_usba_device() local
595 usba_device = kmem_zalloc(sizeof (usba_device_t), KM_SLEEP); in usba_alloc_usba_device()
600 mutex_init(&usba_device->usb_mutex, NULL, MUTEX_DRIVER, in usba_alloc_usba_device()
603 usba_init_list(&usba_device->usb_device_list, (usb_opaque_t)usba_device, in usba_alloc_usba_device()
605 usba_init_list(&usba_device->usb_allocated, (usb_opaque_t)usba_device, in usba_alloc_usba_device()
607 mutex_enter(&usba_device->usb_mutex); in usba_alloc_usba_device()
608 usba_device->usb_root_hub_dip = root_hub_dip; in usba_alloc_usba_device()
613 usba_add_to_list(&usba_device_list, &usba_device->usb_device_list); in usba_alloc_usba_device()
617 mutex_init(&usba_device->usb_ph_list[ep_idx].usba_ph_mutex, in usba_alloc_usba_device()
622 "allocated usba_device 0x%p", (void *)usba_device); in usba_alloc_usba_device()
624 mutex_exit(&usba_device->usb_mutex); in usba_alloc_usba_device()
626 return (usba_device); in usba_alloc_usba_device()
648 usba_free_usba_device(usba_device_t *usba_device) in usba_free_usba_device() argument
653 if (usba_device == NULL) { in usba_free_usba_device()
658 mutex_enter(&usba_device->usb_mutex); in usba_free_usba_device()
659 if (usba_device->usb_ref_count) { in usba_free_usba_device()
660 mutex_exit(&usba_device->usb_mutex); in usba_free_usba_device()
667 (void *)usba_device, usba_device->usb_addr, in usba_free_usba_device()
668 usba_device->usb_ref_count); in usba_free_usba_device()
670 usba_free_evdata(usba_device->usb_evdata); in usba_free_usba_device()
671 mutex_exit(&usba_device->usb_mutex); in usba_free_usba_device()
673 def_ph = usba_usbdev_to_dflt_pipe_handle(usba_device); in usba_free_usba_device()
688 if (usba_device->usb_hcdi_ops->usba_hcdi_device_fini != NULL) { in usba_free_usba_device()
689 usba_device->usb_hcdi_ops->usba_hcdi_device_fini( in usba_free_usba_device()
690 usba_device, usba_device->usb_hcd_private); in usba_free_usba_device()
691 usba_device->usb_hcd_private = NULL; in usba_free_usba_device()
698 mutex_destroy(&usba_device->usb_ph_list[ep_idx].usba_ph_mutex); in usba_free_usba_device()
702 &usba_device->usb_device_list); in usba_free_usba_device()
706 usba_destroy_list(&usba_device->usb_device_list); in usba_free_usba_device()
707 usba_destroy_list(&usba_device->usb_allocated); in usba_free_usba_device()
711 (void *)usba_device, usba_device->usb_addr); in usba_free_usba_device()
718 if (usba_device->usb_addr != ROOT_HUB_ADDR) { in usba_free_usba_device()
719 if (usba_device->usb_cfg_array) { in usba_free_usba_device()
722 (void *)usba_device->usb_cfg_array); in usba_free_usba_device()
723 mutex_enter(&usba_device->usb_mutex); in usba_free_usba_device()
725 i < usba_device->usb_dev_descr->bNumConfigurations; in usba_free_usba_device()
727 if (usba_device->usb_cfg_array[i]) { in usba_free_usba_device()
729 usba_device->usb_cfg_array[i], in usba_free_usba_device()
730 usba_device->usb_cfg_array_len[i]); in usba_free_usba_device()
735 kmem_free(usba_device->usb_cfg_array, in usba_free_usba_device()
736 usba_device->usb_cfg_array_length); in usba_free_usba_device()
737 kmem_free(usba_device->usb_cfg_array_len, in usba_free_usba_device()
738 usba_device->usb_cfg_array_len_length); in usba_free_usba_device()
740 mutex_exit(&usba_device->usb_mutex); in usba_free_usba_device()
743 if (usba_device->usb_cfg_str_descr) { in usba_free_usba_device()
746 (void *)usba_device->usb_cfg_str_descr); in usba_free_usba_device()
748 i < usba_device->usb_dev_descr->bNumConfigurations; in usba_free_usba_device()
750 if (usba_device->usb_cfg_str_descr[i]) { in usba_free_usba_device()
752 usba_device->usb_cfg_str_descr[i], in usba_free_usba_device()
753 strlen(usba_device-> in usba_free_usba_device()
758 kmem_free(usba_device->usb_cfg_str_descr, in usba_free_usba_device()
759 sizeof (uchar_t *) * usba_device->usb_n_cfgs); in usba_free_usba_device()
762 if (usba_device->usb_dev_descr) { in usba_free_usba_device()
763 kmem_free(usba_device->usb_dev_descr, in usba_free_usba_device()
767 if (usba_device->usb_mfg_str) { in usba_free_usba_device()
768 kmem_free(usba_device->usb_mfg_str, in usba_free_usba_device()
769 strlen(usba_device->usb_mfg_str) + 1); in usba_free_usba_device()
772 if (usba_device->usb_product_str) { in usba_free_usba_device()
773 kmem_free(usba_device->usb_product_str, in usba_free_usba_device()
774 strlen(usba_device->usb_product_str) + 1); in usba_free_usba_device()
777 if (usba_device->usb_serialno_str) { in usba_free_usba_device()
778 kmem_free(usba_device->usb_serialno_str, in usba_free_usba_device()
779 strlen(usba_device->usb_serialno_str) + 1); in usba_free_usba_device()
782 usba_free_binary_object_store(usba_device); in usba_free_usba_device()
784 usba_unset_usb_address(usba_device); in usba_free_usba_device()
788 ASSERT(usba_device->usb_client_dev_data_list.cddl_next == NULL); in usba_free_usba_device()
791 if (usba_device->usb_client_flags) { in usba_free_usba_device()
795 for (i = 0; i < usba_device->usb_n_ifs; i++) { in usba_free_usba_device()
796 ASSERT(usba_device->usb_client_flags[i] == 0); in usba_free_usba_device()
799 kmem_free(usba_device->usb_client_flags, in usba_free_usba_device()
800 usba_device->usb_n_ifs * USBA_CLIENT_FLAG_SIZE); in usba_free_usba_device()
804 if (usba_device->usb_client_attach_list) { in usba_free_usba_device()
805 kmem_free(usba_device->usb_client_attach_list, in usba_free_usba_device()
806 usba_device->usb_n_ifs * in usba_free_usba_device()
807 sizeof (*usba_device->usb_client_attach_list)); in usba_free_usba_device()
809 if (usba_device->usb_client_ev_cb_list) { in usba_free_usba_device()
810 kmem_free(usba_device->usb_client_ev_cb_list, in usba_free_usba_device()
811 usba_device->usb_n_ifs * in usba_free_usba_device()
812 sizeof (*usba_device->usb_client_ev_cb_list)); in usba_free_usba_device()
818 mutex_destroy(&usba_device->usb_mutex); in usba_free_usba_device()
820 kmem_free((caddr_t)usba_device, sizeof (usba_device_t)); in usba_free_usba_device()
826 usba_clear_data_toggle(usba_device_t *usba_device) in usba_clear_data_toggle() argument
830 if (usba_device != NULL) { in usba_clear_data_toggle()
831 mutex_enter(&usba_device->usb_mutex); in usba_clear_data_toggle()
833 usba_device->usb_ph_list[i].usba_ph_flags &= in usba_clear_data_toggle()
836 mutex_exit(&usba_device->usb_mutex); in usba_clear_data_toggle()
852 usba_device_t *usba_device, in usba_create_child_devi() argument
862 (void *)usba_device, port_status); in usba_create_child_devi()
870 if (usba_device == NULL) { in usba_create_child_devi()
872 usba_device = usba_alloc_usba_device(usb_root_hub_dip); in usba_create_child_devi()
875 mutex_enter(&usba_device->usb_mutex); in usba_create_child_devi()
876 usba_device->usb_hcdi_ops = usba_hcdi_ops; in usba_create_child_devi()
877 usba_device->usb_port_status = port_status; in usba_create_child_devi()
878 mutex_exit(&usba_device->usb_mutex); in usba_create_child_devi()
882 mutex_enter(&usba_device->usb_mutex); in usba_create_child_devi()
884 ASSERT(usba_device->usb_hcdi_ops == usba_hcdi_ops); in usba_create_child_devi()
887 ASSERT(usba_device->usb_root_hub_dip == in usba_create_child_devi()
891 usba_device->usb_port_status = port_status; in usba_create_child_devi()
893 mutex_exit(&usba_device->usb_mutex); in usba_create_child_devi()
896 if (usba_device->usb_addr == 0) { in usba_create_child_devi()
897 if (usba_set_usb_address(usba_device) == USB_FAILURE) { in usba_create_child_devi()
907 address = usba_device->usb_addr; in usba_create_child_devi()
924 usba_set_usba_device(*child_dip, usba_device); in usba_create_child_devi()
929 (void *)usba_device); in usba_create_child_devi()
941 usba_free_usba_device(usba_device); in usba_create_child_devi()
942 } else if (address && usba_device) { in usba_create_child_devi()
943 usba_unset_usb_address(usba_device); in usba_create_child_devi()
956 usba_device_t *usba_device; in usba_destroy_child_devi() local
963 usba_device = usba_get_usba_device(dip); in usba_destroy_child_devi()
985 (void *)usba_device, devnm); in usba_destroy_child_devi()
1455 usba_set_usba_device(dev_info_t *dip, usba_device_t *usba_device) in usba_set_usba_device() argument
1461 hcdi->hcdi_usba_device = usba_device; in usba_set_usba_device()
1464 ddi_set_parent_data(dip, usba_device); in usba_set_usba_device()
1758 usba_device_t *usba_device = usba_get_usba_device(dip); in usba_get_ugen_binding() local
1760 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip); in usba_get_ugen_binding()
1774 usba_device_t *usba_device = usba_get_usba_device(child_dip); in usba_ready_device_node() local
1794 mutex_enter(&usba_device->usb_mutex); in usba_ready_device_node()
1800 port = usba_device->usb_port; in usba_ready_device_node()
1801 usb_dev_descr = usba_device->usb_dev_descr; in usba_ready_device_node()
1802 n_cfgs = usba_device->usb_n_cfgs; in usba_ready_device_node()
1803 n_ifs = usba_device->usb_n_ifs; in usba_ready_device_node()
1804 bus_num = usba_device->usb_addr; in usba_ready_device_node()
1822 mutex_exit(&usba_device->usb_mutex); in usba_ready_device_node()
1836 mutex_exit(&usba_device->usb_mutex); in usba_ready_device_node()
1879 } else if (usba_device->usb_preferred_driver) { in usba_ready_device_node()
1880 force_bind = usba_device->usb_preferred_driver; in usba_ready_device_node()
1920 dev_str.usb_mfg = usba_device->usb_mfg_str; in usba_ready_device_node()
1921 dev_str.usb_product = usba_device->usb_product_str; in usba_ready_device_node()
1922 dev_str.usb_serialno = usba_device->usb_serialno_str; in usba_ready_device_node()
2054 usba_device->usb_cfg_value); in usba_ready_device_node()
2070 usba_device->usb_cfg_value); in usba_ready_device_node()
2152 "assigned-address", usba_device->usb_addr); in usba_ready_device_node()
2212 if (usba_device->usb_serialno_str) { in usba_ready_device_node()
2213 usba_filter_string(usba_device->usb_serialno_str, devprop_str); in usba_ready_device_node()
2223 if (usba_device->usb_mfg_str) { in usba_ready_device_node()
2224 usba_filter_string(usba_device->usb_mfg_str, devprop_str); in usba_ready_device_node()
2234 if (usba_device->usb_product_str) { in usba_ready_device_node()
2235 usba_filter_string(usba_device->usb_product_str, devprop_str); in usba_ready_device_node()
2250 "configuration#", usba_device->usb_cfg_value); in usba_ready_device_node()
2258 if (usba_device->usb_port_status == USBA_LOW_SPEED_DEV) { in usba_ready_device_node()
2269 if (usba_device->usb_port_status == USBA_FULL_SPEED_DEV) { in usba_ready_device_node()
2280 if (usba_device->usb_port_status == USBA_HIGH_SPEED_DEV) { in usba_ready_device_node()
2291 if (usba_device->usb_port_status == USBA_SUPER_SPEED_DEV) { in usba_ready_device_node()
2301 usba_add_binary_object_store_props(child_dip, usba_device); in usba_ready_device_node()
2309 usba_set_usba_device(child_dip, usba_device); in usba_ready_device_node()
2888 usba_device_t *usba_device = usba_get_usba_device(dip); in usba_get_mfg_prod_sn_str() local
2896 if ((usba_device->usb_mfg_str) && in usba_get_mfg_prod_sn_str()
2897 ((len = strlen(usba_device->usb_mfg_str)) != 0)) { in usba_get_mfg_prod_sn_str()
2898 (void) strncpy(buffer, usba_device->usb_mfg_str, buflen - 1); in usba_get_mfg_prod_sn_str()
2903 if ((usba_device->usb_product_str) && in usba_get_mfg_prod_sn_str()
2904 ((len = strlen(usba_device->usb_product_str)) != 0)) { in usba_get_mfg_prod_sn_str()
2909 usba_device->usb_product_str, buflen - return_len - 1); in usba_get_mfg_prod_sn_str()
2914 if ((usba_device->usb_serialno_str) && in usba_get_mfg_prod_sn_str()
2915 ((len = strlen(usba_device->usb_serialno_str)) != 0)) { in usba_get_mfg_prod_sn_str()
2920 usba_device->usb_serialno_str, in usba_get_mfg_prod_sn_str()
2937 usba_device_t *usba_device = usba_get_usba_device(dip); in usba_update_hotplug_stats() local
2939 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip); in usba_update_hotplug_stats()
2974 usba_device_t *usba_device = usba_get_usba_device(dip); in usba_get_hotplug_stats() local
2976 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip); in usba_get_hotplug_stats()
2994 usba_device_t *usba_device = usba_get_usba_device(dip); in usba_reset_hotplug_stats() local
2996 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip); in usba_reset_hotplug_stats()
3080 usba_device_t *usba_device = usba_get_usba_device(dip); in usba_get_hc_dma_attr() local
3081 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip); in usba_get_hc_dma_attr()
3095 usba_check_for_leaks(usba_device_t *usba_device) in usba_check_for_leaks() argument
3102 ddi_driver_name(usba_device->usb_dip), in usba_check_for_leaks()
3103 ddi_get_instance(usba_device->usb_dip), (void *)usba_device); in usba_check_for_leaks()
3111 &usba_device->usb_ph_list[i]; in usba_check_for_leaks()
3130 req_wrp_leaks = usba_list_entry_leaks(&usba_device-> in usba_check_for_leaks()
3140 &usba_device->usb_allocated)) != NULL) { in usba_check_for_leaks()
3159 usba_add_to_list(&usba_device->usb_allocated, in usba_check_for_leaks()
3166 mutex_enter(&usba_device->usb_mutex); in usba_check_for_leaks()
3167 for (iface = 0; iface < usba_device->usb_n_ifs; iface++) { in usba_check_for_leaks()
3170 iface, usba_device->usb_client_flags[iface]); in usba_check_for_leaks()
3172 if (usba_device->usb_client_flags[iface] & in usba_check_for_leaks()
3175 usba_device->usb_client_dev_data_list.cddl_next; in usba_check_for_leaks()
3195 mutex_exit(&usba_device->usb_mutex); in usba_check_for_leaks()
3197 mutex_enter(&usba_device->usb_mutex); in usba_check_for_leaks()
3203 if (usba_device->usb_client_flags[iface] & in usba_check_for_leaks()
3205 dev_info_t *dip = usba_device-> in usba_check_for_leaks()
3214 mutex_exit(&usba_device->usb_mutex); in usba_check_for_leaks()
3216 mutex_enter(&usba_device->usb_mutex); in usba_check_for_leaks()
3218 usba_device-> in usba_check_for_leaks()
3221 usba_device->usb_client_flags[iface] &= in usba_check_for_leaks()
3225 if (usba_device->usb_client_flags[iface] & in usba_check_for_leaks()
3228 usba_device->usb_client_ev_cb_list[iface]. in usba_check_for_leaks()
3231 usba_device->usb_client_ev_cb_list[iface]. in usba_check_for_leaks()
3240 mutex_exit(&usba_device->usb_mutex); in usba_check_for_leaks()
3242 mutex_enter(&usba_device->usb_mutex); in usba_check_for_leaks()
3244 usba_device->usb_client_ev_cb_list[iface]. in usba_check_for_leaks()
3246 usba_device->usb_client_ev_cb_list[iface]. in usba_check_for_leaks()
3248 usba_device->usb_client_flags[iface] &= in usba_check_for_leaks()
3252 mutex_exit(&usba_device->usb_mutex); in usba_check_for_leaks()