linux/arch/powerpc/sysdev/mpic.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2#ifndef _POWERPC_SYSDEV_MPIC_H
   3#define _POWERPC_SYSDEV_MPIC_H
   4
   5/*
   6 * Copyright 2006-2007, Michael Ellerman, IBM Corporation.
   7 */
   8
   9#ifdef CONFIG_PCI_MSI
  10extern void mpic_msi_reserve_hwirq(struct mpic *mpic, irq_hw_number_t hwirq);
  11extern int mpic_msi_init_allocator(struct mpic *mpic);
  12extern int mpic_u3msi_init(struct mpic *mpic);
  13#else
  14static inline void mpic_msi_reserve_hwirq(struct mpic *mpic,
  15                                          irq_hw_number_t hwirq)
  16{
  17        return;
  18}
  19
  20static inline int mpic_u3msi_init(struct mpic *mpic)
  21{
  22        return -1;
  23}
  24#endif
  25
  26#if defined(CONFIG_PCI_MSI) && defined(CONFIG_PPC_PASEMI)
  27int mpic_pasemi_msi_init(struct mpic *mpic);
  28#else
  29static inline int mpic_pasemi_msi_init(struct mpic *mpic) { return -1; }
  30#endif
  31
  32extern int mpic_set_irq_type(struct irq_data *d, unsigned int flow_type);
  33extern void mpic_set_vector(unsigned int virq, unsigned int vector);
  34extern int mpic_set_affinity(struct irq_data *d,
  35                             const struct cpumask *cpumask, bool force);
  36extern void mpic_reset_core(int cpu);
  37
  38#ifdef CONFIG_FSL_SOC
  39extern int mpic_map_error_int(struct mpic *mpic, unsigned int virq, irq_hw_number_t  hw);
  40extern void mpic_err_int_init(struct mpic *mpic, irq_hw_number_t irqnum);
  41extern int mpic_setup_error_int(struct mpic *mpic, int intvec);
  42#else
  43static inline int mpic_map_error_int(struct mpic *mpic, unsigned int virq, irq_hw_number_t  hw)
  44{
  45        return 0;
  46}
  47
  48
  49static inline void mpic_err_int_init(struct mpic *mpic, irq_hw_number_t irqnum)
  50{
  51        return;
  52}
  53
  54static inline int mpic_setup_error_int(struct mpic *mpic, int intvec)
  55{
  56        return -1;
  57}
  58#endif
  59
  60#endif /* _POWERPC_SYSDEV_MPIC_H */
  61