mirror of
https://github.com/torvalds/linux.git
synced 2024-12-18 17:12:55 +00:00
53522982fc
Simplify the dma_get_required_mask call chain by moving it from pnv_phb to
pci_controller_ops, similar to commit 763d2d8df1
("powerpc/powernv:
Move dma_set_mask from pnv_phb to pci_controller_ops").
Previous call chain:
0) call dma_get_required_mask() (kernel/dma.c)
1) call ppc_md.dma_get_required_mask, if it exists. On powernv, that
points to pnv_dma_get_required_mask() (platforms/powernv/setup.c)
2) device is PCI, therefore call pnv_pci_dma_get_required_mask()
(platforms/powernv/pci.c)
3) call phb->dma_get_required_mask if it exists
4) it only exists in the ioda case, where it points to
pnv_pci_ioda_dma_get_required_mask() (platforms/powernv/pci-ioda.c)
New call chain:
0) call dma_get_required_mask() (kernel/dma.c)
1) device is PCI, therefore call pci_controller_ops.dma_get_required_mask
if it exists
2) in the ioda case, that points to pnv_pci_ioda_dma_get_required_mask()
(platforms/powernv/pci-ioda.c)
In the p5ioc2 case, the call chain remains the same -
dma_get_required_mask() does not find either a ppc_md call or
pci_controller_ops call, so it calls __dma_get_required_mask().
Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Reviewed-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
30 lines
585 B
C
30 lines
585 B
C
#ifndef _POWERNV_H
|
|
#define _POWERNV_H
|
|
|
|
#ifdef CONFIG_SMP
|
|
extern void pnv_smp_init(void);
|
|
#else
|
|
static inline void pnv_smp_init(void) { }
|
|
#endif
|
|
|
|
struct pci_dev;
|
|
|
|
#ifdef CONFIG_PCI
|
|
extern void pnv_pci_init(void);
|
|
extern void pnv_pci_shutdown(void);
|
|
#else
|
|
static inline void pnv_pci_init(void) { }
|
|
static inline void pnv_pci_shutdown(void) { }
|
|
#endif
|
|
|
|
extern u32 pnv_get_supported_cpuidle_states(void);
|
|
|
|
extern void pnv_lpc_init(void);
|
|
|
|
extern void opal_handle_events(uint64_t events);
|
|
extern void opal_event_shutdown(void);
|
|
|
|
bool cpu_core_split_required(void);
|
|
|
|
#endif /* _POWERNV_H */
|