mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
Two GPIO fixes:
- GPIO direction flags where handled wrong in the new
descriptor-based API, so direction changes did not always
"take".
- Fix a handler installation race in the generic GPIO
irqchip code.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUI7/XAAoJEEEQszewGV1z0nMP/AqILT9Boa4JHorEb0vveLjy
+zooJXwez8CTd0BXPpBVxqUaHnFLsHREOkkwUJfBm5ghDiRm0J3owLiS/i90DIcY
dAyjFQzOQOcoItD1/NqMUOnviVicVOBmuDovddAnBYspKNL8HQ0A8MZIkBaQrGon
UqrOfNgfPzuvwU8kFv6MkrY0hA4bNn0EUDwhHrhjP9IoSV8dXjW3G4qR0mbRaWx5
yRYsuYHk6L3DyhUHjszl1YbDzufxrDahXIw5AAS2GtW1vRZ5F9aRgjplwmH/mBDQ
o7e04TbPgS+Z3aACeChu7kpFIOCpmn5LFB4JMEjpNVnKCHecWWWG8XnWyAzd0kwx
OXtqS73VWDjpQ0dEic++7R14c/VY7/I+e2xFe8ceTKt+ePM8kC3FQ6oczWNHxaNW
KvrChZKMfxlABVqkEk4tg9ih+wZUDo1wzY1N3hbm7u9BAEsKrpuRbxQJN9GgkMcs
eDY7i6AbuzqkVpiAE99e1nLfi2bkk6M4iYcdAxBLRe5ZwBuytaq8/h8zsxwjSws9
0wMv9oAHhs9cRYALmcXvlrD10Gz46euDIJsqmErxnSr38/38cVaR6DgovRsAR1t0
J2wZNZ7Tjdt8X5NGtDxjHI6G2RYuXJThJel/Jl8kaTgH0V2wg8zid252UQxj0mka
Fjw3YDQL39u+HvGmlPju
=ziCt
-----END PGP SIGNATURE-----
Merge tag 'gpio-v3.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull gpio fixes from Linus Walleij:
"Two GPIO fixes:
- GPIO direction flags where handled wrong in the new descriptor-
based API, so direction changes did not always "take".
- Fix a handler installation race in the generic GPIO irqchip code"
* tag 'gpio-v3.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
gpio: Fix potential NULL handler data in chained irqchip handler
gpio: Fix gpio direction flags not getting set
This commit is contained in:
commit
2289823c22
|
|
@ -413,12 +413,12 @@ void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip,
|
|||
return;
|
||||
}
|
||||
|
||||
irq_set_chained_handler(parent_irq, parent_handler);
|
||||
/*
|
||||
* The parent irqchip is already using the chip_data for this
|
||||
* irqchip, so our callbacks simply use the handler_data.
|
||||
*/
|
||||
irq_set_handler_data(parent_irq, gpiochip);
|
||||
irq_set_chained_handler(parent_irq, parent_handler);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gpiochip_set_chained_irqchip);
|
||||
|
||||
|
|
@ -1674,7 +1674,7 @@ struct gpio_desc *__must_check __gpiod_get_index(struct device *dev,
|
|||
set_bit(FLAG_OPEN_SOURCE, &desc->flags);
|
||||
|
||||
/* No particular flag request, return here... */
|
||||
if (flags & GPIOD_FLAGS_BIT_DIR_SET)
|
||||
if (!(flags & GPIOD_FLAGS_BIT_DIR_SET))
|
||||
return desc;
|
||||
|
||||
/* Process flags */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user