Module Name: src
Committed By: kiyohara
Date: Thu Sep 23 12:03:27 UTC 2010
Modified Files:
src/sys/dev/sdmmc: ld_sdmmc.c sdmmc_mem.c sdmmcvar.h
Log Message:
Print bus width and clock for feature(High speed support).
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/sdmmc/ld_sdmmc.c \
src/sys/dev/sdmmc/sdmmcvar.h
cvs rdiff -u -r1.10 -r1.11 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/ld_sdmmc.c
diff -u src/sys/dev/sdmmc/ld_sdmmc.c:1.5 src/sys/dev/sdmmc/ld_sdmmc.c:1.6
--- src/sys/dev/sdmmc/ld_sdmmc.c:1.5 Mon Sep 20 09:03:33 2010
+++ src/sys/dev/sdmmc/ld_sdmmc.c Thu Sep 23 12:03:27 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: ld_sdmmc.c,v 1.5 2010/09/20 09:03:33 kiyohara Exp $ */
+/* $NetBSD: ld_sdmmc.c,v 1.6 2010/09/23 12:03:27 kiyohara Exp $ */
/*
* Copyright (c) 2008 KIYOHARA Takashi
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.5 2010/09/20 09:03:33 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.6 2010/09/23 12:03:27 kiyohara Exp $");
#include "rnd.h"
@@ -146,8 +146,16 @@
{
struct ld_sdmmc_softc *sc = (struct ld_sdmmc_softc *)arg;
struct ld_softc *ld = &sc->sc_ld;
+ struct sdmmc_softc *ssc = device_private(device_parent(ld->sc_dv));
ldattach(ld);
+ aprint_normal_dev(ld->sc_dv, "%d-bit width, bus clock",
+ sc->sc_sf->width);
+ if ((ssc->sc_busclk / 1000) != 0)
+ aprint_normal(" %u.%03u MHz\n",
+ ssc->sc_busclk / 1000, ssc->sc_busclk % 1000);
+ else
+ aprint_normal(" %u KHz\n", ssc->sc_busclk % 1000);
kthread_exit(0);
}
Index: src/sys/dev/sdmmc/sdmmcvar.h
diff -u src/sys/dev/sdmmc/sdmmcvar.h:1.5 src/sys/dev/sdmmc/sdmmcvar.h:1.6
--- src/sys/dev/sdmmc/sdmmcvar.h:1.5 Wed Sep 22 04:32:53 2010
+++ src/sys/dev/sdmmc/sdmmcvar.h Thu Sep 23 12:03:27 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: sdmmcvar.h,v 1.5 2010/09/22 04:32:53 kiyohara Exp $ */
+/* $NetBSD: sdmmcvar.h,v 1.6 2010/09/23 12:03:27 kiyohara Exp $ */
/* $OpenBSD: sdmmcvar.h,v 1.13 2009/01/09 10:55:22 jsg Exp $ */
/*
@@ -161,6 +161,7 @@
/* common members */
struct sdmmc_softc *sc; /* card slot softc */
uint16_t rca; /* relative card address */
+ int width; /* bus width */
int flags;
#define SFF_ERROR 0x0001 /* function is poo; ignore it */
#define SFF_SDHC 0x0002 /* SD High Capacity card */
Index: src/sys/dev/sdmmc/sdmmc_mem.c
diff -u src/sys/dev/sdmmc/sdmmc_mem.c:1.10 src/sys/dev/sdmmc/sdmmc_mem.c:1.11
--- src/sys/dev/sdmmc/sdmmc_mem.c:1.10 Tue Sep 21 04:53:53 2010
+++ src/sys/dev/sdmmc/sdmmc_mem.c Thu Sep 23 12:03:27 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: sdmmc_mem.c,v 1.10 2010/09/21 04:53:53 kiyohara Exp $ */
+/* $NetBSD: sdmmc_mem.c,v 1.11 2010/09/23 12:03:27 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.10 2010/09/21 04:53:53 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.11 2010/09/23 12:03:27 kiyohara Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -453,6 +453,7 @@
}
/* change bus width if supported */
+ sf->width = 1;
if (ISSET(sc->sc_flags, SMF_SD_MODE)) {
error = sdmmc_mem_send_scr(sc, sf, sf->raw_scr);
if (error) {
@@ -470,7 +471,9 @@
if (error) {
DPRINTF(("%s: can't change bus width"
" (%d bit)\n", SDMMCDEVNAME(sc), 4));
+ goto out;
}
+ sf->width = 4;
}
} else if (sf->csd.mmcver >= MMC_CSD_MMCVER_4_0) {
if (ISSET(sc->sc_caps, SMC_CAPS_8BIT_MODE)) {
@@ -497,6 +500,8 @@
}
/* XXXX: need bus test? (using by CMD14 & CMD19) */
+
+ sf->width = width;
}
}