/Linux-v4.19/drivers/usb/host/whci/ |
D | init.c | 19 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 …]
|
D | pzl.c | 17 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 …]
|
D | whcd.h | 21 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 …]
|
D | asl.c | 17 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 …]
|
D | wusb.c | 14 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 …]
|
D | int.c | 14 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 …]
|
D | hw.c | 15 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 …]
|
D | hcd.c | 36 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 …]
|
D | debug.c | 32 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 …]
|
D | qset.c | 17 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 …]
|
D | whci-hc.h | 237 struct whc *whc; member
|
/Linux-v4.19/drivers/uwb/ |
D | Makefile | 3 obj-$(CONFIG_UWB_WHCI) += umc.o whci.o whc-rc.o
|