Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/powerpc/sysdev/mpic.h
26424 views
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
10
extern void mpic_msi_reserve_hwirq(struct mpic *mpic, irq_hw_number_t hwirq);
11
int __init mpic_msi_init_allocator(struct mpic *mpic);
12
int __init mpic_u3msi_init(struct mpic *mpic);
13
#else
14
static inline void mpic_msi_reserve_hwirq(struct mpic *mpic,
15
irq_hw_number_t hwirq)
16
{
17
return;
18
}
19
20
static 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)
27
int __init mpic_pasemi_msi_init(struct mpic *mpic);
28
#else
29
static inline int mpic_pasemi_msi_init(struct mpic *mpic) { return -1; }
30
#endif
31
32
extern int mpic_set_irq_type(struct irq_data *d, unsigned int flow_type);
33
extern void mpic_set_vector(unsigned int virq, unsigned int vector);
34
extern int mpic_set_affinity(struct irq_data *d,
35
const struct cpumask *cpumask, bool force);
36
extern void mpic_reset_core(int cpu);
37
38
#ifdef CONFIG_FSL_SOC
39
extern int mpic_map_error_int(struct mpic *mpic, unsigned int virq, irq_hw_number_t hw);
40
void __init mpic_err_int_init(struct mpic *mpic, irq_hw_number_t irqnum);
41
int __init mpic_setup_error_int(struct mpic *mpic, int intvec);
42
#else
43
static inline int mpic_map_error_int(struct mpic *mpic, unsigned int virq, irq_hw_number_t hw)
44
{
45
return 0;
46
}
47
48
49
static inline void mpic_err_int_init(struct mpic *mpic, irq_hw_number_t irqnum)
50
{
51
return;
52
}
53
54
static 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
62