Lines Matching refs:cb

48 static struct crossbar_device *cb;  variable
52 writel(cb_no, cb->crossbar_base + cb->register_offsets[irq_no]); in crossbar_writel()
57 writew(cb_no, cb->crossbar_base + cb->register_offsets[irq_no]); in crossbar_writew()
62 writeb(cb_no, cb->crossbar_base + cb->register_offsets[irq_no]); in crossbar_writeb()
86 raw_spin_lock(&cb->lock); in allocate_gic_irq()
87 for (i = cb->int_max - 1; i >= 0; i--) { in allocate_gic_irq()
88 if (cb->irq_map[i] == IRQ_FREE) { in allocate_gic_irq()
89 cb->irq_map[i] = hwirq; in allocate_gic_irq()
93 raw_spin_unlock(&cb->lock); in allocate_gic_irq()
106 cb->irq_map[i] = IRQ_FREE; in allocate_gic_irq()
108 cb->write(i, hwirq); in allocate_gic_irq()
126 if ((hwirq + nr_irqs) > cb->max_crossbar_sources) in crossbar_domain_alloc()
159 raw_spin_lock(&cb->lock); in crossbar_domain_free()
164 cb->irq_map[d->hwirq] = IRQ_FREE; in crossbar_domain_free()
165 cb->write(d->hwirq, cb->safe_map); in crossbar_domain_free()
167 raw_spin_unlock(&cb->lock); in crossbar_domain_free()
200 cb = kzalloc(sizeof(*cb), GFP_KERNEL); in crossbar_of_init()
202 if (!cb) in crossbar_of_init()
205 cb->crossbar_base = of_iomap(node, 0); in crossbar_of_init()
206 if (!cb->crossbar_base) in crossbar_of_init()
210 &cb->max_crossbar_sources); in crossbar_of_init()
211 if (!cb->max_crossbar_sources) { in crossbar_of_init()
223 cb->irq_map = kcalloc(max, sizeof(int), GFP_KERNEL); in crossbar_of_init()
224 if (!cb->irq_map) in crossbar_of_init()
227 cb->int_max = max; in crossbar_of_init()
230 cb->irq_map[i] = IRQ_FREE; in crossbar_of_init()
246 cb->irq_map[entry] = IRQ_RESERVED; in crossbar_of_init()
264 cb->irq_map[entry] = IRQ_SKIP; in crossbar_of_init()
269 cb->register_offsets = kcalloc(max, sizeof(int), GFP_KERNEL); in crossbar_of_init()
270 if (!cb->register_offsets) in crossbar_of_init()
277 cb->write = crossbar_writeb; in crossbar_of_init()
280 cb->write = crossbar_writew; in crossbar_of_init()
283 cb->write = crossbar_writel; in crossbar_of_init()
297 if (cb->irq_map[i] == IRQ_RESERVED) in crossbar_of_init()
300 cb->register_offsets[i] = reserved; in crossbar_of_init()
304 of_property_read_u32(node, "ti,irqs-safe-map", &cb->safe_map); in crossbar_of_init()
307 if (cb->irq_map[i] == IRQ_RESERVED || in crossbar_of_init()
308 cb->irq_map[i] == IRQ_SKIP) in crossbar_of_init()
311 cb->write(i, cb->safe_map); in crossbar_of_init()
314 raw_spin_lock_init(&cb->lock); in crossbar_of_init()
319 kfree(cb->register_offsets); in crossbar_of_init()
321 kfree(cb->irq_map); in crossbar_of_init()
323 iounmap(cb->crossbar_base); in crossbar_of_init()
325 kfree(cb); in crossbar_of_init()
327 cb = NULL; in crossbar_of_init()
353 cb->max_crossbar_sources, in irqcrossbar_init()