linux-uconsole/drivers
Anson Huang a0b14e6585 firmware: imx: SCU irq should ONLY be enabled after SCU IPC is ready
The imx_scu_irq_group_enable() is normally called during module driver
probe phase to enable SCU group irq, if SCU IPC is NOT ready, below
dump will show out:

[    0.933001] Hardware name: Freescale i.MX8QXP MEK (DT)
[    0.938129] pstate: 60000005 (nZCv daif -PAN -UAO)
[    0.942907] pc : imx_scu_call_rpc+0x114/0x158
[    0.947251] lr : imx_scu_irq_group_enable+0x74/0xc4
[    0.952113] sp : ffff00001005bae0
[    0.955415] x29: ffff00001005bae0 x28: ffff0000111bb0a0
[    0.960712] x27: ffff00001140b000 x26: ffff00001111068c
[    0.966011] x25: ffff0000111bb100 x24: 0000000000000000
[    0.971311] x23: ffff0000113d9cd8 x22: 0000000000000001
[    0.976610] x21: 0000000000000001 x20: ffff80083b51a410
[    0.981909] x19: ffff000011259000 x18: 0000000000000480
[    0.987209] x17: 000000000023ffb8 x16: 0000000000000010
[    0.992508] x15: 000000000000023f x14: ffffffffffffffff
[    0.997807] x13: 0000000000000018 x12: 0000000000000030
[    1.003107] x11: 0000000000000003 x10: 0101010101010101
[    1.008406] x9 : ffffffffffffffff x8 : 7f7f7f7f7f7f7f7f
[    1.013706] x7 : fefefeff646c606d x6 : 0000000000000000
[    1.019005] x5 : ffff0000112596c8 x4 : 0000000000000008
[    1.024304] x3 : 0000000000000003 x2 : 0000000000000001
[    1.029604] x1 : ffff00001005bb58 x0 : 0000000000000000
[    1.034905] Call trace:
[    1.037341]  imx_scu_call_rpc+0x114/0x158
[    1.041334]  imx_scu_irq_group_enable+0x74/0xc4
[    1.045856]  imx_sc_wdt_probe+0x24/0x150
[    1.049766]  platform_drv_probe+0x4c/0xb0
[    1.053762]  really_probe+0x1f8/0x2c8
[    1.057407]  driver_probe_device+0x58/0xfc
[    1.061490]  device_driver_attach+0x68/0x70
[    1.065660]  __driver_attach+0x94/0xdc
[    1.069397]  bus_for_each_dev+0x64/0xc0
[    1.073220]  driver_attach+0x20/0x28
[    1.076782]  bus_add_driver+0x148/0x1fc
[    1.080601]  driver_register+0x68/0x120
[    1.084424]  __platform_driver_register+0x4c/0x54
[    1.089120]  imx_sc_wdt_driver_init+0x18/0x20
[    1.093463]  do_one_initcall+0x58/0x1b8
[    1.097287]  kernel_init_freeable+0x1cc/0x288
[    1.101630]  kernel_init+0x10/0x100
[    1.105101]  ret_from_fork+0x10/0x18
[    1.108669] ---[ end trace 9e03302114457de9 ]---
[    1.113296] enable irq failed, group 1, mask 1, ret -22

To avoid such scenario, return -EPROBE_DEFER in imx_scu_irq_group_enable()
API if SCU IPC is NOT ready, then module driver which calls this API
in probe phase will defer probe after SCU IPC ready.

