aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/core')
-rw-r--r--drivers/mmc/core/mmc_ops.c22
-rw-r--r--drivers/mmc/core/sd_ops.c4
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
268int mmc_send_csd(struct mmc_card *card, u32 *csd) 268int 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
277int mmc_send_cid(struct mmc_host *host, u32 *cid) 286int 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
289int mmc_send_ext_csd(struct mmc_card *card, u8 *ext_csd) 307int 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}