Lines Matching refs:uic

38 struct uic *primary_uic;
40 struct uic { struct
52 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_unmask_irq() argument
58 raw_spin_lock_irqsave(&uic->lock, flags); in uic_unmask_irq()
61 mtdcr(uic->dcrbase + UIC_SR, sr); in uic_unmask_irq()
62 er = mfdcr(uic->dcrbase + UIC_ER); in uic_unmask_irq()
64 mtdcr(uic->dcrbase + UIC_ER, er); in uic_unmask_irq()
65 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_unmask_irq()
70 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_mask_irq() local
75 raw_spin_lock_irqsave(&uic->lock, flags); in uic_mask_irq()
76 er = mfdcr(uic->dcrbase + UIC_ER); in uic_mask_irq()
78 mtdcr(uic->dcrbase + UIC_ER, er); in uic_mask_irq()
79 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_mask_irq()
84 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_ack_irq() local
88 raw_spin_lock_irqsave(&uic->lock, flags); in uic_ack_irq()
89 mtdcr(uic->dcrbase + UIC_SR, 1 << (31-src)); in uic_ack_irq()
90 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_ack_irq()
95 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_mask_ack_irq() local
101 raw_spin_lock_irqsave(&uic->lock, flags); in uic_mask_ack_irq()
102 er = mfdcr(uic->dcrbase + UIC_ER); in uic_mask_ack_irq()
104 mtdcr(uic->dcrbase + UIC_ER, er); in uic_mask_ack_irq()
114 mtdcr(uic->dcrbase + UIC_SR, sr); in uic_mask_ack_irq()
115 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_mask_ack_irq()
120 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_set_irq_type() local
149 raw_spin_lock_irqsave(&uic->lock, flags); in uic_set_irq_type()
150 tr = mfdcr(uic->dcrbase + UIC_TR); in uic_set_irq_type()
151 pr = mfdcr(uic->dcrbase + UIC_PR); in uic_set_irq_type()
155 mtdcr(uic->dcrbase + UIC_PR, pr); in uic_set_irq_type()
156 mtdcr(uic->dcrbase + UIC_TR, tr); in uic_set_irq_type()
157 mtdcr(uic->dcrbase + UIC_SR, ~mask); in uic_set_irq_type()
159 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_set_irq_type()
176 struct uic *uic = h->host_data; in uic_host_map() local
178 irq_set_chip_data(virq, uic); in uic_host_map()
198 struct uic *uic = irq_desc_get_handler_data(desc); in uic_irq_cascade() local
210 msr = mfdcr(uic->dcrbase + UIC_MSR); in uic_irq_cascade()
216 subvirq = irq_linear_revmap(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()