lkml.org 
[lkml]   [2022]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v2] brcmfmac: Remove #ifdef guards for PM related functions
From
On 6/23/2022 2:42 PM, Paul Cercueil wrote:
> Use the new DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() macros to
> handle the .suspend/.resume callbacks.
>
> These macros allow the suspend and resume functions to be automatically
> dropped by the compiler when CONFIG_SUSPEND is disabled, without having
> to use #ifdef guards.
>
> Some other functions not directly called by the .suspend/.resume
> callbacks, but still related to PM were also taken outside #ifdef
> guards.
>
> The advantage is then that these functions are now always compiled
> independently of any Kconfig option, and thanks to that bugs and
> regressions are easier to catch.

Reviewed-by: Arend van Spriel <aspriel@gmail.com>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>
> Notes:
> v2:
> - Move checks for IS_ENABLED(CONFIG_PM_SLEEP) inside functions to keep
> the calling functions intact.
> - Reword the commit message to explain why this patch is useful.
>
> .../broadcom/brcm80211/brcmfmac/bcmsdh.c | 38 +++++++------------
> .../broadcom/brcm80211/brcmfmac/sdio.c | 5 +--
> .../broadcom/brcm80211/brcmfmac/sdio.h | 16 --------
> 3 files changed, 16 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> index 9c598ea97499..11ad878a906b 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> @@ -784,9 +784,11 @@ void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev)
> sdiodev->txglomsz = sdiodev->settings->bus.sdio.txglomsz;
> }
>
> -#ifdef CONFIG_PM_SLEEP
> static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev)
> {
> + if (!IS_ENABLED(CONFIG_PM_SLEEP))
> + return 0;
> +
> sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL);
> if (!sdiodev->freezer)
> return -ENOMEM;
> @@ -799,7 +801,7 @@ static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev)
>
> static void brcmf_sdiod_freezer_detach(struct brcmf_sdio_dev *sdiodev)
> {
> - if (sdiodev->freezer) {
> + if (IS_ENABLED(CONFIG_PM_SLEEP) && sdiodev->freezer) {

This change is not necessary. sdiodev->freezer will be NULL when
CONFIG_PM_SLEEP is not enabled.

> WARN_ON(atomic_read(&sdiodev->freezer->freezing));
> kfree(sdiodev->freezer);
> }

\
 
 \ /
  Last update: 2022-06-24 11:25    [W:0.054 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site