Module Name:    src
Committed By:   sborrill
Date:           Wed Dec  2 17:39:16 UTC 2009

Modified Files:
        src/sys/dev/sdmmc [netbsd-5]: ld_sdmmc.c sdmmc_mem.c sdmmcvar.h

Log Message:
Pull up the following revisions(s) (requested by nonaka in ticket #1167):
        sys/dev/sdmmc/ld_sdmmc.c:       revision 1.4
        sys/dev/sdmmc/sdmmc_mem.c:      revision 1.3
        sys/dev/sdmmc/sdmmcvar.h:       revision 1.2

Always treat sector size as 512 bytes.


To generate a diff of this commit:
cvs rdiff -u -r1.3.2.2 -r1.3.2.3 src/sys/dev/sdmmc/ld_sdmmc.c
cvs rdiff -u -r1.2.2.2 -r1.2.2.3 src/sys/dev/sdmmc/sdmmc_mem.c
cvs rdiff -u -r1.1.8.2 -r1.1.8.3 src/sys/dev/sdmmc/sdmmcvar.h

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.3.2.2 src/sys/dev/sdmmc/ld_sdmmc.c:1.3.2.3
--- src/sys/dev/sdmmc/ld_sdmmc.c:1.3.2.2	Wed Oct  7 15:41:13 2009
+++ src/sys/dev/sdmmc/ld_sdmmc.c	Wed Dec  2 17:39:16 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: ld_sdmmc.c,v 1.3.2.2 2009/10/07 15:41:13 sborrill Exp $	*/
+/*	$NetBSD: ld_sdmmc.c,v 1.3.2.3 2009/12/02 17:39:16 sborrill Exp $	*/
 
 /*
  * Copyright (c) 2008 KIYOHARA Takashi
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.3.2.2 2009/10/07 15:41:13 sborrill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ld_sdmmc.c,v 1.3.2.3 2009/12/02 17:39:16 sborrill Exp $");
 
 #include "rnd.h"
 
@@ -125,7 +125,7 @@
 
 	ld->sc_flags = LDF_ENABLED;
 	ld->sc_secperunit = sc->sc_sf->csd.capacity;
-	ld->sc_secsize = sc->sc_sf->csd.sector_size;
+	ld->sc_secsize = SDMMC_SECTOR_SIZE;
 	ld->sc_maxxfer = MAXPHYS;
 	ld->sc_maxqueuecnt = 1;
 	ld->sc_dump = ld_sdmmc_dump;

Index: src/sys/dev/sdmmc/sdmmc_mem.c
diff -u src/sys/dev/sdmmc/sdmmc_mem.c:1.2.2.2 src/sys/dev/sdmmc/sdmmc_mem.c:1.2.2.3
--- src/sys/dev/sdmmc/sdmmc_mem.c:1.2.2.2	Wed Oct  7 15:41:13 2009
+++ src/sys/dev/sdmmc/sdmmc_mem.c	Wed Dec  2 17:39:16 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdmmc_mem.c,v 1.2.2.2 2009/10/07 15:41:13 sborrill Exp $	*/
+/*	$NetBSD: sdmmc_mem.c,v 1.2.2.3 2009/12/02 17:39:16 sborrill 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.2.2.2 2009/10/07 15:41:13 sborrill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.2.2.3 2009/12/02 17:39:16 sborrill Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -343,11 +343,8 @@
 		m = MMC_CSD_TRAN_SPEED_MANT(resp);
 		csd->tran_speed = speed_exponent[e] * speed_mantissa[m] / 10;
 	}
-	csd->sector_size = MIN((1 << csd->read_bl_len),
-	    sdmmc_chip_host_maxblklen(sc->sc_sct, sc->sc_sch));
-	if (csd->sector_size < (1 << csd->read_bl_len))
-		csd->capacity *= (1 << csd->read_bl_len) / csd->sector_size;
-	csd->sector_size_sb = ffs(csd->sector_size) - 1;
+	if ((1 << csd->read_bl_len) > SDMMC_SECTOR_SIZE)
+		csd->capacity *= (1 << csd->read_bl_len) / SDMMC_SECTOR_SIZE;
 
 	if (sc->sc_busclk > csd->tran_speed)
 		sc->sc_busclk = csd->tran_speed;
@@ -420,7 +417,6 @@
 	printf("write_cl_len = %d\n", csd->write_bl_len);
 	printf("r2w_factor = %d\n", csd->r2w_factor);
 	printf("tran_speed = %d\n", csd->tran_speed);
-	printf("sector_size = %d\n", csd->sector_size);
 }
 #endif
 
@@ -526,13 +522,13 @@
 
 	memset(&cmd, 0, sizeof(cmd));
 	cmd.c_opcode = MMC_SET_BLOCKLEN;
-	cmd.c_arg = sf->csd.sector_size;
+	cmd.c_arg = SDMMC_SECTOR_SIZE;
 	cmd.c_flags = SCF_CMD_AC | SCF_RSP_R1;
 
 	error = sdmmc_mmc_command(sc, &cmd);
 
 	DPRINTF(("%s: sdmmc_mem_set_blocklen: read_bl_len=%d sector_size=%d\n",
-	    SDMMCDEVNAME(sc), 1 << sf->csd.read_bl_len, sf->csd.sector_size));
+	    SDMMCDEVNAME(sc), 1 << sf->csd.read_bl_len, SDMMC_SECTOR_SIZE));
 
 	return error;
 }
@@ -552,12 +548,12 @@
 	memset(&cmd, 0, sizeof(cmd));
 	cmd.c_data = data;
 	cmd.c_datalen = datalen;
-	cmd.c_blklen = sf->csd.sector_size;
+	cmd.c_blklen = SDMMC_SECTOR_SIZE;
 	cmd.c_opcode = (cmd.c_datalen / cmd.c_blklen) > 1 ?
 	    MMC_READ_BLOCK_MULTIPLE : MMC_READ_BLOCK_SINGLE;
 	cmd.c_arg = blkno;
 	if (!ISSET(sf->flags, SFF_SDHC))
-		cmd.c_arg <<= sf->csd.sector_size_sb;
+		cmd.c_arg <<= SDMMC_SECTOR_SIZE_SB;
 	cmd.c_flags = SCF_CMD_ADTC | SCF_CMD_READ | SCF_RSP_R1;
 	if (ISSET(sc->sc_caps, SMC_CAPS_DMA))
 		cmd.c_dmamap = sc->sc_dmap;
@@ -646,12 +642,12 @@
 	memset(&cmd, 0, sizeof(cmd));
 	cmd.c_data = data;
 	cmd.c_datalen = datalen;
-	cmd.c_blklen = sf->csd.sector_size;
+	cmd.c_blklen = SDMMC_SECTOR_SIZE;
 	cmd.c_opcode = (cmd.c_datalen / cmd.c_blklen) > 1 ?
 	    MMC_WRITE_BLOCK_MULTIPLE : MMC_WRITE_BLOCK_SINGLE;
 	cmd.c_arg = blkno;
 	if (!ISSET(sf->flags, SFF_SDHC))
-		cmd.c_arg <<= sf->csd.sector_size_sb;
+		cmd.c_arg <<= SDMMC_SECTOR_SIZE_SB;
 	cmd.c_flags = SCF_CMD_ADTC | SCF_RSP_R1;
 	if (ISSET(sc->sc_caps, SMC_CAPS_DMA))
 		cmd.c_dmamap = sc->sc_dmap;

Index: src/sys/dev/sdmmc/sdmmcvar.h
diff -u src/sys/dev/sdmmc/sdmmcvar.h:1.1.8.2 src/sys/dev/sdmmc/sdmmcvar.h:1.1.8.3
--- src/sys/dev/sdmmc/sdmmcvar.h:1.1.8.2	Wed Oct  7 15:41:13 2009
+++ src/sys/dev/sdmmc/sdmmcvar.h	Wed Dec  2 17:39:16 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdmmcvar.h,v 1.1.8.2 2009/10/07 15:41:13 sborrill Exp $	*/
+/*	$NetBSD: sdmmcvar.h,v 1.1.8.3 2009/12/02 17:39:16 sborrill Exp $	*/
 /*	$OpenBSD: sdmmcvar.h,v 1.13 2009/01/09 10:55:22 jsg Exp $	*/
 
 /*
@@ -28,12 +28,13 @@
 #include <dev/sdmmc/sdmmcchip.h>
 #include <dev/sdmmc/sdmmcreg.h>
 
+#define	SDMMC_SECTOR_SIZE_SB	9
+#define	SDMMC_SECTOR_SIZE	(1 << SDMMC_SECTOR_SIZE_SB)	/* =512 */
+
 struct sdmmc_csd {
 	int	csdver;		/* CSD structure format */
 	u_int	mmcver;		/* MMC version (for CID format) */
 	int	capacity;	/* total number of sectors */
-	int	sector_size;	/* sector size in bytes */
-	int	sector_size_sb;	/* sector size in shift bit */
 	int	read_bl_len;	/* block length for reads */
 	int	write_bl_len;	/* block length for writes */
 	int	r2w_factor;

Reply via email to