Skip to contentSkip to conversation

mmc: core: disable the cache before suspend only after stopping BKOPS

PATCH In review Maya Erez 5 participants 7 messages Jan 11, 2013 – Jan 28, 2013

Subsystems (2)
lore
Share & tools
lore

Maya Erez

author
#0 lore raw

PATCH 1/1 mmc: core: disable the cache before suspend only after stopping BKOPS

mmc_cache_ctrl was called in runtime suspend before MMC interrupted BKOPS in case it is still running on the card. This caused the cache disable to timeout.
Therefore, mmc_cache_ctrl has to move to mmc_suspend where we are sure that the card can go into suspend and there is no pending activity.

---
 drivers/mmc/core/core.c |    7 +------
 drivers/mmc/core/mmc.c  |    8 +++++++-
 2 files changed, 8 insertions(+), 7 deletions(-)
drivers/mmc/core/core.c +1 -6
index aaed768..b438bb2 100644
@@ -2388,6 +2388,7 @@ EXPORT_SYMBOL(mmc_flush_cache);
  * Turn the cache ON/OFF.
  * Turning the cache OFF shall trigger flushing of the data
  * to the non-volatile storage.
+ * This function should be called with host claimed
  */
 int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
 {
@@ -2399,7 +2400,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
 			mmc_card_is_removable(host))
 		return err;
 
-	mmc_claim_host(host);
 	if (card && mmc_card_mmc(card) &&
 			(card->ext_csd.cache_size > 0)) {
 		enable = !!enable;
@@ -2417,7 +2417,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
 				card->ext_csd.cache_ctrl = enable;
 		}
 	}
-	mmc_release_host(host);
 
 	return err;
 }
@@ -2436,10 +2435,6 @@ int mmc_suspend_host(struct mmc_host *host)
 	cancel_delayed_work(&host->detect);
 	mmc_flush_scheduled_work();
 
-	err = mmc_cache_ctrl(host, 0);
-	if (err)
-		goto out;
-
 	mmc_bus_get(host);
 	if (host->bus_ops && !host->bus_dead) {
 		if (host->bus_ops->suspend) {
drivers/mmc/core/mmc.c +7 -1
index e6e3911..dc17d40 100644
@@ -1379,6 +1379,11 @@ static int mmc_suspend(struct mmc_host *host)
 	BUG_ON(!host->card);
 
 	mmc_claim_host(host);
+
+	err = mmc_cache_ctrl(host, 0);
+	if (err)
+		goto out;
+
 	if (mmc_can_poweroff_notify(host->card))
 		err = mmc_poweroff_notify(host->card, EXT_CSD_POWER_OFF_SHORT);
 	else if (mmc_card_can_sleep(host))
@@ -1386,8 +1391,9 @@ static int mmc_suspend(struct mmc_host *host)
 	else if (!mmc_host_is_spi(host))
 		err = mmc_deselect_cards(host);
 	host->card->state &= ~(MMC_STATE_HIGHSPEED | MMC_STATE_HIGHSPEED_200);
-	mmc_release_host(host);
 
+out:
+	mmc_release_host(host);
 	return err;
 }
 
Signature · 4 lines
1.7.3.3
-- 
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#1 lore raw
Quoted 3 lines · Maya Erez

mmc_cache_ctrl was called in runtime suspend before MMC interrupted BKOPS in case it is still running on the card. This caused the cache disable to timeout.

I guess even if the idle time bkops polling is not implemented, this patch is good to have. cache control is the eMMC feature and in that sense, it should have been part of MMC's bus resume (mmc_resume) rather than generic mmc_suspend_host().

Patch as such is fine and if you agree, you may want to remove the mentioning of bkops as part of commit text and may just want to mention above reason as the main motivation for this patch.

Quoted 75 lines

Therefore, mmc_cache_ctrl has to move to mmc_suspend where we are sure that the card can go into suspend and there is no pending activity.

---
  drivers/mmc/core/core.c |    7 +------
  drivers/mmc/core/mmc.c  |    8 +++++++-
  2 files changed, 8 insertions(+), 7 deletions(-)
drivers/mmc/core/core.c +1 -6
index aaed768..b438bb2 100644
@@ -2388,6 +2388,7 @@ EXPORT_SYMBOL(mmc_flush_cache);
   * Turn the cache ON/OFF.
   * Turning the cache OFF shall trigger flushing of the data
   * to the non-volatile storage.
+ * This function should be called with host claimed
   */
  int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  {
@@ -2399,7 +2400,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  			mmc_card_is_removable(host))
  		return err;
 
-	mmc_claim_host(host);
  	if (card && mmc_card_mmc(card) &&
  			(card->ext_csd.cache_size > 0)) {
  		enable = !!enable;
@@ -2417,7 +2417,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  				card->ext_csd.cache_ctrl = enable;
  		}
  	}
