diff --git a/arch/arm/configs/vendor/sdxnightjar-debug.config b/arch/arm/configs/vendor/sdxnightjar-debug.config index e8f18192b596..c9380b073c4c 100644 --- a/arch/arm/configs/vendor/sdxnightjar-debug.config +++ b/arch/arm/configs/vendor/sdxnightjar-debug.config @@ -876,3 +876,7 @@ CONFIG_THERMAL_TSENS=y CONFIG_QTI_QMI_COOLING_DEVICE=y CONFIG_REGULATOR_COOLING_DEVICE=y CONFIG_LKDTM=m +CONFIG_MSM_PM_LEGACY=y +CONFIG_MSM_SPM=y +CONFIG_QCOM_MPM=y +CONFIG_QTI_SYSTEM_PM_RPM=y diff --git a/arch/arm/configs/vendor/sdxnightjar.config b/arch/arm/configs/vendor/sdxnightjar.config index 7c4711dd46bd..ff8678589ad8 100644 --- a/arch/arm/configs/vendor/sdxnightjar.config +++ b/arch/arm/configs/vendor/sdxnightjar.config @@ -904,3 +904,7 @@ CONFIG_THERMAL_GOV_USER_SPACE=y CONFIG_THERMAL_TSENS=y CONFIG_QTI_QMI_COOLING_DEVICE=y CONFIG_REGULATOR_COOLING_DEVICE=y +CONFIG_MSM_PM_LEGACY=y +CONFIG_MSM_SPM=y +CONFIG_QCOM_MPM=y +CONFIG_QTI_SYSTEM_PM_RPM=y diff --git a/drivers/irqchip/qcom-mpm.c b/drivers/irqchip/qcom-mpm.c index 5c4b0679c6d0..5f364c66851e 100644 --- a/drivers/irqchip/qcom-mpm.c +++ b/drivers/irqchip/qcom-mpm.c @@ -447,7 +447,7 @@ void msm_mpm_enter_sleep(struct cpumask *cpumask) if (!irq_data) return; - if (cpumask) + if (cpumask && irq_chip->irq_set_affinity) irq_chip->irq_set_affinity(irq_data, cpumask, true); } diff --git a/drivers/pinctrl/qcom/pinctrl-sdxnightjar.c b/drivers/pinctrl/qcom/pinctrl-sdxnightjar.c index 6d7fcb91b3ac..28d7c7817862 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdxnightjar.c +++ b/drivers/pinctrl/qcom/pinctrl-sdxnightjar.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. */ #include @@ -1169,6 +1169,22 @@ static const struct msm_pingroup sdxnightjar_groups[] = { SDC_QDSD_PINGROUP(qdsd_data3, 0x19c000, 28, 25), }; +static const struct msm_gpio_wakeirq_map sdxnightjar_mpm_map[] = { + {86, 3}, {91, 4}, {1, 5}, {2, 6}, + {92, 7}, {93, 8}, {5, 9}, {6, 10}, + {94, 11}, {9, 13}, {10, 14}, {11, 15}, + {12, 16}, {13, 17}, {14, 18}, {88, 19}, + {16, 20}, {17, 21}, {18, 22}, {19, 23}, + {22, 24}, {21, 25}, {24, 26}, {25, 27}, + {51, 28}, {87, 29}, {62, 30}, {63, 31}, + {64, 32}, {65, 33}, {66, 34}, {67, 35}, + {43, 36}, {50, 37}, {53, 38}, {54, 39}, + {55, 40}, {15, 41}, {56, 42}, {82, 43}, + {77, 47}, {61, 48}, {83, 50}, {84, 51}, + {85, 52}, {58, 53}, {81, 55}, {60, 56}, + {68, 57}, {70, 59}, {41, 60}, +}; + static const struct msm_pinctrl_soc_data sdxnightjar_pinctrl = { .pins = sdxnightjar_pins, .npins = ARRAY_SIZE(sdxnightjar_pins), @@ -1177,6 +1193,8 @@ static const struct msm_pinctrl_soc_data sdxnightjar_pinctrl = { .groups = sdxnightjar_groups, .ngroups = ARRAY_SIZE(sdxnightjar_groups), .ngpios = 100, + .wakeirq_map = sdxnightjar_mpm_map, + .nwakeirq_map = ARRAY_SIZE(sdxnightjar_mpm_map), }; static int sdxnightjar_pinctrl_probe(struct platform_device *pdev)