|
@@ -257,7 +257,7 @@ static void mmci_reg_delay(struct mmci_host *host)
|
|
|
/*
|
|
|
* This must be called with host->lock held
|
|
|
*/
|
|
|
-static void mmci_write_clkreg(struct mmci_host *host, u32 clk)
|
|
|
+void mmci_write_clkreg(struct mmci_host *host, u32 clk)
|
|
|
{
|
|
|
if (host->clk_reg != clk) {
|
|
|
host->clk_reg = clk;
|
|
@@ -268,7 +268,7 @@ static void mmci_write_clkreg(struct mmci_host *host, u32 clk)
|
|
|
/*
|
|
|
* This must be called with host->lock held
|
|
|
*/
|
|
|
-static void mmci_write_pwrreg(struct mmci_host *host, u32 pwr)
|
|
|
+void mmci_write_pwrreg(struct mmci_host *host, u32 pwr)
|
|
|
{
|
|
|
if (host->pwr_reg != pwr) {
|
|
|
host->pwr_reg = pwr;
|
|
@@ -1571,8 +1571,16 @@ static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
|
|
|
|
|
spin_lock_irqsave(&host->lock, flags);
|
|
|
|
|
|
- mmci_set_clkreg(host, ios->clock);
|
|
|
- mmci_write_pwrreg(host, pwr);
|
|
|
+ if (host->ops && host->ops->set_clkreg)
|
|
|
+ host->ops->set_clkreg(host, ios->clock);
|
|
|
+ else
|
|
|
+ mmci_set_clkreg(host, ios->clock);
|
|
|
+
|
|
|
+ if (host->ops && host->ops->set_pwrreg)
|
|
|
+ host->ops->set_pwrreg(host, pwr);
|
|
|
+ else
|
|
|
+ mmci_write_pwrreg(host, pwr);
|
|
|
+
|
|
|
mmci_reg_delay(host);
|
|
|
|
|
|
spin_unlock_irqrestore(&host->lock, flags);
|