-	mmc_release_host(host);
 
  	return err;
  }
@@ -2436,10 +2435,6 @@ int mmc_suspend_host(struct mmc_host *host)
  	cancel_delayed_work(&host->detect);
  	mmc_flush_scheduled_work();
 
-	err = mmc_cache_ctrl(host, 0);
-	if (err)
-		goto out;
-
  	mmc_bus_get(host);
  	if (host->bus_ops && !host->bus_dead) {
  		if (host->bus_ops->suspend) {
drivers/mmc/core/mmc.c +7 -1
index e6e3911..dc17d40 100644
@@ -1379,6 +1379,11 @@ static int mmc_suspend(struct mmc_host *host)
  	BUG_ON(!host->card);
 
  	mmc_claim_host(host);
+
+	err = mmc_cache_ctrl(host, 0);
+	if (err)
+		goto out;
+
  	if (mmc_can_poweroff_notify(host->card))
  		err = mmc_poweroff_notify(host->card, EXT_CSD_POWER_OFF_SHORT);
  	else if (mmc_card_can_sleep(host))
@@ -1386,8 +1391,9 @@ static int mmc_suspend(struct mmc_host *host)
  	else if (!mmc_host_is_spi(host))
  		err = mmc_deselect_cards(host);
  	host->card->state &= ~(MMC_STATE_HIGHSPEED | MMC_STATE_HIGHSPEED_200);
-	mmc_release_host(host);
 
+out:
+	mmc_release_host(host);
  	return err;
  }
 
author
#2 lore raw

-----Original Message-----
From: Subhash Jadavani [mailto:[email protected]]
Sent: Saturday, January 12, 2013 9:07 AM
To: Maya Erez
Cc: [email protected]; [email protected]; open list
Subject: Re: [PATCH] mmc: core: disable the cache before suspend only after stopping BKOPS

Quoted 3 lines · Maya Erez

mmc_cache_ctrl was called in runtime suspend before MMC interrupted BKOPS in case it is still running on the card. This caused the cache disable to timeout.

I guess even if the idle time bkops polling is not implemented, this patch is good to have. cache control is the eMMC feature and in that sense, it should have been part of MMC's bus resume (mmc_resume) rather than generic mmc_suspend_host().

Patch as such is fine and if you agree, you may want to remove the mentioning of bkops as part of commit text and may just want to mention above reason as the main motivation for this patch.

Agreed, I will change the commit text in the next uploaded version.

Quoted 53 lines

Therefore, mmc_cache_ctrl has to move to mmc_suspend where we are sure that the card can go into suspend and there is no pending activity.

---
  drivers/mmc/core/core.c |    7 +------
  drivers/mmc/core/mmc.c  |    8 +++++++-
  2 files changed, 8 insertions(+), 7 deletions(-)
drivers/mmc/core/core.c index renamed from drivers/mmc/core/core.c +0 -0

aaed768..b438bb2 100644

drivers/mmc/core/core.c +1 -6
@@ -2388,6 +2388,7 @@ EXPORT_SYMBOL(mmc_flush_cache);
   * Turn the cache ON/OFF.
   * Turning the cache OFF shall trigger flushing of the data
   * to the non-volatile storage.
+ * This function should be called with host claimed
   */
  int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  {
@@ -2399,7 +2400,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  			mmc_card_is_removable(host))
  		return err;
 
-	mmc_claim_host(host);
  	if (card && mmc_card_mmc(card) &&
  			(card->ext_csd.cache_size > 0)) {
  		enable = !!enable;
@@ -2417,7 +2417,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  				card->ext_csd.cache_ctrl = enable;
  		}
  	}
