• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/powerpc/sysdev/

Lines Matching refs:uic

2  * arch/powerpc/sysdev/uic.c
46 struct uic *primary_uic;
48 struct uic {
61 struct uic *uic = get_irq_chip_data(virq);
67 spin_lock_irqsave(&uic->lock, flags);
70 mtdcr(uic->dcrbase + UIC_SR, sr);
71 er = mfdcr(uic->dcrbase + UIC_ER);
73 mtdcr(uic->dcrbase + UIC_ER, er);
74 spin_unlock_irqrestore(&uic->lock, flags);
79 struct uic *uic = get_irq_chip_data(virq);
84 spin_lock_irqsave(&uic->lock, flags);
85 er = mfdcr(uic->dcrbase + UIC_ER);
87 mtdcr(uic->dcrbase + UIC_ER, er);
88 spin_unlock_irqrestore(&uic->lock, flags);
93 struct uic *uic = get_irq_chip_data(virq);
97 spin_lock_irqsave(&uic->lock, flags);
98 mtdcr(uic->dcrbase + UIC_SR, 1 << (31-src));
99 spin_unlock_irqrestore(&uic->lock, flags);
105 struct uic *uic = get_irq_chip_data(virq);
111 spin_lock_irqsave(&uic->lock, flags);
112 er = mfdcr(uic->dcrbase + UIC_ER);
114 mtdcr(uic->dcrbase + UIC_ER, er);
124 mtdcr(uic->dcrbase + UIC_SR, sr);
125 spin_unlock_irqrestore(&uic->lock, flags);
130 struct uic *uic = get_irq_chip_data(virq);
160 spin_lock_irqsave(&uic->lock, flags);
161 tr = mfdcr(uic->dcrbase + UIC_TR);
162 pr = mfdcr(uic->dcrbase + UIC_PR);
166 mtdcr(uic->dcrbase + UIC_PR, pr);
167 mtdcr(uic->dcrbase + UIC_TR, tr);
174 spin_unlock_irqrestore(&uic->lock, flags);
191 struct uic *uic = h->host_data;
193 set_irq_chip_data(virq, uic);
221 struct uic *uic = get_irq_data(virq);
233 msr = mfdcr(uic->dcrbase + UIC_MSR);
239 subvirq = irq_linear_revmap(uic->irqhost, src);
251 static struct uic * __init uic_init_one(struct device_node *node)
253 struct uic *uic;
257 BUG_ON(! of_device_is_compatible(node, "ibm,uic"));
259 uic = kzalloc(sizeof(*uic), GFP_KERNEL);
260 if (! uic)
263 spin_lock_init(&uic->lock);
266 printk(KERN_ERR "uic: Device node %s has missing or invalid "
270 uic->index = *indexp;
274 printk(KERN_ERR "uic: Device node %s has missing or invalid "
278 uic->dcrbase = *dcrreg;
280 uic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR,
282 if (! uic->irqhost)
285 uic->irqhost->host_data = uic;
288 mtdcr(uic->dcrbase + UIC_ER, 0);
289 mtdcr(uic->dcrbase + UIC_CR, 0);
290 mtdcr(uic->dcrbase + UIC_TR, 0);
292 mtdcr(uic->dcrbase + UIC_SR, 0xffffffff);
294 printk ("UIC%d (%d IRQ sources) at DCR 0x%x\n", uic->index,
295 NR_UIC_INTS, uic->dcrbase);
297 return uic;
303 struct uic *uic;
307 for_each_compatible_node(np, NULL, "ibm,uic") {
323 for_each_compatible_node(np, NULL, "ibm,uic") {
329 uic = uic_init_one(np);
330 if (! uic)
336 set_irq_data(cascade_virq, uic);