PCI: Add helper macro for pci_register_driver boilerplate
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>
This commit is contained in:
parent
e250b34e57
commit
aad4f4000c
|
@ -946,6 +946,19 @@ int __must_check __pci_register_driver(struct pci_driver *, struct module *,
|
||||||
__pci_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
|
__pci_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
|
||||||
|
|
||||||
void pci_unregister_driver(struct pci_driver *dev);
|
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);
|
void pci_remove_behind_bridge(struct pci_dev *dev);
|
||||||
struct pci_driver *pci_dev_driver(const struct pci_dev *dev);
|
struct pci_driver *pci_dev_driver(const struct pci_dev *dev);
|
||||||
int pci_add_dynid(struct pci_driver *drv,
|
int pci_add_dynid(struct pci_driver *drv,
|
||||||
|
|
Loading…
Reference in New Issue