diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 15:05:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 15:05:51 -0500 |
commit | 06991c28f37ad68e5c03777f5c3b679b56e3dac1 (patch) | |
tree | 4be75788e21c3c644fe6d39abf47693a171cf4f8 /drivers/gpio | |
parent | 460dc1eecf37263c8e3b17685ef236f0d236facb (diff) | |
parent | 74fef7a8fd1d2bd94f925d6638bb4c3049e7c381 (diff) |
Merge tag 'driver-core-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core patches from Greg Kroah-Hartman:
"Here is the big driver core merge for 3.9-rc1
There are two major series here, both of which touch lots of drivers
all over the kernel, and will cause you some merge conflicts:
- add a new function called devm_ioremap_resource() to properly be
able to check return values.
- remove CONFIG_EXPERIMENTAL
Other than those patches, there's not much here, some minor fixes and
updates"
Fix up trivial conflicts
* tag 'driver-core-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (221 commits)
base: memory: fix soft/hard_offline_page permissions
drivercore: Fix ordering between deferred_probe and exiting initcalls
backlight: fix class_find_device() arguments
TTY: mark tty_get_device call with the proper const values
driver-core: constify data for class_find_device()
firmware: Ignore abort check when no user-helper is used
firmware: Reduce ifdef CONFIG_FW_LOADER_USER_HELPER
firmware: Make user-mode helper optional
firmware: Refactoring for splitting user-mode helper code
Driver core: treat unregistered bus_types as having no devices
watchdog: Convert to devm_ioremap_resource()
thermal: Convert to devm_ioremap_resource()
spi: Convert to devm_ioremap_resource()
power: Convert to devm_ioremap_resource()
mtd: Convert to devm_ioremap_resource()
mmc: Convert to devm_ioremap_resource()
mfd: Convert to devm_ioremap_resource()
media: Convert to devm_ioremap_resource()
iommu: Convert to devm_ioremap_resource()
drm: Convert to devm_ioremap_resource()
...
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/Kconfig | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-mvebu.c | 18 | ||||
-rw-r--r-- | drivers/gpio/gpio-mxs.c | 9 | ||||
-rw-r--r-- | drivers/gpio/gpio-spear-spics.c | 8 | ||||
-rw-r--r-- | drivers/gpio/gpio-stp-xway.c | 9 | ||||
-rw-r--r-- | drivers/gpio/gpio-tegra.c | 9 | ||||
-rw-r--r-- | drivers/gpio/gpiolib.c | 2 |
7 files changed, 27 insertions, 30 deletions
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index e5116fa85140..1855a6fd2b0a 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig | |||
@@ -66,7 +66,7 @@ config DEBUG_GPIO | |||
66 | 66 | ||
67 | config GPIO_SYSFS | 67 | config GPIO_SYSFS |
68 | bool "/sys/class/gpio/... (sysfs interface)" | 68 | bool "/sys/class/gpio/... (sysfs interface)" |
69 | depends on SYSFS && EXPERIMENTAL | 69 | depends on SYSFS |
70 | help | 70 | help |
71 | Say Y here to add a sysfs interface for GPIOs. | 71 | Say Y here to add a sysfs interface for GPIOs. |
72 | 72 | ||
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 6819d63cb167..7472182967ce 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c | |||
@@ -33,6 +33,7 @@ | |||
33 | * interrupts. | 33 | * interrupts. |
34 | */ | 34 | */ |
35 | 35 | ||
36 | #include <linux/err.h> | ||
36 | #include <linux/module.h> | 37 | #include <linux/module.h> |
37 | #include <linux/gpio.h> | 38 | #include <linux/gpio.h> |
38 | #include <linux/irq.h> | 39 | #include <linux/irq.h> |
@@ -544,11 +545,9 @@ static int mvebu_gpio_probe(struct platform_device *pdev) | |||
544 | mvchip->chip.of_node = np; | 545 | mvchip->chip.of_node = np; |
545 | 546 | ||
546 | spin_lock_init(&mvchip->lock); | 547 | spin_lock_init(&mvchip->lock); |
547 | mvchip->membase = devm_request_and_ioremap(&pdev->dev, res); | 548 | mvchip->membase = devm_ioremap_resource(&pdev->dev, res); |
548 | if (! mvchip->membase) { | 549 | if (IS_ERR(mvchip->membase)) |
549 | dev_err(&pdev->dev, "Cannot ioremap\n"); | 550 | return PTR_ERR(mvchip->membase); |
550 | return -ENOMEM; | ||
551 | } | ||
552 | 551 | ||
553 | /* The Armada XP has a second range of registers for the | 552 | /* The Armada XP has a second range of registers for the |
554 | * per-CPU registers */ | 553 | * per-CPU registers */ |
@@ -559,11 +558,10 @@ static int mvebu_gpio_probe(struct platform_device *pdev) | |||
559 | return -ENODEV; | 558 | return -ENODEV; |
560 | } | 559 | } |
561 | 560 | ||
562 | mvchip->percpu_membase = devm_request_and_ioremap(&pdev->dev, res); | 561 | mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev, |
563 | if (! mvchip->percpu_membase) { | 562 | res); |
564 | dev_err(&pdev->dev, "Cannot ioremap\n"); | 563 | if (IS_ERR(mvchip->percpu_membase)) |
565 | return -ENOMEM; | 564 | return PTR_ERR(mvchip->percpu_membase); |
566 | } | ||
567 | } | 565 | } |
568 | 566 | ||
569 | /* | 567 | /* |
diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c index fa2a63cad32e..45d97c46831a 100644 --- a/drivers/gpio/gpio-mxs.c +++ b/drivers/gpio/gpio-mxs.c | |||
@@ -20,6 +20,7 @@ | |||
20 | * MA 02110-1301, USA. | 20 | * MA 02110-1301, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/err.h> | ||
23 | #include <linux/init.h> | 24 | #include <linux/init.h> |
24 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
25 | #include <linux/io.h> | 26 | #include <linux/io.h> |
@@ -253,12 +254,14 @@ static int mxs_gpio_probe(struct platform_device *pdev) | |||
253 | parent = of_get_parent(np); | 254 | parent = of_get_parent(np); |
254 | base = of_iomap(parent, 0); | 255 | base = of_iomap(parent, 0); |
255 | of_node_put(parent); | 256 | of_node_put(parent); |
257 | if (!base) | ||
258 | return -EADDRNOTAVAIL; | ||
256 | } else { | 259 | } else { |
257 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 260 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
258 | base = devm_request_and_ioremap(&pdev->dev, iores); | 261 | base = devm_ioremap_resource(&pdev->dev, iores); |
262 | if (IS_ERR(base)) | ||
263 | return PTR_ERR(base); | ||
259 | } | 264 | } |
260 | if (!base) | ||
261 | return -EADDRNOTAVAIL; | ||
262 | } | 265 | } |
263 | port->base = base; | 266 | port->base = base; |
264 | 267 | ||
diff --git a/drivers/gpio/gpio-spear-spics.c b/drivers/gpio/gpio-spear-spics.c index 5f45fc4ed5d1..7a4bf7c0d98f 100644 --- a/drivers/gpio/gpio-spear-spics.c +++ b/drivers/gpio/gpio-spear-spics.c | |||
@@ -140,11 +140,9 @@ static int spics_gpio_probe(struct platform_device *pdev) | |||
140 | return -ENOMEM; | 140 | return -ENOMEM; |
141 | } | 141 | } |
142 | 142 | ||
143 | spics->base = devm_request_and_ioremap(&pdev->dev, res); | 143 | spics->base = devm_ioremap_resource(&pdev->dev, res); |
144 | if (!spics->base) { | 144 | if (IS_ERR(spics->base)) |
145 | dev_err(&pdev->dev, "request and ioremap fail\n"); | 145 | return PTR_ERR(spics->base); |
146 | return -ENOMEM; | ||
147 | } | ||
148 | 146 | ||
149 | if (of_property_read_u32(np, "st-spics,peripcfg-reg", | 147 | if (of_property_read_u32(np, "st-spics,peripcfg-reg", |
150 | &spics->perip_cfg)) | 148 | &spics->perip_cfg)) |
diff --git a/drivers/gpio/gpio-stp-xway.c b/drivers/gpio/gpio-stp-xway.c index 85841ee70b17..c20e05151212 100644 --- a/drivers/gpio/gpio-stp-xway.c +++ b/drivers/gpio/gpio-stp-xway.c | |||
@@ -214,11 +214,10 @@ static int xway_stp_probe(struct platform_device *pdev) | |||
214 | if (!chip) | 214 | if (!chip) |
215 | return -ENOMEM; | 215 | return -ENOMEM; |
216 | 216 | ||
217 | chip->virt = devm_request_and_ioremap(&pdev->dev, res); | 217 | chip->virt = devm_ioremap_resource(&pdev->dev, res); |
218 | if (!chip->virt) { | 218 | if (IS_ERR(chip->virt)) |
219 | dev_err(&pdev->dev, "failed to remap STP memory\n"); | 219 | return PTR_ERR(chip->virt); |
220 | return -ENOMEM; | 220 | |
221 | } | ||
222 | chip->gc.dev = &pdev->dev; | 221 | chip->gc.dev = &pdev->dev; |
223 | chip->gc.label = "stp-xway"; | 222 | chip->gc.label = "stp-xway"; |
224 | chip->gc.direction_output = xway_stp_dir_out; | 223 | chip->gc.direction_output = xway_stp_dir_out; |
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index 63cb643d4b5a..414ad912232f 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c | |||
@@ -17,6 +17,7 @@ | |||
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/err.h> | ||
20 | #include <linux/init.h> | 21 | #include <linux/init.h> |
21 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
22 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
@@ -450,11 +451,9 @@ static int tegra_gpio_probe(struct platform_device *pdev) | |||
450 | return -ENODEV; | 451 | return -ENODEV; |
451 | } | 452 | } |
452 | 453 | ||
453 | regs = devm_request_and_ioremap(&pdev->dev, res); | 454 | regs = devm_ioremap_resource(&pdev->dev, res); |
454 | if (!regs) { | 455 | if (IS_ERR(regs)) |
455 | dev_err(&pdev->dev, "Couldn't ioremap regs\n"); | 456 | return PTR_ERR(regs); |
456 | return -ENODEV; | ||
457 | } | ||
458 | 457 | ||
459 | for (i = 0; i < tegra_gpio_bank_count; i++) { | 458 | for (i = 0; i < tegra_gpio_bank_count; i++) { |
460 | for (j = 0; j < 4; j++) { | 459 | for (j = 0; j < 4; j++) { |
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 199fca15f270..5359ca78130f 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
@@ -806,7 +806,7 @@ fail_unlock: | |||
806 | } | 806 | } |
807 | EXPORT_SYMBOL_GPL(gpio_export); | 807 | EXPORT_SYMBOL_GPL(gpio_export); |
808 | 808 | ||
809 | static int match_export(struct device *dev, void *data) | 809 | static int match_export(struct device *dev, const void *data) |
810 | { | 810 | { |
811 | return dev_get_drvdata(dev) == data; | 811 | return dev_get_drvdata(dev) == data; |
812 | } | 812 | } |