From nobody Mon May 16 09:45:31 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id C61EB1AE2CF3; Mon, 16 May 2022 09:45:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4L1vWJ39v3z3r6P; Mon, 16 May 2022 09:45:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1652694332; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6ymApitHUh6KB0VCEFutM6PEcx9iXkI0lhJP0ORmqf8=; b=xmpwsW/5dcHsJwwTDMGDKJTTqYZaL/N94/xsYFoMZ0pQ3/pCazXz1K+KDNg/lnCBEfRDET nAB2qWkefqEUD6LVlRB0mk0VTz+CU1VVvbp0h6EqdShlGgytnL5OoYlh73fDYS77/RP/4Z oi+EKSUSDntJnVQ5bFMenh4mi5SWSAp0XUWLmA8aTTWliL1RVtUjMZIydH0PWCdCFTGfD5 65hC4YZv094paPtOf27aerzBHNiPht/Ps7Xh8+bcludE54c3KToxf+i/wwbUSfG+HvuTNF kwxmIoF1u3NzpMn8hvAxUve4tyEiEr4osMmcCZz8HQbbYQyIQy7CYxA489JIHw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1A31B1D9BE; Mon, 16 May 2022 09:45:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 24G9jVdT040536; Mon, 16 May 2022 09:45:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 24G9jVtK040534; Mon, 16 May 2022 09:45:31 GMT (envelope-from git) Date: Mon, 16 May 2022 09:45:31 GMT Message-Id: <202205160945.24G9jVtK040534@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Emmanuel Vadot Subject: git: 40d62bb4f935 - stable/13 - dwmmc: Properly implement power_off/power_up List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 40d62bb4f9352b4f10b6df3f9140cf8dd3c8e576 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1652694332; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6ymApitHUh6KB0VCEFutM6PEcx9iXkI0lhJP0ORmqf8=; b=d0ZWjnzPbawQo/qvybnBNcy7752Erdfcei55VTardZnJau2U4K3RBBYrc2meFJAcx7cfCc qJXmywsb3knWZdTHDcny7HOZqsEqWQiSjPlucMTt55p38sNhPougTCOTZQacXCXbQM7Uez mbyMJ/S3b0CGUyZZNZN2TfMz8pIH71/udwVxGEYwwyXD3cflejZ9dU9UnJ/wHTg5o5sG/R 6vREbU61kwWr6OPaBTTkDZ+cp1yK3uUUKjzPdKtzX9J7jHc6FW35+MB7LSCRIXhk8EAOi0 TKmEtI+j/WlCfP9iv6AXyrqG9TXIV9gC0O45QMlRpLzTomVeTA4JKlwnN+2b5w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1652694332; a=rsa-sha256; cv=none; b=B4EKFfFceikHWeWZh7GHsBWYXn8tz17hBmUxmpDujfw7xCFqe00qMbJvZdOJ8p61+wta4Y iYLmwuOblHjUjf4jpAFrLhl/yU8zblgZHt370WFXuorBefhLwtpiCU6dzNZag6hMTHyUdU ddZu3PwPYHkhiA1kG1LGDufgq3L3VVy6dyeSNDCsh84YDopEZVe9eREsPmbmaXtdD40Dcw q59m82V8hbPpJELtyw5QuKFiNJ16QdovNC1lLvrp6wCYTFLW+ALBpddenos7A6jQOYfhpQ Z7kpJ2U+tLJclKQoK7r/PI/IBhO5fetVmfc2KJZlkh73FiNauALEKZVd6Tj3XA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=40d62bb4f9352b4f10b6df3f9140cf8dd3c8e576 commit 40d62bb4f9352b4f10b6df3f9140cf8dd3c8e576 Author: Emmanuel Vadot AuthorDate: 2021-09-21 14:10:11 +0000 Commit: Emmanuel Vadot CommitDate: 2022-05-16 09:33:42 +0000 dwmmc: Properly implement power_off/power_up Write to the PWREN register should be done in update_ios based on the power_mode value in the ios struct. Also none of the manual (RockChip and Altera) and Linux talks about the needed for an inverted PWREN value so just remove this. This fixes eMMC (and possibly SD) when u-boot didn't setup the controller. Reported by: avg Tested-on: Rock64, RockPro64 (cherry picked from commit af32e2cc32b2516826e301d5f857ff7343b1210e) --- sys/dev/mmc/host/dwmmc.c | 20 +++++++++++--------- sys/dev/mmc/host/dwmmc_rockchip.c | 2 -- sys/dev/mmc/host/dwmmc_var.h | 1 - 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/sys/dev/mmc/host/dwmmc.c b/sys/dev/mmc/host/dwmmc.c index 8dfbaece127d..9ae28c8ad7b9 100644 --- a/sys/dev/mmc/host/dwmmc.c +++ b/sys/dev/mmc/host/dwmmc.c @@ -679,7 +679,6 @@ dwmmc_attach(device_t dev) { struct dwmmc_softc *sc; int error; - int slot; sc = device_get_softc(dev); @@ -712,14 +711,6 @@ dwmmc_attach(device_t dev) device_printf(dev, "Hardware version ID is %04x\n", READ4(sc, SDMMC_VERID) & 0xffff); - /* XXX: we support operation for slot index 0 only */ - slot = 0; - if (sc->pwren_inverted) { - WRITE4(sc, SDMMC_PWREN, (0 << slot)); - } else { - WRITE4(sc, SDMMC_PWREN, (1 << slot)); - } - /* Reset all */ if (dwmmc_ctrl_reset(sc, (SDMMC_CTRL_RESET | SDMMC_CTRL_FIFO_RESET | @@ -901,6 +892,17 @@ dwmmc_update_ios(device_t brdev, device_t reqdev) dprintf("Setting up clk %u bus_width %d, timming: %d\n", ios->clock, ios->bus_width, ios->timing); + switch (ios->power_mode) { + case power_on: + break; + case power_off: + WRITE4(sc, SDMMC_PWREN, 0); + break; + case power_up: + WRITE4(sc, SDMMC_PWREN, 1); + break; + } + mmc_fdt_set_power(&sc->mmc_helper, ios->power_mode); if (ios->bus_width == bus_width_8) diff --git a/sys/dev/mmc/host/dwmmc_rockchip.c b/sys/dev/mmc/host/dwmmc_rockchip.c index 25baffb267e3..c025e531e27b 100644 --- a/sys/dev/mmc/host/dwmmc_rockchip.c +++ b/sys/dev/mmc/host/dwmmc_rockchip.c @@ -94,8 +94,6 @@ rockchip_dwmmc_attach(device_t dev) break; } - sc->pwren_inverted = 1; - #ifdef EXT_RESOURCES sc->update_ios = &dwmmc_rockchip_update_ios; #endif diff --git a/sys/dev/mmc/host/dwmmc_var.h b/sys/dev/mmc/host/dwmmc_var.h index a3f20278ad2a..33210f547dff 100644 --- a/sys/dev/mmc/host/dwmmc_var.h +++ b/sys/dev/mmc/host/dwmmc_var.h @@ -69,7 +69,6 @@ struct dwmmc_softc { uint32_t hwtype; uint32_t use_auto_stop; uint32_t use_pio; - uint32_t pwren_inverted; device_t child; struct task card_task; /* Card presence check task */ struct timeout_task card_delayed_task;/* Card insert delayed task */