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>