Lines Matching defs:usba_device

180 	usba_device_t		*usba_device;
197 usba_device = usba_get_usba_device(rdip);
208 if (usba_device) {
213 usba_device->usb_dev_descr->idVendor,
214 usba_device->usb_dev_descr->idProduct);
219 usba_device->usb_dev_descr->idVendor,
220 usba_device->usb_dev_descr->idProduct,
221 usba_device->usb_cfg_value,
227 usba_device->usb_dev_descr->idVendor,
228 usba_device->usb_dev_descr->idProduct,
229 usba_device->usb_cfg_value,
232 switch (usba_device->usb_port_status) {
252 (usba_device->usb_dev_descr->bcdUSB & 0xff00) >> 8,
253 usba_device->usb_dev_descr->bcdUSB & 0xff,
264 ddi_get_instance(rdip), usba_device->usb_addr);
299 * usba_device structure associated with it
301 usba_device = usba_get_usba_device(child_dip);
302 if (usba_device == NULL) {
359 * usba_device structure
361 mutex_enter(&usba_device->usb_mutex);
362 usba_device->usb_ref_count++;
365 "usba_bus_ctl: init usba_device = 0x%p ref_count = %d",
366 (void *)usba_device, usba_device->usb_ref_count);
368 mutex_exit(&usba_device->usb_mutex);
375 usba_device = usba_get_usba_device(child_dip);
377 if (usba_device != NULL) {
380 * using this usba_device structure
382 mutex_enter(&usba_device->usb_mutex);
383 usba_device->usb_ref_count--;
386 "usba_hcdi_bus_ctl: uninit usba_device=0x%p "
388 (void *)usba_device, usba_device->usb_ref_count);
390 mutex_exit(&usba_device->usb_mutex);
461 * set usb address in usba_device structure
464 usba_set_usb_address(usba_device_t *usba_device)
471 mutex_enter(&usba_device->usb_mutex);
473 hcdi = usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip);
491 usba_device->usb_addr = address;
493 mutex_exit(&usba_device->usb_mutex);
498 usba_device->usb_addr = 0;
504 mutex_exit(&usba_device->usb_mutex);
512 * unset usb_address in usba_device structure
515 usba_unset_usb_address(usba_device_t *usba_device)
522 mutex_enter(&usba_device->usb_mutex);
523 address = usba_device->usb_addr;
524 hcdi = usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip);
542 usba_device->usb_addr = 0;
544 mutex_exit(&usba_device->usb_mutex);
552 usba_device_t *usba_device = usba_get_usba_device(dip);
555 ASSERT(usba_device != NULL);
557 mutex_enter(&usba_device->usb_mutex);
558 evdata = usba_device->usb_evdata;
561 mutex_exit(&usba_device->usb_mutex);
570 evdata->ev_next = usba_device->usb_evdata;
571 usba_device->usb_evdata = evdata;
572 mutex_exit(&usba_device->usb_mutex);
584 usba_device_t *usba_device;
590 * create a new usba_device structure
592 usba_device = kmem_zalloc(sizeof (usba_device_t), KM_SLEEP);
595 * initialize usba_device
597 mutex_init(&usba_device->usb_mutex, NULL, MUTEX_DRIVER,
600 usba_init_list(&usba_device->usb_device_list, (usb_opaque_t)usba_device,
602 usba_init_list(&usba_device->usb_allocated, (usb_opaque_t)usba_device,
604 mutex_enter(&usba_device->usb_mutex);
605 usba_device->usb_root_hub_dip = root_hub_dip;
610 usba_add_to_list(&usba_device_list, &usba_device->usb_device_list);
614 mutex_init(&usba_device->usb_ph_list[ep_idx].usba_ph_mutex,
619 "allocated usba_device 0x%p", (void *)usba_device);
621 mutex_exit(&usba_device->usb_mutex);
623 return (usba_device);
627 /* free NDI event data associated with usba_device */
645 usba_free_usba_device(usba_device_t *usba_device)
650 if (usba_device == NULL) {
655 mutex_enter(&usba_device->usb_mutex);
656 if (usba_device->usb_ref_count) {
657 mutex_exit(&usba_device->usb_mutex);
664 (void *)usba_device, usba_device->usb_addr,
665 usba_device->usb_ref_count);
667 usba_free_evdata(usba_device->usb_evdata);
668 mutex_exit(&usba_device->usb_mutex);
670 def_ph = usba_usbdev_to_dflt_pipe_handle(usba_device);
685 mutex_destroy(&usba_device->usb_ph_list[ep_idx].usba_ph_mutex);
689 &usba_device->usb_device_list);
693 usba_destroy_list(&usba_device->usb_device_list);
694 usba_destroy_list(&usba_device->usb_allocated);
697 "deallocating usba_device = 0x%p, address = 0x%x",
698 (void *)usba_device, usba_device->usb_addr);
705 if (usba_device->usb_addr != ROOT_HUB_ADDR) {
706 if (usba_device->usb_cfg_array) {
709 (void *)usba_device->usb_cfg_array);
710 mutex_enter(&usba_device->usb_mutex);
712 i < usba_device->usb_dev_descr->bNumConfigurations;
714 if (usba_device->usb_cfg_array[i]) {
716 usba_device->usb_cfg_array[i],
717 usba_device->usb_cfg_array_len[i]);
722 kmem_free(usba_device->usb_cfg_array,
723 usba_device->usb_cfg_array_length);
724 kmem_free(usba_device->usb_cfg_array_len,
725 usba_device->usb_cfg_array_len_length);
727 mutex_exit(&usba_device->usb_mutex);
730 if (usba_device->usb_cfg_str_descr) {
733 (void *)usba_device->usb_cfg_str_descr);
735 i < usba_device->usb_dev_descr->bNumConfigurations;
737 if (usba_device->usb_cfg_str_descr[i]) {
739 usba_device->usb_cfg_str_descr[i],
740 strlen(usba_device->
745 kmem_free(usba_device->usb_cfg_str_descr,
746 sizeof (uchar_t *) * usba_device->usb_n_cfgs);
749 if (usba_device->usb_dev_descr) {
750 kmem_free(usba_device->usb_dev_descr,
754 if (usba_device->usb_mfg_str) {
755 kmem_free(usba_device->usb_mfg_str,
756 strlen(usba_device->usb_mfg_str) + 1);
759 if (usba_device->usb_product_str) {
760 kmem_free(usba_device->usb_product_str,
761 strlen(usba_device->usb_product_str) + 1);
764 if (usba_device->usb_serialno_str) {
765 kmem_free(usba_device->usb_serialno_str,
766 strlen(usba_device->usb_serialno_str) + 1);
769 usba_unset_usb_address(usba_device);
773 ASSERT(usba_device->usb_client_dev_data_list.cddl_next == NULL);
776 if (usba_device->usb_client_flags) {
780 for (i = 0; i < usba_device->usb_n_ifs; i++) {
781 ASSERT(usba_device->usb_client_flags[i] == 0);
784 kmem_free(usba_device->usb_client_flags,
785 usba_device->usb_n_ifs * USBA_CLIENT_FLAG_SIZE);
789 if (usba_device->usb_client_attach_list) {
790 kmem_free(usba_device->usb_client_attach_list,
791 usba_device->usb_n_ifs *
792 sizeof (*usba_device->usb_client_attach_list));
794 if (usba_device->usb_client_ev_cb_list) {
795 kmem_free(usba_device->usb_client_ev_cb_list,
796 usba_device->usb_n_ifs *
797 sizeof (*usba_device->usb_client_ev_cb_list));
803 mutex_destroy(&usba_device->usb_mutex);
805 kmem_free((caddr_t)usba_device, sizeof (usba_device_t));
811 usba_clear_data_toggle(usba_device_t *usba_device)
815 if (usba_device != NULL) {
816 mutex_enter(&usba_device->usb_mutex);
818 usba_device->usb_ph_list[i].usba_ph_flags &=
821 mutex_exit(&usba_device->usb_mutex);
828 * create a child devinfo node, usba_device, attach properties.
829 * the usba_device structure is shared between all interfaces
837 usba_device_t *usba_device,
845 "usba_create_child_devi: %s usba_device=0x%p "
847 (void *)usba_device, port_status);
855 if (usba_device == NULL) {
857 usba_device = usba_alloc_usba_device(usb_root_hub_dip);
860 mutex_enter(&usba_device->usb_mutex);
861 usba_device->usb_hcdi_ops = usba_hcdi_ops;
862 usba_device->usb_port_status = port_status;
863 mutex_exit(&usba_device->usb_mutex);
867 mutex_enter(&usba_device->usb_mutex);
869 ASSERT(usba_device->usb_hcdi_ops == usba_hcdi_ops);
872 ASSERT(usba_device->usb_root_hub_dip ==
876 usba_device->usb_port_status = port_status;
878 mutex_exit(&usba_device->usb_mutex);
881 if (usba_device->usb_addr == 0) {
882 if (usba_set_usb_address(usba_device) == USB_FAILURE) {
892 address = usba_device->usb_addr;
907 * store the usba_device point in the dip
909 usba_set_usba_device(*child_dip, usba_device);
914 (void *)usba_device);
926 usba_free_usba_device(usba_device);
927 } else if (address && usba_device) {
928 usba_unset_usb_address(usba_device);
941 usba_device_t *usba_device;
948 usba_device = usba_get_usba_device(dip);
969 "offlining dip 0x%p usba_device=0x%p (%s)", (void *)dip,
970 (void *)usba_device, devnm);
1398 * get and store usba_device pointer in the devi
1422 * Retrieve the usba_device pointer from the dev without checking for
1433 * the usba_device pointer from the dip.
1440 usba_set_usba_device(dev_info_t *dip, usba_device_t *usba_device)
1446 hcdi->hcdi_usba_device = usba_device;
1449 ddi_set_parent_data(dip, usba_device);
1744 usba_device_t *usba_device = usba_get_usba_device(dip);
1746 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip);
1760 usba_device_t *usba_device = usba_get_usba_device(child_dip);
1780 mutex_enter(&usba_device->usb_mutex);
1786 port = usba_device->usb_port;
1787 usb_dev_descr = usba_device->usb_dev_descr;
1788 n_cfgs = usba_device->usb_n_cfgs;
1789 n_ifs = usba_device->usb_n_ifs;
1790 bus_num = usba_device->usb_addr;
1808 mutex_exit(&usba_device->usb_mutex);
1822 mutex_exit(&usba_device->usb_mutex);
1865 } else if (usba_device->usb_preferred_driver) {
1866 force_bind = usba_device->usb_preferred_driver;
1878 * If the dip contains usba_device, it is held by the previous
1906 dev_str.usb_mfg = usba_device->usb_mfg_str;
1907 dev_str.usb_product = usba_device->usb_product_str;
1908 dev_str.usb_serialno = usba_device->usb_serialno_str;
2040 usba_device->usb_cfg_value);
2056 usba_device->usb_cfg_value);
2138 "assigned-address", usba_device->usb_addr);
2198 if (usba_device->usb_serialno_str) {
2199 usba_filter_string(usba_device->usb_serialno_str, devprop_str);
2209 if (usba_device->usb_mfg_str) {
2210 usba_filter_string(usba_device->usb_mfg_str, devprop_str);
2220 if (usba_device->usb_product_str) {
2221 usba_filter_string(usba_device->usb_product_str, devprop_str);
2236 "configuration#", usba_device->usb_cfg_value);
2244 if (usba_device->usb_port_status == USBA_LOW_SPEED_DEV) {
2255 if (usba_device->usb_port_status == USBA_HIGH_SPEED_DEV) {
2272 usba_set_usba_device(child_dip, usba_device);
2351 child_ud, /* share this usba_device */
2596 child_ud, /* share this usba_device */
2850 usba_device_t *usba_device = usba_get_usba_device(dip);
2858 if ((usba_device->usb_mfg_str) &&
2859 ((len = strlen(usba_device->usb_mfg_str)) != 0)) {
2860 (void) strncpy(buffer, usba_device->usb_mfg_str, buflen - 1);
2865 if ((usba_device->usb_product_str) &&
2866 ((len = strlen(usba_device->usb_product_str)) != 0)) {
2871 usba_device->usb_product_str, buflen - return_len - 1);
2876 if ((usba_device->usb_serialno_str) &&
2877 ((len = strlen(usba_device->usb_serialno_str)) != 0)) {
2882 usba_device->usb_serialno_str,
2900 usba_device_t *usba_device = usba_get_usba_device(dip);
2902 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip);
2937 usba_device_t *usba_device = usba_get_usba_device(dip);
2939 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip);
2957 usba_device_t *usba_device = usba_get_usba_device(dip);
2959 usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip);
3043 usba_device_t *usba_device = usba_get_usba_device(dip);
3044 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(usba_device->usb_root_hub_dip);
3052 * check usba_device structure for leaks
3055 * usba_device - usba_device structure pointer
3058 usba_check_for_leaks(usba_device_t *usba_device)
3064 "usba_check_for_leaks: %s%d usba_device=0x%p",
3065 ddi_driver_name(usba_device->usb_dip),
3066 ddi_get_instance(usba_device->usb_dip), (void *)usba_device);
3074 &usba_device->usb_ph_list[i];
3093 req_wrp_leaks = usba_list_entry_leaks(&usba_device->
3103 &usba_device->usb_allocated)) != NULL) {
3122 usba_add_to_list(&usba_device->usb_allocated,
3129 mutex_enter(&usba_device->usb_mutex);
3130 for (iface = 0; iface < usba_device->usb_n_ifs; iface++) {
3133 iface, usba_device->usb_client_flags[iface]);
3135 if (usba_device->usb_client_flags[iface] &
3138 usba_device->usb_client_dev_data_list.cddl_next;
3158 mutex_exit(&usba_device->usb_mutex);
3160 mutex_enter(&usba_device->usb_mutex);
3166 if (usba_device->usb_client_flags[iface] &
3168 dev_info_t *dip = usba_device->
3177 mutex_exit(&usba_device->usb_mutex);
3179 mutex_enter(&usba_device->usb_mutex);
3181 usba_device->
3184 usba_device->usb_client_flags[iface] &=
3188 if (usba_device->usb_client_flags[iface] &
3191 usba_device->usb_client_ev_cb_list[iface].
3194 usba_device->usb_client_ev_cb_list[iface].
3203 mutex_exit(&usba_device->usb_mutex);
3205 mutex_enter(&usba_device->usb_mutex);
3207 usba_device->usb_client_ev_cb_list[iface].
3209 usba_device->usb_client_ev_cb_list[iface].
3211 usba_device->usb_client_flags[iface] &=
3215 mutex_exit(&usba_device->usb_mutex);