Lines Matching refs:i

196 	struct powerpc_intr *i;  in smp_intr_init()  local
200 i = powerpc_intrs[vector]; in smp_intr_init()
201 if (i != NULL && i->event != NULL && i->pic == root_pic) in smp_intr_init()
202 PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv); in smp_intr_init()
225 struct powerpc_intr *i, *iscan; in intr_lookup() local
230 i = powerpc_intrs[vector]; in intr_lookup()
231 if (i != NULL && i->irq == irq) { in intr_lookup()
233 return (i); in intr_lookup()
237 i = malloc(sizeof(*i), M_INTR, M_NOWAIT); in intr_lookup()
238 if (i == NULL) { in intr_lookup()
243 i->event = NULL; in intr_lookup()
244 i->cntp = NULL; in intr_lookup()
245 i->priv = NULL; in intr_lookup()
246 i->trig = INTR_TRIGGER_CONFORM; in intr_lookup()
247 i->pol = INTR_POLARITY_CONFORM; in intr_lookup()
248 i->irq = irq; in intr_lookup()
249 i->pic = NULL; in intr_lookup()
250 i->vector = -1; in intr_lookup()
251 i->fwcode = 0; in intr_lookup()
252 i->ipi = 0; in intr_lookup()
255 i->pi_cpuset = all_cpus; in intr_lookup()
257 CPU_SETOF(0, &i->pi_cpuset); in intr_lookup()
265 if (iscan == NULL && i->vector == -1) in intr_lookup()
266 i->vector = vector; in intr_lookup()
270 if (iscan == NULL && i->vector != -1) { in intr_lookup()
271 powerpc_intrs[i->vector] = i; in intr_lookup()
272 i->cntindex = atomic_fetchadd_int(&intrcnt_index, 1); in intr_lookup()
273 i->cntp = &intrcnt[i->cntindex]; in intr_lookup()
274 sprintf(intrname, "irq%u:", i->irq); in intr_lookup()
275 intrcnt_setname(intrname, i->cntindex); in intr_lookup()
280 if (iscan != NULL || i->vector == -1) { in intr_lookup()
281 free(i, M_INTR); in intr_lookup()
282 i = iscan; in intr_lookup()
285 return (i); in intr_lookup()
289 powerpc_map_irq(struct powerpc_intr *i) in powerpc_map_irq() argument
298 if (i->irq >= p->base && i->irq < p->base + cnt) in powerpc_map_irq()
304 i->intline = i->irq - p->base; in powerpc_map_irq()
305 i->pic = p->dev; in powerpc_map_irq()
308 if (i->pic == NULL) in powerpc_map_irq()
309 i->pic = root_pic; in powerpc_map_irq()
317 struct powerpc_intr *i = arg; in powerpc_intr_eoi() local
319 PIC_EOI(i->pic, i->intline, i->priv); in powerpc_intr_eoi()
325 struct powerpc_intr *i = arg; in powerpc_intr_pre_ithread() local
327 PIC_MASK(i->pic, i->intline, i->priv); in powerpc_intr_pre_ithread()
328 PIC_EOI(i->pic, i->intline, i->priv); in powerpc_intr_pre_ithread()
334 struct powerpc_intr *i = arg; in powerpc_intr_post_ithread() local
336 PIC_UNMASK(i->pic, i->intline, i->priv); in powerpc_intr_post_ithread()
343 struct powerpc_intr *i = arg; in powerpc_assign_intr_cpu() local
346 i->pi_cpuset = all_cpus; in powerpc_assign_intr_cpu()
348 CPU_SETOF(cpu, &i->pi_cpuset); in powerpc_assign_intr_cpu()
350 if (!cold && i->pic != NULL && i->pic == root_pic) in powerpc_assign_intr_cpu()
351 PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv); in powerpc_assign_intr_cpu()
443 struct powerpc_intr *i; in powerpc_enable_intr() local
481 i = intr_lookup(MAP_IRQ(piclist[n].node, in powerpc_enable_intr()
483 i->event->ie_post_filter = NULL; in powerpc_enable_intr()
484 i->ipi = 1; in powerpc_enable_intr()
490 i = powerpc_intrs[vector]; in powerpc_enable_intr()
491 if (i == NULL) in powerpc_enable_intr()
494 error = powerpc_map_irq(i); in powerpc_enable_intr()
498 if (i->trig == INTR_TRIGGER_INVALID) in powerpc_enable_intr()
499 PIC_TRANSLATE_CODE(i->pic, i->intline, i->fwcode, in powerpc_enable_intr()
500 &i->trig, &i->pol); in powerpc_enable_intr()
501 if (i->trig != INTR_TRIGGER_CONFORM || in powerpc_enable_intr()
502 i->pol != INTR_POLARITY_CONFORM) in powerpc_enable_intr()
503 PIC_CONFIG(i->pic, i->intline, i->trig, i->pol); in powerpc_enable_intr()
505 if (i->event != NULL) in powerpc_enable_intr()
506 PIC_ENABLE(i->pic, i->intline, vector, &i->priv); in powerpc_enable_intr()
517 struct powerpc_intr *i; in powerpc_setup_intr() local
520 i = intr_lookup(irq); in powerpc_setup_intr()
521 if (i == NULL) in powerpc_setup_intr()
524 if (i->event == NULL) { in powerpc_setup_intr()
525 error = intr_event_create(&i->event, (void *)i, 0, irq, in powerpc_setup_intr()
534 error = intr_event_add_handler(i->event, name, filter, handler, arg, in powerpc_setup_intr()
538 i->pi_domain = domain; in powerpc_setup_intr()
540 CPU_ZERO(&i->pi_cpuset); in powerpc_setup_intr()
541 CPU_COPY(&cpuset_domain[domain], &i->pi_cpuset); in powerpc_setup_intr()
544 intrcnt_setname(i->event->ie_fullname, i->cntindex); in powerpc_setup_intr()
548 error = powerpc_map_irq(i); in powerpc_setup_intr()
551 if (i->trig == INTR_TRIGGER_INVALID) in powerpc_setup_intr()
552 PIC_TRANSLATE_CODE(i->pic, i->intline, in powerpc_setup_intr()
553 i->fwcode, &i->trig, &i->pol); in powerpc_setup_intr()
555 if (i->trig != INTR_TRIGGER_CONFORM || in powerpc_setup_intr()
556 i->pol != INTR_POLARITY_CONFORM) in powerpc_setup_intr()
557 PIC_CONFIG(i->pic, i->intline, i->trig, i->pol); in powerpc_setup_intr()
559 if (i->pic == root_pic) in powerpc_setup_intr()
560 PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv); in powerpc_setup_intr()
563 PIC_ENABLE(i->pic, i->intline, i->vector, in powerpc_setup_intr()
564 &i->priv); in powerpc_setup_intr()
581 struct powerpc_intr *i; in powerpc_bind_intr() local
583 i = intr_lookup(irq); in powerpc_bind_intr()
584 if (i == NULL) in powerpc_bind_intr()
587 return (intr_event_bind(i->event, cpu)); in powerpc_bind_intr()
594 struct powerpc_intr *i; in powerpc_fw_config_intr() local
596 i = intr_lookup(irq); in powerpc_fw_config_intr()
597 if (i == NULL) in powerpc_fw_config_intr()
600 i->trig = INTR_TRIGGER_INVALID; in powerpc_fw_config_intr()
601 i->pol = INTR_POLARITY_CONFORM; in powerpc_fw_config_intr()
602 i->fwcode = sense_code; in powerpc_fw_config_intr()
604 if (!cold && i->pic != NULL) { in powerpc_fw_config_intr()
605 PIC_TRANSLATE_CODE(i->pic, i->intline, i->fwcode, &i->trig, in powerpc_fw_config_intr()
606 &i->pol); in powerpc_fw_config_intr()
607 PIC_CONFIG(i->pic, i->intline, i->trig, i->pol); in powerpc_fw_config_intr()
616 struct powerpc_intr *i; in powerpc_config_intr() local
618 i = intr_lookup(irq); in powerpc_config_intr()
619 if (i == NULL) in powerpc_config_intr()
622 i->trig = trig; in powerpc_config_intr()
623 i->pol = pol; in powerpc_config_intr()
625 if (!cold && i->pic != NULL) in powerpc_config_intr()
626 PIC_CONFIG(i->pic, i->intline, trig, pol); in powerpc_config_intr()
634 struct powerpc_intr *i; in powerpc_dispatch_intr() local
637 i = powerpc_intrs[vector]; in powerpc_dispatch_intr()
638 if (i == NULL) in powerpc_dispatch_intr()
641 (*i->cntp)++; in powerpc_dispatch_intr()
643 ie = i->event; in powerpc_dispatch_intr()
650 if (i->ipi) in powerpc_dispatch_intr()
651 PIC_EOI(i->pic, i->intline, i->priv); in powerpc_dispatch_intr()
661 printf("stray irq %d\n", i ? i->irq : -1); in powerpc_dispatch_intr()
667 if (i != NULL) in powerpc_dispatch_intr()
668 PIC_MASK(i->pic, i->intline, i->priv); in powerpc_dispatch_intr()
674 struct powerpc_intr *i; in powerpc_intr_mask() local
676 i = intr_lookup(irq); in powerpc_intr_mask()
677 if (i == NULL || i->pic == NULL) in powerpc_intr_mask()
680 PIC_MASK(i->pic, i->intline, i->priv); in powerpc_intr_mask()
686 struct powerpc_intr *i; in powerpc_intr_unmask() local
688 i = intr_lookup(irq); in powerpc_intr_unmask()
689 if (i == NULL || i->pic == NULL) in powerpc_intr_unmask()
692 PIC_UNMASK(i->pic, i->intline, i->priv); in powerpc_intr_unmask()