mmc: tegra: suppress errors when probe is deferred

Message ID 1502970766-23541-1-git-send-email-talho@nvidia.com
State New
Headers show

Commit Message

Timo Alho Aug. 17, 2017, 11:52 a.m.
Don't print error message when clk_get() returns -EPROBE_DEFER. On
recent Tegra chips (t186 onwards), the clocks are provided by
auxiliary microprocessor (bpmp) and until the driver for it is probed
clocks are not available.

While at it, change the real error message more meaningful.

Signed-off-by: Timo Alho <talho@nvidia.com>
---
 drivers/mmc/host/sdhci-tegra.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Adrian Hunter Aug. 21, 2017, 1:05 p.m. | #1
On 17/08/17 14:52, Timo Alho wrote:
> Don't print error message when clk_get() returns -EPROBE_DEFER. On
> recent Tegra chips (t186 onwards), the clocks are provided by
> auxiliary microprocessor (bpmp) and until the driver for it is probed
> clocks are not available.
> 
> While at it, change the real error message more meaningful.
> 
> Signed-off-by: Timo Alho <talho@nvidia.com>

One comment below, nevertheless:

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
>  drivers/mmc/host/sdhci-tegra.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
> index f668a6f..cdde9ff 100644
> --- a/drivers/mmc/host/sdhci-tegra.c
> +++ b/drivers/mmc/host/sdhci-tegra.c
> @@ -501,8 +501,10 @@ static int sdhci_tegra_probe(struct platform_device *pdev)
>  
>  	clk = devm_clk_get(mmc_dev(host->mmc), NULL);
>  	if (IS_ERR(clk)) {
> -		dev_err(mmc_dev(host->mmc), "clk err\n");
>  		rc = PTR_ERR(clk);
> +		if (rc != -EPROBE_DEFER)
> +			dev_err(&pdev->dev,

Looks a bit weird sometimes using mmc_dev(host->mmc) and sometimes &pdev->dev.

> +				"failed to get controller clock: %d\n", rc);
>  		goto err_clk_get;
>  	}
>  	clk_prepare_enable(clk);
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ulf Hansson Aug. 22, 2017, 9:27 a.m. | #2
On 17 August 2017 at 13:52, Timo Alho <talho@nvidia.com> wrote:
> Don't print error message when clk_get() returns -EPROBE_DEFER. On
> recent Tegra chips (t186 onwards), the clocks are provided by
> auxiliary microprocessor (bpmp) and until the driver for it is probed
> clocks are not available.
>
> While at it, change the real error message more meaningful.
>
> Signed-off-by: Timo Alho <talho@nvidia.com>
> ---
>  drivers/mmc/host/sdhci-tegra.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
> index f668a6f..cdde9ff 100644
> --- a/drivers/mmc/host/sdhci-tegra.c
> +++ b/drivers/mmc/host/sdhci-tegra.c
> @@ -501,8 +501,10 @@ static int sdhci_tegra_probe(struct platform_device *pdev)
>
>         clk = devm_clk_get(mmc_dev(host->mmc), NULL);
>         if (IS_ERR(clk)) {
> -               dev_err(mmc_dev(host->mmc), "clk err\n");
>                 rc = PTR_ERR(clk);
> +               if (rc != -EPROBE_DEFER)
> +                       dev_err(&pdev->dev,
> +                               "failed to get controller clock: %d\n", rc);

There is no need to print an error in any case, as the common clk
framework deals with relevant error printing.

>                 goto err_clk_get;
>         }
>         clk_prepare_enable(clk);
> --
> 2.7.4
>

Kind regards
Uffe
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index f668a6f..cdde9ff 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -501,8 +501,10 @@  static int sdhci_tegra_probe(struct platform_device *pdev)
 
 	clk = devm_clk_get(mmc_dev(host->mmc), NULL);
 	if (IS_ERR(clk)) {
-		dev_err(mmc_dev(host->mmc), "clk err\n");
 		rc = PTR_ERR(clk);
+		if (rc != -EPROBE_DEFER)
+			dev_err(&pdev->dev,
+				"failed to get controller clock: %d\n", rc);
 		goto err_clk_get;
 	}
 	clk_prepare_enable(clk);