Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 836856e3 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Kalle Valo
Browse files

wireless: cw1200: use __maybe_unused to hide pm functions_



The cw1200 uses #ifdef to check for CONFIG_PM, but then
uses SIMPLE_DEV_PM_OPS, which leaves the references out when
CONFIG_PM_SLEEP is not defined, so we get a warning with
PM=y && PM_SLEEP=n:

drivers/net/wireless/st/cw1200/cw1200_spi.c:450:12: error: 'cw1200_spi_suspend' defined but not used [-Werror=unused-function]

This removes the incorrect #ifdef and instead uses a __maybe_unused
annotation to let the compiler know it can silently drop
the function definition.

For the DEV_PM_OPS definition, we can use an IS_ENABLED() check
to avoid defining the structure when CONFIG_PM is not set without
the #ifdef.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 73fb2705
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -446,8 +446,7 @@ static int cw1200_spi_disconnect(struct spi_device *func)
	return 0;
}

#ifdef CONFIG_PM
static int cw1200_spi_suspend(struct device *dev)
static int __maybe_unused cw1200_spi_suspend(struct device *dev)
{
	struct hwbus_priv *self = spi_get_drvdata(to_spi_device(dev));

@@ -460,16 +459,12 @@ static int cw1200_spi_suspend(struct device *dev)

static SIMPLE_DEV_PM_OPS(cw1200_pm_ops, cw1200_spi_suspend, NULL);

#endif

static struct spi_driver spi_driver = {
	.probe		= cw1200_spi_probe,
	.remove		= cw1200_spi_disconnect,
	.driver = {
		.name		= "cw1200_wlan_spi",
#ifdef CONFIG_PM
		.pm		= &cw1200_pm_ops,
#endif
		.pm		= IS_ENABLED(CONFIG_PM) ? &cw1200_pm_ops : NULL,
	},
};

+7 −2
Original line number Diff line number Diff line
@@ -31,13 +31,18 @@ int cw1200_pm_init(struct cw1200_pm_state *pm,
void cw1200_pm_deinit(struct cw1200_pm_state *pm);
int cw1200_wow_suspend(struct ieee80211_hw *hw,
		       struct cfg80211_wowlan *wowlan);
int cw1200_wow_resume(struct ieee80211_hw *hw);
int cw1200_can_suspend(struct cw1200_common *priv);
int cw1200_wow_resume(struct ieee80211_hw *hw);
void cw1200_pm_stay_awake(struct cw1200_pm_state *pm,
			  unsigned long tmo);
#else
static inline void cw1200_pm_stay_awake(struct cw1200_pm_state *pm,
					unsigned long tmo) {
					unsigned long tmo)
{
}
static inline int cw1200_can_suspend(struct cw1200_common *priv)
{
	return 0;
}
#endif
#endif