Lines Matching refs:imx21
14 static inline void create_debug_files(struct imx21 *imx21) { } in create_debug_files() argument
15 static inline void remove_debug_files(struct imx21 *imx21) { } in remove_debug_files() argument
16 static inline void debug_urb_submitted(struct imx21 *imx21, struct urb *urb) {} in debug_urb_submitted() argument
17 static inline void debug_urb_completed(struct imx21 *imx21, struct urb *urb, in debug_urb_completed() argument
19 static inline void debug_urb_unlinked(struct imx21 *imx21, struct urb *urb) {} in debug_urb_unlinked() argument
20 static inline void debug_urb_queued_for_etd(struct imx21 *imx21, in debug_urb_queued_for_etd() argument
22 static inline void debug_urb_queued_for_dmem(struct imx21 *imx21, in debug_urb_queued_for_dmem() argument
24 static inline void debug_etd_allocated(struct imx21 *imx21) {} in debug_etd_allocated() argument
25 static inline void debug_etd_freed(struct imx21 *imx21) {} in debug_etd_freed() argument
26 static inline void debug_dmem_allocated(struct imx21 *imx21, int size) {} in debug_dmem_allocated() argument
27 static inline void debug_dmem_freed(struct imx21 *imx21, int size) {} in debug_dmem_freed() argument
28 static inline void debug_isoc_submitted(struct imx21 *imx21, in debug_isoc_submitted() argument
30 static inline void debug_isoc_completed(struct imx21 *imx21, in debug_isoc_completed() argument
57 static inline struct debug_stats *stats_for_urb(struct imx21 *imx21, in stats_for_urb() argument
61 &imx21->isoc_stats : &imx21->nonisoc_stats; in stats_for_urb()
64 static void debug_urb_submitted(struct imx21 *imx21, struct urb *urb) in debug_urb_submitted() argument
66 stats_for_urb(imx21, urb)->submitted++; in debug_urb_submitted()
69 static void debug_urb_completed(struct imx21 *imx21, struct urb *urb, int st) in debug_urb_completed() argument
72 stats_for_urb(imx21, urb)->completed_failed++; in debug_urb_completed()
74 stats_for_urb(imx21, urb)->completed_ok++; in debug_urb_completed()
77 static void debug_urb_unlinked(struct imx21 *imx21, struct urb *urb) in debug_urb_unlinked() argument
79 stats_for_urb(imx21, urb)->unlinked++; in debug_urb_unlinked()
82 static void debug_urb_queued_for_etd(struct imx21 *imx21, struct urb *urb) in debug_urb_queued_for_etd() argument
84 stats_for_urb(imx21, urb)->queue_etd++; in debug_urb_queued_for_etd()
87 static void debug_urb_queued_for_dmem(struct imx21 *imx21, struct urb *urb) in debug_urb_queued_for_dmem() argument
89 stats_for_urb(imx21, urb)->queue_dmem++; in debug_urb_queued_for_dmem()
92 static inline void debug_etd_allocated(struct imx21 *imx21) in debug_etd_allocated() argument
94 imx21->etd_usage.maximum = max( in debug_etd_allocated()
95 ++(imx21->etd_usage.value), in debug_etd_allocated()
96 imx21->etd_usage.maximum); in debug_etd_allocated()
99 static inline void debug_etd_freed(struct imx21 *imx21) in debug_etd_freed() argument
101 imx21->etd_usage.value--; in debug_etd_freed()
104 static inline void debug_dmem_allocated(struct imx21 *imx21, int size) in debug_dmem_allocated() argument
106 imx21->dmem_usage.value += size; in debug_dmem_allocated()
107 imx21->dmem_usage.maximum = max( in debug_dmem_allocated()
108 imx21->dmem_usage.value, in debug_dmem_allocated()
109 imx21->dmem_usage.maximum); in debug_dmem_allocated()
112 static inline void debug_dmem_freed(struct imx21 *imx21, int size) in debug_dmem_freed() argument
114 imx21->dmem_usage.value -= size; in debug_dmem_freed()
118 static void debug_isoc_submitted(struct imx21 *imx21, in debug_isoc_submitted() argument
121 struct debug_isoc_trace *trace = &imx21->isoc_trace[ in debug_isoc_submitted()
122 imx21->isoc_trace_index++]; in debug_isoc_submitted()
124 imx21->isoc_trace_index %= ARRAY_SIZE(imx21->isoc_trace); in debug_isoc_submitted()
131 static inline void debug_isoc_completed(struct imx21 *imx21, in debug_isoc_completed() argument
138 trace = imx21->isoc_trace; in debug_isoc_completed()
139 for (i = 0; i < ARRAY_SIZE(imx21->isoc_trace); i++, trace++) { in debug_isoc_completed()
151 trace_failed = &imx21->isoc_trace_failed[ in debug_isoc_completed()
152 imx21->isoc_trace_index_failed++]; in debug_isoc_completed()
154 imx21->isoc_trace_index_failed %= ARRAY_SIZE( in debug_isoc_completed()
155 imx21->isoc_trace_failed); in debug_isoc_completed()
188 struct imx21 *imx21 = s->private; in debug_status_show() local
203 spin_lock_irqsave(&imx21->lock, flags); in debug_status_show()
205 etd_enable_mask = readl(imx21->regs + USBH_ETDENSET); in debug_status_show()
206 for (i = 0, etd = imx21->etd; i < USB_NUM_ETD; i++, etd++) { in debug_status_show()
215 list_for_each_entry(dmem, &imx21->dmem_list, list) { in debug_status_show()
220 list_for_each_entry(ep_priv, &imx21->queue_for_etd, queue) in debug_status_show()
223 list_for_each_entry(etd, &imx21->queue_for_dmem, queue) in debug_status_show()
226 spin_unlock_irqrestore(&imx21->lock, flags); in debug_status_show()
237 readl(imx21->regs + USBH_FRMNUB) & 0xFFFF, in debug_status_show()
238 etds_allocated, USB_NUM_ETD, imx21->etd_usage.maximum, in debug_status_show()
241 dmem_bytes, DMEM_SIZE, imx21->dmem_usage.maximum, in debug_status_show()
252 struct imx21 *imx21 = s->private; in debug_dmem_show() local
257 spin_lock_irqsave(&imx21->lock, flags); in debug_dmem_show()
259 list_for_each_entry(dmem, &imx21->dmem_list, list) in debug_dmem_show()
266 spin_unlock_irqrestore(&imx21->lock, flags); in debug_dmem_show()
274 struct imx21 *imx21 = s->private; in debug_etd_show() local
281 spin_lock_irqsave(&imx21->lock, flags); in debug_etd_show()
283 for (i = 0, etd = imx21->etd; i < USB_NUM_ETD; i++, etd++) { in debug_etd_show()
307 (readl(imx21->regs + USBH_ETDENSET) & (1 << i)) > 0, in debug_etd_show()
312 dword = etd_readl(imx21, i, j); in debug_etd_show()
335 spin_unlock_irqrestore(&imx21->lock, flags); in debug_etd_show()
362 struct imx21 *imx21 = s->private; in debug_statistics_show() local
365 spin_lock_irqsave(&imx21->lock, flags); in debug_statistics_show()
367 debug_statistics_show_one(s, "nonisoc", &imx21->nonisoc_stats); in debug_statistics_show()
368 debug_statistics_show_one(s, "isoc", &imx21->isoc_stats); in debug_statistics_show()
369 seq_printf(s, "unblock kludge triggers: %lu\n", imx21->debug_unblocks); in debug_statistics_show()
370 spin_unlock_irqrestore(&imx21->lock, flags); in debug_statistics_show()
397 struct imx21 *imx21 = s->private; in debug_isoc_show() local
402 spin_lock_irqsave(&imx21->lock, flags); in debug_isoc_show()
404 trace = imx21->isoc_trace_failed; in debug_isoc_show()
405 for (i = 0; i < ARRAY_SIZE(imx21->isoc_trace_failed); i++, trace++) in debug_isoc_show()
408 trace = imx21->isoc_trace; in debug_isoc_show()
409 for (i = 0; i < ARRAY_SIZE(imx21->isoc_trace); i++, trace++) in debug_isoc_show()
412 spin_unlock_irqrestore(&imx21->lock, flags); in debug_isoc_show()
418 static void create_debug_files(struct imx21 *imx21) in create_debug_files() argument
422 root = debugfs_create_dir(dev_name(imx21->dev), usb_debug_root); in create_debug_files()
423 imx21->debug_root = root; in create_debug_files()
425 debugfs_create_file("status", S_IRUGO, root, imx21, &debug_status_fops); in create_debug_files()
426 debugfs_create_file("dmem", S_IRUGO, root, imx21, &debug_dmem_fops); in create_debug_files()
427 debugfs_create_file("etd", S_IRUGO, root, imx21, &debug_etd_fops); in create_debug_files()
428 debugfs_create_file("statistics", S_IRUGO, root, imx21, in create_debug_files()
430 debugfs_create_file("isoc", S_IRUGO, root, imx21, &debug_isoc_fops); in create_debug_files()
433 static void remove_debug_files(struct imx21 *imx21) in remove_debug_files() argument
435 debugfs_remove_recursive(imx21->debug_root); in remove_debug_files()