diff options
Diffstat (limited to 'drivers/mmc/core')
| -rw-r--r-- | drivers/mmc/core/mmc_ops.c | 22 | ||||
| -rw-r--r-- | drivers/mmc/core/sd_ops.c | 4 |
2 files changed, 22 insertions, 4 deletions
diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c index bf4bc6adcfef..7471d49909b2 100644 --- a/drivers/mmc/core/mmc_ops.c +++ b/drivers/mmc/core/mmc_ops.c | |||
| @@ -267,15 +267,26 @@ mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host, | |||
| 267 | 267 | ||
| 268 | int mmc_send_csd(struct mmc_card *card, u32 *csd) | 268 | int mmc_send_csd(struct mmc_card *card, u32 *csd) |
| 269 | { | 269 | { |
| 270 | int ret, i; | ||
| 271 | |||
| 270 | if (!mmc_host_is_spi(card->host)) | 272 | if (!mmc_host_is_spi(card->host)) |
| 271 | return mmc_send_cxd_native(card->host, card->rca << 16, | 273 | return mmc_send_cxd_native(card->host, card->rca << 16, |
| 272 | csd, MMC_SEND_CSD); | 274 | csd, MMC_SEND_CSD); |
| 273 | 275 | ||
| 274 | return mmc_send_cxd_data(card, card->host, MMC_SEND_CSD, csd, 16); | 276 | ret = mmc_send_cxd_data(card, card->host, MMC_SEND_CSD, csd, 16); |
| 277 | if (ret) | ||
| 278 | return ret; | ||
| 279 | |||
| 280 | for (i = 0;i < 4;i++) | ||
| 281 | csd[i] = be32_to_cpu(csd[i]); | ||
| 282 | |||
| 283 | return 0; | ||
| 275 | } | 284 | } |
| 276 | 285 | ||
| 277 | int mmc_send_cid(struct mmc_host *host, u32 *cid) | 286 | int mmc_send_cid(struct mmc_host *host, u32 *cid) |
| 278 | { | 287 | { |
| 288 | int ret, i; | ||
| 289 | |||
| 279 | if (!mmc_host_is_spi(host)) { | 290 | if (!mmc_host_is_spi(host)) { |
| 280 | if (!host->card) | 291 | if (!host->card) |
| 281 | return -EINVAL; | 292 | return -EINVAL; |
| @@ -283,7 +294,14 @@ int mmc_send_cid(struct mmc_host *host, u32 *cid) | |||
| 283 | cid, MMC_SEND_CID); | 294 | cid, MMC_SEND_CID); |
| 284 | } | 295 | } |
| 285 | 296 | ||
| 286 | return mmc_send_cxd_data(NULL, host, MMC_SEND_CID, cid, 16); | 297 | ret = mmc_send_cxd_data(NULL, host, MMC_SEND_CID, cid, 16); |
| 298 | if (ret) | ||
| 299 | return ret; | ||
| 300 | |||
| 301 | for (i = 0;i < 4;i++) | ||
| 302 | cid[i] = be32_to_cpu(cid[i]); | ||
| 303 | |||
| 304 | return 0; | ||
| 287 | } | 305 | } |
| 288 | 306 | ||
| 289 | int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd) | 307 | int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd) |
diff --git a/drivers/mmc/core/sd_ops.c b/drivers/mmc/core/sd_ops.c index ee4029a24efd..a6dafe62b992 100644 --- a/drivers/mmc/core/sd_ops.c +++ b/drivers/mmc/core/sd_ops.c | |||
| @@ -294,8 +294,8 @@ int mmc_app_send_scr(struct mmc_card *card, u32 *scr) | |||
| 294 | if (data.error) | 294 | if (data.error) |
| 295 | return data.error; | 295 | return data.error; |
| 296 | 296 | ||
| 297 | scr[0] = ntohl(scr[0]); | 297 | scr[0] = be32_to_cpu(scr[0]); |
| 298 | scr[1] = ntohl(scr[1]); | 298 | scr[1] = be32_to_cpu(scr[1]); |
| 299 | 299 | ||
| 300 | return 0; | 300 | return 0; |
| 301 | } | 301 | } |