-	mmc_release_host(host);
 
  	return err;
  }
@@ -2436,10 +2435,6 @@ int mmc_suspend_host(struct mmc_host *host)
  	cancel_delayed_work(&host->detect);
  	mmc_flush_scheduled_work();
 
-	err = mmc_cache_ctrl(host, 0);
-	if (err)
-		goto out;
-
  	mmc_bus_get(host);
  	if (host->bus_ops && !host->bus_dead) {
  		if (host->bus_ops->suspend) {
drivers/mmc/core/mmc.c index renamed from drivers/mmc/core/mmc.c +0 -0

e6e3911..dc17d40 100644

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1388

Quoted 10 lines
drivers/mmc/core/mmc.c +5 -0
@@ -1379,6 +1379,11 @@ static int mmc_suspend(struct mmc_host *host)
  	BUG_ON(!host->card);
 
  	mmc_claim_host(host);
+
+	err = mmc_cache_ctrl(host, 0);
+	if (err)
+		goto out;
+
  	if (mmc_can_poweroff_notify(host->card))
  		err = mmc_poweroff_notify(host->card,

EXT_CSD_POWER_OFF_SHORT);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1393

Quoted 5 lines
drivers/mmc/core/mmc.c +0 -0
  	else if (mmc_card_can_sleep(host))
@@ -1386,8 +1391,9 @@ static int mmc_suspend(struct mmc_host *host)
  	else if (!mmc_host_is_spi(host))
  		err = mmc_deselect_cards(host);
  	host->card->state &= ~(MMC_STATE_HIGHSPEED |

MMC_STATE_HIGHSPEED_200);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1399

Quoted 7 lines
drivers/mmc/core/mmc.c +2 -1
-	mmc_release_host(host);
 
+out:
+	mmc_release_host(host);
  	return err;
  }
 

--
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

Acked-by
#3 lore raw
Quoted 100 lines · Maya Erez

-----Original Message-----
From: Subhash Jadavani [mailto:[email protected]]
Sent: Saturday, January 12, 2013 9:07 AM
To: Maya Erez
Cc: [email protected]; [email protected]; open list
Subject: Re: [PATCH] mmc: core: disable the cache before suspend only after stopping BKOPS

Quoted 3 lines · Maya Erez

mmc_cache_ctrl was called in runtime suspend before MMC interrupted BKOPS in case it is still running on the card. This caused the cache disable to timeout.

I guess even if the idle time bkops polling is not implemented, this patch is good to have. cache control is the eMMC feature and in that sense, it should have been part of MMC's bus resume (mmc_resume) rather than generic mmc_suspend_host().

Patch as such is fine and if you agree, you may want to remove the mentioning of bkops as part of commit text and may just want to mention above reason as the main motivation for this patch.

Agreed, I will change the commit text in the next uploaded version.

Quoted 53 lines

Therefore, mmc_cache_ctrl has to move to mmc_suspend where we are sure that the card can go into suspend and there is no pending activity.

---
  drivers/mmc/core/core.c |    7 +------
  drivers/mmc/core/mmc.c  |    8 +++++++-
  2 files changed, 8 insertions(+), 7 deletions(-)
drivers/mmc/core/core.c index renamed from drivers/mmc/core/core.c +0 -0

aaed768..b438bb2 100644

drivers/mmc/core/core.c +1 -6
@@ -2388,6 +2388,7 @@ EXPORT_SYMBOL(mmc_flush_cache);
   * Turn the cache ON/OFF.
   * Turning the cache OFF shall trigger flushing of the data
   * to the non-volatile storage.
+ * This function should be called with host claimed
   */
  int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  {
@@ -2399,7 +2400,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
                      mmc_card_is_removable(host))
              return err;
 
-     mmc_claim_host(host);
      if (card && mmc_card_mmc(card) &&
                      (card->ext_csd.cache_size > 0)) {
              enable = !!enable;
@@ -2417,7 +2417,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
                              card->ext_csd.cache_ctrl = enable;
              }
      }
