|
@@ -2486,6 +2486,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)
|
|
|
{
|
|
@@ -2497,7 +2498,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;
|
|
@@ -2515,7 +2515,6 @@ int mmc_cache_ctrl(struct mmc_host *host, u8 enable)
|
|
|
card->ext_csd.cache_ctrl = enable;
|
|
|
}
|
|
|
}
|
|
|
- mmc_release_host(host);
|
|
|
|
|
|
return err;
|
|
|
}
|
|
@@ -2534,10 +2533,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) {
|