MLK-12745-2: ASoC: fsl_esai: remove the channel swap workaround for imx6ull

In imx6ull, the esai errata ERR008000 for imx6q/dl is fixed, so remove the
workaround from imx6ull.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
This commit is contained in:
Shengjiu Wang
2016-04-12 15:26:43 +08:00
committed by Jason Liu
parent 57af94a500
commit 3cbff5d429
2 changed files with 12 additions and 5 deletions

View File

@ -1,7 +1,7 @@
/*
* Freescale ESAI ALSA SoC Digital Audio Interface (DAI) driver
*
* Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
* Copyright (C) 2014-2016 Freescale Semiconductor, Inc.
*
* This file is licensed under the terms of the GNU General Public License
* version 2. This program is licensed "as is" without any warranty of any
@ -989,10 +989,15 @@ static int fsl_esai_probe(struct platform_device *pdev)
esai_priv->dma_params_tx.addr = res->start + REG_ESAI_ETDR;
esai_priv->dma_params_rx.addr = res->start + REG_ESAI_ERDR;
esai_priv->dma_params_tx.check_xrun = fsl_esai_check_xrun;
esai_priv->dma_params_rx.check_xrun = fsl_esai_check_xrun;
esai_priv->dma_params_tx.device_reset = fsl_esai_reset;
esai_priv->dma_params_rx.device_reset = fsl_esai_reset;
/* From imx6ull, the channel swap issue in underrun/overrun is
* fixed in hardware. So remove the workaround.
*/
if (!of_device_is_compatible(pdev->dev.of_node, "fsl,imx6ull-esai")) {
esai_priv->dma_params_tx.check_xrun = fsl_esai_check_xrun;
esai_priv->dma_params_rx.check_xrun = fsl_esai_check_xrun;
esai_priv->dma_params_tx.device_reset = fsl_esai_reset;
esai_priv->dma_params_rx.device_reset = fsl_esai_reset;
}
esai_priv->synchronous =
of_property_read_bool(np, "fsl,esai-synchronous");
@ -1047,6 +1052,7 @@ static int fsl_esai_probe(struct platform_device *pdev)
}
static const struct of_device_id fsl_esai_dt_ids[] = {
{ .compatible = "fsl,imx6ull-esai", },
{ .compatible = "fsl,imx35-esai", },
{ .compatible = "fsl,vf610-esai", },
{}

View File

@ -332,6 +332,7 @@ static int imx_cs42888_probe(struct platform_device *pdev)
}
priv->mclk_freq = clk_get_rate(codec_clk);
priv->is_codec_master = false;
if (of_property_read_bool(pdev->dev.of_node, "codec-master"))
priv->is_codec_master = true;