Created attachment 278037 [details]
Full log of systemctl suspend on trimslice
When trying to enter suspend on a tegra20 arm device (Trimslice). I've experienced a crash with the pxa_gpio driver.
This driver shouldn't have been registered on the device.
This was discovered using a serial console and initcall_debug no_console_suspend=1
Please see attached a full log of the issue.
Once the pxa_gpio driver is disabled, I can suspend just fine.
For info, I'm using a distro kernel close to fedora 4.18x kernel.
FYI, the only arch that seems to rely on pxa_gpi is MMP2.
quote from the call trace:
[ 118.291482] Disabling non-boot CPUs ...
[ 118.321187] PM: Calling ledtrig_cpu_syscore_suspend+0x0/0x24
[ 118.326961] PM: Calling sched_clock_suspend+0x0/0x40
[ 118.331966] PM: Calling timekeeping_suspend+0x0/0x2bc
[ 118.331966] PM: Calling irq_gc_suspend+0x0/0x80
[ 118.331966] PM: Calling fw_suspend+0x0/0x28
[ 118.331966] PM: Calling pxa_gpio_suspend+0x0/0x74
[ 118.331966] Unable to handle kernel NULL pointer dereference at virtual address 000000d0
[ 118.331966] pgd = 8e57fbdd
[ 118.331966] [000000d0] *pgd=00000000
[ 118.331966] Internal error: Oops: 5 [#1] SMP ARM
[ 118.331966] Modules linked in: ofpart m25p80 spi_nor mtd tegra_drm snd_soc_tegra_trimslice snd_soc_tegra_utils cec rc_core drm_kms_helper snd_soc_tegra20_i2s snd_soc_tlv320aic23_i2c snd_soc_tlv320aic23 snd_sa
[ 118.331966] CPU: 0 PID: 656 Comm: systemd-sleep Tainted: G C 4.18.0-0.rc8.git0.1.tegra.fc28.armv7hl #1
[ 118.331966] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[ 118.331966] PC is at pxa_gpio_suspend+0x20/0x74
[ 118.331966] LR is at syscore_suspend+0x140/0x270
[ 118.331966] pc : [<c070f270>] lr : [<c082a630>] psr: 600f0193
[ 118.331966] sp : c319bda8 ip : ffffffff fp : c319bdb4
[ 118.331966] r10: 00000004 r9 : c1304d80 r8 : c0e22934
[ 118.331966] r7 : c13efb20 r6 : c13efb20 r5 : c1397ccc r4 : 00000000
[ 118.331966] r3 : 00000000 r2 : 00000000 r1 : 00000007 r0 : 00000000
[ 118.331966] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
[ 118.331966] Control: 10c5387d Table: 2b73804a DAC: 00000051
[ 118.331966] Process systemd-sleep (pid: 656, stack limit = 0x21bb6793)
Created attachment 278051 [details]
fedora based custom kernel config for armv7hl
The previous config is the fixed config (without PXA_GPIO enabled).
Here is my reference configuration:
This is a distro config where there is only supposed to have armv7 and multiarch capable platform and drivers (built as module whenever possible).
I expect that the CONFIG_ARCH_MMP and CONFIG_ARCH_MMP2_DT need pxa_gpio. But are both or only the later are armv7 capable ?
So having CONFIG_ARCH_MMP disabled in the fedora config could be a way forward.
Created attachment 278201 [details]
First patch pxa_gpio suspend
The previous patch doesn't work for me, the problem looks the same.
This is fixed with this commit