mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
powerpc/eeh: Rework eeh_ops->probe()
With the EEH early probe now being pseries specific there's no need for eeh_ops->probe() to take a pci_dn. Instead, we can make it take a pci_dev and use the probe function to map a pci_dev to an eeh_dev. This allows the platform to implement it's own method for finding (or creating) an eeh_dev for a given pci_dev which also removes a use of pci_dn in generic EEH code. This patch also renames eeh_device_add_late() to eeh_device_probe(). This better reflects what it does does and removes the last vestiges of the early/late EEH probe split. Reviewed-by: Sam Bobroff <sbobroff@linux.ibm.com> Signed-off-by: Oliver O'Halloran <oohall@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200306073904.4737-6-oohall@gmail.com
This commit is contained in:
parent
b6eebb093c
commit
e86350f70a
4 changed files with 63 additions and 42 deletions
|
@ -215,7 +215,7 @@ enum {
|
|||
struct eeh_ops {
|
||||
char *name;
|
||||
int (*init)(void);
|
||||
void* (*probe)(struct pci_dn *pdn, void *data);
|
||||
struct eeh_dev *(*probe)(struct pci_dev *pdev);
|
||||
int (*set_option)(struct eeh_pe *pe, int option);
|
||||
int (*get_pe_addr)(struct eeh_pe *pe);
|
||||
int (*get_state)(struct eeh_pe *pe, int *delay);
|
||||
|
@ -301,7 +301,7 @@ int __exit eeh_ops_unregister(const char *name);
|
|||
int eeh_check_failure(const volatile void __iomem *token);
|
||||
int eeh_dev_check_failure(struct eeh_dev *edev);
|
||||
void eeh_addr_cache_init(void);
|
||||
void eeh_add_device_late(struct pci_dev *);
|
||||
void eeh_probe_device(struct pci_dev *pdev);
|
||||
void eeh_remove_device(struct pci_dev *);
|
||||
int eeh_unfreeze_pe(struct eeh_pe *pe);
|
||||
int eeh_pe_reset_and_recover(struct eeh_pe *pe);
|
||||
|
@ -356,7 +356,7 @@ static inline int eeh_check_failure(const volatile void __iomem *token)
|
|||
|
||||
static inline void eeh_addr_cache_init(void) { }
|
||||
|
||||
static inline void eeh_add_device_late(struct pci_dev *dev) { }
|
||||
static inline void eeh_probe_device(struct pci_dev *dev) { }
|
||||
|
||||
static inline void eeh_remove_device(struct pci_dev *dev) { }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue