git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branches 'core-fixes-for-linus' and 'irq-fixes-for-linus' of git://git.kernel...
[pandora-kernel.git]
/
drivers
/
mmc
/
core
/
host.c
diff --git
a/drivers/mmc/core/host.c
b/drivers/mmc/core/host.c
index
2b200c1
..
b29d3e8
100644
(file)
--- a/
drivers/mmc/core/host.c
+++ b/
drivers/mmc/core/host.c
@@
-94,7
+94,7
@@
static void mmc_host_clk_gate_delayed(struct mmc_host *host)
spin_unlock_irqrestore(&host->clk_lock, flags);
return;
}
spin_unlock_irqrestore(&host->clk_lock, flags);
return;
}
- m
mc_claim_host(host
);
+ m
utex_lock(&host->clk_gate_mutex
);
spin_lock_irqsave(&host->clk_lock, flags);
if (!host->clk_requests) {
spin_unlock_irqrestore(&host->clk_lock, flags);
spin_lock_irqsave(&host->clk_lock, flags);
if (!host->clk_requests) {
spin_unlock_irqrestore(&host->clk_lock, flags);
@@
-104,7
+104,7
@@
static void mmc_host_clk_gate_delayed(struct mmc_host *host)
pr_debug("%s: gated MCI clock\n", mmc_hostname(host));
}
spin_unlock_irqrestore(&host->clk_lock, flags);
pr_debug("%s: gated MCI clock\n", mmc_hostname(host));
}
spin_unlock_irqrestore(&host->clk_lock, flags);
- m
mc_release_host(host
);
+ m
utex_unlock(&host->clk_gate_mutex
);
}
/*
}
/*
@@
-130,7
+130,7
@@
void mmc_host_clk_ungate(struct mmc_host *host)
{
unsigned long flags;
{
unsigned long flags;
- m
mc_claim_host(host
);
+ m
utex_lock(&host->clk_gate_mutex
);
spin_lock_irqsave(&host->clk_lock, flags);
if (host->clk_gated) {
spin_unlock_irqrestore(&host->clk_lock, flags);
spin_lock_irqsave(&host->clk_lock, flags);
if (host->clk_gated) {
spin_unlock_irqrestore(&host->clk_lock, flags);
@@
-140,7
+140,7
@@
void mmc_host_clk_ungate(struct mmc_host *host)
}
host->clk_requests++;
spin_unlock_irqrestore(&host->clk_lock, flags);
}
host->clk_requests++;
spin_unlock_irqrestore(&host->clk_lock, flags);
- m
mc_release_host(host
);
+ m
utex_unlock(&host->clk_gate_mutex
);
}
/**
}
/**
@@
-215,6
+215,7
@@
static inline void mmc_host_clk_init(struct mmc_host *host)
host->clk_gated = false;
INIT_WORK(&host->clk_gate_work, mmc_host_clk_gate_work);
spin_lock_init(&host->clk_lock);
host->clk_gated = false;
INIT_WORK(&host->clk_gate_work, mmc_host_clk_gate_work);
spin_lock_init(&host->clk_lock);
+ mutex_init(&host->clk_gate_mutex);
}
/**
}
/**
@@
-324,12
+325,12
@@
int mmc_add_host(struct mmc_host *host)
WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) &&
!host->ops->enable_sdio_irq);
WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) &&
!host->ops->enable_sdio_irq);
- led_trigger_register_simple(dev_name(&host->class_dev), &host->led);
-
err = device_add(&host->class_dev);
if (err)
return err;
err = device_add(&host->class_dev);
if (err)
return err;
+ led_trigger_register_simple(dev_name(&host->class_dev), &host->led);
+
#ifdef CONFIG_DEBUG_FS
mmc_add_host_debugfs(host);
#endif
#ifdef CONFIG_DEBUG_FS
mmc_add_host_debugfs(host);
#endif