[GIT PULL] GPIO fixes for v4.7, take one
From: Linus Walleij
Date: Tue May 31 2016 - 03:25:46 EST
Hi Linus,
here is a set of GPIO fixes mostly fixing my own mistakes. The
details are in the signed tag. They are mostly about corner cases in
the infrastructure, less used features like getting a pins direction and
handling of optional GPIO lines.
Details in the signed tag.
Please pull it in!
Yours,
Linus Walleij
The following changes since commit 1a695a905c18548062509178b98bc91e67510864:
Linux 4.7-rc1 (2016-05-29 09:29:24 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
tags/gpio-v4.7-2
for you to fetch changes up to 545ebd9a9be6bcbcf3e8dc24b874bfd634131946:
gpio: drop lock before reading GPIO direction (2016-05-30 17:11:59 +0200)
----------------------------------------------------------------
A bunch of GPIO fixes for the v4.7 series:
- Drop the lock before reading out the GPIO direction
setting in drivers supporting the .get_direction()
callback: some of them may be slowpath.
- Flush GPIO direction setting before locking a GPIO as an
IRQ: some electronics or other poking around in the
registers behind our back may have happened, so flush
the direction status before trying to lock the line for
use by IRQs.
- Bail out silently when asked to perform operations on
NULL GPIO descriptors. That is what all the get_*_optional()
is about: we get optional GPIO handles, if they are not
there, we get NULL.
- Handle compatible ioctl() correctly: we need to convert
the ioctl() pointer using compat_ptr() here like everyone
else.
- Disable the broken .to_irq() on the LPC32xx platform.
The whole irqchip infrastructure was replaced in the
last merge window, and a new implementation will be
needed.
----------------------------------------------------------------
Linus Walleij (4):
gpio: flush direction status in gpiochip_lock_as_irq()
gpio: handle compatible ioctl() pointers
gpio: bail out silently on NULL descriptors
gpio: drop lock before reading GPIO direction
Sylvain Lemieux (1):
gpio: lpc32xx: disable broken to_irq support
drivers/gpio/gpio-lpc32xx.c | 48 +-----------------------------------------
drivers/gpio/gpiolib.c | 51 +++++++++++++++++++++++++++++++++++----------
2 files changed, 41 insertions(+), 58 deletions(-)