diff options
| author | Ben Dooks <ben-linux@fluff.org> | 2008-08-12 04:24:50 -0400 |
|---|---|---|
| committer | Pierre Ossman <drzeus@drzeus.cx> | 2008-08-17 14:00:22 -0400 |
| commit | 87dd98037d2309efbbd5e769efb23d845c37dac7 (patch) | |
| tree | 25dd992c1f889c3eb276336dfbbf048f4a75d890 | |
| parent | 5d304400a9a867a7ce545f3ae6d95d92b62570f7 (diff) | |
s3cmci: attach get_cd host ops
Attach the routine to get_cd to allow the MMC core to find out whether
there is a card present or not without the tedious process of trying to
send commands to the card or not.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| -rw-r--r-- | drivers/mmc/host/s3cmci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c index 6afa4c048547..ae16d845d746 100644 --- a/drivers/mmc/host/s3cmci.c +++ b/drivers/mmc/host/s3cmci.c | |||
| @@ -1004,8 +1004,9 @@ static void s3cmci_send_request(struct mmc_host *mmc) | |||
| 1004 | enable_irq(host->irq); | 1004 | enable_irq(host->irq); |
| 1005 | } | 1005 | } |
| 1006 | 1006 | ||
| 1007 | static int s3cmci_card_present(struct s3cmci_host *host) | 1007 | static int s3cmci_card_present(struct mmc_host *mmc) |
| 1008 | { | 1008 | { |
| 1009 | struct s3cmci_host *host = mmc_priv(mmc); | ||
| 1009 | struct s3c24xx_mci_pdata *pdata = host->pdata; | 1010 | struct s3c24xx_mci_pdata *pdata = host->pdata; |
| 1010 | int ret; | 1011 | int ret; |
| 1011 | 1012 | ||
| @@ -1024,7 +1025,7 @@ static void s3cmci_request(struct mmc_host *mmc, struct mmc_request *mrq) | |||
| 1024 | host->cmd_is_stop = 0; | 1025 | host->cmd_is_stop = 0; |
| 1025 | host->mrq = mrq; | 1026 | host->mrq = mrq; |
| 1026 | 1027 | ||
| 1027 | if (s3cmci_card_present(host) == 0) { | 1028 | if (s3cmci_card_present(mmc) == 0) { |
| 1028 | dbg(host, dbg_err, "%s: no medium present\n", __func__); | 1029 | dbg(host, dbg_err, "%s: no medium present\n", __func__); |
| 1029 | host->mrq->cmd->error = -ENOMEDIUM; | 1030 | host->mrq->cmd->error = -ENOMEDIUM; |
| 1030 | mmc_request_done(mmc, mrq); | 1031 | mmc_request_done(mmc, mrq); |
| @@ -1139,6 +1140,7 @@ static struct mmc_host_ops s3cmci_ops = { | |||
| 1139 | .request = s3cmci_request, | 1140 | .request = s3cmci_request, |
| 1140 | .set_ios = s3cmci_set_ios, | 1141 | .set_ios = s3cmci_set_ios, |
| 1141 | .get_ro = s3cmci_get_ro, | 1142 | .get_ro = s3cmci_get_ro, |
| 1143 | .get_cd = s3cmci_card_present, | ||
| 1142 | }; | 1144 | }; |
| 1143 | 1145 | ||
| 1144 | static struct s3c24xx_mci_pdata s3cmci_def_pdata = { | 1146 | static struct s3c24xx_mci_pdata s3cmci_def_pdata = { |
