Commit 0c2a8e26 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Merge bk://linuxusb@bkbits.net/pci_hp-2.5

into kroah.com:/home/linux/linux/BK/pci_hp-2.5
parents c9e54010 aeac538d
...@@ -8,13 +8,17 @@ obj-$(CONFIG_HOTPLUG_PCI) += pci_hotplug.o ...@@ -8,13 +8,17 @@ obj-$(CONFIG_HOTPLUG_PCI) += pci_hotplug.o
obj-$(CONFIG_HOTPLUG_PCI_COMPAQ) += cpqphp.o obj-$(CONFIG_HOTPLUG_PCI_COMPAQ) += cpqphp.o
obj-$(CONFIG_HOTPLUG_PCI_IBM) += ibmphp.o obj-$(CONFIG_HOTPLUG_PCI_IBM) += ibmphp.o
obj-$(CONFIG_HOTPLUG_PCI_ACPI) += acpiphp.o obj-$(CONFIG_HOTPLUG_PCI_ACPI) += acpiphp.o
obj-$(CONFIG_HOTPLUG_PCI_CPCI) += cpci_hotplug.o
obj-$(CONFIG_HOTPLUG_PCI_CPCI_ZT5550) += cpcihp_zt5550.o obj-$(CONFIG_HOTPLUG_PCI_CPCI_ZT5550) += cpcihp_zt5550.o
obj-$(CONFIG_HOTPLUG_PCI_CPCI_GENERIC) += cpcihp_generic.o obj-$(CONFIG_HOTPLUG_PCI_CPCI_GENERIC) += cpcihp_generic.o
pci_hotplug-objs := pci_hotplug_core.o \ pci_hotplug-objs := pci_hotplug_core.o \
pci_hotplug_util.o pci_hotplug_util.o
ifdef CONFIG_HOTPLUG_PCI_CPCI
pci_hotplug-objs += cpci_hotplug_core.o \
cpci_hotplug_pci.o
endif
cpqphp-objs := cpqphp_core.o \ cpqphp-objs := cpqphp_core.o \
cpqphp_ctrl.o \ cpqphp_ctrl.o \
cpqphp_proc.o \ cpqphp_proc.o \
...@@ -31,9 +35,6 @@ acpiphp-objs := acpiphp_core.o \ ...@@ -31,9 +35,6 @@ acpiphp-objs := acpiphp_core.o \
acpiphp_pci.o \ acpiphp_pci.o \
acpiphp_res.o acpiphp_res.o
cpci_hotplug-objs := cpci_hotplug_core.o \
cpci_hotplug_pci.o
ifdef CONFIG_HOTPLUG_PCI_ACPI ifdef CONFIG_HOTPLUG_PCI_ACPI
EXTRA_CFLAGS += -D_LINUX -I$(TOPDIR)/drivers/acpi EXTRA_CFLAGS += -D_LINUX -I$(TOPDIR)/drivers/acpi
ifdef CONFIG_ACPI_DEBUG ifdef CONFIG_ACPI_DEBUG
......
...@@ -891,16 +891,17 @@ cleanup_slots(void) ...@@ -891,16 +891,17 @@ cleanup_slots(void)
return; return;
} }
static int __init int __init
cpci_hotplug_init(void) cpci_hotplug_init(int debug)
{ {
spin_lock_init(&list_lock); spin_lock_init(&list_lock);
cpci_debug = debug;
info(DRIVER_DESC " version: " DRIVER_VERSION); info(DRIVER_DESC " version: " DRIVER_VERSION);
return 0; return 0;
} }
static void __exit void __exit
cpci_hotplug_exit(void) cpci_hotplug_exit(void)
{ {
/* /*
...@@ -909,14 +910,6 @@ cpci_hotplug_exit(void) ...@@ -909,14 +910,6 @@ cpci_hotplug_exit(void)
cleanup_slots(); cleanup_slots();
} }
module_init(cpci_hotplug_init);
module_exit(cpci_hotplug_exit);
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");
MODULE_PARM(cpci_debug, "i");
MODULE_PARM_DESC(cpci_debug, "Debugging mode");
EXPORT_SYMBOL_GPL(cpci_hp_register_controller); EXPORT_SYMBOL_GPL(cpci_hp_register_controller);
EXPORT_SYMBOL_GPL(cpci_hp_unregister_controller); EXPORT_SYMBOL_GPL(cpci_hp_unregister_controller);
......
...@@ -572,16 +572,16 @@ static int unconfigure_visit_pci_bus_phase2(struct pci_bus_wrapped *wrapped_bus, ...@@ -572,16 +572,16 @@ static int unconfigure_visit_pci_bus_phase2(struct pci_bus_wrapped *wrapped_bus,
} }
static struct pci_visit configure_functions = { static struct pci_visit configure_functions = {
visit_pci_dev:configure_visit_pci_dev, .visit_pci_dev = configure_visit_pci_dev,
}; };
static struct pci_visit unconfigure_functions_phase1 = { static struct pci_visit unconfigure_functions_phase1 = {
post_visit_pci_dev:unconfigure_visit_pci_dev_phase1 .post_visit_pci_dev = unconfigure_visit_pci_dev_phase1
}; };
static struct pci_visit unconfigure_functions_phase2 = { static struct pci_visit unconfigure_functions_phase2 = {
post_visit_pci_bus:unconfigure_visit_pci_bus_phase2, .post_visit_pci_bus = unconfigure_visit_pci_bus_phase2,
post_visit_pci_dev:unconfigure_visit_pci_dev_phase2 .post_visit_pci_dev = unconfigure_visit_pci_dev_phase2
}; };
......
...@@ -1240,11 +1240,11 @@ void ibmphp_free_ebda_pci_rsrc_queue (void) ...@@ -1240,11 +1240,11 @@ void ibmphp_free_ebda_pci_rsrc_queue (void)
static struct pci_device_id id_table[] __devinitdata = { static struct pci_device_id id_table[] __devinitdata = {
{ {
vendor: PCI_VENDOR_ID_IBM, .vendor = PCI_VENDOR_ID_IBM,
device: HPC_DEVICE_ID, .device = HPC_DEVICE_ID,
subvendor: PCI_VENDOR_ID_IBM, .subvendor = PCI_VENDOR_ID_IBM,
subdevice: HPC_SUBSYSTEM_ID, .subdevice = HPC_SUBSYSTEM_ID,
class: ((PCI_CLASS_SYSTEM_PCI_HOTPLUG << 8) | 0x00), .class = ((PCI_CLASS_SYSTEM_PCI_HOTPLUG << 8) | 0x00),
}, {} }, {}
}; };
...@@ -1252,9 +1252,9 @@ MODULE_DEVICE_TABLE(pci, id_table); ...@@ -1252,9 +1252,9 @@ MODULE_DEVICE_TABLE(pci, id_table);
static int ibmphp_probe (struct pci_dev *, const struct pci_device_id *); static int ibmphp_probe (struct pci_dev *, const struct pci_device_id *);
static struct pci_driver ibmphp_driver = { static struct pci_driver ibmphp_driver = {
name: "ibmphp", .name = "ibmphp",
id_table: id_table, .id_table = id_table,
probe: ibmphp_probe, .probe = ibmphp_probe,
}; };
int ibmphp_register_pci (void) int ibmphp_register_pci (void)
......
...@@ -60,8 +60,8 @@ ...@@ -60,8 +60,8 @@
/* local variables */ /* local variables */
static int debug; static int debug;
#define DRIVER_VERSION "0.4" #define DRIVER_VERSION "0.5"
#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>" #define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Scott Murray <scottm@somanetworks.com>"
#define DRIVER_DESC "PCI Hot Plug PCI Core" #define DRIVER_DESC "PCI Hot Plug PCI Core"
...@@ -89,7 +89,7 @@ static int pcihpfs_mount_count; /* times we have mounted our fs */ ...@@ -89,7 +89,7 @@ static int pcihpfs_mount_count; /* times we have mounted our fs */
static spinlock_t mount_lock; /* protects our mount_count */ static spinlock_t mount_lock; /* protects our mount_count */
static spinlock_t list_lock; static spinlock_t list_lock;
LIST_HEAD(pci_hotplug_slot_list); static LIST_HEAD(pci_hotplug_slot_list);
/* these strings match up with the values in pci_bus_speed */ /* these strings match up with the values in pci_bus_speed */
static char *pci_bus_speed_strings[] = { static char *pci_bus_speed_strings[] = {
...@@ -121,6 +121,14 @@ static struct proc_dir_entry *slotdir = NULL; ...@@ -121,6 +121,14 @@ static struct proc_dir_entry *slotdir = NULL;
static const char *slotdir_name = "slots"; static const char *slotdir_name = "slots";
#endif #endif
#ifdef CONFIG_HOTPLUG_PCI_CPCI
extern int cpci_hotplug_init(int debug);
extern void cpci_hotplug_exit(void);
#else
static inline int cpci_hotplug_init(int debug) { return 0; }
static inline void cpci_hotplug_exit(void) { }
#endif
static struct inode *pcihpfs_get_inode (struct super_block *sb, int mode, dev_t dev) static struct inode *pcihpfs_get_inode (struct super_block *sb, int mode, dev_t dev)
{ {
struct inode *inode = new_inode(sb); struct inode *inode = new_inode(sb);
...@@ -311,19 +319,19 @@ static struct file_operations presence_file_operations = { ...@@ -311,19 +319,19 @@ static struct file_operations presence_file_operations = {
/* file ops for the "max bus speed" files */ /* file ops for the "max bus speed" files */
static ssize_t max_bus_speed_read_file (struct file *file, char *buf, size_t count, loff_t *offset); static ssize_t max_bus_speed_read_file (struct file *file, char *buf, size_t count, loff_t *offset);
static struct file_operations max_bus_speed_file_operations = { static struct file_operations max_bus_speed_file_operations = {
read: max_bus_speed_read_file, .read = max_bus_speed_read_file,
write: default_write_file, .write = default_write_file,
open: default_open, .open = default_open,
llseek: default_file_lseek, .llseek = default_file_lseek,
}; };
/* file ops for the "current bus speed" files */ /* file ops for the "current bus speed" files */
static ssize_t cur_bus_speed_read_file (struct file *file, char *buf, size_t count, loff_t *offset); static ssize_t cur_bus_speed_read_file (struct file *file, char *buf, size_t count, loff_t *offset);
static struct file_operations cur_bus_speed_file_operations = { static struct file_operations cur_bus_speed_file_operations = {
read: cur_bus_speed_read_file, .read = cur_bus_speed_read_file,
write: default_write_file, .write = default_write_file,
open: default_open, .open = default_open,
llseek: default_file_lseek, .llseek = default_file_lseek,
}; };
/* file ops for the "test" files */ /* file ops for the "test" files */
...@@ -1273,19 +1281,30 @@ static int __init pci_hotplug_init (void) ...@@ -1273,19 +1281,30 @@ static int __init pci_hotplug_init (void)
goto exit; goto exit;
} }
result = cpci_hotplug_init(debug);
if (result) {
err ("cpci_hotplug_init with error %d\n", result);
goto error_fs;
}
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
/* create mount point for pcihpfs */ /* create mount point for pcihpfs */
slotdir = proc_mkdir(slotdir_name, proc_bus_pci_dir); slotdir = proc_mkdir(slotdir_name, proc_bus_pci_dir);
#endif #endif
info (DRIVER_DESC " version: " DRIVER_VERSION "\n"); info (DRIVER_DESC " version: " DRIVER_VERSION "\n");
goto exit;
error_fs:
unregister_filesystem(&pcihpfs_type);
exit: exit:
return result; return result;
} }
static void __exit pci_hotplug_exit (void) static void __exit pci_hotplug_exit (void)
{ {
cpci_hotplug_exit();
unregister_filesystem(&pcihpfs_type); unregister_filesystem(&pcihpfs_type);
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment