From 87b07383a18a804da3e8144f2bc8058ff1875c82 Mon Sep 17 00:00:00 2001 From: kiyohara Date: Mon, 20 Sep 2010 09:34:47 +0000 Subject: [PATCH] Fix SCR data. --- sys/dev/sdmmc/sdmmc_mem.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sys/dev/sdmmc/sdmmc_mem.c b/sys/dev/sdmmc/sdmmc_mem.c index 9c35ec69a405..eda9b0b5d592 100644 --- a/sys/dev/sdmmc/sdmmc_mem.c +++ b/sys/dev/sdmmc/sdmmc_mem.c @@ -1,4 +1,4 @@ -/* $NetBSD: sdmmc_mem.c,v 1.7 2010/09/20 09:30:20 kiyohara Exp $ */ +/* $NetBSD: sdmmc_mem.c,v 1.8 2010/09/20 09:34:47 kiyohara Exp $ */ /* $OpenBSD: sdmmc_mem.c,v 1.10 2009/01/09 10:55:22 jsg Exp $ */ /* @@ -46,7 +46,7 @@ /* Routines for SD/MMC memory cards. */ #include -__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.7 2010/09/20 09:30:20 kiyohara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.8 2010/09/20 09:34:47 kiyohara Exp $"); #include #include @@ -746,8 +746,11 @@ sdmmc_mem_decode_scr(struct sdmmc_softc *sc, struct sdmmc_function *sf) int ver; memset(resp, 0, sizeof(resp)); - resp[0] = sf->raw_scr[1]; - resp[1] = sf->raw_scr[0]; + /* + * Change the raw-scr received from the DMA stream to resp. + */ + resp[0] = be32toh(sf->raw_scr[1]); + resp[1] = be32toh(sf->raw_scr[0]) >> 8; ver = SCR_STRUCTURE(resp); sf->scr.sd_spec = SCR_SD_SPEC(resp);