aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/blackfin
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/blackfin')
-rw-r--r--sound/soc/blackfin/bf5xx-ac97.c9
-rw-r--r--sound/soc/blackfin/bf5xx-sport.c4
2 files changed, 11 insertions, 2 deletions
diff --git a/sound/soc/blackfin/bf5xx-ac97.c b/sound/soc/blackfin/bf5xx-ac97.c
index 8a935f2d1767..b1ed423fabd5 100644
--- a/sound/soc/blackfin/bf5xx-ac97.c
+++ b/sound/soc/blackfin/bf5xx-ac97.c
@@ -31,6 +31,15 @@
31#include "bf5xx-sport.h" 31#include "bf5xx-sport.h"
32#include "bf5xx-ac97.h" 32#include "bf5xx-ac97.h"
33 33
34/* Anomaly notes:
35 * 05000250 - AD1980 is running in TDM mode and RFS/TFS are generated by SPORT
36 * contrtoller. But, RFSDIV and TFSDIV are always set to 16*16-1,
37 * while the max AC97 data size is 13*16. The DIV is always larger
38 * than data size. AD73311 and ad2602 are not running in TDM mode.
39 * AD1836 and AD73322 depend on external RFS/TFS only. So, this
40 * anomaly does not affect blackfin sound drivers.
41*/
42
34static int *cmd_count; 43static int *cmd_count;
35static int sport_num = CONFIG_SND_BF5XX_SPORT_NUM; 44static int sport_num = CONFIG_SND_BF5XX_SPORT_NUM;
36 45
diff --git a/sound/soc/blackfin/bf5xx-sport.c b/sound/soc/blackfin/bf5xx-sport.c
index b7953c8cf838..469ce7fab20c 100644
--- a/sound/soc/blackfin/bf5xx-sport.c
+++ b/sound/soc/blackfin/bf5xx-sport.c
@@ -190,7 +190,7 @@ static inline int sport_hook_rx_dummy(struct sport_device *sport)
190 desc = get_dma_next_desc_ptr(sport->dma_rx_chan); 190 desc = get_dma_next_desc_ptr(sport->dma_rx_chan);
191 /* Copy the descriptor which will be damaged to backup */ 191 /* Copy the descriptor which will be damaged to backup */
192 temp_desc = *desc; 192 temp_desc = *desc;
193 desc->x_count = 0xa; 193 desc->x_count = sport->dummy_count / 2;
194 desc->y_count = 0; 194 desc->y_count = 0;
195 desc->next_desc_addr = sport->dummy_rx_desc; 195 desc->next_desc_addr = sport->dummy_rx_desc;
196 local_irq_restore(flags); 196 local_irq_restore(flags);
@@ -309,7 +309,7 @@ static inline int sport_hook_tx_dummy(struct sport_device *sport)
309 desc = get_dma_next_desc_ptr(sport->dma_tx_chan); 309 desc = get_dma_next_desc_ptr(sport->dma_tx_chan);
310 /* Store the descriptor which will be damaged */ 310 /* Store the descriptor which will be damaged */
311 temp_desc = *desc; 311 temp_desc = *desc;
312 desc->x_count = 0xa; 312 desc->x_count = sport->dummy_count / 2;
313 desc->y_count = 0; 313 desc->y_count = 0;
314 desc->next_desc_addr = sport->dummy_tx_desc; 314 desc->next_desc_addr = sport->dummy_tx_desc;
315 local_irq_restore(flags); 315 local_irq_restore(flags);