linux_dsm_epyc7002/drivers/pinctrl
Mika Westerberg e6c906dedb pinctrl: cherryview: Read triggering type from HW if not set when requested
If a driver does not set interrupt triggering type when it calls
request_irq(), it means use the pin as the hardware/firmware has
configured it. There are some drivers doing this. One example is
drivers/input/serio/i8042.c that requests the interrupt like:

	error = request_irq(I8042_KBD_IRQ, i8042_interrupt, IRQF_SHARED,
			    "i8042", i8042_platform_device);

It assumes the interrupt is already properly configured. This is true in
case of interrupts connected to the IO-APIC. However, some Intel
Braswell/Cherryview based machines use a GPIO here instead for the internal
keyboard controller.

This is a problem because even if the pin/interrupt is properly configured,
the irqchip ->irq_set_type() will never be called as the triggering flags
are 0. Because of that we do not have correct interrupt flow handler set
for the interrupt.

Fix this by adding a custom ->irq_startup() that checks if the interrupt
has no triggering type set and in that case read the type directly from the
hardware and install correct flow handler along with the mapping.

Reported-by: Jagadish Krishnamoorthy <jagadish.krishnamoorthy@intel.com>
Reported-by: Freddy Paul <freddy.paul@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-05-12 13:54:32 +02:00
..
bcm pinctrl: bcm2835: Fix support for threaded level triggered IRQs 2015-04-08 16:41:59 +02:00
berlin pinctrl: berlin: drop owner assignment from platform_drivers 2014-10-20 16:21:21 +02:00
freescale pinctrl: fsl: imx: Check for 0 config register 2015-04-07 15:11:00 +02:00
intel pinctrl: cherryview: Read triggering type from HW if not set when requested 2015-05-12 13:54:32 +02:00
mediatek pinctrl: mediatek: mtk-common: initialize unmask 2015-05-04 15:20:22 +02:00
meson pinctrl: Add support for Meson8b 2015-04-07 11:44:40 +02:00
mvebu pinctrl: mvebu: Fix mapping of pin 63 (gpo -> gpio) 2015-04-27 15:23:58 +02:00
nomadik pinctrl: fix allmodconfig noise 2015-04-15 10:02:42 +02:00
qcom These are some GPIO fixes for the v4.1 series: 2015-05-08 19:42:59 -07:00
samsung pinctrl: exynos: Remove eint_gpio_init call-back for exynos7 alive pinctrl block 2015-03-18 02:02:19 +01:00
sh-pfc sh-pfc: r8a7790: add EtherAVB pin groups 2015-04-07 15:21:26 +02:00
sirf pinctrl: sirf: move sgpio lock into state container 2015-04-09 10:16:13 +02:00
spear Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
sunxi This is the bulk of pin control changes for the v4.1 development 2015-04-14 17:58:15 -07:00
vt8500 pinctrl: constify of_device_id array 2015-03-27 09:58:35 +01:00
core.c pinctrl: Don't just pretend to protect pinctrl_maps, do it for real 2015-05-06 16:24:28 +02:00
core.h pinctrl: Don't just pretend to protect pinctrl_maps, do it for real 2015-05-06 16:24:28 +02:00
devicetree.c pinctrl: Don't just pretend to protect pinctrl_maps, do it for real 2015-05-06 16:24:28 +02:00
devicetree.h
Kconfig pinctrl: fix allmodconfig noise 2015-04-15 10:02:42 +02:00
Makefile pinctrl: add AMD GPIO driver support. 2015-03-18 02:02:21 +01:00
pinconf-generic.c pinctrl: pinconf-generic: add dt node names to error messages 2015-03-27 09:53:10 +01:00
pinconf.c pinctrl: pinconf-generic: Allow driver to specify DT params 2015-01-11 22:32:19 +01:00
pinconf.h pinctrl: pinconf-generic: Allow driver to specify DT params 2015-01-11 22:32:19 +01:00
pinctrl-adi2-bf54x.c pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-adi2-bf60x.c pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-adi2.c pinctrl: adi2: Remove duplicate gpiochip_remove_pin_ranges 2014-09-05 10:33:51 +02:00
pinctrl-adi2.h pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-amd.c Fix inconsistent spinlock of AMD GPIO driver which can be 2015-04-07 11:36:49 +02:00
pinctrl-amd.h Fix inconsistent spinlock of AMD GPIO driver which can be 2015-04-07 11:36:49 +02:00
pinctrl-as3722.c pinctrl: constify of_device_id array 2015-03-27 09:58:35 +01:00
pinctrl-at91.c This is the bulk of pin control changes for the v4.1 development 2015-04-14 17:58:15 -07:00
pinctrl-at91.h pinctrl: at91: use own header 2014-10-29 09:28:35 +01:00
pinctrl-coh901.c pinctrl: remove all usage of gpio_remove ret val in driver/pinctl 2014-07-22 16:34:12 +02:00
pinctrl-coh901.h
pinctrl-falcon.c staging: drivers: pinctrl: Fixed checkpatch.pl warnings 2015-01-21 11:02:26 +01:00
pinctrl-lantiq.c pinctrl: clean up after enable refactoring 2014-09-04 10:05:07 +02:00
pinctrl-lantiq.h pinctrl: lantiq: fix include guard #endif comment 2015-03-09 18:10:57 +01:00
pinctrl-palmas.c pinctrl: constify of_device_id array 2015-03-27 09:58:35 +01:00
pinctrl-rockchip.c pinctrl: rockchip: Only mask interrupts; never disable 2015-01-30 10:38:36 +01:00
pinctrl-single.c pinctrl: constify of_device_id array 2015-03-27 09:58:35 +01:00
pinctrl-st.c pinctrl: constify of_device_id array 2015-03-27 09:58:35 +01:00
pinctrl-tb10x.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
pinctrl-tegra20.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra30.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra114.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra124.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra210.c pinctrl: tegra: add a driver for Tegra210 2015-03-09 18:10:59 +01:00
pinctrl-tegra-xusb.c USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
pinctrl-tegra.c pinctrl: tegra: support nvidia,io-hv DT property 2015-03-09 18:10:58 +01:00
pinctrl-tegra.h pinctrl: tegra: use signed bitfields for optional fields 2015-03-19 09:20:17 +01:00
pinctrl-tz1090-pdc.c pinctrl: constify of_device_id array 2015-03-27 09:58:35 +01:00
pinctrl-tz1090.c pinctrl: constify of_device_id array 2015-03-27 09:58:35 +01:00
pinctrl-u300.c pinctrl: drop owner assignment from platform_drivers 2014-10-20 16:21:21 +02:00
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c pinctrl: lantiq: remove bogus of_gpio_chip_add 2015-01-14 14:20:46 +01:00
pinctrl-zynq.c pinctrl: hide PCONFDUMP in #ifdef 2015-01-30 14:30:59 +01:00
pinmux.c pinctrl: clean up after enable refactoring 2014-09-04 10:05:07 +02:00
pinmux.h