tree 1a87719691e0b9382693010c148efd4b26138395
parent 5b4fd9aef778e223968dfab1b90f905b3f2bd23d
author Richard Purdie <[EMAIL PROTECTED]> Wed, 07 Sep 2005 05:18:56 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Thu, 08 Sep 2005 06:57:51 -0700

[PATCH] Add write protection switch handling to the PXA MMC driver

Add a write protection switch handling code to the PXA MMC driver so
that platform specific code can provide it if available.

Signed-off-by: Richard Purdie <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/mmc/pxamci.c           |   11 +++++++++++
 include/asm-arm/arch-pxa/mmc.h |    1 +
 2 files changed, 12 insertions(+)

diff --git a/drivers/mmc/pxamci.c b/drivers/mmc/pxamci.c
--- a/drivers/mmc/pxamci.c
+++ b/drivers/mmc/pxamci.c
@@ -362,6 +362,16 @@ static void pxamci_request(struct mmc_ho
        pxamci_start_cmd(host, mrq->cmd, cmdat);
 }
 
+static int pxamci_get_ro(struct mmc_host *mmc)
+{
+       struct pxamci_host *host = mmc_priv(mmc);
+
+       if (host->pdata && host->pdata->get_ro)
+               return host->pdata->get_ro(mmc->dev);
+       /* Host doesn't support read only detection so assume writeable */
+       return 0;
+}
+
 static void pxamci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
 {
        struct pxamci_host *host = mmc_priv(mmc);
@@ -401,6 +411,7 @@ static void pxamci_set_ios(struct mmc_ho
 
 static struct mmc_host_ops pxamci_ops = {
        .request        = pxamci_request,
+       .get_ro         = pxamci_get_ro,
        .set_ios        = pxamci_set_ios,
 };
 
diff --git a/include/asm-arm/arch-pxa/mmc.h b/include/asm-arm/arch-pxa/mmc.h
--- a/include/asm-arm/arch-pxa/mmc.h
+++ b/include/asm-arm/arch-pxa/mmc.h
@@ -10,6 +10,7 @@ struct mmc_host;
 struct pxamci_platform_data {
        unsigned int ocr_mask;                  /* available voltages */
        int (*init)(struct device *, irqreturn_t (*)(int, void *, struct 
pt_regs *), void *);
+       int (*get_ro)(struct device *);
        void (*setpower)(struct device *, unsigned int);
        void (*exit)(struct device *, void *);
 };
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to