48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
From: Greg Kroah-Hartman <gregkh@suse.de>
|
|
Date: Fri, 18 Nov 2011 10:12:49 -0800
|
|
Subject: PCI: Add helper macro for pci_register_driver boilerplate
|
|
|
|
commit aad4f4000cecec9c80b5f9aff91043dc104d61a0 upstream.
|
|
|
|
This patch introduces the module_pci_driver macro which is a convenience
|
|
macro for PCI driver modules similar to module_platform_driver. It is
|
|
intended to be used by drivers which init/exit section does nothing but
|
|
register/unregister the PCI driver. By using this macro it is possible
|
|
to eliminate a few lines of boilerplate code per PCI driver.
|
|
|
|
Based on work done by Lars-Peter Clausen <lars@metafoo.de> for other
|
|
busses (i2c and spi).
|
|
|
|
Cc: Lars-Peter Clausen <lars@metafoo.de>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
include/linux/pci.h | 13 +++++++++++++
|
|
1 file changed, 13 insertions(+)
|
|
|
|
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
|
index a16b1df..d4afd70 100644
|
|
--- a/include/linux/pci.h
|
|
+++ b/include/linux/pci.h
|
|
@@ -946,6 +946,19 @@ int __must_check __pci_register_driver(struct pci_driver *, struct module *,
|
|
__pci_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
|
|
|
|
void pci_unregister_driver(struct pci_driver *dev);
|
|
+
|
|
+/**
|
|
+ * module_pci_driver() - Helper macro for registering a PCI driver
|
|
+ * @__pci_driver: pci_driver struct
|
|
+ *
|
|
+ * Helper macro for PCI drivers which do not do anything special in module
|
|
+ * init/exit. This eliminates a lot of boilerplate. Each module may only
|
|
+ * use this macro once, and calling it replaces module_init() and module_exit()
|
|
+ */
|
|
+#define module_pci_driver(__pci_driver) \
|
|
+ module_driver(__pci_driver, pci_register_driver, \
|
|
+ pci_unregister_driver)
|
|
+
|
|
void pci_remove_behind_bridge(struct pci_dev *dev);
|
|
struct pci_driver *pci_dev_driver(const struct pci_dev *dev);
|
|
int pci_add_dynid(struct pci_driver *drv,
|