s390/pci: PCI hotplug support via SCLP
Add SCLP PCI configure/deconfigure and implement a PCI hotplug controller (s390_pci_hpc). The hotplug controller creates a slot for every PCI function in stand-by or configured state. The PCI functions are named after the PCI function ID (fid). By writing to the power attribute in /sys/bus/pci/slots/<fid>/power the PCI function is moved to stand-by or configured state. If moved to the configured state the device is automatically scanned by the s390 PCI layer. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:

committed by
Martin Schwidefsky

parent
cbc0dd1f85
commit
7441b0627e
@@ -95,6 +95,11 @@ struct zpci_dev {
|
||||
enum pci_bus_speed max_bus_speed;
|
||||
};
|
||||
|
||||
struct pci_hp_callback_ops {
|
||||
int (*create_slot) (struct zpci_dev *zdev);
|
||||
void (*remove_slot) (struct zpci_dev *zdev);
|
||||
};
|
||||
|
||||
static inline bool zdev_enabled(struct zpci_dev *zdev)
|
||||
{
|
||||
return (zdev->fh & (1UL << 31)) ? true : false;
|
||||
@@ -140,4 +145,10 @@ bool zpci_fid_present(u32);
|
||||
int zpci_dma_init(void);
|
||||
void zpci_dma_exit(void);
|
||||
|
||||
/* Hotplug */
|
||||
extern struct mutex zpci_list_lock;
|
||||
extern struct list_head zpci_list;
|
||||
extern struct pci_hp_callback_ops hotplug_ops;
|
||||
extern unsigned int pci_probe;
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user