Merge remote-tracking branches 'asoc/topic/rcar' and 'asoc/topic/rockchip' into asoc-next
This commit is contained in:
commit
5450487a09
@ -242,6 +242,9 @@ static int rockchip_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||
case SNDRV_PCM_FORMAT_S24_LE:
|
||||
val |= I2S_TXCR_VDW(24);
|
||||
break;
|
||||
case SNDRV_PCM_FORMAT_S32_LE:
|
||||
val |= I2S_TXCR_VDW(32);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
@ -360,7 +363,8 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
|
||||
.formats = (SNDRV_PCM_FMTBIT_S8 |
|
||||
SNDRV_PCM_FMTBIT_S16_LE |
|
||||
SNDRV_PCM_FMTBIT_S20_3LE |
|
||||
SNDRV_PCM_FMTBIT_S24_LE),
|
||||
SNDRV_PCM_FMTBIT_S24_LE |
|
||||
SNDRV_PCM_FMTBIT_S32_LE),
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "Capture",
|
||||
@ -370,7 +374,8 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
|
||||
.formats = (SNDRV_PCM_FMTBIT_S8 |
|
||||
SNDRV_PCM_FMTBIT_S16_LE |
|
||||
SNDRV_PCM_FMTBIT_S20_3LE |
|
||||
SNDRV_PCM_FMTBIT_S24_LE),
|
||||
SNDRV_PCM_FMTBIT_S24_LE |
|
||||
SNDRV_PCM_FMTBIT_S32_LE),
|
||||
},
|
||||
.ops = &rockchip_i2s_dai_ops,
|
||||
.symmetric_rates = 1,
|
||||
|
@ -403,29 +403,30 @@ static int rsnd_ssi_quit(struct rsnd_mod *mod,
|
||||
struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
|
||||
struct device *dev = rsnd_priv_to_dev(priv);
|
||||
|
||||
if (rsnd_ssi_is_parent(mod, io))
|
||||
goto rsnd_ssi_quit_end;
|
||||
if (!ssi->usrcnt) {
|
||||
dev_err(dev, "%s[%d] usrcnt error\n",
|
||||
rsnd_mod_name(mod), rsnd_mod_id(mod));
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
if (ssi->err > 0)
|
||||
dev_warn(dev, "%s[%d] under/over flow err = %d\n",
|
||||
rsnd_mod_name(mod), rsnd_mod_id(mod), ssi->err);
|
||||
if (!rsnd_ssi_is_parent(mod, io)) {
|
||||
if (ssi->err > 0)
|
||||
dev_warn(dev, "%s[%d] under/over flow err = %d\n",
|
||||
rsnd_mod_name(mod), rsnd_mod_id(mod),
|
||||
ssi->err);
|
||||
|
||||
ssi->cr_own = 0;
|
||||
ssi->err = 0;
|
||||
ssi->cr_own = 0;
|
||||
ssi->err = 0;
|
||||
|
||||
rsnd_ssi_irq_disable(mod);
|
||||
rsnd_ssi_irq_disable(mod);
|
||||
}
|
||||
|
||||
rsnd_ssi_quit_end:
|
||||
rsnd_ssi_master_clk_stop(ssi, io);
|
||||
|
||||
rsnd_mod_power_off(mod);
|
||||
|
||||
ssi->usrcnt--;
|
||||
|
||||
if (ssi->usrcnt < 0)
|
||||
dev_err(dev, "%s[%d] usrcnt error\n",
|
||||
rsnd_mod_name(mod), rsnd_mod_id(mod));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ static int rsnd_ssiu_init(struct rsnd_mod *mod,
|
||||
switch (multi_ssi_slaves) {
|
||||
case 0x0206: /* SSI0/1/2/9 */
|
||||
val2 = (1 << 4) | /* SSI0129 sync */
|
||||
rsnd_rdai_is_clk_master(rdai) ? 0x2 : 0x1;
|
||||
(rsnd_rdai_is_clk_master(rdai) ? 0x2 : 0x1);
|
||||
/* fall through */
|
||||
case 0x0006: /* SSI0/1/2 */
|
||||
val1 = rsnd_rdai_is_clk_master(rdai) ?
|
||||
|
Loading…
Reference in New Issue
Block a user