ath79/mikrotik: use routerbootpart partitions
[oweals/openwrt.git] / target / linux / layerscape / patches-5.4 / 801-audio-0048-MLK-17580-ASoC-fsl-sai-Use-DSD-helper.patch
1 From 0a71cfbd55ba50414bfcb4ecccf656a580930790 Mon Sep 17 00:00:00 2001
2 From: Viorel Suman <viorel.suman@nxp.com>
3 Date: Thu, 8 Mar 2018 14:43:34 +0200
4 Subject: [PATCH] MLK-17580: ASoC: fsl: sai: Use DSD helper
5
6 Replace DSD related code with calls to DSD helper functions.
7
8 Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
9 Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com
10 ---
11  sound/soc/fsl/fsl_sai.c | 34 +++++++++++-----------------------
12  sound/soc/fsl/fsl_sai.h |  2 +-
13  2 files changed, 12 insertions(+), 24 deletions(-)
14
15 --- a/sound/soc/fsl/fsl_sai.c
16 +++ b/sound/soc/fsl/fsl_sai.c
17 @@ -22,6 +22,7 @@
18  #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
19  #include <linux/pm_runtime.h>
20  
21 +#include "fsl_dsd.h"
22  #include "fsl_sai.h"
23  #include "imx-pcm.h"
24  
25 @@ -523,31 +524,21 @@ static int fsl_sai_hw_params(struct snd_
26         int ret;
27         int i;
28         int trce_mask = 0;
29 -       snd_pcm_format_t format = params_format(params);
30  
31         if (sai->slots)
32                 slots = sai->slots;
33  
34         pins = DIV_ROUND_UP(channels, slots);
35 +       sai->is_dsd = fsl_is_dsd(params);
36 +       sai->pins_state = fsl_get_pins_state(sai->pinctrl, params);
37  
38 -       if (format == SNDRV_PCM_FORMAT_DSD_U8 ||
39 -               format == SNDRV_PCM_FORMAT_DSD_U16_LE ||
40 -               format == SNDRV_PCM_FORMAT_DSD_U16_BE ||
41 -               format == SNDRV_PCM_FORMAT_DSD_U32_LE ||
42 -               format == SNDRV_PCM_FORMAT_DSD_U32_BE) {
43 -               sai->is_dsd = true;
44 -
45 -               if (!IS_ERR_OR_NULL(sai->pins_dsd)) {
46 -                       ret = pinctrl_select_state(sai->pinctrl, sai->pins_dsd);
47 -                       if (ret) {
48 -                               dev_err(cpu_dai->dev,
49 -                                       "failed to set proper pins state: %d\n", ret);
50 -                               return ret;
51 -                       }
52 +       if (!IS_ERR_OR_NULL(sai->pins_state)) {
53 +               ret = pinctrl_select_state(sai->pinctrl, sai->pins_state);
54 +               if (ret) {
55 +                       dev_err(cpu_dai->dev,
56 +                               "failed to set proper pins state: %d\n", ret);
57 +                       return ret;
58                 }
59 -       } else {
60 -               pinctrl_pm_select_default_state(cpu_dai->dev);
61 -               sai->is_dsd = false;
62         }
63  
64         if (sai->is_dsd)
65 @@ -929,8 +920,8 @@ static int fsl_sai_dai_resume(struct snd
66         struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
67         int ret;
68  
69 -       if (sai->is_dsd && !IS_ERR_OR_NULL(sai->pins_dsd)) {
70 -               ret = pinctrl_select_state(sai->pinctrl, sai->pins_dsd);
71 +       if (!IS_ERR_OR_NULL(sai->pins_state)) {
72 +               ret = pinctrl_select_state(sai->pinctrl, sai->pins_state);
73                 if (ret) {
74                         dev_err(cpu_dai->dev,
75                                 "failed to set proper pins state: %d\n", ret);
76 @@ -1356,9 +1347,6 @@ static int fsl_sai_probe(struct platform
77  
78         sai->pinctrl  = devm_pinctrl_get(&pdev->dev);
79  
80 -       if (!IS_ERR_OR_NULL(sai->pinctrl))
81 -               sai->pins_dsd = pinctrl_lookup_state(sai->pinctrl, "dsd");
82 -
83         platform_set_drvdata(pdev, sai);
84  
85         pm_runtime_enable(&pdev->dev);
86 --- a/sound/soc/fsl/fsl_sai.h
87 +++ b/sound/soc/fsl/fsl_sai.h
88 @@ -211,7 +211,7 @@ struct fsl_sai {
89         const struct fsl_sai_soc_data *soc;
90         struct pm_qos_request pm_qos_req;
91         struct pinctrl *pinctrl;
92 -       struct pinctrl_state *pins_dsd;
93 +       struct pinctrl_state *pins_state;
94  };
95  
96  #define TX 1