Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4eb6cdb authored by Paul Gortmaker's avatar Paul Gortmaker Committed by Bjorn Helgaas
Browse files

PCI: Add builtin_pci_driver() to avoid registration boilerplate



In f309d444 ("platform_device: better support builtin boilerplate
avoidance"), we introduced the builtin_driver() macro.

Here we use that support and extend it to PCI driver registration, so where
a driver is clearly non-modular and builtin-only, we can register it in a
similar fashion.  Existing code that is clearly non-modular can be updated
with the simple mapping of

  module_pci_driver(...)  ---> builtin_pci_driver(...)

We've essentially cloned the former to make the latter, and taken out the
remove/module_exit parts since those never get used in a non-modular build
of the code.

Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 9222097f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1192,6 +1192,17 @@ void pci_unregister_driver(struct pci_driver *dev);
	module_driver(__pci_driver, pci_register_driver, \
		       pci_unregister_driver)

/**
 * builtin_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 their
 * init code. This eliminates a lot of boilerplate. Each driver may only
 * use this macro once, and calling it replaces device_initcall(...)
 */
#define builtin_pci_driver(__pci_driver) \
	builtin_driver(__pci_driver, pci_register_driver)

struct pci_driver *pci_dev_driver(const struct pci_dev *dev);
int pci_add_dynid(struct pci_driver *drv,
		  unsigned int vendor, unsigned int device,