On Fri, Aug 11, 2023 at 9:04 AM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote: > > Use sdhci_pltfm_remove() instead of sdhci_pltfm_unregister() so that > devm_clk_get_optional_enabled() can be used for pltfm_host->clk. > > This has the side effect that the order of operations on the error path > and remove path is not the same as it was before, but should be safe > nevertheless. > > Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> Reviewed-by : Kamal Dasu <kamal.dasu@xxxxxxxxxxxx> > --- > drivers/mmc/host/sdhci-brcmstb.c | 18 +++++------------- > 1 file changed, 5 insertions(+), 13 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-brcmstb.c b/drivers/mmc/host/sdhci-brcmstb.c > index a2b6d8f2eeb6..c23251bb95f3 100644 > --- a/drivers/mmc/host/sdhci-brcmstb.c > +++ b/drivers/mmc/host/sdhci-brcmstb.c > @@ -264,23 +264,17 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev) > > dev_dbg(&pdev->dev, "Probe found match for %s\n", match->compatible); > > - clk = devm_clk_get_optional(&pdev->dev, NULL); > + clk = devm_clk_get_optional_enabled(&pdev->dev, NULL); > if (IS_ERR(clk)) > return dev_err_probe(&pdev->dev, PTR_ERR(clk), > - "Failed to get clock from Device Tree\n"); > - > - res = clk_prepare_enable(clk); > - if (res) > - return res; > + "Failed to get and enable clock from Device Tree\n"); > > memset(&brcmstb_pdata, 0, sizeof(brcmstb_pdata)); > brcmstb_pdata.ops = match_priv->ops; > host = sdhci_pltfm_init(pdev, &brcmstb_pdata, > sizeof(struct sdhci_brcmstb_priv)); > - if (IS_ERR(host)) { > - res = PTR_ERR(host); > - goto err_clk; > - } > + if (IS_ERR(host)) > + return PTR_ERR(host); > > pltfm_host = sdhci_priv(host); > priv = sdhci_pltfm_priv(pltfm_host); > @@ -369,9 +363,7 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev) > > err: > sdhci_pltfm_free(pdev); > -err_clk: > clk_disable_unprepare(base_clk); > - clk_disable_unprepare(clk); > return res; > } > > @@ -430,7 +422,7 @@ static struct platform_driver sdhci_brcmstb_driver = { > .of_match_table = of_match_ptr(sdhci_brcm_of_match), > }, > .probe = sdhci_brcmstb_probe, > - .remove_new = sdhci_pltfm_unregister, > + .remove_new = sdhci_pltfm_remove, > .shutdown = sdhci_brcmstb_shutdown, > }; > > -- > 2.34.1 >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature