]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commitdiff
mmc: tegra: Modify only sdmmc_clk while enabling/disabling clk
authorPavan Kunapuli <pkunapuli@nvidia.com>
Mon, 4 May 2015 21:12:36 +0000 (02:42 +0530)
committerPavan Kunapuli <pkunapuli@nvidia.com>
Tue, 5 May 2015 04:04:20 +0000 (21:04 -0700)
Set only SDMMC_CLK field in Vendor clock control register while
enabling/disabled clock.

Change-Id: I22cd481284dd6adbe67328e2dc4247d5ae30f662
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/738824
Reviewed-by: Automatic_Commit_Validation_User
drivers/mmc/host/sdhci-tegra.c

index 46287705f610fc4a77de2bc55d841873c0c2b5a4..091666c71e018ebffec357855cc2f4885d57d2fa 100644 (file)
@@ -226,6 +226,7 @@ static void tegra_sdhci_set_clock(struct sdhci_host *sdhci, unsigned int clock)
 {
        struct sdhci_pltfm_host *pltfm_host = sdhci_priv(sdhci);
        struct sdhci_tegra *tegra_host = pltfm_host->priv;
+       u8 vendor_ctrl;
 
        pr_debug("%s %s %u enabled=%u\n", __func__,
                mmc_hostname(sdhci->mmc), clock, tegra_host->clk_enabled);
@@ -242,7 +243,9 @@ static void tegra_sdhci_set_clock(struct sdhci_host *sdhci, unsigned int clock)
                sdhci_set_clock(sdhci, clock);
        } else if (!clock && tegra_host->clk_enabled) {
                sdhci_set_clock(sdhci, 0);
-               sdhci_writeb(sdhci, 0, SDHCI_VENDOR_CLOCK_CNTRL);
+               vendor_ctrl = sdhci_readb(sdhci, SDHCI_VENDOR_CLOCK_CNTRL);
+               vendor_ctrl &= ~0x1;
+               sdhci_writeb(sdhci, vendor_ctrl, SDHCI_VENDOR_CLOCK_CNTRL);
                clk_disable_unprepare(pltfm_host->clk);
                tegra_host->clk_enabled = false;
        }