lkml.org 
[lkml]   [2018]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 143/193] wireless: cw1200: use __maybe_unused to hide pm functions_
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Arnd Bergmann <arnd@arndb.de>

    commit 836856e3bd61d0644e5178a2c1b51d90459e2788 upstream.

    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: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/wireless/cw1200/cw1200_spi.c | 9 ++-------
    drivers/net/wireless/cw1200/pm.h | 9 +++++++--
    2 files changed, 9 insertions(+), 9 deletions(-)

    --- a/drivers/net/wireless/cw1200/cw1200_spi.c
    +++ b/drivers/net/wireless/cw1200/cw1200_spi.c
    @@ -446,8 +446,7 @@ static int cw1200_spi_disconnect(struct
    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 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,
    },
    };

    --- a/drivers/net/wireless/cw1200/pm.h
    +++ b/drivers/net/wireless/cw1200/pm.h
    @@ -31,13 +31,18 @@ int cw1200_pm_init(struct cw1200_pm_stat
    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

    \
     
     \ /
      Last update: 2018-02-23 21:21    [W:2.439 / U:0.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site