[PATCH v3 2/7] mmc: sdhci: Change prototype of set_delay to return errors

Jaehoon Chung jh80.chung at samsung.com
Mon Aug 2 01:09:09 CEST 2021


On 7/30/21 9:28 PM, Ashok Reddy Soma wrote:
> set_delay() has return type as void. If there are any errors while
> setting tapdelay's it won't be able to return them.
> 
> Change the prototype of set_delay() in sdhci_ops structure and return
> the errors from wherever it is called.
> 
> Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma at xilinx.com>


Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>

Best Regards,
Jaehoon Chung

> ---
> 
> (no changes since v2)
> 
> Changes in v2:
>  - This is the second patch that has been split from 1/7
>  - This covers changes for sdhci driver separately
>  - Added a debug print in case of error from set_delay()
> 
>  drivers/mmc/sdhci.c | 10 ++++++++--
>  include/sdhci.h     |  2 +-
>  2 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> index d9ab6a0a83..a99014236a 100644
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -366,6 +366,7 @@ int sdhci_set_clock(struct mmc *mmc, unsigned int clock)
>  {
>  	struct sdhci_host *host = mmc->priv;
>  	unsigned int div, clk = 0, timeout;
> +	int ret;
>  
>  	/* Wait max 20 ms */
>  	timeout = 200;
> @@ -386,8 +387,13 @@ int sdhci_set_clock(struct mmc *mmc, unsigned int clock)
>  	if (clock == 0)
>  		return 0;
>  
> -	if (host->ops && host->ops->set_delay)
> -		host->ops->set_delay(host);
> +	if (host->ops && host->ops->set_delay) {
> +		ret = host->ops->set_delay(host);
> +		if (ret) {
> +			printf("%s: Error while setting tap delay\n", __func__);
> +			return ret;
> +		}
> +	}
>  
>  	if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300) {
>  		/*
> diff --git a/include/sdhci.h b/include/sdhci.h
> index 0ae9471ad7..44a0d84e5a 100644
> --- a/include/sdhci.h
> +++ b/include/sdhci.h
> @@ -268,7 +268,7 @@ struct sdhci_ops {
>  	int	(*set_ios_post)(struct sdhci_host *host);
>  	void	(*set_clock)(struct sdhci_host *host, u32 div);
>  	int (*platform_execute_tuning)(struct mmc *host, u8 opcode);
> -	void (*set_delay)(struct sdhci_host *host);
> +	int (*set_delay)(struct sdhci_host *host);
>  	int	(*deferred_probe)(struct sdhci_host *host);
>  };
>  
> 



More information about the U-Boot mailing list