diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2009-11-07 03:34:43 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-11-07 07:40:09 -0500 |
commit | c939e5c82142978d9d534aca34187a8489fd13f3 (patch) | |
tree | 5c0ea0815d98c71371feb25f76e852f2123e0d95 /sound/soc/fsl/mpc5200_dma.h | |
parent | 1d8222e8df07ce4f86fb7fa80b02bdee03b57985 (diff) |
ASoC/mpc5200: fix enable/disable of AC97 slots
The MPC5200 AC97 driver is disabling the slots when a stop
trigger is received, but not reenabling them if the stream
is started again without processing the hw_params again.
This patch fixes the problem by caching the slot enable bit
settings calculated at hw_params time so that they can be
reapplied every time the start trigger is received.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/fsl/mpc5200_dma.h')
-rw-r--r-- | sound/soc/fsl/mpc5200_dma.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/fsl/mpc5200_dma.h b/sound/soc/fsl/mpc5200_dma.h index 956d6a5f5a8c..22208b373fb9 100644 --- a/sound/soc/fsl/mpc5200_dma.h +++ b/sound/soc/fsl/mpc5200_dma.h | |||
@@ -16,6 +16,7 @@ | |||
16 | * @period_end: physical address of end of DMA region | 16 | * @period_end: physical address of end of DMA region |
17 | * @period_next_pt: physical address of next DMA buffer to enqueue | 17 | * @period_next_pt: physical address of next DMA buffer to enqueue |
18 | * @period_bytes: size of DMA period in bytes | 18 | * @period_bytes: size of DMA period in bytes |
19 | * @ac97_slot_bits: Enable bits for turning on the correct AC97 slot | ||
19 | */ | 20 | */ |
20 | struct psc_dma_stream { | 21 | struct psc_dma_stream { |
21 | struct snd_pcm_runtime *runtime; | 22 | struct snd_pcm_runtime *runtime; |
@@ -28,6 +29,9 @@ struct psc_dma_stream { | |||
28 | int period_current; | 29 | int period_current; |
29 | int period_bytes; | 30 | int period_bytes; |
30 | int period_count; | 31 | int period_count; |
32 | |||
33 | /* AC97 state */ | ||
34 | u32 ac97_slot_bits; | ||
31 | }; | 35 | }; |
32 | 36 | ||
33 | /** | 37 | /** |