[patch 3/8] SDHCI: Add set_ios hook

From: Ben Dooks
Date: Tue Dec 02 2008 - 10:41:58 EST


Add a set_ios hook which is called when the SDHCI driver
is called to change parameters such as clock or card
width.

Signed-off-by: Ben Dooks <ben-linux@xxxxxxxxx>

Index: linux.git/drivers/mmc/host/sdhci.c
===================================================================
--- linux.git.orig/drivers/mmc/host/sdhci.c 2008-12-01 19:26:25.000000000 +0000
+++ linux.git/drivers/mmc/host/sdhci.c 2008-12-02 14:36:47.000000000 +0000
@@ -1038,6 +1038,9 @@ static void sdhci_set_ios(struct mmc_hos
sdhci_init(host);
}

+ if (host->ops->set_ios)
+ host->ops->set_ios(host, ios);
+
sdhci_set_clock(host, ios->clock);

if (ios->power_mode == MMC_POWER_OFF)
@@ -1615,11 +1618,12 @@ int sdhci_add_host(struct sdhci_host *ho
if (host->max_clk == 0) {
if (host->ops->get_max_clock)
host->max_clk = host->ops->get_max_clock(host);
- else
+ else {
printk(KERN_ERR
"%s: Hardware doesn't specify base clock "
"frequency.\n", mmc_hostname(mmc));
- return -ENODEV;
+ return -ENODEV;
+ }
}

host->timeout_clk =
@@ -1627,11 +1631,12 @@ int sdhci_add_host(struct sdhci_host *ho
if (host->timeout_clk == 0) {
if (host->ops->get_timeout_clock)
host->timeout_clk = host->ops->get_timeout_clock(host);
- else
+ else {
printk(KERN_ERR
"%s: Hardware doesn't specify timeout clock "
"frequency.\n", mmc_hostname(mmc));
- return -ENODEV;
+ return -ENODEV;
+ }
}
if (caps & SDHCI_TIMEOUT_CLK_UNIT)
host->timeout_clk *= 1000;
Index: linux.git/drivers/mmc/host/sdhci.h
===================================================================
--- linux.git.orig/drivers/mmc/host/sdhci.h 2008-12-01 19:17:55.000000000 +0000
+++ linux.git/drivers/mmc/host/sdhci.h 2008-12-02 14:36:39.000000000 +0000
@@ -269,6 +269,9 @@ struct sdhci_ops {
int (*enable_dma)(struct sdhci_host *host);
unsigned int (*get_max_clock)(struct sdhci_host *host);
unsigned int (*get_timeout_clock)(struct sdhci_host *host);
+
+ void (*set_ios)(struct sdhci_host *host,
+ struct mmc_ios *ios);
};



--
Ben (ben@xxxxxxxxx, http://www.fluff.org/)

'a smiley only costs 4 bytes'
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/