PERFORCE change 107213 for review
Warner Losh
imp at FreeBSD.org
Tue Oct 3 13:39:32 PDT 2006
http://perforce.freebsd.org/chv.cgi?CH=107213
Change 107213 by imp at 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.");
More information about the p4-projects
mailing list