Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753482AbdCTJVE (ORCPT ); Mon, 20 Mar 2017 05:21:04 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:58536 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753350AbdCTJUy (ORCPT ); Mon, 20 Mar 2017 05:20:54 -0400 From: Arnd Bergmann To: Thierry Reding , Jonathan Hunter Cc: Arnd Bergmann , Laxman Dewangan , Mathieu Poirier , linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] soc/tegra: fix link errors with PMC disabled Date: Mon, 20 Mar 2017 10:13:06 +0100 Message-Id: <20170320091405.1041129-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:d3bvlio+Fa/chIxWU7DNy+JiIRq80/skLsEyrV6Z6Y1DiL9tsdg f/4bUubRiQ1asAePlUunCqkM3etAbEf35LWQOX7Bb1hPuyEPS5XZ8LhFMhbrdCH1580KEef 2P2DcWueYJ3hUiwZPv6++V60UtDNeuuYnWs/LQBHdiu6kCvQ2xmS4b+mQhDHZA/4SRJNt4X qZbVsFr4uR9v5sHdDEUng== X-UI-Out-Filterresults: notjunk:1;V01:K0:9hJtsyash8g=:eAdJVNYVoquEwn1mAJUMXV ogHY9T9sSVOITHQscS83YeVKHbANCdv/rvVf3m3yB0jELYHsYFg0dk0bngAFwHePOtCueUT5V iaRb+X40udj7dmiOMZtNiUbBhf8vkM2ND1XKI06qv82JGTH/K1m4gYYbom7HD6gI+3uxbYI25 6e9DinECu0sF1HDIGm/KB6a3MWbjfzBuaC4TNz7rEN35vrmvi3JX4X9TB+iHcXtukyZRrZdWV cEbLzHG2ssSvl7s5sGiVMGoFn0Yc2sWhluL1dgvkmCLkWwBVi5AFNCgNpjptYxfljIcQo3A+t hVbL/Tz25EkfGao+WHwBaOi4MgMT5NUf5X3HHq48c6xXRdLbeozAYEq9rf28WTZNMmN7Bv+Rm H+vHAODBcBAszprokSXQZrrIWMfL0KeIBAaWb3lOgJ+YmKrs4qild6IjJHESsRf2dfPfQT7QF Fiob4S/OsmNTm9eUOV4Msn7a7QJ6ZoQJWVuyBM8f02Zub6rg7p4mtGO+nGkeG7LX52A8+F/GM mggcMrFOxSQNR8y3pL+vMYx1aoNNy0LMBAZwBe60RZz3ewZVciuziRG6jdLF65vI8hvEUM/11 jhSbvkUjtpvPqK80dm8Tnewn/de9Ozh6y6nu1UuTHj4I5x8Y+91NufVDwF/TtQV3pJz5E6Weq 1W0bvreQ15XDoWiggRQmuZP28MJnFtQsrqQTkoQbBmLzeyZ8u++lEFlXAzb6098Bo6PI= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3002 Lines: 85 With the new Tegra186 PMC driver merged, anything that relies on the previous PMC driver fails to link when that is disabled: arch/arm/mach-tegra/pm.o: In function `tegra_pm_set': pm.c:(.text.tegra_pm_set+0x3c): undefined reference to `tegra_pmc_enter_suspend_mode' arch/arm/mach-tegra/pm.o: In function `tegra_suspend_enter': pm.c:(.text.tegra_suspend_enter+0x4): undefined reference to `tegra_pmc_get_suspend_mode' arch/arm/mach-tegra/pm.o: In function `tegra_init_suspend': pm.c:(.init.text+0x1c): undefined reference to `tegra_pmc_get_suspend_mode' pm.c:(.init.text+0x74): undefined reference to `tegra_pmc_set_suspend_mode' ERROR: tegra_powergate_sequence_power_up [drivers/ata/ahci_tegra.ko] undefined! ERROR: tegra_powergate_power_off [drivers/ata/ahci_tegra.ko] undefined! Making the definition depend on the presence of the driver makes it build again, though that might not be the correct fix. Fixes: 854014236290 ("soc/tegra: Implement Tegra186 PMC support") Signed-off-by: Arnd Bergmann --- include/soc/tegra/pmc.h | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/include/soc/tegra/pmc.h b/include/soc/tegra/pmc.h index 2f271d1b9cea..1c3982bc558f 100644 --- a/include/soc/tegra/pmc.h +++ b/include/soc/tegra/pmc.h @@ -26,12 +26,6 @@ struct clk; struct reset_control; -#ifdef CONFIG_PM_SLEEP -enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void); -void tegra_pmc_set_suspend_mode(enum tegra_suspend_mode mode); -void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode); -#endif /* CONFIG_PM_SLEEP */ - #ifdef CONFIG_SMP bool tegra_pmc_cpu_is_powered(unsigned int cpuid); int tegra_pmc_cpu_power_on(unsigned int cpuid); @@ -144,7 +138,7 @@ enum tegra_io_pad_voltage { TEGRA_IO_PAD_3300000UV, }; -#ifdef CONFIG_ARCH_TEGRA +#ifdef CONFIG_SOC_TEGRA_PMC int tegra_powergate_is_powered(unsigned int id); int tegra_powergate_power_on(unsigned int id); int tegra_powergate_power_off(unsigned int id); @@ -163,6 +157,11 @@ int tegra_io_pad_get_voltage(enum tegra_io_pad id); /* deprecated, use tegra_io_pad_power_{enable,disable}() instead */ int tegra_io_rail_power_on(unsigned int id); int tegra_io_rail_power_off(unsigned int id); + +enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void); +void tegra_pmc_set_suspend_mode(enum tegra_suspend_mode mode); +void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode); + #else static inline int tegra_powergate_is_powered(unsigned int id) { @@ -221,6 +220,20 @@ static inline int tegra_io_rail_power_off(unsigned int id) { return -ENOSYS; } -#endif /* CONFIG_ARCH_TEGRA */ + +static inline enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void) +{ + return TEGRA_SUSPEND_NONE; +} + +static inline void tegra_pmc_set_suspend_mode(enum tegra_suspend_mode mode) +{ +} + +static inline void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode) +{ +} + +#endif /* CONFIG_SOC_TEGRA_PMC */ #endif /* __SOC_TEGRA_PMC_H__ */ -- 2.9.0