Sun May 24 12:59:54 2009 UTC ()
SDHC card was able to be used.


(nonaka)
diff -r1.1 -r1.2 src/sys/dev/sdmmc/sdmmc_mem.c

cvs diff -r1.1 -r1.2 src/sys/dev/sdmmc/sdmmc_mem.c (expand / switch to unified diff)

--- src/sys/dev/sdmmc/sdmmc_mem.c 2009/04/21 03:00:30 1.1
+++ src/sys/dev/sdmmc/sdmmc_mem.c 2009/05/24 12:59:54 1.2
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: sdmmc_mem.c,v 1.1 2009/04/21 03:00:30 nonaka Exp $ */ 1/* $NetBSD: sdmmc_mem.c,v 1.2 2009/05/24 12:59:54 nonaka Exp $ */
2/* $OpenBSD: sdmmc_mem.c,v 1.10 2009/01/09 10:55:22 jsg Exp $ */ 2/* $OpenBSD: sdmmc_mem.c,v 1.10 2009/01/09 10:55:22 jsg Exp $ */
3 3
4/* 4/*
5 * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> 5 * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org>
6 * 6 *
7 * Permission to use, copy, modify, and distribute this software for any 7 * Permission to use, copy, modify, and distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above 8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies. 9 * copyright notice and this permission notice appear in all copies.
10 * 10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
@@ -36,27 +36,27 @@ @@ -36,27 +36,27 @@
36 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 36 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
37 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 41 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 42 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 * SUCH DAMAGE. 43 * SUCH DAMAGE.
44 */ 44 */
45 45
46/* Routines for SD/MMC memory cards. */ 46/* Routines for SD/MMC memory cards. */
47 47
48#include <sys/cdefs.h> 48#include <sys/cdefs.h>
49__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.1 2009/04/21 03:00:30 nonaka Exp $"); 49__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.2 2009/05/24 12:59:54 nonaka Exp $");
50 50
51#include <sys/param.h> 51#include <sys/param.h>
52#include <sys/kernel.h> 52#include <sys/kernel.h>
53#include <sys/malloc.h> 53#include <sys/malloc.h>
54#include <sys/systm.h> 54#include <sys/systm.h>
55#include <sys/device.h> 55#include <sys/device.h>
56 56
57#include <uvm/uvm_extern.h> 57#include <uvm/uvm_extern.h>
58 58
59#include <dev/sdmmc/sdmmcchip.h> 59#include <dev/sdmmc/sdmmcchip.h>
60#include <dev/sdmmc/sdmmcreg.h> 60#include <dev/sdmmc/sdmmcreg.h>
61#include <dev/sdmmc/sdmmcvar.h> 61#include <dev/sdmmc/sdmmcvar.h>
62 62
@@ -290,26 +290,27 @@ sdmmc_decode_csd(struct sdmmc_softc *sc, @@ -290,26 +290,27 @@ sdmmc_decode_csd(struct sdmmc_softc *sc,
290 }; 290 };
291 struct sdmmc_csd *csd = &sf->csd; 291 struct sdmmc_csd *csd = &sf->csd;
292 int e, m; 292 int e, m;
293 293
294 if (ISSET(sc->sc_flags, SMF_SD_MODE)) { 294 if (ISSET(sc->sc_flags, SMF_SD_MODE)) {
295 /* 295 /*
296 * CSD version 1.0 corresponds to SD system 296 * CSD version 1.0 corresponds to SD system
297 * specification version 1.0 - 1.10. (SanDisk, 3.5.3) 297 * specification version 1.0 - 1.10. (SanDisk, 3.5.3)
298 */ 298 */
299 csd->csdver = SD_CSD_CSDVER(resp); 299 csd->csdver = SD_CSD_CSDVER(resp);
300 switch (csd->csdver) { 300 switch (csd->csdver) {
301 case SD_CSD_CSDVER_2_0: 301 case SD_CSD_CSDVER_2_0:
302 DPRINTF(("%s: SD Ver.2.0\n", SDMMCDEVNAME(sc))); 302 DPRINTF(("%s: SD Ver.2.0\n", SDMMCDEVNAME(sc)));
 303 SET(sf->flags, SFF_SDHC);
303 csd->capacity = SD_CSD_V2_CAPACITY(resp); 304 csd->capacity = SD_CSD_V2_CAPACITY(resp);
304 csd->read_bl_len = SD_CSD_V2_BL_LEN; 305 csd->read_bl_len = SD_CSD_V2_BL_LEN;
305 break; 306 break;
306 307
307 case SD_CSD_CSDVER_1_0: 308 case SD_CSD_CSDVER_1_0:
308 DPRINTF(("%s: SD Ver.1.0\n", SDMMCDEVNAME(sc))); 309 DPRINTF(("%s: SD Ver.1.0\n", SDMMCDEVNAME(sc)));
309 csd->capacity = SD_CSD_CAPACITY(resp); 310 csd->capacity = SD_CSD_CAPACITY(resp);
310 csd->read_bl_len = SD_CSD_READ_BL_LEN(resp); 311 csd->read_bl_len = SD_CSD_READ_BL_LEN(resp);
311 break; 312 break;
312 313
313 default: 314 default:
314 aprint_error_dev(sc->sc_dev, 315 aprint_error_dev(sc->sc_dev,
315 "unknown SD CSD structure version 0x%x\n", 316 "unknown SD CSD structure version 0x%x\n",