Re: [PATCH v2 1/4] mmc: sdhci_am654: Move tuning_loop to local variable

"Mendez, Judith" <[email protected]> Mon, 3 Aug 2026 14:19:09 -0500
Newsgroups org.kernel.vger.linux-mmc,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi Diogo,

On 8/3/2026 8:47 AM, Diogo Ivo (Schneider Electric) wrote:
> The tuning_loop field in struct sdhci_am654_data is only used within
> sdhci_am654_platform_execute_tuning() as a loop counter that is
> initialized to 0 in sdhci_am654_init(). Since it shouldn't persist across
> function calls, otherwise every failure expends its "budget", move it to a
> local variable and remove the struct field along with the now-unnecessary
> initialization.
> 
> Signed-off-by: Diogo Ivo (Schneider Electric) <[email protected]>

Thanks for your patch. Seems logical to me.

Reviewed-by: Judith Mendez <[email protected]>

> ---
> Changes in v2:
>   - New patch suggested by Sashiko
> ---
>   drivers/mmc/host/sdhci_am654.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
> index d235b0aecfdb..35c3efd92112 100644
> --- a/drivers/mmc/host/sdhci_am654.c
> +++ b/drivers/mmc/host/sdhci_am654.c
> @@ -151,7 +151,6 @@ struct sdhci_am654_data {
>   	u32 flags;
>   	u32 quirks;
>   	bool dll_enable;
> -	u32 tuning_loop;
>   
>   #define SDHCI_AM654_QUIRK_FORCE_CDTEST BIT(0)
>   #define SDHCI_AM654_QUIRK_SUPPRESS_V1P8_ENA BIT(1)
> @@ -576,13 +575,14 @@ static int sdhci_am654_platform_execute_tuning(struct sdhci_host *host,
>   	struct sdhci_am654_data *sdhci_am654 = sdhci_pltfm_priv(pltfm_host);
>   	unsigned char timing = host->mmc->ios.timing;
>   	struct device *dev = mmc_dev(host->mmc);
> +	unsigned int tuning_loop = 0;
>   	int itapdly;
>   
>   	do {
>   		itapdly = sdhci_am654_do_tuning(host, opcode);
>   		if (itapdly >= 0)
>   			break;
> -	} while (++sdhci_am654->tuning_loop < RETRY_TUNING_MAX);
> +	} while (++tuning_loop < RETRY_TUNING_MAX);
>   
>   	if (itapdly < 0) {
>   		dev_err(dev, "Failed to find itapdly, fail tuning\n");
> @@ -806,9 +806,6 @@ static int sdhci_am654_init(struct sdhci_host *host)
>   	regmap_update_bits(sdhci_am654->base, CTL_CFG_3, TUNINGFORSDR50_MASK,
>   			   TUNINGFORSDR50_MASK);
>   
> -	/* Use to re-execute tuning */
> -	sdhci_am654->tuning_loop = 0;
> -
>   	ret = sdhci_setup_host(host);
>   	if (ret)
>   		return ret;
>