diff options
Diffstat (limited to 'drivers/mmc/core/host.c')
| -rw-r--r-- | drivers/mmc/core/host.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c index 91c84c7a1829..597f189b4427 100644 --- a/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c @@ -32,6 +32,7 @@  static void mmc_host_classdev_release(struct device *dev)  {  	struct mmc_host *host = cls_dev_to_mmc_host(dev); +	mutex_destroy(&host->slot.lock);  	kfree(host);  } @@ -312,6 +313,8 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)  	if (!host)  		return NULL; +	/* scanning will be enabled when we're ready */ +	host->rescan_disable = 1;  	spin_lock(&mmc_host_lock);  	err = idr_get_new(&mmc_host_idr, host, &host->index);  	spin_unlock(&mmc_host_lock); @@ -327,6 +330,9 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)  	mmc_host_clk_init(host); +	mutex_init(&host->slot.lock); +	host->slot.cd_irq = -EINVAL; +  	spin_lock_init(&host->lock);  	init_waitqueue_head(&host->wq);  	INIT_DELAYED_WORK(&host->detect, mmc_rescan);  | 
