PCI/hotplug: pnv_php: export symbols and move struct types needed by cxl
The cxl driver will use infrastructure from pnv_php to handle device tree updates when switching bi-modal CAPI cards into CAPI mode. To enable this, export pnv_php_find_slot() and pnv_php_set_slot_power_state(), and add corresponding declarations, as well as the definition of struct pnv_php_slot, to asm/pnv-pci.h. Cc: Gavin Shan <gwshan@linux.vnet.ibm.com> Cc: linux-pci@vger.kernel.org Cc: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Ian Munsie <imunsie@au1.ibm.com> Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
此提交包含在:
@@ -11,6 +11,7 @@
|
||||
#define _ASM_PNV_PCI_H
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <linux/pci_hotplug.h>
|
||||
#include <misc/cxl-base.h>
|
||||
#include <asm/opal-api.h>
|
||||
|
||||
@@ -47,4 +48,31 @@ void pnv_cxl_phb_set_peer_afu(struct pci_dev *dev, struct cxl_afu *afu);
|
||||
|
||||
#endif
|
||||
|
||||
struct pnv_php_slot {
|
||||
struct hotplug_slot slot;
|
||||
struct hotplug_slot_info slot_info;
|
||||
uint64_t id;
|
||||
char *name;
|
||||
int slot_no;
|
||||
struct kref kref;
|
||||
#define PNV_PHP_STATE_INITIALIZED 0
|
||||
#define PNV_PHP_STATE_REGISTERED 1
|
||||
#define PNV_PHP_STATE_POPULATED 2
|
||||
#define PNV_PHP_STATE_OFFLINE 3
|
||||
int state;
|
||||
struct device_node *dn;
|
||||
struct pci_dev *pdev;
|
||||
struct pci_bus *bus;
|
||||
bool power_state_check;
|
||||
void *fdt;
|
||||
void *dt;
|
||||
struct of_changeset ocs;
|
||||
struct pnv_php_slot *parent;
|
||||
struct list_head children;
|
||||
struct list_head link;
|
||||
};
|
||||
extern struct pnv_php_slot *pnv_php_find_slot(struct device_node *dn);
|
||||
extern int pnv_php_set_slot_power_state(struct hotplug_slot *slot,
|
||||
uint8_t state);
|
||||
|
||||
#endif
|
||||
|
新增問題並參考
封鎖使用者