|
@@ -461,12 +461,6 @@ static int fsl_esai_startup(struct snd_pcm_substream *substream,
|
|
}
|
|
}
|
|
|
|
|
|
if (!dai->active) {
|
|
if (!dai->active) {
|
|
- /* Reset Port C */
|
|
|
|
- regmap_update_bits(esai_priv->regmap, REG_ESAI_PRRC,
|
|
|
|
- ESAI_PRRC_PDC_MASK, ESAI_PRRC_PDC(ESAI_GPIO));
|
|
|
|
- regmap_update_bits(esai_priv->regmap, REG_ESAI_PCRC,
|
|
|
|
- ESAI_PCRC_PC_MASK, ESAI_PCRC_PC(ESAI_GPIO));
|
|
|
|
-
|
|
|
|
/* Set synchronous mode */
|
|
/* Set synchronous mode */
|
|
regmap_update_bits(esai_priv->regmap, REG_ESAI_SAICR,
|
|
regmap_update_bits(esai_priv->regmap, REG_ESAI_SAICR,
|
|
ESAI_SAICR_SYNC, esai_priv->synchronous ?
|
|
ESAI_SAICR_SYNC, esai_priv->synchronous ?
|
|
@@ -526,6 +520,11 @@ static int fsl_esai_hw_params(struct snd_pcm_substream *substream,
|
|
|
|
|
|
regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx), mask, val);
|
|
regmap_update_bits(esai_priv->regmap, REG_ESAI_xCR(tx), mask, val);
|
|
|
|
|
|
|
|
+ /* Remove ESAI personal reset by configuring ESAI_PCRC and ESAI_PRRC */
|
|
|
|
+ regmap_update_bits(esai_priv->regmap, REG_ESAI_PRRC,
|
|
|
|
+ ESAI_PRRC_PDC_MASK, ESAI_PRRC_PDC(ESAI_GPIO));
|
|
|
|
+ regmap_update_bits(esai_priv->regmap, REG_ESAI_PCRC,
|
|
|
|
+ ESAI_PCRC_PC_MASK, ESAI_PCRC_PC(ESAI_GPIO));
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|