3 Jul
2019
3 Jul
'19
10:56 p.m.
On 2019-07-03 08:42, shengjiu.wang@nxp.com wrote:
+static void fsl_esai_reset(unsigned long arg) +{
- struct fsl_esai *esai_priv = (struct fsl_esai *)arg;
- u32 saisr, tfcr, rfcr;
- /* save the registers */
- regmap_read(esai_priv->regmap, REG_ESAI_TFCR, &tfcr);
- regmap_read(esai_priv->regmap, REG_ESAI_RFCR, &rfcr);
- /* stop the tx & rx */
- fsl_esai_trigger_stop(esai_priv, 1);
- fsl_esai_trigger_stop(esai_priv, 0);
- /* reset the esai, and restore the registers */
- fsl_esai_init(esai_priv);
<comment below applies>
- regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR,
ESAI_xCR_xPR_MASK,
ESAI_xCR_xPR);
- regmap_update_bits(esai_priv->regmap, REG_ESAI_RCR,
ESAI_xCR_xPR_MASK,
ESAI_xCR_xPR);
- /* restore registers by regcache_sync */
- fsl_esai_register_restore(esai_priv);
Both _init and _restore may fail given their declaration in 1/2 "ASoC: fsl_esai: Wrap some operations to be functions" yet here you simply ignore the return values.
If failure of said functions is permissive, it might be a good place for a comment.
Czarek