Fixes: 851826c756 ("firmware: imx: enable imx scu general irq function")
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2019-05-20 09:12:20 +08:00
..
accessibility
acpi One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
amba amba: tegra-ahb: Mark PM functions as __maybe_unused 2019-05-08 14:40:39 +02:00
android Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
ata for-5.2/block-post-20190516 2019-05-16 19:08:15 -07:00
atm
auxdisplay
base More power management updates for 5.2-rc1 2019-05-15 08:46:44 -07:00
bcma
block for-5.2/block-post-20190516 2019-05-16 19:08:15 -07:00
bluetooth Bluetooth: hci_qca: Rename STATE_<flags> to QCA_<flags> 2019-05-05 19:34:00 +02:00
bus ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
cdrom
char Some minor cleanups for the IPMI driver. 2019-05-08 10:34:17 -07:00
clk One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
clocksource Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 11:11:20 -07:00
connector
counter
cpufreq One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
cpuidle
crypto ARM: SoC platform updates 2019-05-16 08:31:32 -07:00
dax libnvdimm fixes 5.2-rc1 2019-05-15 18:56:50 -07:00
dca
devfreq
dio
dma dmaengine updates for v5.2-rc1 2019-05-09 08:51:45 -07:00
dma-buf drm i915, amdgpu, nouveau, msm, panfrost, bridge, pl111 fixes 2019-05-16 07:22:42 -07:00
edac * Do not build mpc85_edac as a module (Michael Ellerman) 2019-05-16 11:55:35 -07:00
eisa
extcon Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
firewire drivers/firewire/core-iso.c: convert to use vm_map_pages_zero() 2019-05-14 09:47:50 -07:00
firmware firmware: imx: SCU irq should ONLY be enabled after SCU IPC is ready 2019-05-20 09:12:20 +08:00
fmc
fpga ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
fsi
gnss Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
gpio Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:58:45 -07:00
gpu One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
hid treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
hsi
hv
hwmon Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2019-05-16 16:16:18 -07:00
hwspinlock
hwtracing Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
i2c i2c: core: add device-managed version of i2c_new_dummy 2019-05-17 19:29:40 +02:00
i3c * Fix a shift wrap bug in the core 2019-05-07 08:50:40 -07:00
ide ide: officially deprecated the legacy IDE driver 2019-05-08 16:47:23 -07:00
idle
iio power supply and reset changes for the v5.2 series 2019-05-15 18:50:40 -07:00
infiniband 5.2 Merge Window second pull request 2019-05-14 20:56:31 -07:00
input ARM: SoC platform updates 2019-05-16 08:31:32 -07:00
interconnect
iommu Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:58:45 -07:00
ipack
irqchip Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:58:45 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
leds - Core Frameworks 2019-05-14 10:39:08 -07:00
lightnvm lightnvm: pblk: use nvm_rq_to_ppa_list() 2019-05-06 10:19:19 -06:00
macintosh
mailbox One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
mcb
md - Improve DM snapshot target's scalability by using finer grained 2019-05-16 15:55:48 -07:00
media media: prefix header search paths with $(srctree)/ 2019-05-18 11:49:56 +09:00
memory One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
memstick MMC core: 2019-05-07 12:56:19 -07:00
message
mfd One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
misc Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 11:11:20 -07:00
mmc One more patch to remove io.h from clk-provider.h. We used to need this 2019-05-16 19:05:35 -07:00
mtd treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h> 2019-05-14 19:52:52 -07:00
mux
net treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
ntb
nubus
nvdimm libnvdimm fixes 5.2-rc1 2019-05-15 18:56:50 -07:00
nvme for-5.2/block-post-20190516 2019-05-16 19:08:15 -07:00
nvmem ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
of of_net: Fix missing of_find_device_by_node ref count drop 2019-05-13 08:52:37 -07:00
opp
oprofile
parisc parisc: Skip registering LED when running in QEMU 2019-05-03 23:47:39 +02:00
parport DMA mapping updates for 5.2 2019-05-09 08:40:55 -07:00
pci pci-v5.2-changes 2019-05-14 10:30:10 -07:00
pcmcia treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h> 2019-05-14 19:52:52 -07:00
perf
phy USB/PHY patches for 5.2-rc1 2019-05-08 10:03:52 -07:00
pinctrl - Core Frameworks 2019-05-14 10:39:08 -07:00
platform - Core Frameworks 2019-05-14 10:39:08 -07:00
pnp
power power supply and reset changes for the v5.2 series 2019-05-15 18:50:40 -07:00
powercap
pps pps: pps-gpio PPS ECHO implementation 2019-05-14 19:52:51 -07:00
ps3
ptp ptp_qoriq: fix NULL access if ptp dt node missing 2019-05-09 09:19:26 -07:00
pwm Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 11:11:20 -07:00
rapidio rapidio: fix a NULL pointer dereference when create_workqueue() fails 2019-05-14 19:52:50 -07:00
ras
regulator Merge branch 'regulator-5.2' into regulator-next 2019-05-06 22:52:14 +09:00
remoteproc
reset ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
rpmsg
rtc ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
s390 s390 updates for the 5.2 merge window #2 2019-05-17 10:08:59 -07:00
sbus mm/gup: change GUP fast to use flags rather than a write 'bool' 2019-05-14 09:47:46 -07:00
scsi mm/gup: change GUP fast to use flags rather than a write 'bool' 2019-05-14 09:47:46 -07:00
sfi
sh treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h> 2019-05-14 19:52:52 -07:00
siox
slimbus
sn
soc Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-19 10:58:45 -07:00
soundwire
spi ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
spmi
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
staging media updates for v5.2-rc1 2019-05-16 11:57:16 -07:00
target treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
tc
tee ARM: SoC-related driver updates 2019-05-16 09:19:14 -07:00
thermal Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2019-05-16 16:16:18 -07:00
thunderbolt Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
tty RISC-V Patches for the 5.2 Merge Window, Part 1 v3 2019-05-19 09:56:36 -07:00
uio
usb treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
uwb
vfio mm/gup: change GUP fast to use flags rather than a write 'bool' 2019-05-14 09:47:46 -07:00
vhost virtio: fixes, features 2019-05-14 14:12:59 -07:00
video fbdev/efifb: Ignore framebuffer memmap entries that lack any memory types 2019-05-17 11:07:42 +02:00
virt drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl 2019-05-14 19:52:52 -07:00
virtio virtio/virtio_ring: do some comment fixes 2019-05-12 13:11:35 -04:00
visorbus
vlynq
vme
w1 Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
watchdog ARM: SoC platform updates 2019-05-16 08:31:32 -07:00
xen xen: fixes and features for 5.2-rc1 2019-05-15 18:44:52 -07:00
zorro
Kconfig
Makefile