summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <greg@kroah.com>2002-12-01 07:09:28 -0800
committerGreg Kroah-Hartman <greg@kroah.com>2002-12-01 07:09:28 -0800
commit9c076a26ed265ef65cbf14ddb21e1ad55844fd03 (patch)
tree79cfabc9364169493913b34f595633a4b7272487
parent114d2a8e848612ae717ab70d2834f35c812f13d1 (diff)
parent412f39a58350dc99e05bd283b5c88cd378ad444b (diff)
Merge kroah.com:/home/linux/linux/BK/bleeding-2.5
into kroah.com:/home/linux/linux/BK/pci_hp-2.5
-rw-r--r--drivers/hotplug/Makefile9
-rw-r--r--drivers/hotplug/cpci_hotplug_core.c15
-rw-r--r--drivers/hotplug/cpci_hotplug_pci.c8
-rw-r--r--drivers/hotplug/ibmphp_ebda.c16
-rw-r--r--drivers/hotplug/pci_hotplug_core.c43
-rw-r--r--include/linux/pci.h9
6 files changed, 56 insertions, 44 deletions
diff --git a/drivers/hotplug/Makefile b/drivers/hotplug/Makefile
index 76edd29cfd10..817fedc35ef5 100644
--- a/drivers/hotplug/Makefile
+++ b/drivers/hotplug/Makefile
@@ -8,13 +8,17 @@ obj-$(CONFIG_HOTPLUG_PCI) += pci_hotplug.o
obj-$(CONFIG_HOTPLUG_PCI_COMPAQ) += cpqphp.o
obj-$(CONFIG_HOTPLUG_PCI_IBM) += ibmphp.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_GENERIC) += cpcihp_generic.o
pci_hotplug-objs := pci_hotplug_core.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_ctrl.o \
cpqphp_proc.o \
@@ -31,9 +35,6 @@ acpiphp-objs := acpiphp_core.o \
acpiphp_pci.o \
acpiphp_res.o
-cpci_hotplug-objs := cpci_hotplug_core.o \
- cpci_hotplug_pci.o
-
ifdef CONFIG_HOTPLUG_PCI_ACPI
EXTRA_CFLAGS += -D_LINUX -I$(TOPDIR)/drivers/acpi
ifdef CONFIG_ACPI_DEBUG
diff --git a/drivers/hotplug/cpci_hotplug_core.c b/drivers/hotplug/cpci_hotplug_core.c
index b2cb53f01bac..3f5b3eac7a2e 100644
--- a/drivers/hotplug/cpci_hotplug_core.c
+++ b/drivers/hotplug/cpci_hotplug_core.c
@@ -891,16 +891,17 @@ cleanup_slots(void)
return;
}
-static int __init
-cpci_hotplug_init(void)
+int __init
+cpci_hotplug_init(int debug)
{
spin_lock_init(&list_lock);
+ cpci_debug = debug;
info(DRIVER_DESC " version: " DRIVER_VERSION);
return 0;
}
-static void __exit
+void __exit
cpci_hotplug_exit(void)
{
/*
@@ -909,14 +910,6 @@ cpci_hotplug_exit(void)
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_unregister_controller);
diff --git a/drivers/hotplug/cpci_hotplug_pci.c b/drivers/hotplug/cpci_hotplug_pci.c
index 7a06eca3a807..a82a3175b7c1 100644
--- a/drivers/hotplug/cpci_hotplug_pci.c
+++ b/drivers/hotplug/cpci_hotplug_pci.c
@@ -572,16 +572,16 @@ static int unconfigure_visit_pci_bus_phase2(struct pci_bus_wrapped *wrapped_bus,
}
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 = {
- 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 = {
- post_visit_pci_bus:unconfigure_visit_pci_bus_phase2,
- post_visit_pci_dev:unconfigure_visit_pci_dev_phase2
+ .post_visit_pci_bus = unconfigure_visit_pci_bus_phase2,
+ .post_visit_pci_dev = unconfigure_visit_pci_dev_phase2
};
diff --git a/drivers/hotplug/ibmphp_ebda.c b/drivers/hotplug/ibmphp_ebda.c
index 86a88433da5f..0e36421e3e0b 100644
--- a/drivers/hotplug/ibmphp_ebda.c
+++ b/drivers/hotplug/ibmphp_ebda.c
@@ -1240,11 +1240,11 @@ void ibmphp_free_ebda_pci_rsrc_queue (void)
static struct pci_device_id id_table[] __devinitdata = {
{
- vendor: PCI_VENDOR_ID_IBM,
- device: HPC_DEVICE_ID,
- subvendor: PCI_VENDOR_ID_IBM,
- subdevice: HPC_SUBSYSTEM_ID,
- class: ((PCI_CLASS_SYSTEM_PCI_HOTPLUG << 8) | 0x00),
+ .vendor = PCI_VENDOR_ID_IBM,
+ .device = HPC_DEVICE_ID,
+ .subvendor = PCI_VENDOR_ID_IBM,
+ .subdevice = HPC_SUBSYSTEM_ID,
+ .class = ((PCI_CLASS_SYSTEM_PCI_HOTPLUG << 8) | 0x00),
}, {}
};
@@ -1252,9 +1252,9 @@ MODULE_DEVICE_TABLE(pci, id_table);
static int ibmphp_probe (struct pci_dev *, const struct pci_device_id *);
static struct pci_driver ibmphp_driver = {
- name: "ibmphp",
- id_table: id_table,
- probe: ibmphp_probe,
+ .name = "ibmphp",
+ .id_table = id_table,
+ .probe = ibmphp_probe,
};
int ibmphp_register_pci (void)
diff --git a/drivers/hotplug/pci_hotplug_core.c b/drivers/hotplug/pci_hotplug_core.c
index b6ab87135c30..b03104c8edd1 100644
--- a/drivers/hotplug/pci_hotplug_core.c
+++ b/drivers/hotplug/pci_hotplug_core.c
@@ -60,8 +60,8 @@
/* local variables */
static int debug;
-#define DRIVER_VERSION "0.4"
-#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>"
+#define DRIVER_VERSION "0.5"
+#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Scott Murray <scottm@somanetworks.com>"
#define DRIVER_DESC "PCI Hot Plug PCI Core"
@@ -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 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 */
static char *pci_bus_speed_strings[] = {
@@ -121,6 +121,14 @@ static struct proc_dir_entry *slotdir = NULL;
static const char *slotdir_name = "slots";
#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)
{
struct inode *inode = new_inode(sb);
@@ -311,19 +319,19 @@ static struct file_operations presence_file_operations = {
/* 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 struct file_operations max_bus_speed_file_operations = {
- read: max_bus_speed_read_file,
- write: default_write_file,
- open: default_open,
- llseek: default_file_lseek,
+ .read = max_bus_speed_read_file,
+ .write = default_write_file,
+ .open = default_open,
+ .llseek = default_file_lseek,
};
/* 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 struct file_operations cur_bus_speed_file_operations = {
- read: cur_bus_speed_read_file,
- write: default_write_file,
- open: default_open,
- llseek: default_file_lseek,
+ .read = cur_bus_speed_read_file,
+ .write = default_write_file,
+ .open = default_open,
+ .llseek = default_file_lseek,
};
/* file ops for the "test" files */
@@ -1273,19 +1281,30 @@ static int __init pci_hotplug_init (void)
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
/* create mount point for pcihpfs */
slotdir = proc_mkdir(slotdir_name, proc_bus_pci_dir);
#endif
info (DRIVER_DESC " version: " DRIVER_VERSION "\n");
-
+ goto exit;
+
+error_fs:
+ unregister_filesystem(&pcihpfs_type);
exit:
return result;
}
static void __exit pci_hotplug_exit (void)
{
+ cpci_hotplug_exit();
+
unregister_filesystem(&pcihpfs_type);
#ifdef CONFIG_PROC_FS
diff --git a/include/linux/pci.h b/include/linux/pci.h
index eede29dc50ad..557b17d959c1 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -383,7 +383,6 @@ struct pci_dev {
u8 rom_base_reg; /* which config register controls the ROM */
struct pci_driver *driver; /* which driver has allocated this device */
- void *driver_data; /* data private to the driver */
u64 dma_mask; /* Mask of the bits of bus address this
device implements. Normally this is
0xffffffff. You only need to change
@@ -787,17 +786,17 @@ static inline int pci_module_init(struct pci_driver *drv)
pci_resource_start((dev),(bar)) + 1))
/* Similar to the helpers above, these manipulate per-pci_dev
- * driver-specific data. Currently stored as pci_dev::driver_data,
- * a void pointer, but it is not present on older kernels.
+ * driver-specific data. They are really just a wrapper around
+ * the generic device structure functions of these calls.
*/
static inline void *pci_get_drvdata (struct pci_dev *pdev)
{
- return pdev->driver_data;
+ return dev_get_drvdata(&pdev->dev);
}
static inline void pci_set_drvdata (struct pci_dev *pdev, void *data)
{
- pdev->driver_data = data;
+ dev_set_drvdata(&pdev->dev, data);
}
/*