• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/powerpc/platforms/ps3/

Lines Matching refs:virq

57  * implementation equates HV plug value to Linux virq value, constrains each
97 * @virq: The assigned Linux virq.
102 static void ps3_chip_mask(unsigned int virq)
104 struct ps3_private *pd = get_irq_chip_data(virq);
107 pr_debug("%s:%d: thread_id %llu, virq %d\n", __func__, __LINE__,
108 pd->thread_id, virq);
111 clear_bit(63 - virq, &pd->bmp.mask);
118 * @virq: The assigned Linux virq.
123 static void ps3_chip_unmask(unsigned int virq)
125 struct ps3_private *pd = get_irq_chip_data(virq);
128 pr_debug("%s:%d: thread_id %llu, virq %d\n", __func__, __LINE__,
129 pd->thread_id, virq);
132 set_bit(63 - virq, &pd->bmp.mask);
139 * @virq: The assigned Linux virq.
144 static void ps3_chip_eoi(unsigned int virq)
146 const struct ps3_private *pd = get_irq_chip_data(virq);
147 lv1_end_of_interrupt_ext(pd->ppe_id, pd->thread_id, virq);
162 * ps3_virq_setup - virq related setup.
166 * @virq: The assigned Linux virq.
168 * Calls irq_create_mapping() to get a virq and sets the chip data to
173 unsigned int *virq)
185 *virq = irq_create_mapping(NULL, outlet);
187 if (*virq == NO_IRQ) {
194 pr_debug("%s:%d: outlet %lu => cpu %u, virq %u\n", __func__, __LINE__,
195 outlet, cpu, *virq);
197 result = set_irq_chip_data(*virq, pd);
205 ps3_chip_mask(*virq);
210 irq_dispose_mapping(*virq);
216 * ps3_virq_destroy - virq related teardown.
217 * @virq: The assigned Linux virq.
219 * Clears chip data and calls irq_dispose_mapping() for the virq.
222 static int ps3_virq_destroy(unsigned int virq)
224 const struct ps3_private *pd = get_irq_chip_data(virq);
226 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, virq %u\n", __func__,
227 __LINE__, pd->ppe_id, pd->thread_id, virq);
229 set_irq_chip_data(virq, NULL);
230 irq_dispose_mapping(virq);
237 * ps3_irq_plug_setup - Generic outlet and virq related setup.
241 * @virq: The assigned Linux virq.
243 * Sets up virq and connects the irq plug.
247 unsigned int *virq)
252 result = ps3_virq_setup(cpu, outlet, virq);
259 pd = get_irq_chip_data(*virq);
261 /* Binds outlet to cpu + virq. */
263 result = lv1_connect_irq_plug_ext(pd->ppe_id, pd->thread_id, *virq,
276 ps3_virq_destroy(*virq);
283 * ps3_irq_plug_destroy - Generic outlet and virq related teardown.
284 * @virq: The assigned Linux virq.
286 * Disconnects the irq plug and tears down virq.
291 int ps3_irq_plug_destroy(unsigned int virq)
294 const struct ps3_private *pd = get_irq_chip_data(virq);
296 pr_debug("%s:%d: ppe_id %llu, thread_id %llu, virq %u\n", __func__,
297 __LINE__, pd->ppe_id, pd->thread_id, virq);
299 ps3_chip_mask(virq);
301 result = lv1_disconnect_irq_plug_ext(pd->ppe_id, pd->thread_id, virq);
307 ps3_virq_destroy(virq);
317 * @virq: The assigned Linux virq.
319 * The virq can be used with lv1_connect_interrupt_event_receive_port() to
324 int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq)
334 *virq = NO_IRQ;
338 result = ps3_irq_plug_setup(cpu, outlet, virq);
347 * @virq: The assigned Linux virq.
354 int ps3_event_receive_port_destroy(unsigned int virq)
358 pr_debug(" -> %s:%d virq %u\n", __func__, __LINE__, virq);
360 ps3_chip_mask(virq);
362 result = lv1_destruct_event_receive_port(virq_to_hw(virq));
377 int ps3_send_event_locally(unsigned int virq)
379 return lv1_send_event_locally(virq_to_hw(virq));
387 * @virq: The assigned Linux virq.
394 enum ps3_cpu_binding cpu, unsigned int *virq)
400 result = ps3_event_receive_port_setup(cpu, virq);
406 dev->dev_id, virq_to_hw(*virq), dev->interrupt_id);
412 ps3_event_receive_port_destroy(*virq);
413 *virq = NO_IRQ;
417 pr_debug("%s:%d: interrupt_id %u, virq %u\n", __func__, __LINE__,
418 dev->interrupt_id, *virq);
425 unsigned int virq)
431 pr_debug(" -> %s:%d: interrupt_id %u, virq %u\n", __func__, __LINE__,
432 dev->interrupt_id, virq);
435 dev->dev_id, virq_to_hw(virq), dev->interrupt_id);
442 result = ps3_event_receive_port_destroy(virq);
450 result = ps3_virq_destroy(virq);
463 * @virq: The assigned Linux virq.
470 unsigned int *virq)
483 result = ps3_irq_plug_setup(cpu, outlet, virq);
490 int ps3_io_irq_destroy(unsigned int virq)
493 unsigned long outlet = virq_to_hw(virq);
495 ps3_chip_mask(virq);
502 result = ps3_irq_plug_destroy(virq);
516 * ps3_vuart_irq_setup - Setup the system virtual uart virq.
520 * @virq: The assigned Linux virq.
527 unsigned int *virq)
545 result = ps3_irq_plug_setup(cpu, outlet, virq);
552 int ps3_vuart_irq_destroy(unsigned int virq)
556 ps3_chip_mask(virq);
565 result = ps3_irq_plug_destroy(virq);
573 * ps3_spe_irq_setup - Setup an spe virq.
578 * @virq: The assigned Linux virq.
583 unsigned int class, unsigned int *virq)
598 result = ps3_irq_plug_setup(cpu, outlet, virq);
604 int ps3_spe_irq_destroy(unsigned int virq)
608 ps3_chip_mask(virq);
610 result = ps3_irq_plug_destroy(virq);
662 static void ps3_host_unmap(struct irq_host *h, unsigned int virq)
664 set_irq_chip_data(virq, NULL);
667 static int ps3_host_map(struct irq_host *h, unsigned int virq,
670 pr_debug("%s:%d: hwirq %lu, virq %u\n", __func__, __LINE__, hwirq,
671 virq);
673 set_irq_chip_and_handler(virq, &ps3_irq_chip, handle_fasteoi_irq);
690 void __init ps3_register_ipi_debug_brk(unsigned int cpu, unsigned int virq)
694 pd->bmp.ipi_debug_brk_mask = 0x8000000000000000UL >> virq;
696 pr_debug("%s:%d: cpu %u, virq %u, mask %llxh\n", __func__, __LINE__,
697 cpu, virq, pd->bmp.ipi_debug_brk_mask);