aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorDaniel Mack2013-03-08 07:19:38 -0600
committerMisael Lopez Cruz2013-06-21 16:56:08 -0500
commit02d1fc1c2d4ab81f7fe5504277c6c4406152591f (patch)
tree140219b750d333e1cb6aecb00b96e2fbfc83ed2f /sound
parent2cf30929b785b443a4e272d044071abe106613d9 (diff)
downloadkernel-audio-02d1fc1c2d4ab81f7fe5504277c6c4406152591f.tar.gz
kernel-audio-02d1fc1c2d4ab81f7fe5504277c6c4406152591f.tar.xz
kernel-audio-02d1fc1c2d4ab81f7fe5504277c6c4406152591f.zip
ASoC: davinci-mcasp: clean up davinci_hw_common_param()
As pointed of by Vaibhav, commit 2952b27e2 ("ASoC: davinci-mcasp: Add support for multichannel playback") duplicated the logic of counting the active serializers. That can be avoided by shifting the code around a bit. Also, drop two unused defines introduced by the same commit. Signed-off-by: Daniel Mack <zonque@gmail.com> Acked-by: Vaibhav Bedia <vaibhav.bedia@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/davinci/davinci-mcasp.c34
1 files changed, 11 insertions, 23 deletions
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
index 5cd85a879579..46c9705cec09 100644
--- a/sound/soc/davinci/davinci-mcasp.c
+++ b/sound/soc/davinci/davinci-mcasp.c
@@ -237,8 +237,6 @@
237#define RXSTATE BIT(5) 237#define RXSTATE BIT(5)
238#define SRMOD_MASK 3 238#define SRMOD_MASK 3
239#define SRMOD_INACTIVE 0 239#define SRMOD_INACTIVE 0
240#define SRMOD_TX 1
241#define SRMOD_RX 2
242 240
243/* 241/*
244 * DAVINCI_MCASP_LBCTL_REG - Loop Back Control Register Bits 242 * DAVINCI_MCASP_LBCTL_REG - Loop Back Control Register Bits
@@ -687,27 +685,6 @@ static int davinci_hw_common_param(struct davinci_audio_dev *dev, int stream,
687 } 685 }
688 686
689 for (i = 0; i < dev->num_serializer; i++) { 687 for (i = 0; i < dev->num_serializer; i++) {
690 if (dev->serial_dir[i] == TX_MODE)
691 tx_ser++;
692 if (dev->serial_dir[i] == RX_MODE)
693 rx_ser++;
694 }
695
696 if (stream == SNDRV_PCM_STREAM_PLAYBACK)
697 ser = tx_ser;
698 else
699 ser = rx_ser;
700
701 if (ser < max_active_serializers) {
702 dev_warn(dev->dev, "stream has more channels (%d) than are "
703 "enabled in mcasp (%d)\n", channels, ser * slots);
704 return -EINVAL;
705 }
706
707 tx_ser = 0;
708 rx_ser = 0;
709
710 for (i = 0; i < dev->num_serializer; i++) {
711 mcasp_set_bits(dev->base + DAVINCI_MCASP_XRSRCTL_REG(i), 688 mcasp_set_bits(dev->base + DAVINCI_MCASP_XRSRCTL_REG(i),
712 dev->serial_dir[i]); 689 dev->serial_dir[i]);
713 if (dev->serial_dir[i] == TX_MODE && 690 if (dev->serial_dir[i] == TX_MODE &&
@@ -726,6 +703,17 @@ static int davinci_hw_common_param(struct davinci_audio_dev *dev, int stream,
726 } 703 }
727 } 704 }
728 705
706 if (stream == SNDRV_PCM_STREAM_PLAYBACK)
707 ser = tx_ser;
708 else
709 ser = rx_ser;
710
711 if (ser < max_active_serializers) {
712 dev_warn(dev->dev, "stream has more channels (%d) than are "
713 "enabled in mcasp (%d)\n", channels, ser * slots);
714 return -EINVAL;
715 }
716
729 if (dev->txnumevt && stream == SNDRV_PCM_STREAM_PLAYBACK) { 717 if (dev->txnumevt && stream == SNDRV_PCM_STREAM_PLAYBACK) {
730 if (dev->txnumevt * tx_ser > 64) 718 if (dev->txnumevt * tx_ser > 64)
731 dev->txnumevt = 1; 719 dev->txnumevt = 1;