[PATCH 3/5] mci: Add card_present callback
Sascha Hauer
s.hauer at pengutronix.de
Sun Jan 20 04:58:41 EST 2013
Currently there is no common way for the mci host driver to tell
that there is no card present. This adds a card_present callback
which is used by the framework to tell whether it's present or not.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
drivers/mci/mci-core.c | 5 +++++
include/mci.h | 2 ++
2 files changed, 7 insertions(+)
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 7d43fe3..fd052f1 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -1352,6 +1352,11 @@ static int mci_card_probe(struct mci *mci)
struct mci_host *host = mci->host;
int rc, disknum;
+ if (host->card_present && !host->card_present(host)) {
+ dev_err(mci->mci_dev, "no card inserted\n");
+ return -ENODEV;
+ }
+
/* start with a host interface reset */
rc = (host->init)(host, mci->mci_dev);
if (rc) {
diff --git a/include/mci.h b/include/mci.h
index 0041e27..c0d179b 100644
--- a/include/mci.h
+++ b/include/mci.h
@@ -300,6 +300,8 @@ struct mci_host {
void (*set_ios)(struct mci_host*, struct mci_ios *);
/** handle a command */
int (*send_cmd)(struct mci_host*, struct mci_cmd*, struct mci_data*);
+ /** check if a card is inserted */
+ int (*card_present)(struct mci_host *);
};
/** MMC/SD and interface instance information */
--
1.7.10.4
More information about the barebox
mailing list