From e5fb789453dd0ddba6f65f4e3d44024d6a2c138f Mon Sep 17 00:00:00 2001 From: Lina Iyer Date: Wed, 6 May 2020 15:12:06 -0600 Subject: [PATCH 1/4] drivers: irqchip: pdc: Add irqchip for sdxlemur Declare PDC irqchip support for sdxlemur. Change-Id: I2ac3f67b71cc092024ea8a3d13e31571cd2bc898 Signed-off-by: Lina Iyer Signed-off-by: Tushar Nimkar --- drivers/irqchip/qcom-pdc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c index 790018ab1991..ba8113204d57 100644 --- a/drivers/irqchip/qcom-pdc.c +++ b/drivers/irqchip/qcom-pdc.c @@ -569,6 +569,7 @@ module_platform_driver(qcom_pdc_driver); IRQCHIP_DECLARE(qcom_pdc, "qcom,pdc", qcom_pdc_init); IRQCHIP_DECLARE(pdc_lahaina, "qcom,lahaina-pdc", qcom_pdc_init); IRQCHIP_DECLARE(pdc_shima, "qcom,shima-pdc", qcom_pdc_init); +IRQCHIP_DECLARE(pdc_sdxlemur, "qcom,sdxlemur-pdc", qcom_pdc_init); #endif MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Power Domain Controller"); From 6757e16bd043246f39ab6d8d80692198161a78a5 Mon Sep 17 00:00:00 2001 From: Lina Iyer Date: Wed, 6 May 2020 15:48:38 -0600 Subject: [PATCH 2/4] drivers: qcom: rpmh: allow RPMH on ARM SoC Remove config restriction for RPMH on ARM64 platforms only. Change-Id: Id783ad288098e09294eefbff2982af5670c3ab54 Signed-off-by: Lina Iyer Signed-off-by: Tushar Nimkar --- drivers/soc/qcom/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index 50b71a7a6aee..89b14c991436 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -349,7 +349,7 @@ config MSM_CORE_HANG_DETECT config QCOM_RPMH bool "Qualcomm RPM-Hardened (RPMH) Communication" - depends on ARCH_QCOM && ARM64 || COMPILE_TEST + depends on ARCH_QCOM || COMPILE_TEST help Support for communication with the hardened-RPM blocks in Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an From 963b168fc23cec9e1e148907a9c85f2a7e406399 Mon Sep 17 00:00:00 2001 From: Lina Iyer Date: Wed, 6 May 2020 15:49:51 -0600 Subject: [PATCH 3/4] cpuidle: lpm-levels: no hotplug for single core Register for hotplug and dev_pm_qos notification only for SMP so covering under CONFIG_SMP flag. Change-Id: Ic3da9648a4dd5c762cd97dbb9f1915f79bd2481e Signed-off-by: Lina Iyer Signed-off-by: Tushar Nimkar --- drivers/cpuidle/lpm-levels.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/cpuidle/lpm-levels.c b/drivers/cpuidle/lpm-levels.c index 5a98fc93596d..64a96f6f9ed2 100644 --- a/drivers/cpuidle/lpm-levels.c +++ b/drivers/cpuidle/lpm-levels.c @@ -121,12 +121,14 @@ static void cluster_prepare(struct lpm_cluster *cluster, static bool sleep_disabled; module_param_named(sleep_disabled, sleep_disabled, bool, 0664); +#ifdef CONFIG_SMP static int lpm_cpu_qos_notify(struct notifier_block *nb, unsigned long val, void *ptr); static struct notifier_block dev_pm_qos_nb[MAX_LPM_CPUS] = { [0 ... (MAX_LPM_CPUS - 1)] = { .notifier_call = lpm_cpu_qos_notify }, }; +#endif #ifdef CONFIG_SCHED_WALT static bool check_cpu_isolated(int cpu) @@ -140,6 +142,7 @@ static bool check_cpu_isolated(int cpu) } #endif +#ifdef CONFIG_SMP static int lpm_cpu_qos_notify(struct notifier_block *nb, unsigned long val, void *ptr) { @@ -171,6 +174,7 @@ static int lpm_online_cpu(unsigned int cpu) DEV_PM_QOS_RESUME_LATENCY); return 0; } +#endif /** * msm_cpuidle_get_deep_idle_latency - Get deep idle latency value @@ -219,6 +223,7 @@ static void update_debug_pc_event(enum debug_event event, uint32_t arg1, spin_unlock(&debug_lock); } +#ifdef CONFIG_SMP static int lpm_dying_cpu(unsigned int cpu) { struct lpm_cluster *cluster = per_cpu(cpu_lpm, cpu)->parent; @@ -241,7 +246,7 @@ static int lpm_starting_cpu(unsigned int cpu) 0, true); return 0; } - +#endif static void histtimer_cancel(void) { unsigned int cpu = raw_smp_processor_id(); @@ -1695,7 +1700,7 @@ static int lpm_probe(struct platform_device *pdev) pr_err("Failed to register with cpuidle framework\n"); goto failed; } - +#ifdef CONFIG_SMP ret = cpuhp_setup_state(CPUHP_AP_QCOM_TIMER_STARTING, "AP_QCOM_SLEEP_STARTING", lpm_starting_cpu, lpm_dying_cpu); @@ -1707,7 +1712,7 @@ static int lpm_probe(struct platform_device *pdev) lpm_online_cpu, lpm_offline_cpu); if (ret) goto failed; - +#endif module_kobj = kset_find_obj(module_kset, KBUILD_MODNAME); if (!module_kobj) { pr_err("Cannot find kobject for module %s\n", KBUILD_MODNAME); From eb798d82d2f69384d0279643f582283abbe52603 Mon Sep 17 00:00:00 2001 From: Lina Iyer Date: Wed, 6 May 2020 15:55:19 -0600 Subject: [PATCH 4/4] firmware: scm: Remove arch check for dma_set_mask Remove the preprocessor if statement for checking the arch of the target since this will not affect targets with a 32bit address space. This change allows the driver to be compiled and used for targets that do not define CONFIG_ARM64. Change-Id: I6fc11e86d6799099fdaeec46df6d7093c1ca117f Signed-off-by: Lina Iyer Signed-off-by: Tushar Nimkar Signed-off-by: Siddharth Gupta --- drivers/firmware/qcom_scm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 2c4be9d36114..ab2200ff3e37 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -1093,11 +1093,9 @@ static int qcom_scm_probe(struct platform_device *pdev) __qcom_scm_init(); -#if CONFIG_ARM64 ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)); if (ret) return ret; -#endif return 0; }