Refactor msdc_drv_{suspend, resume} by adding a new function msdc_drv_pm, that cleans up the code and removes double code. Signed-off-by: Christian Lütke-Stetzkamp <christian@xxxxxxxx> --- drivers/staging/mt7621-mmc/sd.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c index 4fe378040ce3..c7a00834deca 100644 --- a/drivers/staging/mt7621-mmc/sd.c +++ b/drivers/staging/mt7621-mmc/sd.c @@ -2907,34 +2907,30 @@ static int msdc_drv_remove(struct platform_device *pdev) /* Fix me: Power Flow */ #ifdef CONFIG_PM -static int msdc_drv_suspend(struct platform_device *pdev, pm_message_t state) + +static void msdc_drv_pm(struct platform_device *pdev, pm_message state) { - int ret = 0; struct mmc_host *mmc = platform_get_drvdata(pdev); struct msdc_host *host = mmc_priv(mmc); - if (mmc && state.event == PM_EVENT_SUSPEND && (host->hw->flags & MSDC_SYS_SUSPEND)) { /* will set for card */ + if (mmc && (host->hw->flags & MSDC_SYS_SUSPEND)) msdc_pm(state, (void *)host); - } +} - return ret; +static int msdc_drv_suspend(struct platform_device *pdev, pm_message_t state) +{ + if (state.event == PM_EVENT_SUSPEND) + msdc_drv_pm(pdev, state); + return 0; } static int msdc_drv_resume(struct platform_device *pdev) { - int ret = 0; - struct mmc_host *mmc = platform_get_drvdata(pdev); - struct msdc_host *host = mmc_priv(mmc); struct pm_message state; state.event = PM_EVENT_RESUME; - if (mmc && (host->hw->flags & MSDC_SYS_SUSPEND)) {/* will set for card */ - msdc_pm(state, (void *)host); - } - - /* This mean WIFI not controller by PM */ - - return ret; + msdc_drv_pm(pdev, state); + return 0; } #endif -- 2.16.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel