Bug 106751 - gpio-keys do not work in 4.2.1/4.2.3 kernel on Teclast X98 Air 3G Baytrail tablet, but work in 4.1.8
Summary: gpio-keys do not work in 4.2.1/4.2.3 kernel on Teclast X98 Air 3G Baytrail ta...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Platform_x86 (show other bugs)
Hardware: Intel Linux
: P1 normal
Assignee: drivers_platform_x86@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-10-28 07:30 UTC by Icenowy Zheng
Modified: 2016-11-14 12:35 UTC (History)
3 users (show)

See Also:
Kernel Version: 4.2.x
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments

Description Icenowy Zheng 2015-10-28 07:30:26 UTC
GPIO Keys driver (for the Volume, Power and Win keys on Baytrail tablets) do not work on Teclast X98 Air 3G now, but it works on 4.1.8 kernel.
(However, the Goodix Touch driver do not work on 4.1.8... so I must use 4.2.x)

A gpio-keys event device is recognized, but it have only a "Left Meta"(Win) key, and no events can be received from it (as X98 Air 3G does not have a Win key)
On 4.1.8, a gpio-keys contains Power, VolUp and VolDown is recognized and works.

Here's some error printed, seems to be related to gpio-keys

genirq: Flags mismatch irq 8. 00000083 (volume_down) vs. 00000000 (rtc0)
gpio-keys: gpio-keys.1.auto: Unable to claim irq 8; error -16
Comment 1 jjmeijer88 2015-11-03 11:46:11 UTC
I'm having the same problem on my HP Omni 10 with kernel 4.2.5 / 4.3.0.  

Home and power do not work because of almost the same error: 
genirq: Flags mismatch irq 14. 00000083 (home) vs. 00000000 (pata_legacy.0)
gpio-keys gpio-keys.1.auto: Unable to claim irq 14; error -16

Also there is a warning before this happens, example:
soc_button_array INTCFD9:00: GPIO lookup for consumer soc_button_array
soc_button_array INTCFD9:00: using ACPI for GPIO lookup
acpi INTCFD9:00: GPIO: looking up soc_button_array-gpios
acpi INTCFD9:00: GPIO: looking up soc_button_array-gpio
acpi INTCFD9:00: GPIO: looking up 2 in _CRS
no flags found for soc_button_array


Volume +/- are registered but no button presses/interrupts are registered. I will also do a test with 4.1.8.

https://bugzilla.kernel.org/show_bug.cgi?id=107051
Comment 2 RussianNeuroMancer 2016-11-10 21:02:59 UTC
Try this and see if this helps you: https://patchwork.kernel.org/patch/6118791/
Comment 3 jjmeijer88 2016-11-14 12:16:30 UTC
Thanks, my volume rocker still doesn't work but it seems to have fixed my RTC: wake alarms now work.
Comment 4 RussianNeuroMancer 2016-11-14 12:22:12 UTC
Ok, maybe building with this .config will help you:
CONFIG_MFD_AXP20X_I2C=y
CONFIG_IIO=y
CONFIG_AXP288_ADC=y
CONFIG_XPOWER_PMIC_OPREGION=y

For me all buttons is working now.
Comment 5 jjmeijer88 2016-11-14 12:32:09 UTC
(In reply to RussianNeuroMancer from comment #4)
> Ok, maybe building with this .config will help you:
> CONFIG_MFD_AXP20X_I2C=y
> CONFIG_IIO=y
> CONFIG_AXP288_ADC=y
> CONFIG_XPOWER_PMIC_OPREGION=y
> 
> For me all buttons is working now.

Thanks for the help but I think my setup is different. I will try but what is your kernel version?

I made a little progress: https://bugzilla.kernel.org/show_bug.cgi?id=107051#c12
Comment 6 RussianNeuroMancer 2016-11-14 12:35:50 UTC
> what is your kernel version?
Linux 4.8.7

Note You need to log in before you can comment on or make changes to this bug.