Lines Matching refs:uic

40 struct uic *primary_uic;
42 struct uic { struct
54 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_unmask_irq() argument
60 raw_spin_lock_irqsave(&uic->lock, flags); in uic_unmask_irq()
63 mtdcr(uic->dcrbase + UIC_SR, sr); in uic_unmask_irq()
64 er = mfdcr(uic->dcrbase + UIC_ER); in uic_unmask_irq()
66 mtdcr(uic->dcrbase + UIC_ER, er); in uic_unmask_irq()
67 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_unmask_irq()
72 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_mask_irq() local
77 raw_spin_lock_irqsave(&uic->lock, flags); in uic_mask_irq()
78 er = mfdcr(uic->dcrbase + UIC_ER); in uic_mask_irq()
80 mtdcr(uic->dcrbase + UIC_ER, er); in uic_mask_irq()
81 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_mask_irq()
86 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_ack_irq() local
90 raw_spin_lock_irqsave(&uic->lock, flags); in uic_ack_irq()
91 mtdcr(uic->dcrbase + UIC_SR, 1 << (31-src)); in uic_ack_irq()
92 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_ack_irq()
97 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_mask_ack_irq() local
103 raw_spin_lock_irqsave(&uic->lock, flags); in uic_mask_ack_irq()
104 er = mfdcr(uic->dcrbase + UIC_ER); in uic_mask_ack_irq()
106 mtdcr(uic->dcrbase + UIC_ER, er); in uic_mask_ack_irq()
116 mtdcr(uic->dcrbase + UIC_SR, sr); in uic_mask_ack_irq()
117 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_mask_ack_irq()
122 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_set_irq_type() local
151 raw_spin_lock_irqsave(&uic->lock, flags); in uic_set_irq_type()
152 tr = mfdcr(uic->dcrbase + UIC_TR); in uic_set_irq_type()
153 pr = mfdcr(uic->dcrbase + UIC_PR); in uic_set_irq_type()
157 mtdcr(uic->dcrbase + UIC_PR, pr); in uic_set_irq_type()
158 mtdcr(uic->dcrbase + UIC_TR, tr); in uic_set_irq_type()
159 mtdcr(uic->dcrbase + UIC_SR, ~mask); in uic_set_irq_type()
161 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_set_irq_type()
178 struct uic *uic = h->host_data; in uic_host_map() local
180 irq_set_chip_data(virq, uic); in uic_host_map()
200 struct uic *uic = irq_desc_get_handler_data(desc); in uic_irq_cascade() local
211 msr = mfdcr(uic->dcrbase + UIC_MSR); in uic_irq_cascade()
217 generic_handle_domain_irq(uic->irqhost, src); in uic_irq_cascade()
228 static struct uic * __init uic_init_one(struct device_node *node) in uic_init_one()
230 struct uic *uic; in uic_init_one() local
236 uic = kzalloc(sizeof(*uic), GFP_KERNEL); in uic_init_one()
237 if (! uic) in uic_init_one()
240 raw_spin_lock_init(&uic->lock); in uic_init_one()
247 uic->index = *indexp; in uic_init_one()
255 uic->dcrbase = *dcrreg; in uic_init_one()
257 uic->irqhost = irq_domain_add_linear(node, NR_UIC_INTS, &uic_host_ops, in uic_init_one()
258 uic); in uic_init_one()
259 if (! uic->irqhost) in uic_init_one()
263 mtdcr(uic->dcrbase + UIC_ER, 0); in uic_init_one()
264 mtdcr(uic->dcrbase + UIC_CR, 0); in uic_init_one()
265 mtdcr(uic->dcrbase + UIC_TR, 0); in uic_init_one()
267 mtdcr(uic->dcrbase + UIC_SR, 0xffffffff); in uic_init_one()
269 printk ("UIC%d (%d IRQ sources) at DCR 0x%x\n", uic->index, in uic_init_one()
270 NR_UIC_INTS, uic->dcrbase); in uic_init_one()
272 return uic; in uic_init_one()
278 struct uic *uic; in uic_init_tree() local
304 uic = uic_init_one(np); in uic_init_tree()
305 if (! uic) in uic_init_tree()
311 irq_set_handler_data(cascade_virq, uic); in uic_init_tree()