aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/pxa/pxa-ssp.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sound/soc/pxa/pxa-ssp.c b/sound/soc/pxa/pxa-ssp.c
index a8e097433074..cbba063a7210 100644
--- a/sound/soc/pxa/pxa-ssp.c
+++ b/sound/soc/pxa/pxa-ssp.c
@@ -97,7 +97,7 @@ static int pxa_ssp_startup(struct snd_pcm_substream *substream,
97 int ret = 0; 97 int ret = 0;
98 98
99 if (!cpu_dai->active) { 99 if (!cpu_dai->active) {
100 clk_enable(ssp->clk); 100 clk_prepare_enable(ssp->clk);
101 pxa_ssp_disable(ssp); 101 pxa_ssp_disable(ssp);
102 } 102 }
103 103
@@ -121,7 +121,7 @@ static void pxa_ssp_shutdown(struct snd_pcm_substream *substream,
121 121
122 if (!cpu_dai->active) { 122 if (!cpu_dai->active) {
123 pxa_ssp_disable(ssp); 123 pxa_ssp_disable(ssp);
124 clk_disable(ssp->clk); 124 clk_disable_unprepare(ssp->clk);
125 } 125 }
126 126
127 kfree(snd_soc_dai_get_dma_data(cpu_dai, substream)); 127 kfree(snd_soc_dai_get_dma_data(cpu_dai, substream));
@@ -136,7 +136,7 @@ static int pxa_ssp_suspend(struct snd_soc_dai *cpu_dai)
136 struct ssp_device *ssp = priv->ssp; 136 struct ssp_device *ssp = priv->ssp;
137 137
138 if (!cpu_dai->active) 138 if (!cpu_dai->active)
139 clk_enable(ssp->clk); 139 clk_prepare_enable(ssp->clk);
140 140
141 priv->cr0 = __raw_readl(ssp->mmio_base + SSCR0); 141 priv->cr0 = __raw_readl(ssp->mmio_base + SSCR0);
142 priv->cr1 = __raw_readl(ssp->mmio_base + SSCR1); 142 priv->cr1 = __raw_readl(ssp->mmio_base + SSCR1);
@@ -144,7 +144,7 @@ static int pxa_ssp_suspend(struct snd_soc_dai *cpu_dai)
144 priv->psp = __raw_readl(ssp->mmio_base + SSPSP); 144 priv->psp = __raw_readl(ssp->mmio_base + SSPSP);
145 145
146 pxa_ssp_disable(ssp); 146 pxa_ssp_disable(ssp);
147 clk_disable(ssp->clk); 147 clk_disable_unprepare(ssp->clk);
148 return 0; 148 return 0;
149} 149}
150 150
@@ -154,7 +154,7 @@ static int pxa_ssp_resume(struct snd_soc_dai *cpu_dai)
154 struct ssp_device *ssp = priv->ssp; 154 struct ssp_device *ssp = priv->ssp;
155 uint32_t sssr = SSSR_ROR | SSSR_TUR | SSSR_BCE; 155 uint32_t sssr = SSSR_ROR | SSSR_TUR | SSSR_BCE;
156 156
157 clk_enable(ssp->clk); 157 clk_prepare_enable(ssp->clk);
158 158
159 __raw_writel(sssr, ssp->mmio_base + SSSR); 159 __raw_writel(sssr, ssp->mmio_base + SSSR);
160 __raw_writel(priv->cr0 & ~SSCR0_SSE, ssp->mmio_base + SSCR0); 160 __raw_writel(priv->cr0 & ~SSCR0_SSE, ssp->mmio_base + SSCR0);
@@ -165,7 +165,7 @@ static int pxa_ssp_resume(struct snd_soc_dai *cpu_dai)
165 if (cpu_dai->active) 165 if (cpu_dai->active)
166 pxa_ssp_enable(ssp); 166 pxa_ssp_enable(ssp);
167 else 167 else
168 clk_disable(ssp->clk); 168 clk_disable_unprepare(ssp->clk);
169 169
170 return 0; 170 return 0;
171} 171}
@@ -256,11 +256,11 @@ static int pxa_ssp_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
256 /* The SSP clock must be disabled when changing SSP clock mode 256 /* The SSP clock must be disabled when changing SSP clock mode
257 * on PXA2xx. On PXA3xx it must be enabled when doing so. */ 257 * on PXA2xx. On PXA3xx it must be enabled when doing so. */
258 if (ssp->type != PXA3xx_SSP) 258 if (ssp->type != PXA3xx_SSP)
259 clk_disable(ssp->clk); 259 clk_disable_unprepare(ssp->clk);
260 val = pxa_ssp_read_reg(ssp, SSCR0) | sscr0; 260 val = pxa_ssp_read_reg(ssp, SSCR0) | sscr0;
261 pxa_ssp_write_reg(ssp, SSCR0, val); 261 pxa_ssp_write_reg(ssp, SSCR0, val);
262 if (ssp->type != PXA3xx_SSP) 262 if (ssp->type != PXA3xx_SSP)
263 clk_enable(ssp->clk); 263 clk_prepare_enable(ssp->clk);
264 264
265 return 0; 265 return 0;
266} 266}