From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754150AbdHWOrR (ORCPT ); Wed, 23 Aug 2017 10:47:17 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:64129 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753985AbdHWOrQ (ORCPT ); Wed, 23 Aug 2017 10:47:16 -0400 From: Arnd Bergmann To: Nicolas Ferre , Alexandre Belloni Cc: Arnd Bergmann , Kishon Vijay Abraham I , Wenyou Yang , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] ARM: at91: don't select CONFIG_ARM_CPU_SUSPEND for old platforms Date: Wed, 23 Aug 2017 16:46:15 +0200 Message-Id: <20170823144636.2333097-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:reI3Ns36CBJxK8ZHgKYnDtB3CAGnv76ByIjjWy3gw+iKoACssVF PRwsGYCH4ZLLv17o1PXDq4DYBBJASSXpvUnSa7xFfWXwZJzWFZeCimMIKsncwP+5BGdXNNO anI4ru1x3lqhSLU5+t9My3LHLnhAxeKqyXhj3HBlzomtKMt6Mvwd4evSmdgXjb/z/ndGIjI Sm7vclhnkxggy5vWfteRQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:EnL9kdz/upA=:fFpjg4DRypbGqTaYHIN02P BDELfWnK+zRFXMqUooKpjUVzITxmijVFUF6l/NwntZwf5cvQ/LB8wEsZjAq/gxM4eyYB8AboQ fRjfk+qIakib3tUeYXmK09ZH6x19ROEr2Wq9HpUDSJS83FgqzG53+qx1hBnKAk+y2Gp//J4yt 4iHD6pMgioGEu/L0b3qEl63NLxxwmoR7ldKzLyNja8KGr6CfYcEetui0zsEzbG+PetZdPVYTw D0Dr9JhRLn3C0gMHj2AKLagrpDPTfaTejBb/2gqCghRwIAFnfgUaT7Kep1T93IYnt9wfHf77R QhndfgAzVR+0KkdPtzLMt5PlLs81D7eHGkdJem5WzPT5FHSEUtqIShdlTxpUxnEoZtZTrSAa4 17HMRXTNbtdecs+pHfYjfnBVbr5SuLrJ/41gY+Q6vsaErqFRYt2S+M/tao0OjqjQSaiT3pqhI V061z/CwitiBG/ZETHqwdoqkR+BPBL70/R1IBtmzxYt7avRQingV6Rch9AhQOc9nRCkTmUH07 SscDAjgRufleF2oMB70V0gZQs99aKEDDXJ8DFqxVzl0eCoalZZMOikkF5x+PhMCe5LjJlDi/L 4DnJP6US/kSuPH43Wal137vJgwyfKXF4t24Rk3veiTBAB/rerVshNzT76qCFmVZCIRSwODUi5 B+eSlemumu3cbMTOwXof23a3Qw2u4zB6YiAeXI3/pRIswq2SsYP9yjmYxB0BvidjsS3z28jLj Z/iXylX/EH87pzMn3jrH5c0bwoP46f7XwU+XOA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org My previous patch fixed a link error for all at91 platforms when CONFIG_ARM_CPU_SUSPEND was not set, however this caused another problem on a configuration that enabled CONFIG_ARCH_AT91 but none of the individual SoCs, and that also enabled CPU_ARM720 as the only CPU: warning: (ARCH_AT91 && SOC_IMX23 && SOC_IMX28 && ARCH_PXA && MACH_MVEBU_V7 && SOC_IMX6 && ARCH_OMAP3 && ARCH_OMAP4 && SOC_OMAP5 && SOC_AM33XX && SOC_DRA7XX && ARCH_EXYNOS3 && ARCH_EXYNOS4 && EXYNOS5420_MCPM && EXYNOS_CPU_SUSPEND && ARCH_VEXPRESS_TC2_PM && ARM_BIG_LITTLE_CPUIDLE && ARM_HIGHBANK_CPUIDLE && QCOM_PM) selects ARM_CPU_SUSPEND which has unmet direct dependencies (ARCH_SUSPEND_POSSIBLE) arch/arm/kernel/sleep.o: In function `cpu_resume': (.text+0xf0): undefined reference to `cpu_arm720_suspend_size' arch/arm/kernel/suspend.o: In function `__cpu_suspend_save': suspend.c:(.text+0x134): undefined reference to `cpu_arm720_do_suspend' This improves the hack some more by only selecting ARM_CPU_SUSPEND for the part that requires it, and changing pm.c to drop the contents of unused init functions so we no longer refer to cpu_resume on at91 platforms that don't need it. Fixes: cc7a938f5f30 ("ARM: at91: select CONFIG_ARM_CPU_SUSPEND") Signed-off-by: Arnd Bergmann --- arch/arm/mach-at91/Kconfig | 2 +- arch/arm/mach-at91/pm.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index d735e5fc4772..195da38cb9a2 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -1,7 +1,7 @@ menuconfig ARCH_AT91 bool "Atmel SoCs" depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M - select ARM_CPU_SUSPEND if PM + select ARM_CPU_SUSPEND if PM && ARCH_MULTI_V7 select COMMON_CLK_AT91 select GPIOLIB select PINCTRL diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index 667fddac3856..5036f996e694 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c @@ -608,6 +608,9 @@ static void __init at91_pm_init(void (*pm_idle)(void)) void __init at91rm9200_pm_init(void) { + if (!IS_ENABLED(CONFIG_SOC_AT91RM9200)) + return; + at91_dt_ramc(); /* @@ -620,18 +623,27 @@ void __init at91rm9200_pm_init(void) void __init at91sam9_pm_init(void) { + if (!IS_ENABLED(CONFIG_SOC_AT91SAM9)) + return; + at91_dt_ramc(); at91_pm_init(at91sam9_idle); } void __init sama5_pm_init(void) { + if (!IS_ENABLED(CONFIG_SOC_SAMA5)) + return; + at91_dt_ramc(); at91_pm_init(NULL); } void __init sama5d2_pm_init(void) { + if (!IS_ENABLED(CONFIG_SOC_SAMA5D2)) + return; + at91_pm_backup_init(); sama5_pm_init(); } -- 2.9.0