-     mmc_release_host(host);
 
      return err;
  }
@@ -2436,10 +2435,6 @@ int mmc_suspend_host(struct mmc_host *host)
      cancel_delayed_work(&host->detect);
      mmc_flush_scheduled_work();
 
-     err = mmc_cache_ctrl(host, 0);
-     if (err)
-             goto out;
-
      mmc_bus_get(host);
      if (host->bus_ops && !host->bus_dead) {
              if (host->bus_ops->suspend) {
drivers/mmc/core/mmc.c index renamed from drivers/mmc/core/mmc.c +0 -0

e6e3911..dc17d40 100644

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1388

Quoted 10 lines
drivers/mmc/core/mmc.c +5 -0
@@ -1379,6 +1379,11 @@ static int mmc_suspend(struct mmc_host *host)
      BUG_ON(!host->card);
 
      mmc_claim_host(host);
+
+     err = mmc_cache_ctrl(host, 0);
+     if (err)
+             goto out;
+
      if (mmc_can_poweroff_notify(host->card))
              err = mmc_poweroff_notify(host->card,

EXT_CSD_POWER_OFF_SHORT);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1393

Quoted 5 lines
drivers/mmc/core/mmc.c +0 -0
      else if (mmc_card_can_sleep(host))
@@ -1386,8 +1391,9 @@ static int mmc_suspend(struct mmc_host *host)
      else if (!mmc_host_is_spi(host))
              err = mmc_deselect_cards(host);
      host->card->state &= ~(MMC_STATE_HIGHSPEED |

MMC_STATE_HIGHSPEED_200);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1399

Quoted 7 lines
drivers/mmc/core/mmc.c +2 -1
-     mmc_release_host(host);
 
+out:
+     mmc_release_host(host);
      return err;
  }
 
Quoted 8 lines

--
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

I agree that some update to the commit msg is wanted; since this fixup is not related to runtime suspend as such.
Anyway, you have my ack!

Kind regards
Ulf Hansson

Acked-by
#4 lore raw
Quoted 110 lines · Ulf Hansson
Quoted 100 lines · Maya Erez

-----Original Message-----
From: Subhash Jadavani [mailto:[email protected]]
Sent: Saturday, January 12, 2013 9:07 AM
To: Maya Erez
Cc: [email protected]; [email protected]; open list
Subject: Re: [PATCH] mmc: core: disable the cache before suspend only after stopping BKOPS

Quoted 3 lines · Maya Erez

mmc_cache_ctrl was called in runtime suspend before MMC interrupted BKOPS in case it is still running on the card. This caused the cache disable to timeout.

I guess even if the idle time bkops polling is not implemented, this patch is good to have. cache control is the eMMC feature and in that sense, it should have been part of MMC's bus resume (mmc_resume) rather than generic mmc_suspend_host().

Patch as such is fine and if you agree, you may want to remove the mentioning of bkops as part of commit text and may just want to mention above reason as the main motivation for this patch.

Agreed, I will change the commit text in the next uploaded version.

Quoted 53 lines

Therefore, mmc_cache_ctrl has to move to mmc_suspend where we are sure that the card can go into suspend and there is no pending activity.

---
  drivers/mmc/core/core.c |    7 +------
  drivers/mmc/core/mmc.c  |    8 +++++++-
  2 files changed, 8 insertions(+), 7 deletions(-)
drivers/mmc/core/core.c index renamed from drivers/mmc/core/core.c +0 -0

aaed768..b438bb2 100644

drivers/mmc/core/core.c +1 -6
@@ -2388,6 +2388,7 @@ EXPORT_SYMBOL(mmc_flush_cache);
   * Turn the cache ON/OFF.
   * Turning the cache OFF shall trigger flushing of the data
   * to the non-volatile storage.
+ * This function should be called with host claimed
   */
  int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
  {
@@ -2399,7 +2400,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
                      mmc_card_is_removable(host))
              return err;
 
-     mmc_claim_host(host);
      if (card && mmc_card_mmc(card) &&
                      (card->ext_csd.cache_size > 0)) {
              enable = !!enable;
@@ -2417,7 +2417,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
                              card->ext_csd.cache_ctrl = enable;
              }
      }
