svn commit: r310722 - head/sys/mips/ingenic
Alexander Kabaev
kan at FreeBSD.org
Wed Dec 28 19:41:00 UTC 2016
Author: kan
Date: Wed Dec 28 19:40:59 2016
New Revision: 310722
URL: https://svnweb.freebsd.org/changeset/base/310722
Log:
Do not use read-modify-write on MSC control register.
The register is write-only, so just write only bits we want.
Submitted by: jmcneill
Modified:
head/sys/mips/ingenic/jz4780_mmc.c
Modified: head/sys/mips/ingenic/jz4780_mmc.c
==============================================================================
--- head/sys/mips/ingenic/jz4780_mmc.c Wed Dec 28 18:42:43 2016 (r310721)
+++ head/sys/mips/ingenic/jz4780_mmc.c Wed Dec 28 19:40:59 2016 (r310722)
@@ -412,13 +412,9 @@ static int
jz4780_mmc_reset(struct jz4780_mmc_softc *sc)
{
int timeout;
- int reg;
/* Stop the clock */
- reg = JZ_MMC_READ_4(sc, JZ_MSC_CTRL);
- reg &= ~(JZ_CLOCK_CTRL_M);
- reg |= JZ_CLOCK_STOP;
- JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL, reg);
+ JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL, JZ_CLOCK_STOP);
timeout = 1000;
while (--timeout > 0) {
@@ -432,9 +428,7 @@ jz4780_mmc_reset(struct jz4780_mmc_softc
}
/* Reset */
- reg = JZ_MMC_READ_4(sc, JZ_MSC_CTRL);
- reg |= JZ_RESET;
- JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL, reg);
+ JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL, JZ_RESET);
timeout = 10;
while (--timeout > 0) {
@@ -647,7 +641,7 @@ jz4780_mmc_request(device_t bus, device_
{
struct jz4780_mmc_softc *sc;
struct mmc_command *cmd;
- uint32_t cmdat, ctrl, iwait;
+ uint32_t cmdat, iwait;
int blksz;
sc = device_get_softc(bus);
@@ -731,9 +725,7 @@ jz4780_mmc_request(device_t bus, device_
JZ_MMC_WRITE_4(sc, JZ_MSC_CMD, cmd->opcode);
JZ_MMC_WRITE_4(sc, JZ_MSC_CMDAT, cmdat);
- ctrl = JZ_MMC_READ_4(sc, JZ_MSC_CTRL);
- ctrl |= JZ_START_OP | JZ_CLOCK_START;
- JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL, ctrl);
+ JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL, JZ_START_OP | JZ_CLOCK_START);
callout_reset(&sc->sc_timeoutc, sc->sc_timeout * hz,
jz4780_mmc_timeout, sc);
@@ -853,8 +845,7 @@ jz4780_mmc_disable_clock(struct jz4780_m
{
int timeout;
- JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL,
- JZ_MMC_READ_4(sc, JZ_MSC_CTRL) | JZ_CLOCK_STOP);
+ JZ_MMC_WRITE_4(sc, JZ_MSC_CTRL, JZ_CLOCK_STOP);
for (timeout = 1000; timeout > 0; timeout--)
if ((JZ_MMC_READ_4(sc, JZ_MSC_STAT) & JZ_CLK_EN) == 0)
More information about the svn-src-all
mailing list