diff mbox

[4/4] mmc: core: Initiate suspend|resume from mmc bus instead of mmc host

Message ID 1369918391-15277-5-git-send-email-ulf.hansson@stericsson.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ulf Hansson May 30, 2013, 12:53 p.m. UTC
From: Ulf Hansson <ulf.hansson@linaro.org>

The host should be responsible to suspend|resume the host and not the
card. This patch changes this behaviour, by moving the responsiblity
to the mmc bus instead which already holds the card device.

The exported functions mmc_suspend|resume_host are now to be considered
as depcrecated. Once all host drivers moves away from using them, we
can remove them. As of now, a successful error code is always returned.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
 drivers/mmc/core/bus.c  |   15 ++++++++++++++-
 drivers/mmc/core/core.c |   26 +++-----------------------
 2 files changed, 17 insertions(+), 24 deletions(-)

Comments

Jaehoon Chung June 4, 2013, 5:28 a.m. UTC | #1
Hi Ulf,

On 05/30/2013 09:53 PM, Ulf Hansson wrote:
> From: Ulf Hansson <ulf.hansson@linaro.org>
> 
> The host should be responsible to suspend|resume the host and not the
> card. This patch changes this behaviour, by moving the responsiblity
> to the mmc bus instead which already holds the card device.
> 
> The exported functions mmc_suspend|resume_host are now to be considered
> as depcrecated. Once all host drivers moves away from using them, we
> can remove them. As of now, a successful error code is always returned.
> 
> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
> ---
>  drivers/mmc/core/bus.c  |   15 ++++++++++++++-
>  drivers/mmc/core/core.c |   26 +++-----------------------
>  2 files changed, 17 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
> index d9e8c2b..2842684 100644
> --- a/drivers/mmc/core/bus.c
> +++ b/drivers/mmc/core/bus.c
> @@ -127,10 +127,16 @@ static int mmc_bus_suspend(struct device *dev)
>  {
>  	struct mmc_driver *drv = to_mmc_driver(dev->driver);
>  	struct mmc_card *card = mmc_dev_to_card(dev);
> +	struct mmc_host *host = card->host;
>  	int ret = 0;
>  
> -	if (dev->driver && drv->suspend)
> +	if (dev->driver && drv->suspend) {
>  		ret = drv->suspend(card);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	ret = host->bus_ops->suspend(host);
Need not to check whether host->bus_ops->suspend is existed or not?
>  	return ret;
>  }
>  
> @@ -138,10 +144,17 @@ static int mmc_bus_resume(struct device *dev)
>  {
>  	struct mmc_driver *drv = to_mmc_driver(dev->driver);
>  	struct mmc_card *card = mmc_dev_to_card(dev);
> +	struct mmc_host *host = card->host;
>  	int ret = 0;
>  
> +	ret = host->bus_ops->resume(host);
Ditto

Best Regards,
Jaehoon Chung
> +	if (ret)
> +		pr_warn("%s: error %d during resume (card was removed?)\n",
> +			mmc_hostname(host), ret);
> +
>  	if (dev->driver && drv->resume)
>  		ret = drv->resume(card);
> +
>  	return ret;
>  }
>  #endif
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index da3b907..49a5bca 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -2619,16 +2619,8 @@ EXPORT_SYMBOL(mmc_cache_ctrl);
>   */
>  int mmc_suspend_host(struct mmc_host *host)
>  {
> -	int err = 0;
> -
> -	mmc_bus_get(host);
> -	if (host->bus_ops && !host->bus_dead) {
> -		if (host->bus_ops->suspend)
> -			err = host->bus_ops->suspend(host);
> -	}
> -	mmc_bus_put(host);
> -
> -	return err;
> +	/* This function is deprecated */
> +	return 0;
>  }
>  EXPORT_SYMBOL(mmc_suspend_host);
>  
> @@ -2638,19 +2630,7 @@ EXPORT_SYMBOL(mmc_suspend_host);
>   */
>  int mmc_resume_host(struct mmc_host *host)
>  {
> -	int err;
> -
> -	mmc_bus_get(host);
> -	if (host->bus_ops && !host->bus_dead) {
> -		BUG_ON(!host->bus_ops->resume);
> -		err = host->bus_ops->resume(host);
> -		if (err)
> -			pr_warning("%s: error %d during resume "
> -					    "(card was removed?)\n",
> -					    mmc_hostname(host), err);
> -	}
> -	mmc_bus_put(host);
> -
> +	/* This function is deprecated */
>  	return 0;
>  }
>  EXPORT_SYMBOL(mmc_resume_host);
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ulf Hansson June 4, 2013, 8:34 a.m. UTC | #2
On 4 June 2013 07:28, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> Hi Ulf,
>
> On 05/30/2013 09:53 PM, Ulf Hansson wrote:
>> From: Ulf Hansson <ulf.hansson@linaro.org>
>>
>> The host should be responsible to suspend|resume the host and not the
>> card. This patch changes this behaviour, by moving the responsiblity
>> to the mmc bus instead which already holds the card device.
>>
>> The exported functions mmc_suspend|resume_host are now to be considered
>> as depcrecated. Once all host drivers moves away from using them, we
>> can remove them. As of now, a successful error code is always returned.
>>
>> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
>> ---
>>  drivers/mmc/core/bus.c  |   15 ++++++++++++++-
>>  drivers/mmc/core/core.c |   26 +++-----------------------
>>  2 files changed, 17 insertions(+), 24 deletions(-)
>>
>> diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
>> index d9e8c2b..2842684 100644
>> --- a/drivers/mmc/core/bus.c
>> +++ b/drivers/mmc/core/bus.c
>> @@ -127,10 +127,16 @@ static int mmc_bus_suspend(struct device *dev)
>>  {
>>       struct mmc_driver *drv = to_mmc_driver(dev->driver);
>>       struct mmc_card *card = mmc_dev_to_card(dev);
>> +     struct mmc_host *host = card->host;
>>       int ret = 0;
>>
>> -     if (dev->driver && drv->suspend)
>> +     if (dev->driver && drv->suspend) {
>>               ret = drv->suspend(card);
>> +             if (ret)
>> +                     return ret;
>> +     }
>> +
>> +     ret = host->bus_ops->suspend(host);
> Need not to check whether host->bus_ops->suspend is existed or not?

We don't need to check it here.

It is only for those cards that were not removed from the
mmc_pm_notify function (PM_SUSPEND_PREPARE) that get suspended here.
And the validation of the bus_ops has then already been done.

>>       return ret;
>>  }
>>
>> @@ -138,10 +144,17 @@ static int mmc_bus_resume(struct device *dev)
>>  {
>>       struct mmc_driver *drv = to_mmc_driver(dev->driver);
>>       struct mmc_card *card = mmc_dev_to_card(dev);
>> +     struct mmc_host *host = card->host;
>>       int ret = 0;
>>
>> +     ret = host->bus_ops->resume(host);
> Ditto

See comment above. Moreover, in the case were a bus_ops>suspend
function exist, there also exist an bus_ops->resume function.


Kind regards
Ulf Hansson

>
> Best Regards,
> Jaehoon Chung
>> +     if (ret)
>> +             pr_warn("%s: error %d during resume (card was removed?)\n",
>> +                     mmc_hostname(host), ret);
>> +
>>       if (dev->driver && drv->resume)
>>               ret = drv->resume(card);
>> +
>>       return ret;
>>  }
>>  #endif
>> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
>> index da3b907..49a5bca 100644
>> --- a/drivers/mmc/core/core.c
>> +++ b/drivers/mmc/core/core.c
>> @@ -2619,16 +2619,8 @@ EXPORT_SYMBOL(mmc_cache_ctrl);
>>   */
>>  int mmc_suspend_host(struct mmc_host *host)
>>  {
>> -     int err = 0;
>> -
>> -     mmc_bus_get(host);
>> -     if (host->bus_ops && !host->bus_dead) {
>> -             if (host->bus_ops->suspend)
>> -                     err = host->bus_ops->suspend(host);
>> -     }
>> -     mmc_bus_put(host);
>> -
>> -     return err;
>> +     /* This function is deprecated */
>> +     return 0;
>>  }
>>  EXPORT_SYMBOL(mmc_suspend_host);
>>
>> @@ -2638,19 +2630,7 @@ EXPORT_SYMBOL(mmc_suspend_host);
>>   */
>>  int mmc_resume_host(struct mmc_host *host)
>>  {
>> -     int err;
>> -
>> -     mmc_bus_get(host);
>> -     if (host->bus_ops && !host->bus_dead) {
>> -             BUG_ON(!host->bus_ops->resume);
>> -             err = host->bus_ops->resume(host);
>> -             if (err)
>> -                     pr_warning("%s: error %d during resume "
>> -                                         "(card was removed?)\n",
>> -                                         mmc_hostname(host), err);
>> -     }
>> -     mmc_bus_put(host);
>> -
>> +     /* This function is deprecated */
>>       return 0;
>>  }
>>  EXPORT_SYMBOL(mmc_resume_host);
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jaehoon Chung June 4, 2013, 8:47 a.m. UTC | #3
Thanks for your explanation. 

I have tested your patch with sdhci and dw-mmc controller.
(It's working fine <eMMC/SD-card/SDIO> with exynos)

Best Regards,
Jaehoon Chung

On 06/04/2013 05:34 PM, Ulf Hansson wrote:
> On 4 June 2013 07:28, Jaehoon Chung <jh80.chung@samsung.com> wrote:
>> Hi Ulf,
>>
>> On 05/30/2013 09:53 PM, Ulf Hansson wrote:
>>> From: Ulf Hansson <ulf.hansson@linaro.org>
>>>
>>> The host should be responsible to suspend|resume the host and not the
>>> card. This patch changes this behaviour, by moving the responsiblity
>>> to the mmc bus instead which already holds the card device.
>>>
>>> The exported functions mmc_suspend|resume_host are now to be considered
>>> as depcrecated. Once all host drivers moves away from using them, we
>>> can remove them. As of now, a successful error code is always returned.
>>>
>>> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
>>> ---
>>>  drivers/mmc/core/bus.c  |   15 ++++++++++++++-
>>>  drivers/mmc/core/core.c |   26 +++-----------------------
>>>  2 files changed, 17 insertions(+), 24 deletions(-)
>>>
>>> diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
>>> index d9e8c2b..2842684 100644
>>> --- a/drivers/mmc/core/bus.c
>>> +++ b/drivers/mmc/core/bus.c
>>> @@ -127,10 +127,16 @@ static int mmc_bus_suspend(struct device *dev)
>>>  {
>>>       struct mmc_driver *drv = to_mmc_driver(dev->driver);
>>>       struct mmc_card *card = mmc_dev_to_card(dev);
>>> +     struct mmc_host *host = card->host;
>>>       int ret = 0;
>>>
>>> -     if (dev->driver && drv->suspend)
>>> +     if (dev->driver && drv->suspend) {
>>>               ret = drv->suspend(card);
>>> +             if (ret)
>>> +                     return ret;
>>> +     }
>>> +
>>> +     ret = host->bus_ops->suspend(host);
>> Need not to check whether host->bus_ops->suspend is existed or not?
> 
> We don't need to check it here.
> 
> It is only for those cards that were not removed from the
> mmc_pm_notify function (PM_SUSPEND_PREPARE) that get suspended here.
> And the validation of the bus_ops has then already been done.
> 
>>>       return ret;
>>>  }
>>>
>>> @@ -138,10 +144,17 @@ static int mmc_bus_resume(struct device *dev)
>>>  {
>>>       struct mmc_driver *drv = to_mmc_driver(dev->driver);
>>>       struct mmc_card *card = mmc_dev_to_card(dev);
>>> +     struct mmc_host *host = card->host;
>>>       int ret = 0;
>>>
>>> +     ret = host->bus_ops->resume(host);
>> Ditto
> 
> See comment above. Moreover, in the case were a bus_ops>suspend
> function exist, there also exist an bus_ops->resume function.
> 
> 
> Kind regards
> Ulf Hansson
> 
>>
>> Best Regards,
>> Jaehoon Chung
>>> +     if (ret)
>>> +             pr_warn("%s: error %d during resume (card was removed?)\n",
>>> +                     mmc_hostname(host), ret);
>>> +
>>>       if (dev->driver && drv->resume)
>>>               ret = drv->resume(card);
>>> +
>>>       return ret;
>>>  }
>>>  #endif
>>> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
>>> index da3b907..49a5bca 100644
>>> --- a/drivers/mmc/core/core.c
>>> +++ b/drivers/mmc/core/core.c
>>> @@ -2619,16 +2619,8 @@ EXPORT_SYMBOL(mmc_cache_ctrl);
>>>   */
>>>  int mmc_suspend_host(struct mmc_host *host)
>>>  {
>>> -     int err = 0;
>>> -
>>> -     mmc_bus_get(host);
>>> -     if (host->bus_ops && !host->bus_dead) {
>>> -             if (host->bus_ops->suspend)
>>> -                     err = host->bus_ops->suspend(host);
>>> -     }
>>> -     mmc_bus_put(host);
>>> -
>>> -     return err;
>>> +     /* This function is deprecated */
>>> +     return 0;
>>>  }
>>>  EXPORT_SYMBOL(mmc_suspend_host);
>>>
>>> @@ -2638,19 +2630,7 @@ EXPORT_SYMBOL(mmc_suspend_host);
>>>   */
>>>  int mmc_resume_host(struct mmc_host *host)
>>>  {
>>> -     int err;
>>> -
>>> -     mmc_bus_get(host);
>>> -     if (host->bus_ops && !host->bus_dead) {
>>> -             BUG_ON(!host->bus_ops->resume);
>>> -             err = host->bus_ops->resume(host);
>>> -             if (err)
>>> -                     pr_warning("%s: error %d during resume "
>>> -                                         "(card was removed?)\n",
>>> -                                         mmc_hostname(host), err);
>>> -     }
>>> -     mmc_bus_put(host);
>>> -
>>> +     /* This function is deprecated */
>>>       return 0;
>>>  }
>>>  EXPORT_SYMBOL(mmc_resume_host);
>>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ulf Hansson June 4, 2013, 8:57 a.m. UTC | #4
On 4 June 2013 10:47, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> Thanks for your explanation.
>
> I have tested your patch with sdhci and dw-mmc controller.
> (It's working fine <eMMC/SD-card/SDIO> with exynos)

Thanks a lot for your help Jaehoon. So we could add your "Tested-by"
on the hole patch set then?

Kind regards
Ulf Hansson

>
> Best Regards,
> Jaehoon Chung
>
> On 06/04/2013 05:34 PM, Ulf Hansson wrote:
>> On 4 June 2013 07:28, Jaehoon Chung <jh80.chung@samsung.com> wrote:
>>> Hi Ulf,
>>>
>>> On 05/30/2013 09:53 PM, Ulf Hansson wrote:
>>>> From: Ulf Hansson <ulf.hansson@linaro.org>
>>>>
>>>> The host should be responsible to suspend|resume the host and not the
>>>> card. This patch changes this behaviour, by moving the responsiblity
>>>> to the mmc bus instead which already holds the card device.
>>>>
>>>> The exported functions mmc_suspend|resume_host are now to be considered
>>>> as depcrecated. Once all host drivers moves away from using them, we
>>>> can remove them. As of now, a successful error code is always returned.
>>>>
>>>> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
>>>> ---
>>>>  drivers/mmc/core/bus.c  |   15 ++++++++++++++-
>>>>  drivers/mmc/core/core.c |   26 +++-----------------------
>>>>  2 files changed, 17 insertions(+), 24 deletions(-)
>>>>
>>>> diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
>>>> index d9e8c2b..2842684 100644
>>>> --- a/drivers/mmc/core/bus.c
>>>> +++ b/drivers/mmc/core/bus.c
>>>> @@ -127,10 +127,16 @@ static int mmc_bus_suspend(struct device *dev)
>>>>  {
>>>>       struct mmc_driver *drv = to_mmc_driver(dev->driver);
>>>>       struct mmc_card *card = mmc_dev_to_card(dev);
>>>> +     struct mmc_host *host = card->host;
>>>>       int ret = 0;
>>>>
>>>> -     if (dev->driver && drv->suspend)
>>>> +     if (dev->driver && drv->suspend) {
>>>>               ret = drv->suspend(card);
>>>> +             if (ret)
>>>> +                     return ret;
>>>> +     }
>>>> +
>>>> +     ret = host->bus_ops->suspend(host);
>>> Need not to check whether host->bus_ops->suspend is existed or not?
>>
>> We don't need to check it here.
>>
>> It is only for those cards that were not removed from the
>> mmc_pm_notify function (PM_SUSPEND_PREPARE) that get suspended here.
>> And the validation of the bus_ops has then already been done.
>>
>>>>       return ret;
>>>>  }
>>>>
>>>> @@ -138,10 +144,17 @@ static int mmc_bus_resume(struct device *dev)
>>>>  {
>>>>       struct mmc_driver *drv = to_mmc_driver(dev->driver);
>>>>       struct mmc_card *card = mmc_dev_to_card(dev);
>>>> +     struct mmc_host *host = card->host;
>>>>       int ret = 0;
>>>>
>>>> +     ret = host->bus_ops->resume(host);
>>> Ditto
>>
>> See comment above. Moreover, in the case were a bus_ops>suspend
>> function exist, there also exist an bus_ops->resume function.
>>
>>
>> Kind regards
>> Ulf Hansson
>>
>>>
>>> Best Regards,
>>> Jaehoon Chung
>>>> +     if (ret)
>>>> +             pr_warn("%s: error %d during resume (card was removed?)\n",
>>>> +                     mmc_hostname(host), ret);
>>>> +
>>>>       if (dev->driver && drv->resume)
>>>>               ret = drv->resume(card);
>>>> +
>>>>       return ret;
>>>>  }
>>>>  #endif
>>>> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
>>>> index da3b907..49a5bca 100644
>>>> --- a/drivers/mmc/core/core.c
>>>> +++ b/drivers/mmc/core/core.c
>>>> @@ -2619,16 +2619,8 @@ EXPORT_SYMBOL(mmc_cache_ctrl);
>>>>   */
>>>>  int mmc_suspend_host(struct mmc_host *host)
>>>>  {
>>>> -     int err = 0;
>>>> -
>>>> -     mmc_bus_get(host);
>>>> -     if (host->bus_ops && !host->bus_dead) {
>>>> -             if (host->bus_ops->suspend)
>>>> -                     err = host->bus_ops->suspend(host);
>>>> -     }
>>>> -     mmc_bus_put(host);
>>>> -
>>>> -     return err;
>>>> +     /* This function is deprecated */
>>>> +     return 0;
>>>>  }
>>>>  EXPORT_SYMBOL(mmc_suspend_host);
>>>>
>>>> @@ -2638,19 +2630,7 @@ EXPORT_SYMBOL(mmc_suspend_host);
>>>>   */
>>>>  int mmc_resume_host(struct mmc_host *host)
>>>>  {
>>>> -     int err;
>>>> -
>>>> -     mmc_bus_get(host);
>>>> -     if (host->bus_ops && !host->bus_dead) {
>>>> -             BUG_ON(!host->bus_ops->resume);
>>>> -             err = host->bus_ops->resume(host);
>>>> -             if (err)
>>>> -                     pr_warning("%s: error %d during resume "
>>>> -                                         "(card was removed?)\n",
>>>> -                                         mmc_hostname(host), err);
>>>> -     }
>>>> -     mmc_bus_put(host);
>>>> -
>>>> +     /* This function is deprecated */
>>>>       return 0;
>>>>  }
>>>>  EXPORT_SYMBOL(mmc_resume_host);
>>>>
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index d9e8c2b..2842684 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -127,10 +127,16 @@  static int mmc_bus_suspend(struct device *dev)
 {
 	struct mmc_driver *drv = to_mmc_driver(dev->driver);
 	struct mmc_card *card = mmc_dev_to_card(dev);
+	struct mmc_host *host = card->host;
 	int ret = 0;
 
-	if (dev->driver && drv->suspend)
+	if (dev->driver && drv->suspend) {
 		ret = drv->suspend(card);
+		if (ret)
+			return ret;
+	}
+
+	ret = host->bus_ops->suspend(host);
 	return ret;
 }
 
@@ -138,10 +144,17 @@  static int mmc_bus_resume(struct device *dev)
 {
 	struct mmc_driver *drv = to_mmc_driver(dev->driver);
 	struct mmc_card *card = mmc_dev_to_card(dev);
+	struct mmc_host *host = card->host;
 	int ret = 0;
 
+	ret = host->bus_ops->resume(host);
+	if (ret)
+		pr_warn("%s: error %d during resume (card was removed?)\n",
+			mmc_hostname(host), ret);
+
 	if (dev->driver && drv->resume)
 		ret = drv->resume(card);
+
 	return ret;
 }
 #endif
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index da3b907..49a5bca 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -2619,16 +2619,8 @@  EXPORT_SYMBOL(mmc_cache_ctrl);
  */
 int mmc_suspend_host(struct mmc_host *host)
 {
-	int err = 0;
-
-	mmc_bus_get(host);
-	if (host->bus_ops && !host->bus_dead) {
-		if (host->bus_ops->suspend)
-			err = host->bus_ops->suspend(host);
-	}
-	mmc_bus_put(host);
-
-	return err;
+	/* This function is deprecated */
+	return 0;
 }
 EXPORT_SYMBOL(mmc_suspend_host);
 
@@ -2638,19 +2630,7 @@  EXPORT_SYMBOL(mmc_suspend_host);
  */
 int mmc_resume_host(struct mmc_host *host)
 {
-	int err;
-
-	mmc_bus_get(host);
-	if (host->bus_ops && !host->bus_dead) {
-		BUG_ON(!host->bus_ops->resume);
-		err = host->bus_ops->resume(host);
-		if (err)
-			pr_warning("%s: error %d during resume "
-					    "(card was removed?)\n",
-					    mmc_hostname(host), err);
-	}
-	mmc_bus_put(host);
-
+	/* This function is deprecated */
 	return 0;
 }
 EXPORT_SYMBOL(mmc_resume_host);