/linux-2.6.39/drivers/usb/host/whci/ |
D | init.c | 30 static void whc_hw_reset(struct whc *whc) in whc_hw_reset() argument 32 le_writel(WUSBCMD_WHCRESET, whc->base + WUSBCMD); in whc_hw_reset() 33 whci_wait_for(&whc->umc->dev, whc->base + WUSBCMD, WUSBCMD_WHCRESET, 0, in whc_hw_reset() 37 static void whc_hw_init_di_buf(struct whc *whc) in whc_hw_init_di_buf() argument 42 for (d = 0; d < whc->n_devices; d++) in whc_hw_init_di_buf() 43 whc->di_buf[d].addr_sec_info = WHC_DI_DISABLE; in whc_hw_init_di_buf() 45 le_writeq(whc->di_buf_dma, whc->base + WUSBDEVICEINFOADDR); in whc_hw_init_di_buf() 48 static void whc_hw_init_dn_buf(struct whc *whc) in whc_hw_init_dn_buf() argument 52 memset(whc->dn_buf, 0, 4096); in whc_hw_init_dn_buf() 54 le_writeq(whc->dn_buf_dma, whc->base + WUSBDNTSBUFADDR); in whc_hw_init_dn_buf() [all …]
|
D | pzl.c | 28 static void update_pzl_pointers(struct whc *whc, int period, u64 addr) in update_pzl_pointers() argument 32 whc_qset_set_link_ptr(&whc->pz_list[0], addr); in update_pzl_pointers() 33 whc_qset_set_link_ptr(&whc->pz_list[2], addr); in update_pzl_pointers() 34 whc_qset_set_link_ptr(&whc->pz_list[4], addr); in update_pzl_pointers() 35 whc_qset_set_link_ptr(&whc->pz_list[6], addr); in update_pzl_pointers() 36 whc_qset_set_link_ptr(&whc->pz_list[8], addr); in update_pzl_pointers() 37 whc_qset_set_link_ptr(&whc->pz_list[10], addr); in update_pzl_pointers() 38 whc_qset_set_link_ptr(&whc->pz_list[12], addr); in update_pzl_pointers() 39 whc_qset_set_link_ptr(&whc->pz_list[14], addr); in update_pzl_pointers() 42 whc_qset_set_link_ptr(&whc->pz_list[1], addr); in update_pzl_pointers() [all …]
|
D | whcd.h | 34 struct whc { struct 78 #define wusbhc_to_whc(w) (container_of((w), struct whc, wusbhc)) argument 143 int whc_init(struct whc *whc); 144 void whc_clean_up(struct whc *whc); 147 void whc_write_wusbcmd(struct whc *whc, u32 mask, u32 val); 148 int whc_do_gencmd(struct whc *whc, u32 cmd, u32 params, void *addr, size_t len); 149 void whc_hw_error(struct whc *whc, const char *reason); 164 int whc_set_cluster_id(struct whc *whc, u8 bcid); 171 void asl_start(struct whc *whc); 172 void asl_stop(struct whc *whc); [all …]
|
D | asl.c | 28 static void qset_get_next_prev(struct whc *whc, struct whc_qset *qset, in qset_get_next_prev() argument 33 BUG_ON(list_empty(&whc->async_list)); in qset_get_next_prev() 36 if (n == &whc->async_list) in qset_get_next_prev() 39 if (p == &whc->async_list) in qset_get_next_prev() 47 static void asl_qset_insert_begin(struct whc *whc, struct whc_qset *qset) in asl_qset_insert_begin() argument 49 list_move(&qset->list_node, &whc->async_list); in asl_qset_insert_begin() 53 static void asl_qset_insert(struct whc *whc, struct whc_qset *qset) in asl_qset_insert() argument 57 qset_clear(whc, qset); in asl_qset_insert() 60 qset_get_next_prev(whc, qset, &next, &prev); in asl_qset_insert() 66 static void asl_qset_remove(struct whc *whc, struct whc_qset *qset) in asl_qset_remove() argument [all …]
|
D | wusb.c | 26 static int whc_update_di(struct whc *whc, int idx) in whc_update_di() argument 31 le_writel(bit, whc->base + WUSBDIBUPDATED + offset); in whc_update_di() 33 return whci_wait_for(&whc->umc->dev, in whc_update_di() 34 whc->base + WUSBDIBUPDATED + offset, bit, 0, in whc_update_di() 46 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_wusbhc_start() local 48 asl_start(whc); in whc_wusbhc_start() 49 pzl_start(whc); in whc_wusbhc_start() 56 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_wusbhc_stop() local 60 pzl_stop(whc); in whc_wusbhc_stop() 61 asl_stop(whc); in whc_wusbhc_stop() [all …]
|
D | int.c | 26 static void transfer_done(struct whc *whc) in transfer_done() argument 28 queue_work(whc->workqueue, &whc->async_work); in transfer_done() 29 queue_work(whc->workqueue, &whc->periodic_work); in transfer_done() 35 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_int_handler() local 38 sts = le_readl(whc->base + WUSBSTS); in whc_int_handler() 41 le_writel(sts & WUSBSTS_INT_MASK, whc->base + WUSBSTS); in whc_int_handler() 44 wake_up(&whc->cmd_wq); in whc_int_handler() 47 dev_err(&whc->umc->dev, "FIXME: host system error\n"); in whc_int_handler() 50 wake_up(&whc->async_list_wq); in whc_int_handler() 53 wake_up(&whc->periodic_list_wq); in whc_int_handler() [all …]
|
D | hw.c | 26 void whc_write_wusbcmd(struct whc *whc, u32 mask, u32 val) in whc_write_wusbcmd() argument 31 spin_lock_irqsave(&whc->lock, flags); in whc_write_wusbcmd() 33 cmd = le_readl(whc->base + WUSBCMD); in whc_write_wusbcmd() 35 le_writel(cmd, whc->base + WUSBCMD); in whc_write_wusbcmd() 37 spin_unlock_irqrestore(&whc->lock, flags); in whc_write_wusbcmd() 48 int whc_do_gencmd(struct whc *whc, u32 cmd, u32 params, void *addr, size_t len) in whc_do_gencmd() argument 55 mutex_lock(&whc->mutex); in whc_do_gencmd() 58 t = wait_event_timeout(whc->cmd_wq, in whc_do_gencmd() 59 (le_readl(whc->base + WUSBGENCMDSTS) & WUSBGENCMDSTS_ACTIVE) == 0, in whc_do_gencmd() 62 dev_err(&whc->umc->dev, "generic command timeout (%04x/%04x)\n", in whc_do_gencmd() [all …]
|
D | hcd.c | 46 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_start() local 58 whc->base + WUSBINTR); in whc_start() 62 ret = whc_set_cluster_id(whc, bcid); in whc_start() 68 whc_write_wusbcmd(whc, WUSBCMD_RUN, WUSBCMD_RUN); in whc_start() 90 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_stop() local 95 le_writel(0, whc->base + WUSBINTR); in whc_stop() 96 whc_write_wusbcmd(whc, WUSBCMD_RUN, 0); in whc_stop() 97 whci_wait_for(&whc->umc->dev, whc->base + WUSBSTS, in whc_stop() 120 struct whc *whc = wusbhc_to_whc(wusbhc); in whc_urb_enqueue() local 125 ret = pzl_urb_enqueue(whc, urb, mem_flags); in whc_urb_enqueue() [all …]
|
D | qset.c | 28 struct whc_qset *qset_alloc(struct whc *whc, gfp_t mem_flags) in qset_alloc() argument 33 qset = dma_pool_alloc(whc->qset_pool, mem_flags, &dma); in qset_alloc() 39 qset->whc = whc; in qset_alloc() 53 static void qset_fill_qh(struct whc *whc, struct whc_qset *qset, struct urb *urb) in qset_fill_qh() argument 86 if (phy_rate > whc->wusbhc.phy_rate) in qset_fill_qh() 87 phy_rate = whc->wusbhc.phy_rate; in qset_fill_qh() 123 void qset_clear(struct whc *whc, struct whc_qset *qset) in qset_clear() argument 145 void qset_reset(struct whc *whc, struct whc_qset *qset) in qset_reset() argument 158 struct whc_qset *get_qset(struct whc *whc, struct urb *urb, in get_qset() argument 165 qset = qset_alloc(whc, mem_flags); in get_qset() [all …]
|
D | debug.c | 42 if (&qset->list_node == qset->whc->async_list.prev) { in qset_print() 87 struct whc *whc = s->private; in di_print() local 91 for (d = 0; d < whc->n_devices; d++) { in di_print() 92 struct di_buf_entry *di = &whc->di_buf[d]; in di_print() 110 struct whc *whc = s->private; in asl_print() local 113 list_for_each_entry(qset, &whc->async_list, list_node) { in asl_print() 122 struct whc *whc = s->private; in pzl_print() local 128 list_for_each_entry(qset, &whc->periodic_list[period], list_node) { in pzl_print() 174 void whc_dbg_init(struct whc *whc) in whc_dbg_init() argument 176 if (whc->wusbhc.pal.debugfs_dir == NULL) in whc_dbg_init() [all …]
|
D | whci-hc.h | 250 struct whc *whc; member
|
/linux-2.6.39/drivers/uwb/ |
D | Makefile | 2 obj-$(CONFIG_UWB_WHCI) += umc.o whci.o whc-rc.o
|