OSDN Git Service

gpio: sysfs: fix redundant lock-as-irq handling
authorJohan Hovold <johan@kernel.org>
Mon, 4 May 2015 15:10:28 +0000 (17:10 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 12 May 2015 08:46:31 +0000 (10:46 +0200)
commit52176d0d3be29ccb01a44ee77532bb3969939ecf
treec9ba29e8f5031f40a50254b012a9c176c6d71a2b
parentfab28b89a1c418382638d3837739faad9111fa8e
gpio: sysfs: fix redundant lock-as-irq handling

Drivers should call gpiochip_lock_as_irq (which prevents the pin
direction from being changed) in their irq_request_resources callbacks
but some drivers currently fail to do so.

Instead a second, explicit and often redundant call to lock-as-irq is
made by the sysfs-interface implementation after an irq has been
requested.

Move the explicit call before the irq-request to match the unlock done
after the irq is later released. Note that this also fixes an irq leak,
should the explicit call ever have failed.

Also add a comment about removing the redundant call once the broken
drivers have been fixed.

Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-sysfs.c