aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2009-12-31 03:30:20 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-12-31 06:54:27 -0500
commitd4f102d437c069a64f3a4c7a6cd50360e034541f (patch)
tree53c79f86adba9a62dac218d79112910b257dd428 /sound/soc/codecs
parent7427b4b9a63fd7e051d642ff0f12ef8337c08bb3 (diff)
ASoC: tlv320dac33: Introduce prefill and playback state handlers
Ensure that the code is going to be readable, when new FIFO modes are introduced later. Move the prefill and playback state handling to inlined functions. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs')
-rw-r--r--sound/soc/codecs/tlv320dac33.c46
1 files changed, 40 insertions, 6 deletions
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index b67961dd2a12..f7c7bbceb3db 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -543,6 +543,44 @@ static int dac33_set_bias_level(struct snd_soc_codec *codec,
543 return 0; 543 return 0;
544} 544}
545 545
546static inline void dac33_prefill_handler(struct tlv320dac33_priv *dac33)
547{
548 struct snd_soc_codec *codec;
549
550 codec = &dac33->codec;
551
552 switch (dac33->fifo_mode) {
553 case DAC33_FIFO_MODE1:
554 dac33_write16(codec, DAC33_NSAMPLE_MSB,
555 DAC33_THRREG(dac33->nsample));
556 dac33_write16(codec, DAC33_PREFILL_MSB,
557 DAC33_THRREG(dac33->alarm_threshold));
558 break;
559 default:
560 dev_warn(codec->dev, "Unhandled FIFO mode: %d\n",
561 dac33->fifo_mode);
562 break;
563 }
564}
565
566static inline void dac33_playback_handler(struct tlv320dac33_priv *dac33)
567{
568 struct snd_soc_codec *codec;
569
570 codec = &dac33->codec;
571
572 switch (dac33->fifo_mode) {
573 case DAC33_FIFO_MODE1:
574 dac33_write16(codec, DAC33_NSAMPLE_MSB,
575 DAC33_THRREG(dac33->nsample));
576 break;
577 default:
578 dev_warn(codec->dev, "Unhandled FIFO mode: %d\n",
579 dac33->fifo_mode);
580 break;
581 }
582}
583
546static void dac33_work(struct work_struct *work) 584static void dac33_work(struct work_struct *work)
547{ 585{
548 struct snd_soc_codec *codec; 586 struct snd_soc_codec *codec;
@@ -556,14 +594,10 @@ static void dac33_work(struct work_struct *work)
556 switch (dac33->state) { 594 switch (dac33->state) {
557 case DAC33_PREFILL: 595 case DAC33_PREFILL:
558 dac33->state = DAC33_PLAYBACK; 596 dac33->state = DAC33_PLAYBACK;
559 dac33_write16(codec, DAC33_NSAMPLE_MSB, 597 dac33_prefill_handler(dac33);
560 DAC33_THRREG(dac33->nsample));
561 dac33_write16(codec, DAC33_PREFILL_MSB,
562 DAC33_THRREG(dac33->alarm_threshold));
563 break; 598 break;
564 case DAC33_PLAYBACK: 599 case DAC33_PLAYBACK:
565 dac33_write16(codec, DAC33_NSAMPLE_MSB, 600 dac33_playback_handler(dac33);
566 DAC33_THRREG(dac33->nsample));
567 break; 601 break;
568 case DAC33_IDLE: 602 case DAC33_IDLE:
569 break; 603 break;