Lines Matching refs:queue
28 void qmgr_put_entry(unsigned int queue, u32 val) in qmgr_put_entry() argument
31 BUG_ON(!qmgr_queue_descs[queue]); /* not yet requested */ in qmgr_put_entry()
34 qmgr_queue_descs[queue], queue, val); in qmgr_put_entry()
36 __raw_writel(val, &qmgr_regs->acc[queue][0]); in qmgr_put_entry()
39 u32 qmgr_get_entry(unsigned int queue) in qmgr_get_entry() argument
42 val = __raw_readl(&qmgr_regs->acc[queue][0]); in qmgr_get_entry()
44 BUG_ON(!qmgr_queue_descs[queue]); /* not yet requested */ in qmgr_get_entry()
47 qmgr_queue_descs[queue], queue, val); in qmgr_get_entry()
52 static int __qmgr_get_stat1(unsigned int queue) in __qmgr_get_stat1() argument
54 return (__raw_readl(&qmgr_regs->stat1[queue >> 3]) in __qmgr_get_stat1()
55 >> ((queue & 7) << 2)) & 0xF; in __qmgr_get_stat1()
58 static int __qmgr_get_stat2(unsigned int queue) in __qmgr_get_stat2() argument
60 BUG_ON(queue >= HALF_QUEUES); in __qmgr_get_stat2()
61 return (__raw_readl(&qmgr_regs->stat2[queue >> 4]) in __qmgr_get_stat2()
62 >> ((queue & 0xF) << 1)) & 0x3; in __qmgr_get_stat2()
71 int qmgr_stat_empty(unsigned int queue) in qmgr_stat_empty() argument
73 BUG_ON(queue >= HALF_QUEUES); in qmgr_stat_empty()
74 return __qmgr_get_stat1(queue) & QUEUE_STAT1_EMPTY; in qmgr_stat_empty()
83 int qmgr_stat_below_low_watermark(unsigned int queue) in qmgr_stat_below_low_watermark() argument
85 if (queue >= HALF_QUEUES) in qmgr_stat_below_low_watermark()
87 (queue - HALF_QUEUES)) & 0x01; in qmgr_stat_below_low_watermark()
88 return __qmgr_get_stat1(queue) & QUEUE_STAT1_NEARLY_EMPTY; in qmgr_stat_below_low_watermark()
97 int qmgr_stat_full(unsigned int queue) in qmgr_stat_full() argument
99 if (queue >= HALF_QUEUES) in qmgr_stat_full()
101 (queue - HALF_QUEUES)) & 0x01; in qmgr_stat_full()
102 return __qmgr_get_stat1(queue) & QUEUE_STAT1_FULL; in qmgr_stat_full()
111 int qmgr_stat_overflow(unsigned int queue) in qmgr_stat_overflow() argument
113 return __qmgr_get_stat2(queue) & QUEUE_STAT2_OVERFLOW; in qmgr_stat_overflow()
116 void qmgr_set_irq(unsigned int queue, int src, in qmgr_set_irq() argument
122 if (queue < HALF_QUEUES) { in qmgr_set_irq()
126 reg = &qmgr_regs->irqsrc[queue >> 3]; /* 8 queues per u32 */ in qmgr_set_irq()
127 bit = (queue % 8) * 4; /* 3 bits + 1 reserved bit per queue */ in qmgr_set_irq()
134 irq_handlers[queue] = handler; in qmgr_set_irq()
135 irq_pdevs[queue] = pdev; in qmgr_set_irq()
204 void qmgr_enable_irq(unsigned int queue) in qmgr_enable_irq() argument
207 int half = queue / 32; in qmgr_enable_irq()
208 u32 mask = 1 << (queue & (HALF_QUEUES - 1)); in qmgr_enable_irq()
216 void qmgr_disable_irq(unsigned int queue) in qmgr_disable_irq() argument
219 int half = queue / 32; in qmgr_disable_irq()
220 u32 mask = 1 << (queue & (HALF_QUEUES - 1)); in qmgr_disable_irq()
238 int qmgr_request_queue(unsigned int queue, unsigned int len /* dwords */, in qmgr_request_queue() argument
243 int __qmgr_request_queue(unsigned int queue, unsigned int len /* dwords */, in qmgr_request_queue()
251 BUG_ON(queue >= QUEUES); in qmgr_request_queue()
286 if (__raw_readl(&qmgr_regs->sram[queue])) { in qmgr_request_queue()
302 " queue %i\n", queue); in qmgr_request_queue()
312 __raw_writel(cfg | (addr << 14), &qmgr_regs->sram[queue]); in qmgr_request_queue()
314 snprintf(qmgr_queue_descs[queue], sizeof(qmgr_queue_descs[0]), in qmgr_request_queue()
317 qmgr_queue_descs[queue], queue, addr); in qmgr_request_queue()
328 void qmgr_release_queue(unsigned int queue) in qmgr_release_queue() argument
332 BUG_ON(queue >= QUEUES); /* not in valid range */ in qmgr_release_queue()
335 cfg = __raw_readl(&qmgr_regs->sram[queue]); in qmgr_release_queue()
354 qmgr_queue_descs[queue], queue); in qmgr_release_queue()
355 qmgr_queue_descs[queue][0] = '\x0'; in qmgr_release_queue()
358 while ((addr = qmgr_get_entry(queue))) in qmgr_release_queue()
360 queue, addr); in qmgr_release_queue()
362 __raw_writel(0, &qmgr_regs->sram[queue]); in qmgr_release_queue()
368 irq_handlers[queue] = NULL; /* catch IRQ bugs */ in qmgr_release_queue()