Bug 90521

Summary: Asus t100ta Buttons not working
Product: ACPI Reporter: Brian Loften (bloften80)
Component: Config-InterruptsAssignee: Aaron Lu (aaron.lu)
Status: CLOSED CODE_FIX    
Severity: normal CC: mika.westerberg, rui.zhang
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.19.-rc2 Subsystem:
Regression: No Bisected commit-id:
Attachments: Correct IRQ API used in crystalcove's irq handler

Description Brian Loften 2014-12-31 15:23:47 UTC
Hello the side buttons for volume on the Asust100 baytrail are not working properly they are being detected by the crystalcove-gpio 

  
265:          0          0          0          0  Crystal Cove    5  gpio_crystalcove
 266:          0          0          0          0  Crystal Cove    0  volume_up
 267:          0          0          0          0  Crystal Cove    1  volume_down
 273:          0          0          0          0  Crystal Cove    7  rotation_lock
 274:          0          0          0          0  Crystal Cove    8  home
 360:         17          0   

however when i push the volune buttons i get the following error message

 4089.639205] WARNING: CPU: 2 PID: 72 at kernel/irq/manage.c:661 irq_nested_primary_handler+0x2c/0x30()
[ 4089.639216] Primary handler called for nested irq 267
[ 4089.639224] Modules linked in: hci_uart joydev snd_soc_sst_baytrail_pcm asus_nb_wmi gpio_keys asus_wmi hid_generic sparse_keymap snd_soc_sst_dsp snd_soc_sst_byt_rt5640_mach intel_rapl intel_powerclamp coretemp kvm_intel kvm crc32_pclmul brcmfmac aesni_intel xts brcmutil aes_i586 cfg80211 lrw snd_intel_sst_acpi gf128mul i915 ablk_helper snd_soc_rt5640 snd_intel_sst_core cryptd snd_soc_rl6231 snd_soc_sst_mfld_platform snd_soc_core snd_compress drm_kms_helper usbhid snd_pcm_dmaengine snd_seq_midi drm mei_txe i2c_algo_bit lpc_ich hid_multitouch mei snd_pcm iosf_mbi snd_seq_midi_event snd_rawmidi wmi mac_hid 8250_fintek snd_seq soc_button_array int3400_thermal snd_seq_device ak8975 acpi_thermal_rel int3402_thermal processor_thermal_device int3403_thermal video acpi_pad snd_timer industrialio snd soundcore
[ 4089.639466]  bnep snd_soc_sst_acpi rfkill_gpio rfcomm bluetooth 8250_dw spi_pxa2xx_platform pwm_lpss_platform parport_pc ppdev lp parport nls_iso8859_1 uas usb_storage mmc_block sdhci_acpi sdhci
[ 4089.639543] CPU: 2 PID: 72 Comm: irq/67-Crystal  Tainted: G        W       3.19.0-rc2-next-20141231 #1
[ 4089.639554] Hardware name: ASUSTeK COMPUTER INC. T100TA/T100TA, BIOS T100TA.313 08/13/2014
[ 4089.639564]  00000002 00000000 c24fbdf4 c16e0257 c24fbe38 c24fbe28 c105390c c18ec480
[ 4089.639596]  c24fbe54 00000048 c18f8e3b 00000295 c10a60fc 00000295 c10a60fc f4464540
[ 4089.639626]  f446459c c278ad40 c24fbe40 c1053974 00000009 c24fbe38 c18ec480 c24fbe54
[ 4089.639656] Call Trace:
[ 4089.639685]  [<c16e0257>] dump_stack+0x41/0x52
[ 4089.639707]  [<c105390c>] warn_slowpath_common+0x8c/0xc0
[ 4089.639727]  [<c10a60fc>] ? irq_nested_primary_handler+0x2c/0x30
[ 4089.639744]  [<c10a60fc>] ? irq_nested_primary_handler+0x2c/0x30
[ 4089.639763]  [<c1053974>] warn_slowpath_fmt+0x34/0x40
[ 4089.639781]  [<c10a60fc>] irq_nested_primary_handler+0x2c/0x30
[ 4089.639800]  [<c10a5c56>] handle_irq_event_percpu+0x76/0x190
[ 4089.639818]  [<c1461570>] ? regmap_format_10_14_write+0x30/0x30
[ 4089.639836]  [<c1464f4c>] ? _regmap_bus_raw_write+0x4c/0x70
[ 4089.639854]  [<c10a5da1>] handle_irq_event+0x31/0x50
[ 4089.639872]  [<c10a83eb>] handle_simple_irq+0x4b/0x70
[ 4089.639889]  [<c10a5384>] generic_handle_irq+0x24/0x40
[ 4089.639908]  [<c1366d87>] crystalcove_gpio_irq_handler+0xa7/0xc0
[ 4089.639927]  [<c10a85a7>] handle_nested_irq+0x77/0x190
[ 4089.639947]  [<c1469801>] regmap_irq_thread+0x1b1/0x360
[ 4089.639966]  [<c10a6ae8>] irq_thread_fn+0x18/0x30
[ 4089.639983]  [<c10a6906>] irq_thread+0xf6/0x110
[ 4089.640001]  [<c10a6ad0>] ? irq_finalize_oneshot.part.30+0x1b0/0x1b0
[ 4089.640019]  [<c10a6b50>] ? irq_forced_thread_fn+0x50/0x50
[ 4089.640037]  [<c10a6810>] ? irq_thread_check_affinity+0xc0/0xc0
[ 4089.640054]  [<c106f389>] kthread+0xa9/0xc0
[ 4089.640074]  [<c16e6401>] ret_from_kernel_thread+0x21/0x30
[ 4089.640091]  [<c106f2e0>] ? kthread_create_on_node+0x110/0x110
[ 4089.640105] ---[ end trace dca7946ad31eba7d ]---
[ 4089.640113] ------------[ cut here ]------------
[ 4089.640131] WARNING: CPU: 2 PID: 72 at kernel/irq/handle.c:147 handle_irq_event_percpu+0x17a/0x190()
[ 4089.640147] irq 267 handler irq_nested_primary_handler+0x0/0x30 enabled interrupts
[ 4089.640154] Modules linked in: hci_uart joydev snd_soc_sst_baytrail_pcm asus_nb_wmi gpio_keys asus_wmi hid_generic sparse_keymap snd_soc_sst_dsp snd_soc_sst_byt_rt5640_mach intel_rapl intel_powerclamp coretemp kvm_intel kvm crc32_pclmul brcmfmac aesni_intel xts brcmutil aes_i586 cfg80211 lrw snd_intel_sst_acpi gf128mul i915 ablk_helper snd_soc_rt5640 snd_intel_sst_core cryptd snd_soc_rl6231 snd_soc_sst_mfld_platform snd_soc_core snd_compress drm_kms_helper usbhid snd_pcm_dmaengine snd_seq_midi drm mei_txe i2c_algo_bit lpc_ich hid_multitouch mei snd_pcm iosf_mbi snd_seq_midi_event snd_rawmidi wmi mac_hid 8250_fintek snd_seq soc_button_array int3400_thermal snd_seq_device ak8975 acpi_thermal_rel int3402_thermal processor_thermal_device int3403_thermal video acpi_pad snd_timer industrialio snd soundcore
[ 4089.640373]  bnep snd_soc_sst_acpi rfkill_gpio rfcomm bluetooth 8250_dw spi_pxa2xx_platform pwm_lpss_platform parport_pc ppdev lp parport nls_iso8859_1 uas usb_storage mmc_block sdhci_acpi sdhci
[ 4089.640442] CPU: 2 PID: 72 Comm: irq/67-Crystal  Tainted: G        W       3.19.0-rc2-next-20141231 #1
[ 4089.640452] Hardware name: ASUSTeK COMPUTER INC. T100TA/T100TA, BIOS T100TA.313 08/13/2014
[ 4089.640461]  00000002 00000000 c24fbe0c c16e0257 c24fbe50 c24fbe40 c105390c c18ec3e8
[ 4089.640491]  c24fbe6c 00000048 c18f8e27 00000093 c10a5d5a 00000093 c10a5d5a f4464540
[ 4089.640521]  f446459c c278ad40 c24fbe58 c1053974 00000009 c24fbe50 c18ec3e8 c24fbe6c
[ 4089.640550] Call Trace:
[ 4089.640571]  [<c16e0257>] dump_stack+0x41/0x52
[ 4089.640591]  [<c105390c>] warn_slowpath_common+0x8c/0xc0
[ 4089.640610]  [<c10a5d5a>] ? handle_irq_event_percpu+0x17a/0x190
[ 4089.640627]  [<c10a5d5a>] ? handle_irq_event_percpu+0x17a/0x190
[ 4089.640646]  [<c1053974>] warn_slowpath_fmt+0x34/0x40
[ 4089.640664]  [<c10a5d5a>] handle_irq_event_percpu+0x17a/0x190
[ 4089.640682]  [<c10a60d0>] ? irq_set_irq_wake+0x100/0x100
[ 4089.640700]  [<c10a5da1>] handle_irq_event+0x31/0x50
[ 4089.640718]  [<c10a83eb>] handle_simple_irq+0x4b/0x70
[ 4089.640735]  [<c10a5384>] generic_handle_irq+0x24/0x40
[ 4089.640752]  [<c1366d87>] crystalcove_gpio_irq_handler+0xa7/0xc0
[ 4089.640770]  [<c10a85a7>] handle_nested_irq+0x77/0x190
[ 4089.640790]  [<c1469801>] regmap_irq_thread+0x1b1/0x360
[ 4089.640809]  [<c10a6ae8>] irq_thread_fn+0x18/0x30
[ 4089.640826]  [<c10a6906>] irq_thread+0xf6/0x110
[ 4089.640844]  [<c10a6ad0>] ? irq_finalize_oneshot.part.30+0x1b0/0x1b0
[ 4089.640862]  [<c10a6b50>] ? irq_forced_thread_fn+0x50/0x50
[ 4089.640880]  [<c10a6810>] ? irq_thread_check_affinity+0xc0/0xc0
[ 4089.640896]  [<c106f389>] kthread+0xa9/0xc0
[ 4089.640915]  [<c16e6401>] ret_from_kernel_thread+0x21/0x30
[ 4089.640933]  [<c106f2e0>] ? kthread_create_on_node+0x110/0x110
[ 4089.640945] ---[ end trace dca7946ad31eba7e ]---
[ 4089.943279] ------------[ cut here ]------------
[ 4089.943320] WARNING: CPU: 2 PID: 72 at kernel/irq/manage.c:661 irq_nested_primary_handler+0x2c/0x30()
[ 4089.943331] Primary handler called for nested irq 267
[ 4089.943340] Modules linked in: hci_uart joydev snd_soc_sst_baytrail_pcm asus_nb_wmi gpio_keys asus_wmi hid_generic sparse_keymap snd_soc_sst_dsp snd_soc_sst_byt_rt5640_mach intel_rapl intel_powerclamp coretemp kvm_intel kvm crc32_pclmul brcmfmac aesni_intel xts brcmutil aes_i586 cfg80211 lrw snd_intel_sst_acpi gf128mul i915 ablk_helper snd_soc_rt5640 snd_intel_sst_core cryptd snd_soc_rl6231 snd_soc_sst_mfld_platform snd_soc_core snd_compress drm_kms_helper usbhid snd_pcm_dmaengine snd_seq_midi drm mei_txe i2c_algo_bit lpc_ich hid_multitouch mei snd_pcm iosf_mbi snd_seq_midi_event snd_rawmidi wmi mac_hid 8250_fintek snd_seq soc_button_array int3400_thermal snd_seq_device ak8975 acpi_thermal_rel int3402_thermal processor_thermal_device int3403_thermal video acpi_pad snd_timer industrialio snd soundcore
[ 4089.943580]  bnep snd_soc_sst_acpi rfkill_gpio rfcomm bluetooth 8250_dw spi_pxa2xx_platform pwm_lpss_platform parport_pc ppdev lp parport nls_iso8859_1 uas usb_storage mmc_block sdhci_acpi sdhci
[ 4089.943657] CPU: 2 PID: 72 Comm: irq/67-Crystal  Tainted: G        W       3.19.0-rc2-next-20141231 #1
[ 4089.943668] Hardware name: ASUSTeK COMPUTER INC. T100TA/T100TA, BIOS T100TA.313 08/13/2014
[ 4089.943678]  00000002 00000000 c24fbdf4 c16e0257 c24fbe38 c24fbe28 c105390c c18ec480
[ 4089.943710]  c24fbe54 00000048 c18f8e3b 00000295 c10a60fc 00000295 c10a60fc f4464540
[ 4089.943740]  f446459c c278ad40 c24fbe40 c1053974 00000009 c24fbe38 c18ec480 c24fbe54
[ 4089.943770] Call Trace:
[ 4089.943799]  [<c16e0257>] dump_stack+0x41/0x52
[ 4089.943821]  [<c105390c>] warn_slowpath_common+0x8c/0xc0
[ 4089.943842]  [<c10a60fc>] ? irq_nested_primary_handler+0x2c/0x30
[ 4089.943859]  [<c10a60fc>] ? irq_nested_primary_handler+0x2c/0x30
[ 4089.943878]  [<c1053974>] warn_slowpath_fmt+0x34/0x40
[ 4089.943896]  [<c10a60fc>] irq_nested_primary_handler+0x2c/0x30
[ 4089.943914]  [<c10a5c56>] handle_irq_event_percpu+0x76/0x190
[ 4089.943933]  [<c1461570>] ? regmap_format_10_14_write+0x30/0x30
[ 4089.943951]  [<c1464f4c>] ? _regmap_bus_raw_write+0x4c/0x70
[ 4089.943969]  [<c10a5da1>] handle_irq_event+0x31/0x50
[ 4089.943987]  [<c10a83eb>] handle_simple_irq+0x4b/0x70
[ 4089.944005]  [<c10a5384>] generic_handle_irq+0x24/0x40
[ 4089.944024]  [<c1366d87>] crystalcove_gpio_irq_handler+0xa7/0xc0
[ 4089.944042]  [<c10a85a7>] handle_nested_irq+0x77/0x190
[ 4089.944062]  [<c1469801>] regmap_irq_thread+0x1b1/0x360
[ 4089.944081]  [<c10a6ae8>] irq_thread_fn+0x18/0x30
[ 4089.944098]  [<c10a6906>] irq_thread+0xf6/0x110
[ 4089.944116]  [<c10a6ad0>] ? irq_finalize_oneshot.part.30+0x1b0/0x1b0
[ 4089.944134]  [<c10a6b50>] ? irq_forced_thread_fn+0x50/0x50
[ 4089.944152]  [<c10a6810>] ? irq_thread_check_affinity+0xc0/0xc0
[ 4089.944170]  [<c106f389>] kthread+0xa9/0xc0
[ 4089.944190]  [<c16e6401>] ret_from_kernel_thread+0x21/0x30
[ 4089.944207]  [<c106f2e0>] ? kthread_create_on_node+0x110/0x110
[ 4089.944221] ---[ end trace dca7946ad31eba7f ]---

perhaps the pins need to be assigned the correct values??

Thank you
Comment 1 Aaron Lu 2015-01-09 06:19:41 UTC
Created attachment 162871 [details]
Correct IRQ API used in crystalcove's irq handler

Please test this patch on top of v3.19-rc3, thanks.
Comment 2 Brian Loften 2015-01-10 20:37:19 UTC
Thank you, the volume buttons are working now
Comment 3 Aaron Lu 2015-01-12 01:53:00 UTC
Good to know this, I'll submit this patch with your reported-and-tested-by tag soon.
Comment 5 Aaron Lu 2015-01-20 08:09:35 UTC
commit e733a2fb8cbcff0747108cb529ffb4e4a00465ac
Author: Aaron Lu <aaron.lu@intel.com>
Date:   Mon Jan 12 10:09:32 2015 +0800

    gpio: crystalcove: use handle_nested_irq

entered Linus' tree for v3.19.