Home
last modified time | relevance | path

Searched refs:whc (Results 1 – 12 of 12) sorted by relevance

/Linux-v4.19/drivers/usb/host/whci/
Dinit.c19 static void whc_hw_reset(struct whc *whc) in whc_hw_reset() argument
21 le_writel(WUSBCMD_WHCRESET, whc->base + WUSBCMD); in whc_hw_reset()
22 whci_wait_for(&whc->umc->dev, whc->base + WUSBCMD, WUSBCMD_WHCRESET, 0, in whc_hw_reset()
26 static void whc_hw_init_di_buf(struct whc *whc) in whc_hw_init_di_buf() argument
31 for (d = 0; d < whc->n_devices; d++) in whc_hw_init_di_buf()
32 whc->di_buf[d].addr_sec_info = WHC_DI_DISABLE; in whc_hw_init_di_buf()
34 le_writeq(whc->di_buf_dma, whc->base + WUSBDEVICEINFOADDR); in whc_hw_init_di_buf()
37 static void whc_hw_init_dn_buf(struct whc *whc) in whc_hw_init_dn_buf() argument
41 memset(whc->dn_buf, 0, 4096); in whc_hw_init_dn_buf()
43 le_writeq(whc->dn_buf_dma, whc->base + WUSBDNTSBUFADDR); in whc_hw_init_dn_buf()
[all …]
Dpzl.c17 static void update_pzl_pointers(struct whc *whc, int period, u64 addr) in update_pzl_pointers() argument
21 whc_qset_set_link_ptr(&whc->pz_list[0], addr); in update_pzl_pointers()
22 whc_qset_set_link_ptr(&whc->pz_list[2], addr); in update_pzl_pointers()
23 whc_qset_set_link_ptr(&whc->pz_list[4], addr); in update_pzl_pointers()
24 whc_qset_set_link_ptr(&whc->pz_list[6], addr); in update_pzl_pointers()
25 whc_qset_set_link_ptr(&whc->pz_list[8], addr); in update_pzl_pointers()
26 whc_qset_set_link_ptr(&whc->pz_list[10], addr); in update_pzl_pointers()
27 whc_qset_set_link_ptr(&whc->pz_list[12], addr); in update_pzl_pointers()
28 whc_qset_set_link_ptr(&whc->pz_list[14], addr); in update_pzl_pointers()
31 whc_qset_set_link_ptr(&whc->pz_list[1], addr); in update_pzl_pointers()
[all …]
Dwhcd.h21 struct whc { struct
65 #define wusbhc_to_whc(w) (container_of((w), struct whc, wusbhc)) argument
130 int whc_init(struct whc *whc);
131 void whc_clean_up(struct whc *whc);
134 void whc_write_wusbcmd(struct whc *whc, u32 mask, u32 val);
135 int whc_do_gencmd(struct whc *whc, u32 cmd, u32 params, void *addr, size_t len);
136 void whc_hw_error(struct whc *whc, const char *reason);
151 int whc_set_cluster_id(struct whc *whc, u8 bcid);
158 void asl_start(struct whc *whc);
159 void asl_stop(struct whc *whc);
[all …]
Dasl.c17 static void qset_get_next_prev(struct whc *whc, struct whc_qset *qset, in qset_get_next_prev() argument
22 BUG_ON(list_empty(&whc->async_list)); in qset_get_next_prev()
25 if (n == &whc->async_list) in qset_get_next_prev()
28 if (p == &whc->async_list) in qset_get_next_prev()
36 static void asl_qset_insert_begin(struct whc *whc, struct whc_qset *qset) in asl_qset_insert_begin() argument
38 list_move(&qset->list_node, &whc->async_list); in asl_qset_insert_begin()
42 static void asl_qset_insert(struct whc *whc, struct whc_qset *qset) in asl_qset_insert() argument
46 qset_clear(whc, qset); in asl_qset_insert()
49 qset_get_next_prev(whc, qset, &next, &prev); in asl_qset_insert()
55 static void asl_qset_remove(struct whc *whc, struct whc_qset *qset) in asl_qset_remove() argument
[all …]
Dwusb.c14 static int whc_update_di(struct whc *whc, int idx) in whc_update_di() argument
19 le_writel(bit, whc->base + WUSBDIBUPDATED + offset); in whc_update_di()
21 return whci_wait_for(&whc->umc->dev, in whc_update_di()
22 whc->base + WUSBDIBUPDATED + offset, bit, 0, in whc_update_di()
34 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_wusbhc_start() local
36 asl_start(whc); in whc_wusbhc_start()
37 pzl_start(whc); in whc_wusbhc_start()
44 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_wusbhc_stop() local
48 pzl_stop(whc); in whc_wusbhc_stop()
49 asl_stop(whc); in whc_wusbhc_stop()
[all …]
Dint.c14 static void transfer_done(struct whc *whc) in transfer_done() argument
16 queue_work(whc->workqueue, &whc->async_work); in transfer_done()
17 queue_work(whc->workqueue, &whc->periodic_work); in transfer_done()
23 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_int_handler() local
26 sts = le_readl(whc->base + WUSBSTS); in whc_int_handler()
29 le_writel(sts & WUSBSTS_INT_MASK, whc->base + WUSBSTS); in whc_int_handler()
32 wake_up(&whc->cmd_wq); in whc_int_handler()
35 dev_err(&whc->umc->dev, "FIXME: host system error\n"); in whc_int_handler()
38 wake_up(&whc->async_list_wq); in whc_int_handler()
41 wake_up(&whc->periodic_list_wq); in whc_int_handler()
[all …]
Dhw.c15 void whc_write_wusbcmd(struct whc *whc, u32 mask, u32 val) in whc_write_wusbcmd() argument
20 spin_lock_irqsave(&whc->lock, flags); in whc_write_wusbcmd()
22 cmd = le_readl(whc->base + WUSBCMD); in whc_write_wusbcmd()
24 le_writel(cmd, whc->base + WUSBCMD); in whc_write_wusbcmd()
26 spin_unlock_irqrestore(&whc->lock, flags); in whc_write_wusbcmd()
37 int whc_do_gencmd(struct whc *whc, u32 cmd, u32 params, void *addr, size_t len) in whc_do_gencmd() argument
44 mutex_lock(&whc->mutex); in whc_do_gencmd()
47 t = wait_event_timeout(whc->cmd_wq, in whc_do_gencmd()
48 (le_readl(whc->base + WUSBGENCMDSTS) & WUSBGENCMDSTS_ACTIVE) == 0, in whc_do_gencmd()
51 dev_err(&whc->umc->dev, "generic command timeout (%04x/%04x)\n", in whc_do_gencmd()
[all …]
Dhcd.c36 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_start() local
48 whc->base + WUSBINTR); in whc_start()
52 ret = whc_set_cluster_id(whc, bcid); in whc_start()
58 whc_write_wusbcmd(whc, WUSBCMD_RUN, WUSBCMD_RUN); in whc_start()
80 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_stop() local
85 le_writel(0, whc->base + WUSBINTR); in whc_stop()
86 whc_write_wusbcmd(whc, WUSBCMD_RUN, 0); in whc_stop()
87 whci_wait_for(&whc->umc->dev, whc->base + WUSBSTS, in whc_stop()
110 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_urb_enqueue() local
115 ret = pzl_urb_enqueue(whc, urb, mem_flags); in whc_urb_enqueue()
[all …]
Ddebug.c32 if (&qset->list_node == qset->whc->async_list.prev) { in qset_print()
77 struct whc *whc = s->private; in di_show() local
80 for (d = 0; d < whc->n_devices; d++) { in di_show()
81 struct di_buf_entry *di = &whc->di_buf[d]; in di_show()
98 struct whc *whc = s->private; in asl_show() local
101 list_for_each_entry(qset, &whc->async_list, list_node) { in asl_show()
111 struct whc *whc = s->private; in pzl_show() local
117 list_for_each_entry(qset, &whc->periodic_list[period], list_node) { in pzl_show()
125 void whc_dbg_init(struct whc *whc) in whc_dbg_init() argument
127 if (whc->wusbhc.pal.debugfs_dir == NULL) in whc_dbg_init()
[all …]
Dqset.c17 struct whc_qset *qset_alloc(struct whc *whc, gfp_t mem_flags) in qset_alloc() argument
22 qset = dma_pool_zalloc(whc->qset_pool, mem_flags, &dma); in qset_alloc()
27 qset->whc = whc; in qset_alloc()
41 static void qset_fill_qh(struct whc *whc, struct whc_qset *qset, struct urb *urb) in qset_fill_qh() argument
74 if (phy_rate > whc->wusbhc.phy_rate) in qset_fill_qh()
75 phy_rate = whc->wusbhc.phy_rate; in qset_fill_qh()
111 void qset_clear(struct whc *whc, struct whc_qset *qset) in qset_clear() argument
133 void qset_reset(struct whc *whc, struct whc_qset *qset) in qset_reset() argument
146 struct whc_qset *get_qset(struct whc *whc, struct urb *urb, in get_qset() argument
153 qset = qset_alloc(whc, mem_flags); in get_qset()
[all …]
Dwhci-hc.h237 struct whc *whc; member
/Linux-v4.19/drivers/uwb/
DMakefile3 obj-$(CONFIG_UWB_WHCI) += umc.o whci.o whc-rc.o