From: Christophe KERELLO <christophe.kerello@foss.st.com>
To: Mateusz Nowicki <mateusz.nowicki@posteo.net>,
Ulf Hansson <ulfh@kernel.org>, <linux-mmc@vger.kernel.org>
Cc: Russell King <linux@armlinux.org.uk>,
Linus Walleij <linusw@kernel.org>,
Yann Gautier <yann.gautier@foss.st.com>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
<linux-stm32@st-md-mailman.stormreply.com>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <stable@vger.kernel.org>
Subject: Re: [PATCH 3/3] mmc: mmci: stm32: lock the STM32MP25 delay block again before tuning
Date: Mon, 2 Nov 2026 18:13:09 +0100 [thread overview]
Message-ID: <6d138e10-343f-4fa4-8886-0480e95fe96b@foss.st.com> (raw)
In-Reply-To: <20261031120700.42576-4-mateusz.nowicki@posteo.net>
Hello Mateusz,
This patch is similar with the one that we have on ST downstream.
mmc: mmci: stm32: release the delay block before enabling it (Commit
01d3cac)
If it is the case and if you are going to upstream ST downstream source
code,
do not forget to keep ST signed-off author, please.
Regards,
Christophe Kerello.
On 10/31/26 13:07, Mateusz Nowicki wrote:
> Once locked, the DLL of the delay block follows voltage and temperature
> but not a change of the clock frequency. RM0457 requires the DLL to be
> disabled and locked again after a frequency switch.
>
> sdmmc_dlyb_mp25_enable() only sets EN, so a DLL left enabled by an
> earlier tuning keeps its old lock. On the STM32MP257F-DK eMMC, switching
> from DDR52 to HS200 then made the tuning pick a wrong phase in 9 of 18
> tries. With this change the phase was correct in all 12 tries.
>
> Clear EN and wait for LOCK to drop before enabling the DLL again.
>
> Fixes: b5c3eb385797 ("mmc: mmci: stm32: add delay block support for STM32MP25")
> Cc: stable@vger.kernel.org
> Signed-off-by: Mateusz Nowicki <mateusz.nowicki@posteo.net>
> ---
> drivers/mmc/host/mmci_stm32_sdmmc.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/mmci_stm32_sdmmc.c b/drivers/mmc/host/mmci_stm32_sdmmc.c
> index d74efdff6ac2..2310dba75c35 100644
> --- a/drivers/mmc/host/mmci_stm32_sdmmc.c
> +++ b/drivers/mmc/host/mmci_stm32_sdmmc.c
> @@ -541,11 +541,21 @@ static int sdmmc_dlyb_mp15_prepare(struct mmci_host *host)
> static int sdmmc_dlyb_mp25_enable(struct sdmmc_dlyb *dlyb)
> {
> u32 cr, sr;
> + int ret;
>
> + /*
> + * The DLL tracks voltage and temperature but not a frequency switch
> + * (RM0457), start the lock sequence again on the current clock
> + */
> cr = readl_relaxed(dlyb->base + SYSCFG_DLYBSD_CR);
> - cr |= DLYBSD_CR_EN;
> + writel_relaxed(cr & ~DLYBSD_CR_EN, dlyb->base + SYSCFG_DLYBSD_CR);
> + ret = readl_relaxed_poll_timeout(dlyb->base + SYSCFG_DLYBSD_SR,
> + sr, !(sr & DLYBSD_SR_LOCK), 1,
> + DLYBSD_TIMEOUT_1S_IN_US);
> + if (ret)
> + return ret;
>
> - writel_relaxed(cr, dlyb->base + SYSCFG_DLYBSD_CR);
> + writel_relaxed(cr | DLYBSD_CR_EN, dlyb->base + SYSCFG_DLYBSD_CR);
>
> return readl_relaxed_poll_timeout(dlyb->base + SYSCFG_DLYBSD_SR,
> sr, sr & DLYBSD_SR_LOCK, 1,
prev parent reply other threads:[~2026-11-02 17:13 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-31 12:07 [PATCH 0/3] mmc: mmci: stm32: silent data corruption and HS200 fixes Mateusz Nowicki
2026-10-31 12:07 ` [PATCH 1/3] mmc: mmci: do not count a data CRC error as a complete transfer Mateusz Nowicki
2026-10-31 12:07 ` [PATCH 2/3] mmc: mmci: stm32: do not use NEGEDGE in HS200 mode Mateusz Nowicki
2026-11-02 16:48 ` Christophe KERELLO
2026-10-31 12:07 ` [PATCH 3/3] mmc: mmci: stm32: lock the STM32MP25 delay block again before tuning Mateusz Nowicki
2026-11-02 17:13 ` Christophe KERELLO [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6d138e10-343f-4fa4-8886-0480e95fe96b@foss.st.com \
--to=christophe.kerello@foss.st.com \
--cc=alexandre.torgue@foss.st.com \
--cc=linusw@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux@armlinux.org.uk \
--cc=mateusz.nowicki@posteo.net \
--cc=mcoquelin.stm32@gmail.com \
--cc=stable@vger.kernel.org \
--cc=ulfh@kernel.org \
--cc=yann.gautier@foss.st.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®