summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authoring07300 <raghavendra.patil_2@stericsson.com>2011-11-13 15:01:28 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:05:02 +0200
commit51e606c92788ed9c1fdbd752159dcd29634eadee (patch)
treee82ddc0250e8f9b2130711bbf3197fa3ef3008f1 /sound
parentc60d5338e86549dd47e6fa951434f5c62e4375fb (diff)
Ux500 ASOC:Enable codec as master for 5500
This patch enables codec as master and MSP as slave specific to 5500, to resolve AV sync issue. ST-Ericsson Linux next: 373944 ST-Ericsson ID: 373944 ST-Ericsson FOSS-OUT ID: STETL-FOSS-OUT-10006 Change-Id: I244b967086109b93cb3cb7d2b1aea9d46a5c2e52 Signed-off-by: ing07300 <raghavendra.patil_2@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/37511 Tested-by: Kumar K M <kumar.km@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Amaresh MULAGE <amaresh.mulage@stericsson.com> Reviewed-by: Roger NILSSON1 <roger.xr.nilsson@stericsson.com> Reviewed-by: Henrik CARLING <henrik.carling@stericsson.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/ux500/ux500_ab5500.c7
-rw-r--r--sound/soc/ux500/ux500_msp_dai.c8
2 files changed, 13 insertions, 2 deletions
diff --git a/sound/soc/ux500/ux500_ab5500.c b/sound/soc/ux500/ux500_ab5500.c
index 76deb346cda..5b4e5576cf0 100644
--- a/sound/soc/ux500/ux500_ab5500.c
+++ b/sound/soc/ux500/ux500_ab5500.c
@@ -46,14 +46,17 @@ int ux500_ab5500_hw_params(struct snd_pcm_substream *substream,
printk(KERN_DEBUG "%s: DAI-index (Platform): %d\n", __func__, cpu_dai->id);
ret = snd_soc_dai_set_fmt(codec_dai,
- SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS);
+ SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM);
if (ret < 0)
return ret;
ret = snd_soc_dai_set_fmt(cpu_dai,
- SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS);
+ SND_SOC_DAIFMT_I2S |
+ SND_SOC_DAIFMT_CBM_CFM |
+ SND_SOC_DAIFMT_IB_IF);
if (ret < 0)
return ret;
+ ux500_msp_dai_set_data_delay(cpu_dai, MSP_DELAY_1);
return ret;
}
diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c
index 8ff8b9dbdd8..1eb8cf88323 100644
--- a/sound/soc/ux500/ux500_msp_dai.c
+++ b/sound/soc/ux500/ux500_msp_dai.c
@@ -352,6 +352,13 @@ static void ux500_msp_dai_setup_clocking(unsigned int fmt,
MSP_FRAME_SYNC_POL_ACTIVE_LOW << RFSPOL_SHIFT;
break;
+ case SND_SOC_DAIFMT_IB_IF:
+ msp_config->iodelay = 0x20;
+ msp_config->protocol_desc.tx_clock_pol = 1;
+ msp_config->tx_frame_sync_pol = 1 << TFSPOL_SHIFT;
+ msp_config->protocol_desc.rx_clock_pol = 1;
+ msp_config->rx_frame_sync_pol = 1 << RFSPOL_SHIFT;
+ break;
}
if ((fmt & SND_SOC_DAIFMT_MASTER_MASK) == SND_SOC_DAIFMT_CBM_CFM) {
@@ -665,6 +672,7 @@ static int ux500_msp_dai_set_dai_fmt(struct snd_soc_dai *dai,
switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
case SND_SOC_DAIFMT_NB_NF:
case SND_SOC_DAIFMT_NB_IF:
+ case SND_SOC_DAIFMT_IB_IF:
break;
default: