Lines Matching defs:hcdi

29  * hcdi.c contains the code for client driver callbacks.  A host controller
80 * store hcdi structure in the dip
83 usba_hcdi_set_hcdi(dev_info_t *dip, usba_hcdi_t *hcdi)
85 ddi_set_driver_private(dip, hcdi);
90 * retrieve hcdi structure from the dip
109 usba_hcdi_t *hcdi = kmem_zalloc(sizeof (usba_hcdi_t), KM_SLEEP);
112 kmem_free(hcdi, sizeof (usba_hcdi_t));
117 hcdi->hcdi_dip = args->usba_hcdi_register_dip;
122 hcdi->hcdi_log_handle = usb_alloc_log_hdl(hcdi->hcdi_dip, NULL,
126 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
127 "usba_hcdi_register: %s", ddi_node_name(hcdi->hcdi_dip));
133 mutex_init(&hcdi->hcdi_mutex, NULL, MUTEX_DRIVER,
137 if (ddi_intr_add_softint(hcdi->hcdi_dip, &hcdi->hcdi_softint_hdl,
138 DDI_INTR_SOFTPRI_MAX, hcdi_soft_intr, (caddr_t)hcdi) !=
140 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
142 mutex_destroy(&hcdi->hcdi_mutex);
143 usb_free_log_hdl(hcdi->hcdi_log_handle);
144 kmem_free(hcdi, sizeof (usba_hcdi_t));
149 if (ddi_intr_get_softint_pri(hcdi->hcdi_softint_hdl, &soft_prip) !=
151 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
153 (void) ddi_intr_remove_softint(hcdi->hcdi_softint_hdl);
154 mutex_destroy(&hcdi->hcdi_mutex);
155 usb_free_log_hdl(hcdi->hcdi_log_handle);
156 kmem_free(hcdi, sizeof (usba_hcdi_t));
167 hcdi->hcdi_soft_iblock_cookie =
170 usba_init_list(&hcdi->hcdi_cb_queue, NULL, NULL);
172 hcdi->hcdi_dma_attr = args->usba_hcdi_register_dma_attr;
173 hcdi->hcdi_flags = flags;
174 hcdi->hcdi_ops = args->usba_hcdi_register_ops;
175 hcdi->hcdi_iblock_cookie = args->usba_hcdi_register_iblock_cookie;
176 usba_hcdi_create_stats(hcdi, ddi_get_instance(hcdi->hcdi_dip));
178 hcdi->hcdi_min_xfer = hcdi->hcdi_dma_attr->dma_attr_minxfer;
179 hcdi->hcdi_min_burst_size =
180 (1<<(ddi_ffs(hcdi->hcdi_dma_attr->dma_attr_burstsizes)-1));
181 hcdi->hcdi_max_burst_size =
182 (1<<(ddi_fls(hcdi->hcdi_dma_attr->dma_attr_burstsizes)-1));
184 usba_hcdi_set_hcdi(hcdi->hcdi_dip, hcdi);
187 hcdi->hcdi_dip,
191 hcdi->hcdi_ugen_default_binding =
194 hcdi->hcdi_ugen_default_binding =
197 hcdi->hcdi_ugen_default_binding =
201 hcdi->hcdi_log_handle,
220 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(dip);
222 if (hcdi) {
223 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
228 mutex_destroy(&hcdi->hcdi_mutex);
229 usba_hcdi_destroy_stats(hcdi);
230 usb_free_log_hdl(hcdi->hcdi_log_handle);
233 (void) ddi_intr_remove_softint(hcdi->hcdi_softint_hdl);
234 kmem_free(hcdi, sizeof (usba_hcdi_t));
270 usba_hcdi_create_stats(usba_hcdi_t *hcdi, int instance)
273 const char *dname = ddi_driver_name(hcdi->hcdi_dip);
277 if (HCDI_HOTPLUG_STATS(hcdi) == NULL) {
280 HCDI_HOTPLUG_STATS(hcdi) = kstat_create("usba", instance,
285 if (HCDI_HOTPLUG_STATS(hcdi) == NULL) {
290 hsp = HCDI_HOTPLUG_STATS_DATA(hcdi);
302 HCDI_HOTPLUG_STATS(hcdi)->ks_private = hcdi;
303 HCDI_HOTPLUG_STATS(hcdi)->ks_update = nulldev;
304 kstat_install(HCDI_HOTPLUG_STATS(hcdi));
307 if (HCDI_ERROR_STATS(hcdi) == NULL) {
310 HCDI_ERROR_STATS(hcdi) = kstat_create("usba", instance,
315 if (HCDI_ERROR_STATS(hcdi) == NULL) {
320 esp = HCDI_ERROR_STATS_DATA(hcdi);
361 HCDI_ERROR_STATS(hcdi)->ks_private = hcdi;
362 HCDI_ERROR_STATS(hcdi)->ks_update = nulldev;
363 kstat_install(HCDI_ERROR_STATS(hcdi));
372 usba_hcdi_update_error_stats(usba_hcdi_t *hcdi, usb_cr_t completion_reason)
374 if (HCDI_ERROR_STATS(hcdi) == NULL) {
383 HCDI_ERROR_STATS_DATA(hcdi)->cc_crc.value.ui64++;
386 HCDI_ERROR_STATS_DATA(hcdi)->cc_bitstuffing.value.ui64++;
389 HCDI_ERROR_STATS_DATA(hcdi)->cc_data_toggle_mm.value.ui64++;
392 HCDI_ERROR_STATS_DATA(hcdi)->cc_stall.value.ui64++;
395 HCDI_ERROR_STATS_DATA(hcdi)->cc_dev_not_resp.value.ui64++;
398 HCDI_ERROR_STATS_DATA(hcdi)->cc_pid_checkfailure.value.ui64++;
401 HCDI_ERROR_STATS_DATA(hcdi)->cc_unexp_pid.value.ui64++;
404 HCDI_ERROR_STATS_DATA(hcdi)->cc_data_overrun.value.ui64++;
407 HCDI_ERROR_STATS_DATA(hcdi)->cc_data_underrun.value.ui64++;
410 HCDI_ERROR_STATS_DATA(hcdi)->cc_buffer_overrun.value.ui64++;
413 HCDI_ERROR_STATS_DATA(hcdi)->cc_buffer_underrun.value.ui64++;
416 HCDI_ERROR_STATS_DATA(hcdi)->cc_timeout.value.ui64++;
419 HCDI_ERROR_STATS_DATA(hcdi)->cc_not_accessed.value.ui64++;
422 HCDI_ERROR_STATS_DATA(hcdi)->cc_no_resources.value.ui64++;
425 HCDI_ERROR_STATS_DATA(hcdi)->cc_unspecified_err.value.ui64++;
428 HCDI_ERROR_STATS_DATA(hcdi)->cc_stopped_polling.value.ui64++;
431 HCDI_ERROR_STATS_DATA(hcdi)->cc_pipe_closing.value.ui64++;
434 HCDI_ERROR_STATS_DATA(hcdi)->cc_pipe_reset.value.ui64++;
437 HCDI_ERROR_STATS_DATA(hcdi)->cc_not_supported.value.ui64++;
440 HCDI_ERROR_STATS_DATA(hcdi)->cc_flushed.value.ui64++;
452 usba_hcdi_destroy_stats(usba_hcdi_t *hcdi)
454 if (HCDI_HOTPLUG_STATS(hcdi)) {
455 kstat_delete(HCDI_HOTPLUG_STATS(hcdi));
456 HCDI_HOTPLUG_STATS(hcdi) = NULL;
459 if (HCDI_ERROR_STATS(hcdi)) {
460 kstat_delete(HCDI_ERROR_STATS(hcdi));
461 HCDI_ERROR_STATS(hcdi) = NULL;
476 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(
486 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
527 usba_add_to_list(&hcdi->hcdi_cb_queue, &req_wrp->wr_queue);
529 if (ddi_intr_trigger_softint(hcdi->hcdi_softint_hdl, NULL) !=
531 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
568 USB_DPRINTF_L2(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
596 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(ph_data->
612 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
629 hcdi_do_cb(ph_data, req_wrp, hcdi);
635 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
644 usba_hcdi_t *hcdi)
670 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
683 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
732 /* Update the hcdi error kstats */
734 mutex_enter(&hcdi->hcdi_mutex);
735 usba_hcdi_update_error_stats(hcdi, completion_reason);
736 mutex_exit(&hcdi->hcdi_mutex);
760 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(ph_data->
770 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
777 hcdi_do_cb(ph_data, req_wrp, hcdi);
780 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
794 usba_hcdi_t *hcdi = (void *)arg1;
799 usba_rm_first_pvt_from_list(&hcdi->hcdi_cb_queue)) != NULL) {
843 usba_hcdi_t *hcdi = usba_hcdi_get_hcdi(
847 USB_DPRINTF_L4(DPRINT_MASK_HCDI, hcdi->hcdi_log_handle,
867 USB_DPRINTF_L2(DPRINT_MASK_USBAI, hcdi->hcdi_log_handle,
872 USB_DPRINTF_L2(DPRINT_MASK_USBAI, hcdi->hcdi_log_handle,
887 USB_DPRINTF_L2(DPRINT_MASK_USBAI, hcdi->hcdi_log_handle,
909 hcdi->hcdi_log_handle,