Lines Matching refs:qh
67 static void qh_destroy(struct ehci_hcd *ehci, struct ehci_qh *qh) in qh_destroy() argument
70 if (!list_empty (&qh->qtd_list) || qh->qh_next.ptr) { in qh_destroy()
74 if (qh->dummy) in qh_destroy()
75 ehci_qtd_free (ehci, qh->dummy); in qh_destroy()
76 dma_pool_free(ehci->qh_pool, qh->hw, qh->qh_dma); in qh_destroy()
77 kfree(qh); in qh_destroy()
82 struct ehci_qh *qh; in ehci_qh_alloc() local
85 qh = kzalloc(sizeof *qh, GFP_ATOMIC); in ehci_qh_alloc()
86 if (!qh) in ehci_qh_alloc()
88 qh->hw = (struct ehci_qh_hw *) in ehci_qh_alloc()
90 if (!qh->hw) in ehci_qh_alloc()
92 memset(qh->hw, 0, sizeof *qh->hw); in ehci_qh_alloc()
93 qh->qh_dma = dma; in ehci_qh_alloc()
95 INIT_LIST_HEAD (&qh->qtd_list); in ehci_qh_alloc()
96 INIT_LIST_HEAD(&qh->unlink_node); in ehci_qh_alloc()
99 qh->dummy = ehci_qtd_alloc (ehci, flags); in ehci_qh_alloc()
100 if (qh->dummy == NULL) { in ehci_qh_alloc()
105 return qh; in ehci_qh_alloc()
107 dma_pool_free(ehci->qh_pool, qh->hw, qh->qh_dma); in ehci_qh_alloc()
109 kfree(qh); in ehci_qh_alloc()