Janusz Krzysztofik
c4c958aa64
gpiolib: Fix array members of same chip processed separately
...
New code introduced by commit bf9346f5d4 ("gpiolib: Identify arrays
matching GPIO hardware") forcibly tries to find an array member which
has its array index number equal to its hardware pin number and set
up an array info for possible fast bitmap processing of all arrray
pins belonging to that chip which also satisfy that numbering rule.
Depending on array content, it may happen that consecutive array
members which belong to the same chip but don't have array indexes
equal to their pin hardware numbers will be split into groups, some of
them processed together via the fast bitmap path, and rest of them
separetely. However, applications may expect all those pins being
processed together with a single call to .set_multiple() chip callback,
like that was done before the change.
Limit applicability of fast bitmap processing path to cases where all
pins of consecutive array members starting from 0 which belong to the
same chip have their hardware numbers equal to their corresponding
array indexes. That should still speed up processing of applications
using whole GPIO banks as I/O ports, while not breaking simultaneous
manipulation of consecutive pins of the same chip which don't follow
the equal numbering rule.
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2018-09-24 13:47:05 +02:00
..
devres.c
gpio: Export devm_gpiod_get_from_of_node() for consumers
2018-01-12 11:05:24 +01:00
gpio-74x164.c
The is the bulk of GPIO changes for the v4.16 kernel cycle.
2018-01-31 12:25:27 -08:00
gpio-74xx-mmio.c
gpio: 74xx-mmio: Use of_device_get_match_data()
2018-05-16 14:35:24 +02:00
gpio-104-dio-48e.c
gpio: 104-dio-48e: make array 'ports' static, shrinks object size
2018-05-16 14:35:24 +02:00
gpio-104-idi-48.c
gpio: make several const arrays static, shrinks object size
2018-05-16 14:35:24 +02:00
gpio-104-idio-16.c
gpio: 104-idio-16: Implement get_multiple callback
2018-03-26 10:10:18 +02:00
gpio-adnp.c
treewide: devm_kzalloc() -> devm_kcalloc()
2018-06-12 16:19:22 -07:00
gpio-adp5520.c
drivers: gpio: Update MODULE AUTHOR email address
2018-08-29 13:30:25 +02:00
gpio-adp5588.c
drivers: gpio: Update MODULE AUTHOR email address
2018-08-29 13:30:25 +02:00
gpio-altera-a10sr.c
gpio: altera-a10sr: constify gpio_chip structure
2017-08-14 15:01:12 +02:00
gpio-altera.c
gpio: altera: Include GPIO driver header
2018-01-13 22:18:34 +01:00
gpio-amd8111.c
gpio: amd8111: Include proper header
2018-01-13 22:22:49 +01:00
gpio-amdpt.c
gpio-arizona.c
gpio: arizona: Include proper header
2018-01-13 22:47:48 +01:00
gpio-aspeed.c
gpio: aspeed: fix compile testing warning
2018-07-13 09:05:06 +02:00
gpio-ath79.c
gpio: fix meaningless return expression
2018-07-29 23:34:54 +02:00
gpio-bcm-kona.c
gpio-bcm-kona: use new req/relres and dis/enable_irq funcs
2018-09-10 08:57:36 +02:00
gpio-bd9571mwv.c
gpio-brcmstb.c
gpio: brcmstb: allow 0 width GPIO banks
2018-08-30 11:04:50 +02:00
gpio-bt8xx.c
gpio: bt8xx: Include proper header
2018-01-13 22:56:52 +01:00
gpio-clps711x.c
gpio-crystalcove.c
gpio: crystalcove: Include proper header
2018-01-14 01:48:48 +01:00
gpio-cs5535.c
gpio: cs5535: Include proper header
2018-01-14 01:56:24 +01:00
gpio-da9052.c
gpio: da905x: Include proper header
2018-01-14 02:00:10 +01:00
gpio-da9055.c
gpio: da905x: Include proper header
2018-01-14 02:00:10 +01:00
gpio-davinci.c
gpio: davinci: Move driver local definitions to driver
2018-09-20 08:36:19 -07:00
gpio-dln2.c
gpio: dln2: Include proper header
2018-03-19 01:50:07 +01:00
gpio-dwapb.c
gpio: dwapb: Don't shadow error code of gpiochip_lock_as_irq()
2018-08-06 23:46:55 +02:00
gpio-eic-sprd.c
gpio: eic: Add edge trigger emulation for EIC
2018-05-16 14:35:24 +02:00
gpio-em.c
gpio: em: Don't shadow error code of gpiochip_lock_as_irq()
2018-08-06 23:46:55 +02:00
gpio-ep93xx.c
gpio: ep93xx: fix test for end of loop
2018-09-10 08:48:24 +02:00
gpio-exar.c
gpio: exar: Use correct property prefix and document bindings
2017-08-01 13:43:55 +02:00
gpio-f7188x.c
gpio-ftgpio010.c
gpio: ftgpio: Support debounce timer
2018-08-30 09:14:54 +02:00
gpio-ge.c
gpio: ge: Fix build warning
2018-05-16 14:35:24 +02:00
gpio-gpio-mm.c
gpio: make several const arrays static, shrinks object size
2018-05-16 14:35:24 +02:00
gpio-grgpio.c
gpio: grgpio: Include the right header
2018-03-19 01:50:28 +01:00
gpio-hlwd.c
gpio: Add GPIO driver for Nintendo Wii
2018-02-22 13:54:35 +01:00
gpio-htc-egpio.c
gpio: htc-egpio: Unique label per chip
2018-09-24 10:08:39 +02:00
gpio-ich.c
gpio: ich: Use BIT() macro
2018-03-19 01:50:29 +01:00
gpio-intel-mid.c
gpio-intel-mid: Delete an error message
2018-02-22 15:29:05 +01:00
gpio-iop.c
gpio: iop: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
2017-12-02 22:42:21 +01:00
gpio-it87.c
gpio: it87: Add support for IT8613
2018-08-10 23:19:17 +02:00
gpio-janz-ttl.c
gpio: janz-ttl: Use BIT() macro
2018-03-19 01:50:30 +01:00
gpio-kempld.c
gpio: kempld: Include the right header
2018-03-19 01:50:31 +01:00
gpio-ks8695.c
gpio: ks8695: Include the right header
2018-03-19 01:50:31 +01:00
gpio-loongson.c
gpio: loongson: Use BIT() macros
2018-05-16 14:35:24 +02:00
gpio-loongson1.c
gpio: loongson1: fix bgpio usage
2017-10-25 11:25:38 +02:00
gpio-lp873x.c
gpio: lp873x: Include the right header
2018-05-16 14:35:24 +02:00
gpio-lp3943.c
gpio: lp3943: Include the right header
2018-05-16 14:35:24 +02:00
gpio-lp87565.c
gpio: lp87565: Set proper output level and direction for direction_output
2017-07-31 15:26:57 +02:00
gpio-lpc18xx.c
gpio-lpc32xx.c
gpio: lpc32xx: Include the right header
2018-05-16 14:35:24 +02:00
gpio-lynxpoint.c
gpio: lynxpoint: Include the right header
2018-05-16 14:35:24 +02:00
gpio-madera.c
gpio: madera: Support Cirrus Logic Madera class codecs
2018-06-05 11:15:30 +01:00
gpio-max730x.c
gpio: max730x: Include the right header
2018-05-16 14:35:24 +02:00
gpio-max732x.c
gpio: max732x: add error handling for i2c_new_dummy
2018-06-18 07:55:30 +02:00
gpio-max3191x.c
gpiolib: Pass array info to get/set array functions
2018-09-13 11:16:54 +02:00
gpio-max7300.c
gpio-max7301.c
gpio-max77620.c
gpio: max77620: Make regmap_irq_chip const
2017-08-14 16:06:24 +02:00
gpio-mb86s7x.c
gpio: mb86s70: Revert "Return error if requesting an already assigned gpio"
2017-10-31 13:13:34 +01:00
gpio-mc9s08dz60.c
gpio: mc9s08dz60: Include the right header
2018-05-16 14:35:24 +02:00
gpio-mc33880.c
gpio: mc33880: Include the right header
2018-05-16 14:35:24 +02:00
gpio-menz127.c
gpio: Fix wrong rounding in gpio-menz127
2018-06-18 07:55:30 +02:00
gpio-merrifield.c
gpio: merrifield: Delete an error message
2018-02-22 15:25:40 +01:00
gpio-ml-ioh.c
gpio: ml-ioh: Fix buffer underwrite on probe error path
2018-07-29 23:13:09 +02:00
gpio-mm-lantiq.c
gpio: mm-lantiq: Include the right header
2018-05-16 14:35:24 +02:00
gpio-mmio.c
gpio: mmio: Fix up inverted direction registers
2018-08-10 23:19:17 +02:00
gpio-mockup.c
gpio: mockup: use the SPDX identifier and remove license boilerplate
2018-05-16 14:35:24 +02:00
gpio-mpc8xxx.c
gpio: mpc8xxx: Do not reverse bits using bgpio
2017-10-25 11:25:40 +02:00
gpio-mpc5200.c
gpio-msic.c
gpio: msic: Include the right header
2018-05-16 14:35:24 +02:00
gpio-mt7621.c
gpio: mt7621: Edit to preferred syntax
2018-07-09 13:51:57 +02:00
gpio-mvebu.c
gpio: mvebu: Use the proper APIs
2018-05-16 14:35:24 +02:00
gpio-mxc.c
gpio: mxc: add power management support
2018-07-29 22:23:17 +02:00
gpio-mxs.c
gpio: mxs: Get rid of external API call
2018-09-04 08:22:47 +02:00
gpio-octeon.c
gpio: octeon: Include the right header
2018-05-24 14:22:04 +02:00
gpio-omap.c
gpio: omap: Add get/set_multiple() callbacks
2018-08-06 23:46:55 +02:00
gpio-palmas.c
gpio: palmas: Include the right header
2018-05-24 14:25:13 +02:00
gpio-pca953x.c
gpio: pca953x: suppress interrupts warning when not applicable
2018-07-02 16:00:49 +02:00
gpio-pcf857x.c
gpio: pcf857x: Include the right header
2018-05-24 17:09:41 +02:00
gpio-pch.c
gpio: pch: Include the right header
2018-05-24 17:09:41 +02:00
gpio-pci-idio-16.c
gpio: pci-idio-16: Fix port memory offset for get_multiple callback
2018-04-27 00:55:16 +02:00
gpio-pcie-idio-24.c
gpio: pcie-idio-24: Fix off-by-one error in get_multiple loop
2018-04-30 10:48:08 +02:00
gpio-pisosr.c
gpio-pisosr: add support for get_multiple
2018-07-29 21:55:33 +02:00
gpio-pl061.c
gpio: pl061: Include the right header
2018-05-24 17:09:41 +02:00
gpio-pmic-eic-sprd.c
gpio: pmic_eic: Add edge trigger emulation for PMIC EIC
2018-05-16 14:35:24 +02:00
gpio-pxa.c
gpio: pxa: handle corner case of unprobed device
2018-08-29 13:56:46 +02:00
gpio-raspberrypi-exp.c
gpio: raspberrypi-exp: Driver for RPi3 GPIO expander via mailbox service
2018-02-22 13:49:59 +01:00
gpio-rc5t583.c
gpio: rc5t583: Include the right header
2018-07-02 16:00:49 +02:00
gpio-rcar.c
gpio: rcar: Add GPIO hole support
2018-08-29 10:46:41 +02:00
gpio-rdc321x.c
gpio: rdc321x: Include the right header
2018-07-02 16:00:49 +02:00
gpio-reg.c
gpio: gpio-reg: fix build
2017-12-22 15:24:31 +01:00
gpio-sa1100.c
gpio: sa1100: Include the right header
2018-07-02 16:00:49 +02:00
gpio-sch.c
gpio: sch: Implement .get_direction()
2018-07-02 16:00:49 +02:00
gpio-sch311x.c
gpio: sch311x: Replace unsigned char with u8
2018-07-02 16:00:49 +02:00
gpio-sodaville.c
gpio-spear-spics.c
gpio: spear-spics: Include the right header
2018-07-02 16:00:49 +02:00
gpio-sprd.c
gpio: Add GPIO driver for Spreadtrum SC9860 platform
2018-03-02 11:00:43 +01:00
gpio-sta2x11.c
gpio: sta2x11: Inline regs macro
2018-07-02 16:00:49 +02:00
gpio-stmpe.c
gpio: stmpe: Include the right header
2018-07-02 16:00:49 +02:00
gpio-stp-xway.c
gpio: stp-xway: Include the right header
2018-07-02 16:00:49 +02:00
gpio-syscon.c
gpio: syscon: rockchip: add GRF GPIO support for rk3328
2018-08-06 23:46:55 +02:00
gpio-tb10x.c
gpio: tb10x: Use GENERIC_GPIO
2018-08-29 08:53:37 +02:00
gpio-tc3589x.c
gpio: Move irqdomain into struct gpio_irq_chip
2017-11-08 14:06:21 +01:00
gpio-tegra.c
This is the bulk of GPIO changes for the v4.19 kernel cycle:
2018-08-15 21:35:38 -07:00
gpio-tegra186.c
gpio: tegra186: Add support for Tegra194
2018-07-02 16:01:02 +02:00
gpio-thunderx.c
treewide: devm_kzalloc() -> devm_kcalloc()
2018-06-12 16:19:22 -07:00
gpio-timberdale.c
gpio: timberdale: Include the right header
2018-08-10 23:04:27 +02:00
gpio-tpic2810.c
gpio-tps6586x.c
gpio: tps65xxx: Use SPDX license tag
2018-09-04 08:22:47 +02:00
gpio-tps65086.c
gpio: tps65xxx: Use SPDX license tag
2018-09-04 08:22:47 +02:00
gpio-tps65218.c
gpio-tps65910.c
gpio: tps65xxx: Use SPDX license tag
2018-09-04 08:22:47 +02:00
gpio-tps65912.c
gpio: tps65xxx: Use SPDX license tag
2018-09-04 08:22:47 +02:00
gpio-tps68470.c
gpio: tps68470: Update to SPDX license identifier
2018-02-23 15:26:42 +01:00
gpio-ts4800.c
gpio-ts4900.c
gpio: ts4900: Use of_device_get_match_data()
2018-05-16 14:35:24 +02:00
gpio-ts5500.c
gpio: ts5500: Delete platform data handling
2018-09-04 08:22:47 +02:00
gpio-twl4030.c
gpio: twl4030: Implement .get_direction()
2018-09-10 08:48:51 +02:00
gpio-twl6040.c
gpio: twl6040: Implement .get_direction()
2018-09-10 08:49:22 +02:00
gpio-ucb1400.c
gpio-uniphier.c
This is the bulk of GPIO changes for the v4.19 kernel cycle:
2018-08-15 21:35:38 -07:00
gpio-vf610.c
gpio: vf610: Cut down on boilerplate
2018-09-12 14:48:40 +02:00
gpio-viperboard.c
gpio: viperboard: Cut down on boilerplate
2018-09-17 10:55:24 -07:00
gpio-vr41xx.c
gpio: vr41xx: Delete vr41xx_gpio_pullupdown() callback
2018-09-17 10:55:24 -07:00
gpio-vx855.c
gpio: vx855: Cut down on boilerplate
2018-09-17 10:55:24 -07:00
gpio-wcove.c
gpio: Move irqdomain into struct gpio_irq_chip
2017-11-08 14:06:21 +01:00
gpio-winbond.c
gpio: winbond: Add driver
2018-01-09 14:51:00 +01:00
gpio-wm831x.c
gpio: wm8xxx: Cut down on boilerplate
2018-09-17 10:55:24 -07:00
gpio-wm8350.c
gpio: wm8xxx: Cut down on boilerplate
2018-09-17 10:55:24 -07:00
gpio-wm8994.c
gpio: wm8xxx: Cut down on boilerplate
2018-09-17 10:55:24 -07:00
gpio-ws16c48.c
gpio: ws16c48: Implement get_multiple callback
2018-03-26 10:28:19 +02:00
gpio-xgene-sb.c
gpio: xgene-sb: Don't shadow error code of gpiochip_lock_as_irq()
2018-08-06 23:46:55 +02:00
gpio-xgene.c
gpio-xilinx.c
gpio: xilinx: Use the right include
2018-08-10 23:19:17 +02:00
gpio-xlp.c
gpio: xlp: Cut down on boilerplate
2018-09-17 10:55:24 -07:00
gpio-xra1403.c
gpio: xra1403: Switch to a fixed upper bound for registers
2018-04-27 01:06:21 +02:00
gpio-xtensa.c
gpio: xtensa: Cut down on boilerplate
2018-09-17 10:55:24 -07:00
gpio-zevio.c
gpio: zevio: Include the right header
2018-09-04 08:22:47 +02:00
gpio-zx.c
gpio: Move irqdomain into struct gpio_irq_chip
2017-11-08 14:06:21 +01:00
gpio-zynq.c
gpio: zynq: Setup chip->base based on alias ID
2018-05-23 11:43:03 +02:00
gpiolib-acpi.c
gpio: Get rid of legacy header
2018-09-17 10:55:24 -07:00
gpiolib-devprop.c
gpio: fix "gpio-line-names" property retrieval
2017-12-22 15:24:31 +01:00
gpiolib-legacy.c
gpiolib-of.c
gpio: of: Handle SPI chipselect legacy bindings
2018-09-11 13:54:41 +02:00
gpiolib-sysfs.c
gpio: Get rid of legacy header
2018-09-17 10:55:24 -07:00
gpiolib.c
gpiolib: Fix array members of same chip processed separately
2018-09-24 13:47:05 +02:00
gpiolib.h
Merge branch 'ib-array-bitmaps' into devel
2018-09-20 08:36:36 -07:00
Kconfig
Merge branch 'ib-ingenic' of ../linux-pinctrl into devel
2018-08-29 14:10:57 +02:00
Makefile
gpio: ingenic: Remove driver
2018-08-29 13:38:20 +02:00