Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Oct 2006 20:39:17 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 107213 for review
Message-ID:  <200610032039.k93KdHt6099385@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=107213

Change 107213 by imp@imp_lighthouse on 2006/10/03 20:38:55

	Only select a card when it is the card acquiring the bus.  Ditto
	deselect.

Affected files ...

.. //depot/projects/arm/src/sys/dev/mmc/mmc.c#19 edit

Differences ...

==== //depot/projects/arm/src/sys/dev/mmc/mmc.c#19 (text+ko) ====

@@ -133,15 +133,15 @@
 		panic("mmc: host bridge didn't seralize us.");
 	sc->owner = dev;
 	MMC_UNLOCK(sc);
-	// XXX Should do lazy selection.
 
-	printf("Selecting card %#x\n", mmc_get_rca(dev));
-	cmd.opcode = MMC_SELECT_CARD;
-	cmd.arg = mmc_get_rca(dev) << 16;
-	cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
-	mmc_wait_for_cmd(sc, &cmd, CMD_RETRIES);
-
-	// XXX should set bus width here?
+	if (busdev != dev) {
+		// XXX Should do lazy selection.
+		cmd.opcode = MMC_SELECT_CARD;
+		cmd.arg = mmc_get_rca(dev) << 16;
+		cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
+		mmc_wait_for_cmd(sc, &cmd, CMD_RETRIES);
+		// XXX should set bus width here?
+	}
 	return (0);
 }
 
@@ -153,13 +153,14 @@
 	int err;
 
 	sc = device_get_softc(busdev);
-	// XXX Should do lazy selection.
 
-	cmd.opcode = MMC_DESELECT_CARD;
-	cmd.arg = 0;
-	cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
-	mmc_wait_for_cmd(sc, &cmd, CMD_RETRIES);
-
+	if (busdev != dev) {
+		// XXX Should do lazy selection.
+		cmd.opcode = MMC_DESELECT_CARD;
+		cmd.arg = 0;
+		cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
+		mmc_wait_for_cmd(sc, &cmd, CMD_RETRIES);
+	}
 	MMC_LOCK(sc);
 	if (!sc->owner)
 		panic("mmc: releasing unowned bus.");



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610032039.k93KdHt6099385>