Loading sound/soc/codecs/pcm1792a.c +22 −11 Original line number Diff line number Diff line Loading @@ -107,24 +107,35 @@ static int pcm1792a_hw_params(struct snd_pcm_substream *substream, struct snd_soc_codec *codec = dai->codec; struct pcm1792a_private *priv = snd_soc_codec_get_drvdata(codec); int val = 0, ret; int pcm_format = params_format(params); priv->rate = params_rate(params); switch (priv->format & SND_SOC_DAIFMT_FORMAT_MASK) { case SND_SOC_DAIFMT_RIGHT_J: if (pcm_format == SNDRV_PCM_FORMAT_S24_LE || pcm_format == SNDRV_PCM_FORMAT_S32_LE) val = 0x02; else if (pcm_format == SNDRV_PCM_FORMAT_S16_LE) val = 0x00; switch (params_width(params)) { case 24: case 32: val = 2; break; case 16: val = 0; break; default: return -EINVAL; } break; case SND_SOC_DAIFMT_I2S: if (pcm_format == SNDRV_PCM_FORMAT_S24_LE || pcm_format == SNDRV_PCM_FORMAT_S32_LE) val = 0x05; else if (pcm_format == SNDRV_PCM_FORMAT_S16_LE) val = 0x04; switch (params_width(params)) { case 24: case 32: val = 5; break; case 16: val = 4; break; default: return -EINVAL; } break; default: dev_err(codec->dev, "Invalid DAI format\n"); Loading Loading
sound/soc/codecs/pcm1792a.c +22 −11 Original line number Diff line number Diff line Loading @@ -107,24 +107,35 @@ static int pcm1792a_hw_params(struct snd_pcm_substream *substream, struct snd_soc_codec *codec = dai->codec; struct pcm1792a_private *priv = snd_soc_codec_get_drvdata(codec); int val = 0, ret; int pcm_format = params_format(params); priv->rate = params_rate(params); switch (priv->format & SND_SOC_DAIFMT_FORMAT_MASK) { case SND_SOC_DAIFMT_RIGHT_J: if (pcm_format == SNDRV_PCM_FORMAT_S24_LE || pcm_format == SNDRV_PCM_FORMAT_S32_LE) val = 0x02; else if (pcm_format == SNDRV_PCM_FORMAT_S16_LE) val = 0x00; switch (params_width(params)) { case 24: case 32: val = 2; break; case 16: val = 0; break; default: return -EINVAL; } break; case SND_SOC_DAIFMT_I2S: if (pcm_format == SNDRV_PCM_FORMAT_S24_LE || pcm_format == SNDRV_PCM_FORMAT_S32_LE) val = 0x05; else if (pcm_format == SNDRV_PCM_FORMAT_S16_LE) val = 0x04; switch (params_width(params)) { case 24: case 32: val = 5; break; case 16: val = 4; break; default: return -EINVAL; } break; default: dev_err(codec->dev, "Invalid DAI format\n"); Loading