-     mmc_release_host(host);
 
      return err;
  }
@@ -2436,10 +2435,6 @@ int mmc_suspend_host(struct mmc_host *host)
      cancel_delayed_work(&host->detect);
      mmc_flush_scheduled_work();
 
-     err = mmc_cache_ctrl(host, 0);
-     if (err)
-             goto out;
-
      mmc_bus_get(host);
      if (host->bus_ops && !host->bus_dead) {
              if (host->bus_ops->suspend) {
drivers/mmc/core/mmc.c index renamed from drivers/mmc/core/mmc.c +0 -0

e6e3911..dc17d40 100644

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1388

Quoted 10 lines
drivers/mmc/core/mmc.c +5 -0
@@ -1379,6 +1379,11 @@ static int mmc_suspend(struct mmc_host *host)
      BUG_ON(!host->card);
 
      mmc_claim_host(host);
+
+     err = mmc_cache_ctrl(host, 0);
+     if (err)
+             goto out;
+
      if (mmc_can_poweroff_notify(host->card))
              err = mmc_poweroff_notify(host->card,

EXT_CSD_POWER_OFF_SHORT);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1393

Quoted 5 lines
drivers/mmc/core/mmc.c +0 -0
      else if (mmc_card_can_sleep(host))
@@ -1386,8 +1391,9 @@ static int mmc_suspend(struct mmc_host *host)
      else if (!mmc_host_is_spi(host))
              err = mmc_deselect_cards(host);
      host->card->state &= ~(MMC_STATE_HIGHSPEED |

MMC_STATE_HIGHSPEED_200);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1399

Quoted 7 lines
drivers/mmc/core/mmc.c +2 -1
-     mmc_release_host(host);
 
+out:
+     mmc_release_host(host);
      return err;
  }
 
Quoted 8 lines

--
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Quoted 5 lines

I agree that some update to the commit msg is wanted; since this fixup is not related to runtime suspend as such.
Anyway, you have my ack!

Yes, it's reasonable.
Cache feature is closely connected with eMMC.

Thanks,
Seungwon Jeon

Quoted 7 lines

Kind regards
Ulf Hansson
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#5 lore raw

As Maya is going to fix the commit text,

Quoted 132 lines · Seungwon Jeon
Quoted 109 lines · Ulf Hansson
Quoted 100 lines · Maya Erez

-----Original Message-----
From: Subhash Jadavani [mailto:[email protected]]
Sent: Saturday, January 12, 2013 9:07 AM
To: Maya Erez
Cc: [email protected]; [email protected]; open list
Subject: Re: [PATCH] mmc: core: disable the cache before suspend only after stopping BKOPS

Quoted 3 lines · Maya Erez

mmc_cache_ctrl was called in runtime suspend before MMC interrupted BKOPS in case it is still running on the card. This caused the cache disable to timeout.

I guess even if the idle time bkops polling is not implemented, this patch is good to have. cache control is the eMMC feature and in that sense, it should have been part of MMC's bus resume (mmc_resume) rather than generic mmc_suspend_host().

Patch as such is fine and if you agree, you may want to remove the mentioning of bkops as part of commit text and may just want to mention above reason as the main motivation for this patch.

Agreed, I will change the commit text in the next uploaded version.

Quoted 53 lines

Therefore, mmc_cache_ctrl has to move to mmc_suspend where we are sure that the card can go into suspend and there is no pending activity.

---
   drivers/mmc/core/core.c |    7 +------
   drivers/mmc/core/mmc.c  |    8 +++++++-
   2 files changed, 8 insertions(+), 7 deletions(-)
drivers/mmc/core/core.c index renamed from drivers/mmc/core/core.c +0 -0

aaed768..b438bb2 100644

drivers/mmc/core/core.c +1 -6
@@ -2388,6 +2388,7 @@ EXPORT_SYMBOL(mmc_flush_cache);
    * Turn the cache ON/OFF.
    * Turning the cache OFF shall trigger flushing of the data
    * to the non-volatile storage.
+ * This function should be called with host claimed
    */
   int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
   {
@@ -2399,7 +2400,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
                       mmc_card_is_removable(host))
               return err;
 
-     mmc_claim_host(host);
       if (card && mmc_card_mmc(card) &&
                       (card->ext_csd.cache_size > 0)) {
               enable = !!enable;
@@ -2417,7 +2417,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
                               card->ext_csd.cache_ctrl = enable;
               }
       }
