linux/drivers/gpio
Rafael J. Wysocki 7b1998116b ACPI / driver core: Store an ACPI device pointer in struct acpi_dev_node
Modify struct acpi_dev_node to contain a pointer to struct acpi_device
associated with the given device object (that is, its ACPI companion
device) instead of an ACPI handle corresponding to it.  Introduce two
new macros for manipulating that pointer in a CONFIG_ACPI-safe way,
ACPI_COMPANION() and ACPI_COMPANION_SET(), and rework the
ACPI_HANDLE() macro to take the above changes into account.
Drop the ACPI_HANDLE_SET() macro entirely and rework its users to
use ACPI_COMPANION_SET() instead.  For some of them who used to
pass the result of acpi_get_child() directly to ACPI_HANDLE_SET()
introduce a helper routine acpi_preset_companion() doing an
equivalent thing.

The main motivation for doing this is that there are things
represented by struct acpi_device objects that don't have valid
ACPI handles (so called fixed ACPI hardware features, such as
power and sleep buttons) and we would like to create platform
device objects for them and "glue" them to their ACPI companions
in the usual way (which currently is impossible due to the
lack of valid ACPI handles).  However, there are more reasons
why it may be useful.

First, struct acpi_device pointers allow of much better type checking
than void pointers which are ACPI handles, so it should be more
difficult to write buggy code using modified struct acpi_dev_node
and the new macros.  Second, the change should help to reduce (over
time) the number of places in which the result of ACPI_HANDLE() is
passed to acpi_bus_get_device() in order to obtain a pointer to the
struct acpi_device associated with the given "physical" device,
because now that pointer is returned by ACPI_COMPANION() directly.
Finally, the change should make it easier to write generic code that
will build both for CONFIG_ACPI set and unset without adding explicit
compiler directives to it.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com> # on Haswell
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Aaron Lu <aaron.lu@intel.com> # for ATA and SDIO part
2013-11-14 23:14:43 +01:00
..
devres.c gpiolib: devres: add missing headers 2013-10-29 18:26:14 -07:00
gpio-74x164.c gpio: gpio-74x164: Remove redundant of_match_ptr 2013-09-23 12:52:21 +02:00
gpio-adnp.c gpio: adnp: rename "virq" to "child_irq" 2013-10-16 09:59:10 +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: add a driver for GPIO pins found on AMD-8111 south bridge chips 2012-07-12 13:40:13 +02:00
gpio-arizona.c gpio: arizona: Use the of_node from the Arizona device 2013-10-02 12:50:35 +02:00
gpio-bcm-kona.c gpio: bcm-kona: add missing .owner to struct gpio_chip 2013-10-30 11:23:00 -07:00
gpio-bt8xx.c gpio: bt8xx: remove unnecessary pci_set_drvdata() 2013-09-20 20:43:09 +02:00
gpio-clps711x.c gpio: clps711x: Remove redundant of_match_ptr 2013-10-02 12:43:25 +02:00
gpio-cs5535.c gpio: remove use of __devexit 2012-11-28 11:39:59 -08:00
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: davinci: move to platform device 2013-09-24 10:31:51 +05:30
gpio-em.c gpio: em: drop references to "virtual" IRQ 2013-10-16 09:59:41 +02:00
gpio-ep93xx.c gpio: ep93xx: get rid of bogus __raw* accessors 2013-10-16 09:59:54 +02:00
gpio-f7188x.c gpio: add GPIO support for F71882FG and F71889F 2013-08-30 09:25:52 +02:00
gpio-ge.c powerpc/85xx: Board support for GE IMP3A 2012-03-16 11:15:48 -05:00
gpio-generic.c GPIO: gpio-generic: remove kfree() from bgpio_remove call 2013-04-11 19:33:54 +02:00
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-intel-mid.c gpio: intel-mid: drop references to "virtual" IRQ 2013-10-16 09:59:51 +02:00
gpio-iop.c ARM: plat-iop: pass physical base for GPIO 2013-09-20 23:05:19 +02:00
gpio-it8761e.c gpio: reorganize drivers 2011-06-06 10:10:11 -06:00
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 ARM: 7036/1: mach-ks8695: break out GPIO driver specifics 2011-08-22 09:12:54 +01:00
gpio-lpc32xx.c gpio: lpc32xx: Include linux/of.h header 2013-10-16 13:09:10 +02:00
gpio-lynxpoint.c Linux 3.12-rc6 2013-10-19 23:24:03 +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: max7300: use devm_kzalloc() 2013-03-27 16:05:11 +01:00
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: mc9s08dz60: Use devm_kzalloc API 2012-09-01 01:02:27 +02:00
gpio-mc33880.c gpio: gpio-mc33880: Remove redundant spi_set_drvdata 2013-09-23 12:53:13 +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: MIPS: lantiq: convert gpio-mm-lantiq to OF and of_mm_gpio 2012-05-21 14:31:53 +01:00
gpio-mpc8xxx.c DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
gpio-mpc5200.c gpio: remove use of __devinit 2012-11-28 11:39:33 -08:00
gpio-msic.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-msm-v1.c gpio_msm: Fix build error due to missing err.h 2013-07-31 00:34:31 +02:00
gpio-msm-v2.c This is the bulk of GPIO changes for the v3.12 series: 2013-09-07 10:53:00 -07: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: gpio-mxs: Remove unneeded dt checks 2013-11-06 10:51:24 +01:00
gpio-octeon.c gpio MIPS/OCTEON: Add a driver for OCTEON's on-chip GPIO pins. 2013-08-26 15:33:40 +02:00
gpio-omap.c gpio/omap: use gpiolib API to mark a GPIO used as an IRQ 2013-10-16 10:06:00 +02:00
gpio-palmas.c gpio: palmas: add support for TPS80036 2013-09-19 15:31:48 +02:00
gpio-pca953x.c gpio: pca953x: Don't flip bits on PCA957x GPIO expanders when probing them. 2013-09-23 12:57:11 +02:00
gpio-pcf857x.c gpio: pcf857x: Add OF support 2013-09-23 20:00:01 +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: pl061: drop references to "virtual" IRQ 2013-10-16 09:59:52 +02:00
gpio-pxa.c gpio: pxa: remove dead code 2013-07-21 18:14:20 +02:00
gpio-rc5t583.c gpio: remove use of __devexit 2012-11-28 11:39:59 -08:00
gpio-rcar.c gpio: rcar: Include linux/of.h header 2013-10-16 13:10:00 +02:00
gpio-rdc321x.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-sa1100.c ARM: 7841/1: sa1100: remove complex GPIO interface 2013-10-29 11:01:02 +00:00
gpio-samsung.c ARM: SoC DT updates for 3.13 2013-11-11 17:34:56 +09: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: remove use of __devinit 2012-11-28 11:39:33 -08:00
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: drop references to "virtual" IRQ, fix bug 2013-10-16 09:59:53 +02:00
gpio-stp-xway.c gpio: gpio-stp-xway.c: fix checkpatch error 2013-03-27 16:05:16 +01:00
gpio-sx150x.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-tb10x.c gpio: tb10x: fix return value check in tb10x_gpio_probe() 2013-10-30 11:28:14 -07:00
gpio-tc3589x.c gpio: tc3589x: drop references to "virtual" IRQ 2013-10-11 19:06:12 +02:00
gpio-tegra.c gpio: tegra: use new gpio_lock_as_irq() API 2013-10-17 10:51:53 +02:00
gpio-timberdale.c gpio: use dev_get_platdata() 2013-08-16 15:24:35 +02:00
gpio-tnetv107x.c ARM: davinci: gpio: use gpiolib API instead of inline functions 2013-09-25 04:16:37 +05:30
gpio-tps6586x.c This is the MFD patch set for the 3.8 merge window. 2012-12-16 18:55:20 -08:00
gpio-tps65910.c gpio: gpio-tps65910.c: fix checkpatch error 2013-03-27 16:05:18 +01:00
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: twl4030: Remove redundant of_match_ptr 2013-10-02 12:44:34 +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: remove use of __devexit 2012-11-28 11:39:59 -08:00
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 / ACPI: allow passing GPIOF_ACTIVE_LOW for GpioInt resources 2013-10-19 23:32:14 +02:00
gpiolib-of.c GPIO bulk changes for the v3.13 development cycle 2013-11-12 15:50:46 +09:00
gpiolib.c ACPI / driver core: Store an ACPI device pointer in struct acpi_dev_node 2013-11-14 23:14:43 +01:00
Kconfig GPIO bulk changes for the v3.13 development cycle 2013-11-12 15:50:46 +09:00
Makefile GPIO bulk changes for the v3.13 development cycle 2013-11-12 15:50:46 +09:00