linux/drivers/gpio
Linus Walleij be1a4b1308 gpio: improve error path in gpiolib
At several places the gpiolib will proceed to handle a GPIO
descriptor even if it's ->chip member is NULL and no gpiochip
is associated.

Fix this by checking that both the descriptor cookie *and*
the chip pointer are valid.

Also bail out earlier with more specific diagnostic messages
on missing operations for setting as input/output or debounce.

ChangeLog v1->v2:
- Also return -EIO on gpiod_set_debounce() with missing
  operations in the vtable
- Fix indentations.

Suggested-by: Alexandre Courbot <acourbot@nvidia.com>
Acked-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Frank Rowand <frank.rowand@sonymobile.com>
Cc: Tim Bird <tim.bird@sonymobile.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-09-03 14:08:28 +02:00
..
devres.c gpio: devres: make comments proper 2013-06-17 07:53:00 +02:00
gpio-74x164.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-adnp.c gpio: adnp: Fix segfault if request_threaded_irq fails 2013-08-16 16:53:16 +02:00
gpio-adp5520.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-adp5588.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-amd8111.c
gpio-arizona.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-bt8xx.c Gpio/trivial: replace numeric with standard PM state macros 2013-06-30 01:37:07 +02:00
gpio-clps711x.c GPIO: clps711x: Add DT support 2013-06-11 15:44:57 -07:00
gpio-cs5535.c
gpio-da9052.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-da9055.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-davinci.c
gpio-em.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-ep93xx.c
gpio-f7188x.c gpio: add GPIO support for F71882FG and F71889F 2013-08-30 09:25:52 +02:00
gpio-ge.c
gpio-generic.c
gpio-grgpio.c gpio: grgpio: Staticize local symbols 2013-06-19 21:40:38 +02:00
gpio-ich.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-it8761e.c
gpio-janz-ttl.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-kempld.c gpio: Fix bit masking in Kontron PLD GPIO driver 2013-08-16 17:56:53 +02:00
gpio-ks8695.c
gpio-langwell.c Power management and ACPI updates for 3.11-rc1 2013-07-03 14:35:40 -07:00
gpio-lpc32xx.c Removal of GENERIC_GPIO for v3.10 2013-05-09 09:59:16 -07:00
gpio-lynxpoint.c gpio-lynxpoint: Fix warning about unbalanced pm_runtime_enable 2013-08-16 17:11:33 +02:00
gpio-max730x.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-max732x.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-max7300.c
gpio-max7301.c gpio: max7301: Reverting "Do not force SPI speed when using OF Platform" 2013-08-23 19:44:28 +02:00
gpio-mc9s08dz60.c
gpio-mc33880.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-mcp23s08.c gpio: mcp23s08: rename the device tree property 2013-08-30 09:25:52 +02:00
gpio-ml-ioh.c gpio-ml-ioh: fix error return code in ioh_gpio_probe() 2013-05-30 19:39:20 +02:00
gpio-mm-lantiq.c
gpio-mpc8xxx.c
gpio-mpc5200.c
gpio-msic.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-msm-v1.c gpio_msm: Convert to use devm_ioremap_resource 2013-06-17 10:52:40 +02:00
gpio-msm-v2.c gpio: msm: Staticize local variable 'msm_gpio' 2013-08-16 16:47:30 +02:00
gpio-mvebu.c drivers/gpio: simplify use of devm_ioremap_resource 2013-08-16 17:16:31 +02:00
gpio-mxc.c gpio/mxc: add chained_irq_enter/exit() to mx2_gpio_irq_handler 2013-08-16 15:19:11 +02:00
gpio-mxs.c gpio: mxs: Use set and clear capabilities of the gpio controller 2013-05-20 20:14:43 +02:00
gpio-omap.c drivers/gpio/gpio-omap.c: convert comma to semicolon 2013-08-16 17:14:29 +02:00
gpio-palmas.c gpio: palmas: Fix misreported GPIO out value 2013-08-16 15:04:40 +02:00
gpio-pca953x.c gpio: pca953x: fix gpio input on gpio offsets >= 8 2013-08-16 17:19:16 +02:00
gpio-pcf857x.c gpio: pcf857x: Remove pdata argument to pcf857x_irq_domain_init() 2013-08-23 19:51:21 +02:00
gpio-pch.c gpio: Don't override the error code in probe error handling 2013-05-20 20:27:30 +02:00
gpio-pl061.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-pxa.c gpio: pxa: remove dead code 2013-07-21 18:14:20 +02:00
gpio-rc5t583.c
gpio-rcar.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-rdc321x.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-sa1100.c
gpio-samsung.c gpio: samsung: Drop support for Exynos SoCs 2013-08-29 14:40:30 +02:00
gpio-sch.c gpio: Don't override the error code in probe error handling 2013-05-20 20:27:30 +02:00
gpio-sodaville.c
gpio-spear-spics.c drivers/gpio: simplify use of devm_ioremap_resource 2013-08-16 17:16:31 +02:00
gpio-sta2x11.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-stmpe.c gpio: stmpe: Staticize non-exported symbols 2013-05-30 19:20:22 +02:00
gpio-stp-xway.c
gpio-sx150x.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-tc3589x.c gpio: tc3589x: remove unnecessary platform_set_drvdata() 2013-05-30 19:20:21 +02:00
gpio-tegra.c drivers/gpio: don't check resource with devm_ioremap_resource 2013-05-18 11:55:19 +02:00
gpio-timberdale.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-tnetv107x.c
gpio-tps6586x.c
gpio-tps65910.c
gpio-tps65912.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-ts5500.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-twl4030.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-twl6040.c GPIO: gpio-twl6040: Remove support for legacy (pdata) mode 2013-07-20 21:38:18 +02:00
gpio-tz1090-pdc.c gpio-tz1090-pdc: add TZ1090 PDC gpio driver 2013-07-20 19:03:48 +02:00
gpio-tz1090.c gpio-tz1090: convert to use generic irqchip 2013-07-20 19:05:15 +02:00
gpio-ucb1400.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-viperboard.c gpio: Don't override the error code in probe error handling 2013-05-20 20:27:30 +02:00
gpio-vr41xx.c
gpio-vx855.c gpio: vx855: remove unnecessary platform_set_drvdata() 2013-05-30 19:20:21 +02:00
gpio-wm831x.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-wm8350.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-wm8994.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-xilinx.c GPIO: xilinx: Use BIT macro 2013-06-17 07:47:33 +02:00
gpiolib-acpi.c
gpiolib-of.c gpio: gpiolib-of.c: make error message more meaningful by adding the node name and index 2013-08-16 15:26:31 +02:00
gpiolib.c gpio: improve error path in gpiolib 2013-09-03 14:08:28 +02:00
Kconfig gpio: add GPIO support for F71882FG and F71889F 2013-08-30 09:25:52 +02:00
Makefile gpio: add GPIO support for F71882FG and F71889F 2013-08-30 09:25:52 +02:00