Merge branch 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ASoC: Fix CODEC DAI names for Goni ASoC: Fix CODEC name in Goni davinci-mcasp: fix _CBM_CFS pin directions davinci-mcasp: fix _CBM_CFS hw_params davinci-mcasp: use bitfield definitions for PDIR ASoC: davinci-mcasp: correct tdm_slots limit
This commit is contained in:
commit
047ec4b5de
2 changed files with 16 additions and 11 deletions
|
@ -434,17 +434,21 @@ static int davinci_mcasp_set_dai_fmt(struct snd_soc_dai *cpu_dai,
|
|||
mcasp_set_bits(base + DAVINCI_MCASP_ACLKRCTL_REG, ACLKRE);
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_RXFMCTL_REG, AFSRE);
|
||||
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_PDIR_REG, (0x7 << 26));
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_PDIR_REG,
|
||||
ACLKX | AHCLKX | AFSX);
|
||||
break;
|
||||
case SND_SOC_DAIFMT_CBM_CFS:
|
||||
/* codec is clock master and frame slave */
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_ACLKXCTL_REG, ACLKXE);
|
||||
mcasp_clr_bits(base + DAVINCI_MCASP_ACLKXCTL_REG, ACLKXE);
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_TXFMCTL_REG, AFSXE);
|
||||
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_ACLKRCTL_REG, ACLKRE);
|
||||
mcasp_clr_bits(base + DAVINCI_MCASP_ACLKRCTL_REG, ACLKRE);
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_RXFMCTL_REG, AFSRE);
|
||||
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_PDIR_REG, (0x2d << 26));
|
||||
mcasp_clr_bits(base + DAVINCI_MCASP_PDIR_REG,
|
||||
ACLKX | ACLKR);
|
||||
mcasp_set_bits(base + DAVINCI_MCASP_PDIR_REG,
|
||||
AFSX | AFSR);
|
||||
break;
|
||||
case SND_SOC_DAIFMT_CBM_CFM:
|
||||
/* codec is clock and frame master */
|
||||
|
@ -454,7 +458,8 @@ static int davinci_mcasp_set_dai_fmt(struct snd_soc_dai *cpu_dai,
|
|||
mcasp_clr_bits(base + DAVINCI_MCASP_ACLKRCTL_REG, ACLKRE);
|
||||
mcasp_clr_bits(base + DAVINCI_MCASP_RXFMCTL_REG, AFSRE);
|
||||
|
||||
mcasp_clr_bits(base + DAVINCI_MCASP_PDIR_REG, (0x3f << 26));
|
||||
mcasp_clr_bits(base + DAVINCI_MCASP_PDIR_REG,
|
||||
ACLKX | AHCLKX | AFSX | ACLKR | AHCLKR | AFSR);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -644,7 +649,7 @@ static void davinci_hw_param(struct davinci_audio_dev *dev, int stream)
|
|||
mcasp_set_reg(dev->base + DAVINCI_MCASP_TXTDM_REG, mask);
|
||||
mcasp_set_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, TXORD);
|
||||
|
||||
if ((dev->tdm_slots >= 2) || (dev->tdm_slots <= 32))
|
||||
if ((dev->tdm_slots >= 2) && (dev->tdm_slots <= 32))
|
||||
mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMCTL_REG,
|
||||
FSXMOD(dev->tdm_slots), FSXMOD(0x1FF));
|
||||
else
|
||||
|
@ -660,7 +665,7 @@ static void davinci_hw_param(struct davinci_audio_dev *dev, int stream)
|
|||
AHCLKRE);
|
||||
mcasp_set_reg(dev->base + DAVINCI_MCASP_RXTDM_REG, mask);
|
||||
|
||||
if ((dev->tdm_slots >= 2) || (dev->tdm_slots <= 32))
|
||||
if ((dev->tdm_slots >= 2) && (dev->tdm_slots <= 32))
|
||||
mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMCTL_REG,
|
||||
FSRMOD(dev->tdm_slots), FSRMOD(0x1FF));
|
||||
else
|
||||
|
|
|
@ -236,18 +236,18 @@ static struct snd_soc_dai_link goni_dai[] = {
|
|||
.name = "WM8994",
|
||||
.stream_name = "WM8994 HiFi",
|
||||
.cpu_dai_name = "samsung-i2s.0",
|
||||
.codec_dai_name = "wm8994-hifi",
|
||||
.codec_dai_name = "wm8994-aif1",
|
||||
.platform_name = "samsung-audio",
|
||||
.codec_name = "wm8994-codec.0-0x1a",
|
||||
.codec_name = "wm8994-codec.0-001a",
|
||||
.init = goni_wm8994_init,
|
||||
.ops = &goni_hifi_ops,
|
||||
}, {
|
||||
.name = "WM8994 Voice",
|
||||
.stream_name = "Voice",
|
||||
.cpu_dai_name = "goni-voice-dai",
|
||||
.codec_dai_name = "wm8994-voice",
|
||||
.codec_dai_name = "wm8994-aif2",
|
||||
.platform_name = "samsung-audio",
|
||||
.codec_name = "wm8994-codec.0-0x1a",
|
||||
.codec_name = "wm8994-codec.0-001a",
|
||||
.ops = &goni_voice_ops,
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue