From: Greg KH <greg@kroah.com>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: linux-pci@vger.kernel.org, Lars-Peter Clausen <lars@metafoo.de>,
Felipe Balbi <balbi@ti.com>
Subject: [PATCH] PCI: Add helper macro for pci_register_driver boilerplate
Date: Fri, 18 Nov 2011 10:12:49 -0800 [thread overview]
Message-ID: <20111118181249.GA29495@kroah.com> (raw)
From: Greg Kroah-Hartman <gregkh@suse.de>
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>
---
Jesse, I've added the same type of macros for i2c, spi, and usb to my
driver-core tree, and converted a number of drivers to these new macros.
If you give me the ack, I can add this patch to my tree as well.
I'll follow up this patch with an example showing how it works.
Comments?
include/linux/pci.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -941,6 +941,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,
next reply other threads:[~2011-11-18 18:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-18 18:12 Greg KH [this message]
2011-11-18 18:14 ` [PATCH] DWC3: use module_pci_driver Greg KH
2011-11-18 19:04 ` Felipe Balbi
2011-11-18 19:11 ` Greg KH
2011-11-18 19:22 ` Felipe Balbi
2011-12-05 18:28 ` [PATCH] PCI: Add helper macro for pci_register_driver boilerplate Jesse Barnes
2011-12-05 18:38 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111118181249.GA29495@kroah.com \
--to=greg@kroah.com \
--cc=balbi@ti.com \
--cc=jbarnes@virtuousgeek.org \
--cc=lars@metafoo.de \
--cc=linux-pci@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.