Module Name: src Committed By: kiyohara Date: Mon Sep 20 09:34:47 UTC 2010
Modified Files: src/sys/dev/sdmmc: sdmmc_mem.c Log Message: Fix SCR data. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/dev/sdmmc/sdmmc_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/sdmmc/sdmmc_mem.c diff -u src/sys/dev/sdmmc/sdmmc_mem.c:1.7 src/sys/dev/sdmmc/sdmmc_mem.c:1.8 --- src/sys/dev/sdmmc/sdmmc_mem.c:1.7 Mon Sep 20 09:30:20 2010 +++ src/sys/dev/sdmmc/sdmmc_mem.c Mon Sep 20 09:34:47 2010 @@ -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 <sys/cdefs.h> -__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 <sys/param.h> #include <sys/kernel.h> @@ -746,8 +746,11 @@ 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);