Lines Matching +full:master +full:- +full:level

1 // SPDX-License-Identifier: GPL-2.0-or-later
30 #include <asm/pci-bridge.h>
43 unsigned int level; member
61 static int pmac_irq_cascade = -1;
88 out_le32(&pmac_irq_hw[i]->enable, ppc_cached_irq_mask[i]); in pmac_mask_and_ack_irq()
89 out_le32(&pmac_irq_hw[i]->ack, bit); in pmac_mask_and_ack_irq()
94 } while((in_le32(&pmac_irq_hw[i]->enable) & bit) in pmac_mask_and_ack_irq()
109 out_le32(&pmac_irq_hw[i]->ack, bit); in pmac_ack_irq()
110 (void)in_le32(&pmac_irq_hw[i]->ack); in pmac_ack_irq()
123 out_le32(&pmac_irq_hw[i]->enable, ppc_cached_irq_mask[i]); in __pmac_set_irq_mask()
129 } while((in_le32(&pmac_irq_hw[i]->enable) & bit) in __pmac_set_irq_mask()
137 if (bit & ppc_cached_irq_mask[i] & in_le32(&pmac_irq_hw[i]->level)) in __pmac_set_irq_mask()
153 out_le32(&pmac_irq_hw[i]->ack, bit); in pmac_startup_irq()
194 .name = "PMAC-PIC",
210 for (irq = max_irqs; (irq -= 32) >= max_real_irqs; ) { in gatwick_action()
212 bits = in_le32(&pmac_irq_hw[i]->event) | ppc_lost_interrupts[i]; in gatwick_action()
213 bits |= in_le32(&pmac_irq_hw[i]->level); in gatwick_action()
234 /* IPI's are a hack on the powersurge -- Cort */ in pmac_pic_get_irq()
240 for (irq = max_real_irqs; (irq -= 32) >= 0; ) { in pmac_pic_get_irq()
242 bits = in_le32(&pmac_irq_hw[i]->event) | ppc_lost_interrupts[i]; in pmac_pic_get_irq()
243 bits |= in_le32(&pmac_irq_hw[i]->level); in pmac_pic_get_irq()
267 return -EINVAL; in pmac_pic_host_map()
269 /* Mark level interrupts, set delayed disable for edge ones and set in pmac_pic_host_map()
286 struct device_node *master = NULL; in pmac_pic_probe_oldstyle() local
298 if ((master = of_find_node_by_name(NULL, "gc")) != NULL) { in pmac_pic_probe_oldstyle()
300 } else if ((master = of_find_node_by_name(NULL, "ohare")) != NULL) { in pmac_pic_probe_oldstyle()
306 } else if ((master = of_find_node_by_name(NULL, "mac-io")) != NULL) { in pmac_pic_probe_oldstyle()
312 of_node_get(master); in pmac_pic_probe_oldstyle()
313 slave = of_find_node_by_name(master, "mac-io"); in pmac_pic_probe_oldstyle()
315 /* Check ordering of master & slave */ in pmac_pic_probe_oldstyle()
316 if (of_device_is_compatible(master, "gatwick")) { in pmac_pic_probe_oldstyle()
318 swap(master, slave); in pmac_pic_probe_oldstyle()
325 BUG_ON(master == NULL); in pmac_pic_probe_oldstyle()
330 pmac_pic_host = irq_domain_add_linear(master, max_irqs, in pmac_pic_probe_oldstyle()
336 BUG_ON(of_address_to_resource(master, 0, &r)); in pmac_pic_probe_oldstyle()
346 of_node_put(master); in pmac_pic_probe_oldstyle()
349 master, max_real_irqs); in pmac_pic_probe_oldstyle()
364 max_irqs - max_real_irqs, pmac_irq_cascade); in pmac_pic_probe_oldstyle()
370 out_le32(&pmac_irq_hw[i]->enable, 0); in pmac_pic_probe_oldstyle()
382 if (request_irq(i, xmon_irq, IRQF_NO_THREAD, "NMI - XMON", NULL)) in pmac_pic_probe_oldstyle()
383 pr_err("Failed to register NMI-XMON interrupt\n"); in pmac_pic_probe_oldstyle()
395 * and no interrupt-controller nodes. We also have dodgy in of_irq_parse_oldworld()
397 * missing behind pci-pci bridges and we have to get it in of_irq_parse_oldworld()
405 device = device->parent; in of_irq_parse_oldworld()
410 return -EINVAL; in of_irq_parse_oldworld()
414 return -EINVAL; in of_irq_parse_oldworld()
416 out_irq->np = NULL; in of_irq_parse_oldworld()
417 out_irq->args[0] = ints[index]; in of_irq_parse_oldworld()
418 out_irq->args_count = 1; in of_irq_parse_oldworld()
430 pswitch = of_find_node_by_name(NULL, "programmer-switch"); in pmac_pic_setup_mpic_nmi()
436 "NMI - XMON", NULL)) in pmac_pic_setup_mpic_nmi()
437 pr_err("Failed to register NMI-XMON interrupt\n"); in pmac_pic_setup_mpic_nmi()
445 int master) in pmac_setup_one_mpic() argument
447 const char *name = master ? " MPIC 1 " : " MPIC 2 "; in pmac_setup_one_mpic()
449 unsigned int flags = master ? 0 : MPIC_SECONDARY; in pmac_setup_one_mpic()
453 if (of_property_read_bool(np, "big-endian")) in pmac_setup_one_mpic()
459 if (master && (flags & MPIC_BIG_ENDIAN)) in pmac_setup_one_mpic()
474 struct device_node *np, *master = NULL, *slave = NULL; in pmac_pic_probe_mpic() local
477 for_each_node_by_type(np, "open-pic") { in pmac_pic_probe_mpic()
478 if (master == NULL && !of_property_present(np, "interrupts")) in pmac_pic_probe_mpic()
479 master = of_node_get(np); in pmac_pic_probe_mpic()
482 if (master && slave) { in pmac_pic_probe_mpic()
489 if (master == NULL && slave != NULL) { in pmac_pic_probe_mpic()
490 master = slave; in pmac_pic_probe_mpic()
495 if (master == NULL) in pmac_pic_probe_mpic()
496 return -ENODEV; in pmac_pic_probe_mpic()
498 /* Set master handler */ in pmac_pic_probe_mpic()
501 /* Setup master */ in pmac_pic_probe_mpic()
502 mpic1 = pmac_setup_one_mpic(master, 1); in pmac_pic_probe_mpic()
508 of_node_put(master); in pmac_pic_probe_mpic()
541 for_each_node_with_property(np, "interrupt-controller") { in pmac_pic_init()
542 /* Skip /chosen/interrupt-controller */ in pmac_pic_init()
558 /* We first try to detect Apple's new Core99 chipset, since mac-io in pmac_pic_init()
584 int viaint = -1; in pmacpic_find_viaint()
591 np = of_find_node_by_name(NULL, "via-pmu"); in pmacpic_find_viaint()
612 out_le32(&pmac_irq_hw[0]->enable, ppc_cached_irq_mask[0]); in pmacpic_suspend()
614 out_le32(&pmac_irq_hw[1]->enable, ppc_cached_irq_mask[1]); in pmacpic_suspend()
615 (void)in_le32(&pmac_irq_hw[0]->event); in pmacpic_suspend()
618 (void)in_le32(&pmac_irq_hw[0]->enable); in pmacpic_suspend()
627 out_le32(&pmac_irq_hw[0]->enable, 0); in pmacpic_resume()
629 out_le32(&pmac_irq_hw[1]->enable, 0); in pmacpic_resume()