diff options
author | Johan Rudholm <johan.rudholm@stericsson.com> | 2012-08-23 13:40:55 +0200 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2012-09-04 13:58:27 -0400 |
commit | 3339d1e33185798a45dbdb5ea6c0bec1c27ca5fd (patch) | |
tree | 6af12b5b69f6092510345999171582a595aa9841 | |
parent | 36c179a98a0755b98153e8f4ae08243fbfcd18ff (diff) |
mmc: core: Do not rescan non-removable devices
If MMC_CAP_NONREMOVABLE is set, only issue a detect job on init.
Signed-off-by: Johan Rudholm <johan.rudholm@stericsson.com>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r-- | drivers/mmc/core/core.c | 5 | ||||
-rw-r--r-- | include/linux/mmc/host.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 835c9f001a1..af2c4d2fd69 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -2053,6 +2053,11 @@ void mmc_rescan(struct work_struct *work) if (host->rescan_disable) return; + /* If there is a non-removable card registered, only scan once */ + if ((host->caps & MMC_CAP_NONREMOVABLE) && host->rescan_entered) + return; + host->rescan_entered = 1; + mmc_bus_get(host); /* diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index f578a71d82a..d5d9bd4c5aa 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -300,6 +300,7 @@ struct mmc_host { #endif int rescan_disable; /* disable card detection */ + int rescan_entered; /* used with nonremovable devices */ struct mmc_card *card; /* device attached to this host */ |