| From 0a71cfbd55ba50414bfcb4ecccf656a580930790 Mon Sep 17 00:00:00 2001 |
| From: Viorel Suman <viorel.suman@nxp.com> |
| Date: Thu, 8 Mar 2018 14:43:34 +0200 |
| Subject: [PATCH] MLK-17580: ASoC: fsl: sai: Use DSD helper |
| |
| Replace DSD related code with calls to DSD helper functions. |
| |
| Signed-off-by: Viorel Suman <viorel.suman@nxp.com> |
| Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com |
| --- |
| sound/soc/fsl/fsl_sai.c | 34 +++++++++++----------------------- |
| sound/soc/fsl/fsl_sai.h | 2 +- |
| 2 files changed, 12 insertions(+), 24 deletions(-) |
| |
| --- a/sound/soc/fsl/fsl_sai.c |
| +++ b/sound/soc/fsl/fsl_sai.c |
| @@ -22,6 +22,7 @@ |
| #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h> |
| #include <linux/pm_runtime.h> |
| |
| +#include "fsl_dsd.h" |
| #include "fsl_sai.h" |
| #include "imx-pcm.h" |
| |
| @@ -523,31 +524,21 @@ static int fsl_sai_hw_params(struct snd_ |
| int ret; |
| int i; |
| int trce_mask = 0; |
| - snd_pcm_format_t format = params_format(params); |
| |
| if (sai->slots) |
| slots = sai->slots; |
| |
| pins = DIV_ROUND_UP(channels, slots); |
| + sai->is_dsd = fsl_is_dsd(params); |
| + sai->pins_state = fsl_get_pins_state(sai->pinctrl, params); |
| |
| - if (format == SNDRV_PCM_FORMAT_DSD_U8 || |
| - format == SNDRV_PCM_FORMAT_DSD_U16_LE || |
| - format == SNDRV_PCM_FORMAT_DSD_U16_BE || |
| - format == SNDRV_PCM_FORMAT_DSD_U32_LE || |
| - format == SNDRV_PCM_FORMAT_DSD_U32_BE) { |
| - sai->is_dsd = true; |
| - |
| - if (!IS_ERR_OR_NULL(sai->pins_dsd)) { |
| - ret = pinctrl_select_state(sai->pinctrl, sai->pins_dsd); |
| - if (ret) { |
| - dev_err(cpu_dai->dev, |
| - "failed to set proper pins state: %d\n", ret); |
| - return ret; |
| - } |
| + if (!IS_ERR_OR_NULL(sai->pins_state)) { |
| + ret = pinctrl_select_state(sai->pinctrl, sai->pins_state); |
| + if (ret) { |
| + dev_err(cpu_dai->dev, |
| + "failed to set proper pins state: %d\n", ret); |
| + return ret; |
| } |
| - } else { |
| - pinctrl_pm_select_default_state(cpu_dai->dev); |
| - sai->is_dsd = false; |
| } |
| |
| if (sai->is_dsd) |
| @@ -929,8 +920,8 @@ static int fsl_sai_dai_resume(struct snd |
| struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); |
| int ret; |
| |
| - if (sai->is_dsd && !IS_ERR_OR_NULL(sai->pins_dsd)) { |
| - ret = pinctrl_select_state(sai->pinctrl, sai->pins_dsd); |
| + if (!IS_ERR_OR_NULL(sai->pins_state)) { |
| + ret = pinctrl_select_state(sai->pinctrl, sai->pins_state); |
| if (ret) { |
| dev_err(cpu_dai->dev, |
| "failed to set proper pins state: %d\n", ret); |
| @@ -1357,9 +1348,6 @@ static int fsl_sai_probe(struct platform |
| |
| sai->pinctrl = devm_pinctrl_get(&pdev->dev); |
| |
| - if (!IS_ERR_OR_NULL(sai->pinctrl)) |
| - sai->pins_dsd = pinctrl_lookup_state(sai->pinctrl, "dsd"); |
| - |
| platform_set_drvdata(pdev, sai); |
| |
| pm_runtime_enable(&pdev->dev); |
| --- a/sound/soc/fsl/fsl_sai.h |
| +++ b/sound/soc/fsl/fsl_sai.h |
| @@ -212,7 +212,7 @@ struct fsl_sai { |
| const struct fsl_sai_soc_data *soc; |
| struct pm_qos_request pm_qos_req; |
| struct pinctrl *pinctrl; |
| - struct pinctrl_state *pins_dsd; |
| + struct pinctrl_state *pins_state; |
| }; |
| |
| #define TX 1 |