[POWERPC] MPIC U3/U4 MSI backend
MPIC U3/U4 MSI backend. Based on code from Segher, heavily hacked by me. This only deals with MSI on U3/U4 MPICs, aka. CPC 9x5. If we find a U3/U4 then we enable this backend, ie. take over the ppc_md MSI hooks. We might need more elaborate logic in future to decide which backend is enabled. We need our own irq_chip so that we can do MSI masking/unmasking on the device itself. We also need to mask explicitly on shutdown to make sure we don't get bitten by lazy-disable semantics. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:

committed by
Paul Mackerras

parent
a7de7c7422
commit
05af7bd2d7
@@ -16,12 +16,23 @@ extern void mpic_msi_reserve_hwirq(struct mpic *mpic, irq_hw_number_t hwirq);
|
||||
extern int mpic_msi_init_allocator(struct mpic *mpic);
|
||||
extern irq_hw_number_t mpic_msi_alloc_hwirqs(struct mpic *mpic, int num);
|
||||
extern void mpic_msi_free_hwirqs(struct mpic *mpic, int offset, int num);
|
||||
extern int mpic_u3msi_init(struct mpic *mpic);
|
||||
#else
|
||||
static inline void mpic_msi_reserve_hwirq(struct mpic *mpic,
|
||||
irq_hw_number_t hwirq)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline int mpic_u3msi_init(struct mpic *mpic)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
extern int mpic_set_irq_type(unsigned int virq, unsigned int flow_type);
|
||||
extern void mpic_end_irq(unsigned int irq);
|
||||
extern void mpic_mask_irq(unsigned int irq);
|
||||
extern void mpic_unmask_irq(unsigned int irq);
|
||||
|
||||
#endif /* _POWERPC_SYSDEV_MPIC_H */
|
||||
|
Reference in New Issue
Block a user