profiles: qca_ipq95xx: switch Freedom WPS button to gpio-keys-polled

On Freedom boards, GPIO12 (WPS button) pad leakage lets the pin
linger near the switching threshold during cold boot, so the mainline
gpio-keys edge IRQ (IRQ36) storms at hundreds of thousands to millions
of edges per second, all pinned to CPU0.

CPU0 gets wedged in hardirq context, stops reporting RCU quiescent states,
and the resulting rcu_preempt stall blocks any driver bring-up that waits on synchronize_rcu(),
stalling i2c-mux/expander/LED probe and locking the board up.

Move the WPS button to a separate gpio-keys-polled node so it no longer requests an edge IRQ,
decoupling it from the pad leakage entirely.

Fixes: PCF-2655

Signed-off-by: Tim Hsu <tim.hsu@wnc.com.tw>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebased, removed PCI fix]
This commit is contained in:
Tim Hsu 2026-07-30 08:17:13 +08:00 committed by Hela Saadani
parent 0f3ea5734e
commit 6d3667850a

View File

@ -8,7 +8,7 @@ description: Build image for prpl Foundation Freedom board
feeds:
- name: feed_qca
uri: https://gitlab.com/prpl-foundation/prplOS/feed-qca.git
revision: latest-24.10/ath13.1@1a86eec8a5295c60fb5e7f7287679251a704d0fd
revision: latest-24.10/ath13.1@b6e2c2b11456fe0bcc01515102a0636783ae63dd
include:
- secure_boot_emmc
@ -53,6 +53,7 @@ packages:
- kmod-qca-wifi-nss-plugins
- wifi-scripts
- wifi-helper-scripts
- kmod-input-gpio-keys-polled
diffconfig: |
CONFIG_BUSYBOX_CUSTOM=y