Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83eacdfa authored by Kevin Hao's avatar Kevin Hao Committed by Ulf Hansson
Browse files

mmc: sdhci: disable the clock in sdhci_pltfm_unregister()



So we can avoid to sprinkle the clk_disable_unprepare() in many
drivers.

Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 2290fcb3
Loading
Loading
Loading
Loading
+1 −11
Original line number Original line Diff line number Diff line
@@ -325,17 +325,7 @@ static int sdhci_bcm_kona_probe(struct platform_device *pdev)


static int sdhci_bcm_kona_remove(struct platform_device *pdev)
static int sdhci_bcm_kona_remove(struct platform_device *pdev)
{
{
	struct sdhci_host *host = platform_get_drvdata(pdev);
	return sdhci_pltfm_unregister(pdev);
	struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host);
	int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff);

	sdhci_remove_host(host, dead);

	clk_disable_unprepare(pltfm_priv->clk);

	sdhci_pltfm_free(pdev);

	return 0;
}
}


static struct platform_driver sdhci_bcm_kona_driver = {
static struct platform_driver sdhci_bcm_kona_driver = {
+1 −7
Original line number Original line Diff line number Diff line
@@ -110,13 +110,7 @@ static int sdhci_dove_probe(struct platform_device *pdev)


static int sdhci_dove_remove(struct platform_device *pdev)
static int sdhci_dove_remove(struct platform_device *pdev)
{
{
	struct sdhci_host *host = platform_get_drvdata(pdev);
	return sdhci_pltfm_unregister(pdev);
	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);

	clk_disable_unprepare(pltfm_host->clk);
	sdhci_pltfm_unregister(pdev);

	return 0;
}
}


static const struct of_device_id sdhci_dove_of_match_table[] = {
static const struct of_device_id sdhci_dove_of_match_table[] = {
+0 −1
Original line number Original line Diff line number Diff line
@@ -195,7 +195,6 @@ static int sdhci_arasan_remove(struct platform_device *pdev)
	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
	struct sdhci_arasan_data *sdhci_arasan = pltfm_host->priv;
	struct sdhci_arasan_data *sdhci_arasan = pltfm_host->priv;


	clk_disable_unprepare(pltfm_host->clk);
	clk_disable_unprepare(sdhci_arasan->clk_ahb);
	clk_disable_unprepare(sdhci_arasan->clk_ahb);


	return sdhci_pltfm_unregister(pdev);
	return sdhci_pltfm_unregister(pdev);
+2 −0
Original line number Original line Diff line number Diff line
@@ -225,9 +225,11 @@ EXPORT_SYMBOL_GPL(sdhci_pltfm_register);
int sdhci_pltfm_unregister(struct platform_device *pdev)
int sdhci_pltfm_unregister(struct platform_device *pdev)
{
{
	struct sdhci_host *host = platform_get_drvdata(pdev);
	struct sdhci_host *host = platform_get_drvdata(pdev);
	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
	int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff);
	int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff);


	sdhci_remove_host(host, dead);
	sdhci_remove_host(host, dead);
	clk_disable_unprepare(pltfm_host->clk);
	sdhci_pltfm_free(pdev);
	sdhci_pltfm_free(pdev);


	return 0;
	return 0;
+1 −4
Original line number Original line Diff line number Diff line
@@ -196,11 +196,8 @@ static int sdhci_sirf_probe(struct platform_device *pdev)
static int sdhci_sirf_remove(struct platform_device *pdev)
static int sdhci_sirf_remove(struct platform_device *pdev)
{
{
	struct sdhci_host *host = platform_get_drvdata(pdev);
	struct sdhci_host *host = platform_get_drvdata(pdev);
	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);


	clk_disable_unprepare(pltfm_host->clk);
	return sdhci_pltfm_unregister(pdev);
	sdhci_pltfm_unregister(pdev);
	return 0;
}
}


#ifdef CONFIG_PM_SLEEP
#ifdef CONFIG_PM_SLEEP
Loading