-     mmc_release_host(host);
 
       return err;
   }
@@ -2436,10 +2435,6 @@ int mmc_suspend_host(struct mmc_host *host)
       cancel_delayed_work(&host->detect);
       mmc_flush_scheduled_work();
 
-     err = mmc_cache_ctrl(host, 0);
-     if (err)
-             goto out;
-
       mmc_bus_get(host);
       if (host->bus_ops && !host->bus_dead) {
               if (host->bus_ops->suspend) {
drivers/mmc/core/mmc.c index renamed from drivers/mmc/core/mmc.c +0 -0

e6e3911..dc17d40 100644

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1388

Quoted 10 lines
drivers/mmc/core/mmc.c +5 -0
@@ -1379,6 +1379,11 @@ static int mmc_suspend(struct mmc_host *host)
       BUG_ON(!host->card);
 
       mmc_claim_host(host);
+
+     err = mmc_cache_ctrl(host, 0);
+     if (err)
+             goto out;
+
       if (mmc_can_poweroff_notify(host->card))
               err = mmc_poweroff_notify(host->card,

EXT_CSD_POWER_OFF_SHORT);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1393

Quoted 5 lines
drivers/mmc/core/mmc.c +0 -0
       else if (mmc_card_can_sleep(host))
@@ -1386,8 +1391,9 @@ static int mmc_suspend(struct mmc_host *host)
       else if (!mmc_host_is_spi(host))
               err = mmc_deselect_cards(host);
       host->card->state &= ~(MMC_STATE_HIGHSPEED |

MMC_STATE_HIGHSPEED_200);

drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) · line 1399

Quoted 7 lines
drivers/mmc/core/mmc.c +2 -1
-     mmc_release_host(host);
 
+out:
+     mmc_release_host(host);
       return err;
   }
 
Quoted 8 lines

--
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Quoted 5 lines

I agree that some update to the commit msg is wanted; since this fixup is not related to runtime suspend as such.
Anyway, you have my ack!

Yes, it's reasonable.
Cache feature is closely connected with eMMC.

Thanks,
Seungwon Jeon

Quoted 6 lines

Kind regards
Ulf Hansson
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to [email protected]
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#6 lore raw
In reply to Maya Erez

Hi Maya,

Quoted 1 line · Maya Erez

Agreed, I will change the commit text in the next uploaded version.

I haven't seen the updated patch go by -- please could you send it when you get a chance?

Thanks,

- Chris.

Signature · 2 lines
Chris Ball   <[email protected]>   <http://printf.net/>
One Laptop Per Child