Date: | 2012-01-15 00:56:11 (11 years 8 months ago) |
---|---|
Author: | Lars C. |
Commit: | 069052c14a1fda713b14175ccdc2a132b8a21732 |
Message: | Revert "ASoC: JZ4740: Support buffer size that is not a
multiple of period size." This reverts commit fcc71f3634c3aa6c77222256eb09b97f44dd5961. |
Files: |
sound/soc/jz4740/jz4740-pcm.c (7 diffs) |
Change Details
sound/soc/jz4740/jz4740-pcm.c | ||
---|---|---|
31 | 31 | |
32 | 32 | struct jz4740_runtime_data { |
33 | 33 | unsigned long dma_period; |
34 | unsigned long dma_period_left; | |
35 | 34 | dma_addr_t dma_start; |
36 | 35 | dma_addr_t dma_pos; |
37 | 36 | dma_addr_t dma_end; |
... | ... | |
68 | 67 | if (prtd->dma_pos == prtd->dma_end) |
69 | 68 | prtd->dma_pos = prtd->dma_start; |
70 | 69 | |
71 | if (prtd->dma_period_left == 0) | |
72 | prtd->dma_period_left = prtd->dma_period; | |
73 | ||
74 | if (prtd->dma_pos + prtd->dma_period_left > prtd->dma_end) | |
70 | if (prtd->dma_pos + prtd->dma_period > prtd->dma_end) | |
75 | 71 | count = prtd->dma_end - prtd->dma_pos; |
76 | 72 | else |
77 | count = prtd->dma_period_left; | |
73 | count = prtd->dma_period; | |
78 | 74 | |
79 | 75 | jz4740_dma_disable(prtd->dma); |
80 | 76 | |
... | ... | |
89 | 85 | jz4740_dma_set_transfer_count(prtd->dma, count); |
90 | 86 | |
91 | 87 | prtd->dma_pos += count; |
92 | prtd->dma_period_left -= count; | |
93 | 88 | |
94 | 89 | jz4740_dma_enable(prtd->dma); |
95 | 90 | } |
... | ... | |
101 | 96 | struct snd_pcm_runtime *runtime = substream->runtime; |
102 | 97 | struct jz4740_runtime_data *prtd = runtime->private_data; |
103 | 98 | |
104 | if (prtd->dma_period_left == 0) | |
105 | snd_pcm_period_elapsed(substream); | |
99 | snd_pcm_period_elapsed(substream); | |
106 | 100 | |
107 | 101 | jz4740_pcm_start_transfer(prtd, substream); |
108 | 102 | } |
... | ... | |
139 | 133 | runtime->dma_bytes = params_buffer_bytes(params); |
140 | 134 | |
141 | 135 | prtd->dma_period = params_period_bytes(params); |
142 | prtd->dma_period_left = 0; | |
143 | 136 | prtd->dma_start = runtime->dma_addr; |
144 | 137 | prtd->dma_pos = prtd->dma_start; |
145 | 138 | prtd->dma_end = prtd->dma_start + runtime->dma_bytes; |
... | ... | |
167 | 160 | if (!prtd->dma) |
168 | 161 | return -EBUSY; |
169 | 162 | |
170 | prtd->dma_period_left = 0; | |
171 | 163 | prtd->dma_pos = prtd->dma_start; |
172 | 164 | |
173 | 165 | return 0; |
... | ... | |
227 | 219 | if (prtd == NULL) |
228 | 220 | return -ENOMEM; |
229 | 221 | |
230 | /* Force period and buffer size to be a multiple of the DMA transfer | |
231 | * size, which is 16 bytes. */ | |
232 | snd_pcm_hw_constraint_step(runtime, 0, | |
233 | SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 16); | |
234 | snd_pcm_hw_constraint_step(runtime, 0, | |
235 | SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 16); | |
236 | ||
237 | 222 | snd_soc_set_runtime_hwparams(substream, &jz4740_pcm_hardware); |
238 | 223 | |
239 | 224 | runtime->private_data = prtd; |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9