diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2016-05-09 19:59:55 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-05-11 07:46:49 -0400 |
commit | 6a5ead91d45d091f6d60b20d47e595a1b9e25d67 (patch) | |
tree | b4632a79714d958405d95a8657640df89790deb1 | |
parent | 9697643ff3edca036e8843235cd6e4d598a50e63 (diff) |
gpio: sodaville: make it explicitly non-modular
The Kconfig currently controlling compilation of this code is:
drivers/gpio/Kconfig:config GPIO_SODAVILLE
drivers/gpio/Kconfig: bool "Intel Sodaville GPIO support"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, and it allows us to drop the ".remove"
code for non-modular drivers.
Since module_pci_driver() uses the same init level as the
builtin_pci_driver() does, there is no init ordering change
caused by this commit.
We don't replace module.h with init.h since the file already has that.
We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.
Cc: Hans J. Koch <hjk@linutronix.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/gpio/gpio-sodaville.c | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/drivers/gpio/gpio-sodaville.c b/drivers/gpio/gpio-sodaville.c index e3cb6772f6ec..7da9e6c4546a 100644 --- a/drivers/gpio/gpio-sodaville.c +++ b/drivers/gpio/gpio-sodaville.c | |||
@@ -3,6 +3,8 @@ | |||
3 | * | 3 | * |
4 | * Copyright (c) 2010, 2011 Intel Corporation | 4 | * Copyright (c) 2010, 2011 Intel Corporation |
5 | * | 5 | * |
6 | * Author: Hans J. Koch <hjk@linutronix.de> | ||
7 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License 2 as published | 9 | * it under the terms of the GNU General Public License 2 as published |
8 | * by the Free Software Foundation. | 10 | * by the Free Software Foundation. |
@@ -15,7 +17,6 @@ | |||
15 | #include <linux/irq.h> | 17 | #include <linux/irq.h> |
16 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
17 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
18 | #include <linux/module.h> | ||
19 | #include <linux/pci.h> | 20 | #include <linux/pci.h> |
20 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
21 | #include <linux/of_irq.h> | 22 | #include <linux/of_irq.h> |
@@ -257,34 +258,17 @@ done: | |||
257 | return ret; | 258 | return ret; |
258 | } | 259 | } |
259 | 260 | ||
260 | static void sdv_gpio_remove(struct pci_dev *pdev) | ||
261 | { | ||
262 | struct sdv_gpio_chip_data *sd = pci_get_drvdata(pdev); | ||
263 | |||
264 | free_irq(pdev->irq, sd); | ||
265 | irq_free_descs(sd->irq_base, SDV_NUM_PUB_GPIOS); | ||
266 | |||
267 | gpiochip_remove(&sd->chip); | ||
268 | pci_release_region(pdev, GPIO_BAR); | ||
269 | iounmap(sd->gpio_pub_base); | ||
270 | pci_disable_device(pdev); | ||
271 | kfree(sd); | ||
272 | } | ||
273 | |||
274 | static const struct pci_device_id sdv_gpio_pci_ids[] = { | 261 | static const struct pci_device_id sdv_gpio_pci_ids[] = { |
275 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_SDV_GPIO) }, | 262 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_SDV_GPIO) }, |
276 | { 0, }, | 263 | { 0, }, |
277 | }; | 264 | }; |
278 | 265 | ||
279 | static struct pci_driver sdv_gpio_driver = { | 266 | static struct pci_driver sdv_gpio_driver = { |
267 | .driver = { | ||
268 | .suppress_bind_attrs = true, | ||
269 | }, | ||
280 | .name = DRV_NAME, | 270 | .name = DRV_NAME, |
281 | .id_table = sdv_gpio_pci_ids, | 271 | .id_table = sdv_gpio_pci_ids, |
282 | .probe = sdv_gpio_probe, | 272 | .probe = sdv_gpio_probe, |
283 | .remove = sdv_gpio_remove, | ||
284 | }; | 273 | }; |
285 | 274 | builtin_pci_driver(sdv_gpio_driver); | |
286 | module_pci_driver(sdv_gpio_driver); | ||
287 | |||
288 | MODULE_AUTHOR("Hans J. Koch <hjk@linutronix.de>"); | ||
289 | MODULE_DESCRIPTION("GPIO interface for Intel Sodaville SoCs"); | ||
290 | MODULE_LICENSE("GPL v2"); | ||