Lines Matching refs:uic
42 struct uic *primary_uic;
44 struct uic { struct
56 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_unmask_irq() argument
62 raw_spin_lock_irqsave(&uic->lock, flags); in uic_unmask_irq()
65 mtdcr(uic->dcrbase + UIC_SR, sr); in uic_unmask_irq()
66 er = mfdcr(uic->dcrbase + UIC_ER); in uic_unmask_irq()
68 mtdcr(uic->dcrbase + UIC_ER, er); in uic_unmask_irq()
69 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_unmask_irq()
74 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_mask_irq() local
79 raw_spin_lock_irqsave(&uic->lock, flags); in uic_mask_irq()
80 er = mfdcr(uic->dcrbase + UIC_ER); in uic_mask_irq()
82 mtdcr(uic->dcrbase + UIC_ER, er); in uic_mask_irq()
83 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_mask_irq()
88 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_ack_irq() local
92 raw_spin_lock_irqsave(&uic->lock, flags); in uic_ack_irq()
93 mtdcr(uic->dcrbase + UIC_SR, 1 << (31-src)); in uic_ack_irq()
94 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_ack_irq()
99 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_mask_ack_irq() local
105 raw_spin_lock_irqsave(&uic->lock, flags); in uic_mask_ack_irq()
106 er = mfdcr(uic->dcrbase + UIC_ER); in uic_mask_ack_irq()
108 mtdcr(uic->dcrbase + UIC_ER, er); in uic_mask_ack_irq()
118 mtdcr(uic->dcrbase + UIC_SR, sr); in uic_mask_ack_irq()
119 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_mask_ack_irq()
124 struct uic *uic = irq_data_get_irq_chip_data(d); in uic_set_irq_type() local
153 raw_spin_lock_irqsave(&uic->lock, flags); in uic_set_irq_type()
154 tr = mfdcr(uic->dcrbase + UIC_TR); in uic_set_irq_type()
155 pr = mfdcr(uic->dcrbase + UIC_PR); in uic_set_irq_type()
159 mtdcr(uic->dcrbase + UIC_PR, pr); in uic_set_irq_type()
160 mtdcr(uic->dcrbase + UIC_TR, tr); in uic_set_irq_type()
161 mtdcr(uic->dcrbase + UIC_SR, ~mask); in uic_set_irq_type()
163 raw_spin_unlock_irqrestore(&uic->lock, flags); in uic_set_irq_type()
180 struct uic *uic = h->host_data; in uic_host_map() local
182 irq_set_chip_data(virq, uic); in uic_host_map()
202 struct uic *uic = irq_desc_get_handler_data(desc); in uic_irq_cascade() local
214 msr = mfdcr(uic->dcrbase + UIC_MSR); in uic_irq_cascade()
220 subvirq = irq_linear_revmap(uic->irqhost, src); in uic_irq_cascade()
232 static struct uic * __init uic_init_one(struct device_node *node) in uic_init_one()
234 struct uic *uic; in uic_init_one() local
240 uic = kzalloc(sizeof(*uic), GFP_KERNEL); in uic_init_one()
241 if (! uic) in uic_init_one()
244 raw_spin_lock_init(&uic->lock); in uic_init_one()
251 uic->index = *indexp; in uic_init_one()
259 uic->dcrbase = *dcrreg; in uic_init_one()
261 uic->irqhost = irq_domain_add_linear(node, NR_UIC_INTS, &uic_host_ops, in uic_init_one()
262 uic); in uic_init_one()
263 if (! uic->irqhost) in uic_init_one()
267 mtdcr(uic->dcrbase + UIC_ER, 0); in uic_init_one()
268 mtdcr(uic->dcrbase + UIC_CR, 0); in uic_init_one()
269 mtdcr(uic->dcrbase + UIC_TR, 0); in uic_init_one()
271 mtdcr(uic->dcrbase + UIC_SR, 0xffffffff); in uic_init_one()
273 printk ("UIC%d (%d IRQ sources) at DCR 0x%x\n", uic->index, in uic_init_one()
274 NR_UIC_INTS, uic->dcrbase); in uic_init_one()
276 return uic; in uic_init_one()
282 struct uic *uic; in uic_init_tree() local
308 uic = uic_init_one(np); in uic_init_tree()
309 if (! uic) in uic_init_tree()
315 irq_set_handler_data(cascade_virq, uic); in uic_init_tree()