prtd_tx and prtd_rx members are not used anymore and only qmc_chan
member remains so struct qmc_dai_chan has become pointless.

Use qmc_chan directly and drop struct qmc_dai_chan.

Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
Acked-by: Herve Codina <herve.cod...@bootlin.com>
---
 sound/soc/fsl/fsl_qmc_audio.c | 52 ++++++++++++++---------------------
 1 file changed, 20 insertions(+), 32 deletions(-)

diff --git a/sound/soc/fsl/fsl_qmc_audio.c b/sound/soc/fsl/fsl_qmc_audio.c
index 2790953543c5..3de448ef724c 100644
--- a/sound/soc/fsl/fsl_qmc_audio.c
+++ b/sound/soc/fsl/fsl_qmc_audio.c
@@ -17,12 +17,6 @@
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 
-struct qmc_dai_chan {
-       struct qmc_dai_prtd *prtd_tx;
-       struct qmc_dai_prtd *prtd_rx;
-       struct qmc_chan *qmc_chan;
-};
-
 struct qmc_dai {
        char *name;
        int id;
@@ -33,7 +27,7 @@ struct qmc_dai {
        unsigned int nb_chans_avail;
        unsigned int nb_chans_used_tx;
        unsigned int nb_chans_used_rx;
-       struct qmc_dai_chan *chans;
+       struct qmc_chan **qmc_chans;
 };
 
 struct qmc_audio {
@@ -125,7 +119,7 @@ static int qmc_audio_pcm_write_submit(struct qmc_dai_prtd 
*prtd)
        int ret;
 
        for (i = 0; i < prtd->channels; i++) {
-               ret = qmc_chan_write_submit(prtd->qmc_dai->chans[i].qmc_chan,
+               ret = qmc_chan_write_submit(prtd->qmc_dai->qmc_chans[i],
                                            prtd->ch_dma_addr_current + i * 
prtd->ch_dma_offset,
                                            prtd->ch_dma_size,
                                            i == prtd->channels - 1 ? 
qmc_audio_pcm_write_complete :
@@ -165,7 +159,7 @@ static int qmc_audio_pcm_read_submit(struct qmc_dai_prtd 
*prtd)
        int ret;
 
        for (i = 0; i < prtd->channels; i++) {
-               ret = qmc_chan_read_submit(prtd->qmc_dai->chans[i].qmc_chan,
+               ret = qmc_chan_read_submit(prtd->qmc_dai->qmc_chans[i],
                                           prtd->ch_dma_addr_current + i * 
prtd->ch_dma_offset,
                                           prtd->ch_dma_size,
                                           i == prtd->channels - 1 ? 
qmc_audio_pcm_read_complete :
@@ -206,7 +200,6 @@ static int qmc_audio_pcm_trigger(struct snd_soc_component 
*component,
                                 struct snd_pcm_substream *substream, int cmd)
 {
        struct qmc_dai_prtd *prtd = substream->runtime->private_data;
-       unsigned int i;
        int ret;
 
        if (!prtd->qmc_dai) {
@@ -220,9 +213,6 @@ static int qmc_audio_pcm_trigger(struct snd_soc_component 
*component,
                prtd->ch_dma_addr_current = prtd->ch_dma_addr_start;
 
                if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
-                       for (i = 0; i < prtd->channels; i++)
-                               prtd->qmc_dai->chans[i].prtd_tx = prtd;
-
                        /* Submit first chunk ... */
                        ret = qmc_audio_pcm_write_submit(prtd);
                        if (ret)
@@ -238,9 +228,6 @@ static int qmc_audio_pcm_trigger(struct snd_soc_component 
*component,
                        if (ret)
                                return ret;
                } else {
-                       for (i = 0; i < prtd->channels; i++)
-                               prtd->qmc_dai->chans[i].prtd_rx = prtd;
-
                        /* Submit first chunk ... */
                        ret = qmc_audio_pcm_read_submit(prtd);
                        if (ret)
@@ -610,9 +597,9 @@ static int qmc_dai_hw_params(struct snd_pcm_substream 
*substream,
                chan_param.mode = QMC_TRANSPARENT;
                chan_param.transp.max_rx_buf_size = params_period_bytes(params) 
/ nb_chans_used;
                for (i = 0; i < nb_chans_used; i++) {
-                       ret = qmc_chan_set_param(qmc_dai->chans[i].qmc_chan, 
&chan_param);
+                       ret = qmc_chan_set_param(qmc_dai->qmc_chans[i], 
&chan_param);
                        if (ret) {
-                               dev_err(dai->dev, "chans[%u], set param failed 
%d\n",
+                               dev_err(dai->dev, "qmc_chans[%u], set param 
failed %d\n",
                                        i, ret);
                                return ret;
                        }
@@ -654,7 +641,7 @@ static int qmc_dai_trigger(struct snd_pcm_substream 
*substream, int cmd,
        case SNDRV_PCM_TRIGGER_RESUME:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
                for (i = 0; i < nb_chans_used; i++) {
-                       ret = qmc_chan_start(qmc_dai->chans[i].qmc_chan, 
direction);
+                       ret = qmc_chan_start(qmc_dai->qmc_chans[i], direction);
                        if (ret)
                                goto err_stop;
                }
@@ -663,13 +650,13 @@ static int qmc_dai_trigger(struct snd_pcm_substream 
*substream, int cmd,
        case SNDRV_PCM_TRIGGER_STOP:
                /* Stop and reset all QMC channels and return the first error 
encountered */
                for (i = 0; i < nb_chans_used; i++) {
-                       ret_tmp = qmc_chan_stop(qmc_dai->chans[i].qmc_chan, 
direction);
+                       ret_tmp = qmc_chan_stop(qmc_dai->qmc_chans[i], 
direction);
                        if (!ret)
                                ret = ret_tmp;
                        if (ret_tmp)
                                continue;
 
-                       ret_tmp = qmc_chan_reset(qmc_dai->chans[i].qmc_chan, 
direction);
+                       ret_tmp = qmc_chan_reset(qmc_dai->qmc_chans[i], 
direction);
                        if (!ret)
                                ret = ret_tmp;
                }
@@ -681,7 +668,7 @@ static int qmc_dai_trigger(struct snd_pcm_substream 
*substream, int cmd,
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
                /* Stop all QMC channels and return the first error encountered 
*/
                for (i = 0; i < nb_chans_used; i++) {
-                       ret_tmp = qmc_chan_stop(qmc_dai->chans[i].qmc_chan, 
direction);
+                       ret_tmp = qmc_chan_stop(qmc_dai->qmc_chans[i], 
direction);
                        if (!ret)
                                ret = ret_tmp;
                }
@@ -697,8 +684,8 @@ static int qmc_dai_trigger(struct snd_pcm_substream 
*substream, int cmd,
 
 err_stop:
        while (i--) {
-               qmc_chan_stop(qmc_dai->chans[i].qmc_chan, direction);
-               qmc_chan_reset(qmc_dai->chans[i].qmc_chan, direction);
+               qmc_chan_stop(qmc_dai->qmc_chans[i], direction);
+               qmc_chan_reset(qmc_dai->qmc_chans[i], direction);
        }
        return ret;
 }
@@ -794,19 +781,20 @@ static int qmc_audio_dai_parse(struct qmc_audio 
*qmc_audio, struct device_node *
                return dev_err_probe(qmc_audio->dev, -EINVAL,
                                     "dai %d no QMC channel defined\n", 
qmc_dai->id);
 
-       qmc_dai->chans = devm_kcalloc(qmc_audio->dev, count, 
sizeof(*qmc_dai->chans), GFP_KERNEL);
-       if (!qmc_dai->chans)
+       qmc_dai->qmc_chans = devm_kcalloc(qmc_audio->dev, count, 
sizeof(*qmc_dai->qmc_chans),
+                                         GFP_KERNEL);
+       if (!qmc_dai->qmc_chans)
                return -ENOMEM;
 
        for (i = 0; i < count; i++) {
-               qmc_dai->chans[i].qmc_chan = 
devm_qmc_chan_get_byphandles_index(qmc_audio->dev, np,
-                                                                               
"fsl,qmc-chan", i);
-               if (IS_ERR(qmc_dai->chans[i].qmc_chan)) {
-                       return dev_err_probe(qmc_audio->dev, 
PTR_ERR(qmc_dai->chans[i].qmc_chan),
+               qmc_dai->qmc_chans[i] = 
devm_qmc_chan_get_byphandles_index(qmc_audio->dev, np,
+                                                                          
"fsl,qmc-chan", i);
+               if (IS_ERR(qmc_dai->qmc_chans[i])) {
+                       return dev_err_probe(qmc_audio->dev, 
PTR_ERR(qmc_dai->qmc_chans[i]),
                                             "dai %d get QMC channel %d 
failed\n", qmc_dai->id, i);
                }
 
-               ret = qmc_chan_get_info(qmc_dai->chans[i].qmc_chan, &info);
+               ret = qmc_chan_get_info(qmc_dai->qmc_chans[i], &info);
                if (ret) {
                        dev_err(qmc_audio->dev, "dai %d get QMC %d channel info 
failed %d\n",
                                qmc_dai->id, i, ret);
@@ -851,7 +839,7 @@ static int qmc_audio_dai_parse(struct qmc_audio *qmc_audio, 
struct device_node *
                        }
                }
 
-               ret = qmc_chan_get_ts_info(qmc_dai->chans[i].qmc_chan, 
&ts_info);
+               ret = qmc_chan_get_ts_info(qmc_dai->qmc_chans[i], &ts_info);
                if (ret) {
                        dev_err(qmc_audio->dev, "dai %d get QMC %d channel TS 
info failed %d\n",
                                qmc_dai->id, i, ret);
-- 
2.49.0


Reply via email to