Lines Matching refs:hcdi
85 usba_hcdi_set_hcdi(dev_info_t *dip, usba_hcdi_t *hcdi) in usba_hcdi_set_hcdi() argument
87 ddi_set_driver_private(dip, hcdi); in usba_hcdi_set_hcdi()
111 usba_hcdi_t *hcdi = kmem_zalloc(sizeof (usba_hcdi_t), KM_SLEEP); in usba_hcdi_register() local
114 kmem_free(hcdi, sizeof (usba_hcdi_t)); in usba_hcdi_register()
119 hcdi->hcdi_dip = args->usba_hcdi_register_dip; in usba_hcdi_register()
125 if (ddi_get_driver_private(hcdi->hcdi_dip) != NULL) { in usba_hcdi_register()
128 kmem_free(hcdi, sizeof (usba_hcdi_t)); in usba_hcdi_register()
137 hcdi->hcdi_log_handle = usb_alloc_log_hdl(hcdi->hcdi_dip, NULL, in usba_hcdi_register()
141 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in usba_hcdi_register()
142 "usba_hcdi_register: %s", ddi_node_name(hcdi->hcdi_dip)); in usba_hcdi_register()
148 mutex_init(&hcdi->hcdi_mutex, NULL, MUTEX_DRIVER, in usba_hcdi_register()
152 if (ddi_intr_add_softint(hcdi->hcdi_dip, &hcdi->hcdi_softint_hdl, in usba_hcdi_register()
153 DDI_INTR_SOFTPRI_MAX, hcdi_soft_intr, (caddr_t)hcdi) != in usba_hcdi_register()
155 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in usba_hcdi_register()
157 mutex_destroy(&hcdi->hcdi_mutex); in usba_hcdi_register()
158 usb_free_log_hdl(hcdi->hcdi_log_handle); in usba_hcdi_register()
159 kmem_free(hcdi, sizeof (usba_hcdi_t)); in usba_hcdi_register()
164 if (ddi_intr_get_softint_pri(hcdi->hcdi_softint_hdl, &soft_prip) != in usba_hcdi_register()
166 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in usba_hcdi_register()
168 (void) ddi_intr_remove_softint(hcdi->hcdi_softint_hdl); in usba_hcdi_register()
169 mutex_destroy(&hcdi->hcdi_mutex); in usba_hcdi_register()
170 usb_free_log_hdl(hcdi->hcdi_log_handle); in usba_hcdi_register()
171 kmem_free(hcdi, sizeof (usba_hcdi_t)); in usba_hcdi_register()
182 hcdi->hcdi_soft_iblock_cookie = in usba_hcdi_register()
185 usba_init_list(&hcdi->hcdi_cb_queue, NULL, NULL); in usba_hcdi_register()
187 hcdi->hcdi_dma_attr = args->usba_hcdi_register_dma_attr; in usba_hcdi_register()
188 hcdi->hcdi_flags = flags; in usba_hcdi_register()
189 hcdi->hcdi_ops = args->usba_hcdi_register_ops; in usba_hcdi_register()
190 hcdi->hcdi_iblock_cookie = args->usba_hcdi_register_iblock_cookie; in usba_hcdi_register()
191 usba_hcdi_create_stats(hcdi, ddi_get_instance(hcdi->hcdi_dip)); in usba_hcdi_register()
193 hcdi->hcdi_min_xfer = hcdi->hcdi_dma_attr->dma_attr_minxfer; in usba_hcdi_register()
194 hcdi->hcdi_min_burst_size = in usba_hcdi_register()
195 (1<<(ddi_ffs(hcdi->hcdi_dma_attr->dma_attr_burstsizes)-1)); in usba_hcdi_register()
196 hcdi->hcdi_max_burst_size = in usba_hcdi_register()
197 (1<<(ddi_fls(hcdi->hcdi_dma_attr->dma_attr_burstsizes)-1)); in usba_hcdi_register()
199 usba_hcdi_set_hcdi(hcdi->hcdi_dip, hcdi); in usba_hcdi_register()
202 hcdi->hcdi_dip, in usba_hcdi_register()
206 hcdi->hcdi_ugen_default_binding = in usba_hcdi_register()
209 hcdi->hcdi_ugen_default_binding = in usba_hcdi_register()
212 hcdi->hcdi_ugen_default_binding = in usba_hcdi_register()
216 hcdi->hcdi_log_handle, in usba_hcdi_register()
235 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(dip); in usba_hcdi_unregister() local
237 if (hcdi) { in usba_hcdi_unregister()
238 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in usba_hcdi_unregister()
243 mutex_destroy(&hcdi->hcdi_mutex); in usba_hcdi_unregister()
244 usba_hcdi_destroy_stats(hcdi); in usba_hcdi_unregister()
245 usb_free_log_hdl(hcdi->hcdi_log_handle); in usba_hcdi_unregister()
248 (void) ddi_intr_remove_softint(hcdi->hcdi_softint_hdl); in usba_hcdi_unregister()
249 kmem_free(hcdi, sizeof (usba_hcdi_t)); in usba_hcdi_unregister()
285 usba_hcdi_create_stats(usba_hcdi_t *hcdi, int instance) in usba_hcdi_create_stats() argument
288 const char *dname = ddi_driver_name(hcdi->hcdi_dip); in usba_hcdi_create_stats()
292 if (HCDI_HOTPLUG_STATS(hcdi) == NULL) { in usba_hcdi_create_stats()
295 HCDI_HOTPLUG_STATS(hcdi) = kstat_create("usba", instance, in usba_hcdi_create_stats()
300 if (HCDI_HOTPLUG_STATS(hcdi) == NULL) { in usba_hcdi_create_stats()
305 hsp = HCDI_HOTPLUG_STATS_DATA(hcdi); in usba_hcdi_create_stats()
317 HCDI_HOTPLUG_STATS(hcdi)->ks_private = hcdi; in usba_hcdi_create_stats()
318 HCDI_HOTPLUG_STATS(hcdi)->ks_update = nulldev; in usba_hcdi_create_stats()
319 kstat_install(HCDI_HOTPLUG_STATS(hcdi)); in usba_hcdi_create_stats()
322 if (HCDI_ERROR_STATS(hcdi) == NULL) { in usba_hcdi_create_stats()
325 HCDI_ERROR_STATS(hcdi) = kstat_create("usba", instance, in usba_hcdi_create_stats()
330 if (HCDI_ERROR_STATS(hcdi) == NULL) { in usba_hcdi_create_stats()
335 esp = HCDI_ERROR_STATS_DATA(hcdi); in usba_hcdi_create_stats()
376 HCDI_ERROR_STATS(hcdi)->ks_private = hcdi; in usba_hcdi_create_stats()
377 HCDI_ERROR_STATS(hcdi)->ks_update = nulldev; in usba_hcdi_create_stats()
378 kstat_install(HCDI_ERROR_STATS(hcdi)); in usba_hcdi_create_stats()
387 usba_hcdi_update_error_stats(usba_hcdi_t *hcdi, usb_cr_t completion_reason) in usba_hcdi_update_error_stats() argument
389 if (HCDI_ERROR_STATS(hcdi) == NULL) { in usba_hcdi_update_error_stats()
398 HCDI_ERROR_STATS_DATA(hcdi)->cc_crc.value.ui64++; in usba_hcdi_update_error_stats()
401 HCDI_ERROR_STATS_DATA(hcdi)->cc_bitstuffing.value.ui64++; in usba_hcdi_update_error_stats()
404 HCDI_ERROR_STATS_DATA(hcdi)->cc_data_toggle_mm.value.ui64++; in usba_hcdi_update_error_stats()
407 HCDI_ERROR_STATS_DATA(hcdi)->cc_stall.value.ui64++; in usba_hcdi_update_error_stats()
410 HCDI_ERROR_STATS_DATA(hcdi)->cc_dev_not_resp.value.ui64++; in usba_hcdi_update_error_stats()
413 HCDI_ERROR_STATS_DATA(hcdi)->cc_pid_checkfailure.value.ui64++; in usba_hcdi_update_error_stats()
416 HCDI_ERROR_STATS_DATA(hcdi)->cc_unexp_pid.value.ui64++; in usba_hcdi_update_error_stats()
419 HCDI_ERROR_STATS_DATA(hcdi)->cc_data_overrun.value.ui64++; in usba_hcdi_update_error_stats()
422 HCDI_ERROR_STATS_DATA(hcdi)->cc_data_underrun.value.ui64++; in usba_hcdi_update_error_stats()
425 HCDI_ERROR_STATS_DATA(hcdi)->cc_buffer_overrun.value.ui64++; in usba_hcdi_update_error_stats()
428 HCDI_ERROR_STATS_DATA(hcdi)->cc_buffer_underrun.value.ui64++; in usba_hcdi_update_error_stats()
431 HCDI_ERROR_STATS_DATA(hcdi)->cc_timeout.value.ui64++; in usba_hcdi_update_error_stats()
434 HCDI_ERROR_STATS_DATA(hcdi)->cc_not_accessed.value.ui64++; in usba_hcdi_update_error_stats()
437 HCDI_ERROR_STATS_DATA(hcdi)->cc_no_resources.value.ui64++; in usba_hcdi_update_error_stats()
440 HCDI_ERROR_STATS_DATA(hcdi)->cc_unspecified_err.value.ui64++; in usba_hcdi_update_error_stats()
443 HCDI_ERROR_STATS_DATA(hcdi)->cc_stopped_polling.value.ui64++; in usba_hcdi_update_error_stats()
446 HCDI_ERROR_STATS_DATA(hcdi)->cc_pipe_closing.value.ui64++; in usba_hcdi_update_error_stats()
449 HCDI_ERROR_STATS_DATA(hcdi)->cc_pipe_reset.value.ui64++; in usba_hcdi_update_error_stats()
452 HCDI_ERROR_STATS_DATA(hcdi)->cc_not_supported.value.ui64++; in usba_hcdi_update_error_stats()
455 HCDI_ERROR_STATS_DATA(hcdi)->cc_flushed.value.ui64++; in usba_hcdi_update_error_stats()
467 usba_hcdi_destroy_stats(usba_hcdi_t *hcdi) in usba_hcdi_destroy_stats() argument
469 if (HCDI_HOTPLUG_STATS(hcdi)) { in usba_hcdi_destroy_stats()
470 kstat_delete(HCDI_HOTPLUG_STATS(hcdi)); in usba_hcdi_destroy_stats()
471 HCDI_HOTPLUG_STATS(hcdi) = NULL; in usba_hcdi_destroy_stats()
474 if (HCDI_ERROR_STATS(hcdi)) { in usba_hcdi_destroy_stats()
475 kstat_delete(HCDI_ERROR_STATS(hcdi)); in usba_hcdi_destroy_stats()
476 HCDI_ERROR_STATS(hcdi) = NULL; in usba_hcdi_destroy_stats()
490 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi( in usba_hcdi_cb() local
500 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in usba_hcdi_cb()
541 usba_add_to_list(&hcdi->hcdi_cb_queue, &req_wrp->wr_queue); in usba_hcdi_cb()
543 if (ddi_intr_trigger_softint(hcdi->hcdi_softint_hdl, NULL) != in usba_hcdi_cb()
545 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in usba_hcdi_cb()
582 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in usba_hcdi_cb()
610 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(ph_data-> in hcdi_cb_thread() local
626 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in hcdi_cb_thread()
643 hcdi_do_cb(ph_data, req_wrp, hcdi); in hcdi_cb_thread()
649 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in hcdi_cb_thread()
658 usba_hcdi_t *hcdi) in hcdi_do_cb() argument
684 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in hcdi_do_cb()
697 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in hcdi_do_cb()
748 mutex_enter(&hcdi->hcdi_mutex); in hcdi_do_cb()
749 usba_hcdi_update_error_stats(hcdi, completion_reason); in hcdi_do_cb()
750 mutex_exit(&hcdi->hcdi_mutex); in hcdi_do_cb()
774 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(ph_data-> in hcdi_shared_cb_thread() local
784 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in hcdi_shared_cb_thread()
791 hcdi_do_cb(ph_data, req_wrp, hcdi); in hcdi_shared_cb_thread()
794 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in hcdi_shared_cb_thread()
808 usba_hcdi_t *hcdi = (void *)arg1; in hcdi_soft_intr() local
813 usba_rm_first_pvt_from_list(&hcdi->hcdi_cb_queue)) != NULL) { in hcdi_soft_intr()
857 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi( in hcdi_autoclearing() local
861 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle, in hcdi_autoclearing()
881 USB_DPRINTF_L2(DPRINT_MASK_USBAI, hcdi->hcdi_log_handle, in hcdi_autoclearing()
886 USB_DPRINTF_L2(DPRINT_MASK_USBAI, hcdi->hcdi_log_handle, in hcdi_autoclearing()
901 USB_DPRINTF_L2(DPRINT_MASK_USBAI, hcdi->hcdi_log_handle, in hcdi_autoclearing()
923 hcdi->hcdi_log_handle, in hcdi_autoclearing()