diff options
author | Olof Johansson <olof@lixom.net> | 2019-06-16 13:26:55 -0700 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2019-06-16 13:26:55 -0700 |
commit | 4bded299838ffb2735b73598ed5a008bd03023f3 (patch) | |
tree | a5d8bec3079901f0c5b56e219c0f3e3997054ba4 | |
parent | 9925a6d9b794a67db360c1be300a598fa8a83470 (diff) | |
parent | b25af2ff7c07bd19af74e3f64ff82e2880d13d81 (diff) | |
download | linux-stable-4bded299838ffb2735b73598ed5a008bd03023f3.tar.gz linux-stable-4bded299838ffb2735b73598ed5a008bd03023f3.tar.bz2 linux-stable-4bded299838ffb2735b73598ed5a008bd03023f3.zip |
Merge tag 'imx-fixes-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes
i.MX fixes for 5.2:
- A build fix for soc-imx8 driver which needs SOC_BUS support. To
avoid dealing with the dependency for every single i.MX SoC bus
driver, we selects at from architecture level.
- A fix on i.MX SCU firmware driver to ensure SCU irq is enabled only
after IPC is ready.
- A regression fix on cpuidle-imx6sx driver, which causes some
characters loss on serial communication.
* tag 'imx-fixes-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX
firmware: imx: SCU irq should ONLY be enabled after SCU IPC is ready
arm64: imx: Fix build error without CONFIG_SOC_BUS
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/mach-imx/cpuidle-imx6sx.c | 3 | ||||
-rw-r--r-- | arch/arm64/Kconfig.platforms | 1 | ||||
-rw-r--r-- | drivers/firmware/imx/imx-scu-irq.c | 3 |
3 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/cpuidle-imx6sx.c b/arch/arm/mach-imx/cpuidle-imx6sx.c index fd0053e47a15..3708a71f30e6 100644 --- a/arch/arm/mach-imx/cpuidle-imx6sx.c +++ b/arch/arm/mach-imx/cpuidle-imx6sx.c @@ -15,6 +15,7 @@ #include "common.h" #include "cpuidle.h" +#include "hardware.h" static int imx6sx_idle_finish(unsigned long val) { @@ -110,7 +111,7 @@ int __init imx6sx_cpuidle_init(void) * except for power up sw2iso which need to be * larger than LDO ramp up time. */ - imx_gpc_set_arm_power_up_timing(0xf, 1); + imx_gpc_set_arm_power_up_timing(cpu_is_imx6sx() ? 0xf : 0x2, 1); imx_gpc_set_arm_power_down_timing(1, 1); return cpuidle_register(&imx6sx_cpuidle_driver, NULL); diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index c7ad684926c3..1b938154db1c 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -168,6 +168,7 @@ config ARCH_MXC select IMX_GPCV2_PM_DOMAINS select PM select PM_GENERIC_DOMAINS + select SOC_BUS help This enables support for the ARMv8 based SoCs in the NXP i.MX family. diff --git a/drivers/firmware/imx/imx-scu-irq.c b/drivers/firmware/imx/imx-scu-irq.c index 043833ad3c1a..687121f8c4d5 100644 --- a/drivers/firmware/imx/imx-scu-irq.c +++ b/drivers/firmware/imx/imx-scu-irq.c @@ -100,6 +100,9 @@ int imx_scu_irq_group_enable(u8 group, u32 mask, u8 enable) struct imx_sc_rpc_msg *hdr = &msg.hdr; int ret; + if (!imx_sc_irq_ipc_handle) + return -EPROBE_DEFER; + hdr->ver = IMX_SC_RPC_VERSION; hdr->svc = IMX_SC_RPC_SVC_IRQ; hdr->func = IMX_SC_IRQ_FUNC_ENABLE; |