ASoC: amd: acp: store xfer_resolution of the stream
authorSyed Saba Kareem <Syed.SabaKareem@amd.com>
Mon, 26 Jun 2023 13:55:10 +0000 (19:25 +0530)
committerMark Brown <broonie@kernel.org>
Sun, 9 Jul 2023 21:47:37 +0000 (22:47 +0100)
Store the 'xfer_resolution' of the stream in private data structure,
it will be used to reprogram the xfer_resolution for the active stream
during system level resume.

Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com>
Link: https://lore.kernel.org/r/20230626135515.1252063-7-Syed.SabaKareem@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp/acp-i2s.c
sound/soc/amd/acp/amd.h

index 09b6511c0a263c639835174986ada3c8bde38093..09dc5f2c0bfc72ffba6359433aa6b66018a6432a 100644 (file)
@@ -149,6 +149,7 @@ static int acp_i2s_hwparams(struct snd_pcm_substream *substream, struct snd_pcm_
                        dev_err(dev, "Invalid dai id %x\n", dai->driver->id);
                        return -EINVAL;
                }
+               adata->xfer_tx_resolution[dai->driver->id - 1] = xfer_resolution;
        } else {
                switch (dai->driver->id) {
                case I2S_BT_INSTANCE:
@@ -167,6 +168,7 @@ static int acp_i2s_hwparams(struct snd_pcm_substream *substream, struct snd_pcm_
                        dev_err(dev, "Invalid dai id %x\n", dai->driver->id);
                        return -EINVAL;
                }
+               adata->xfer_rx_resolution[dai->driver->id - 1] = xfer_resolution;
        }
 
        val = readl(adata->acp_base + reg_val);
index 50a00974bec9f9f9dcc6d0c3ab96f1b496e95c22..42bf6b9e1e3e6ddc761cef12b4f37f71151fe44d 100644 (file)
@@ -166,6 +166,8 @@ struct acp_dev_data {
        struct acp_resource *rsrc;
        u32 tdm_tx_fmt[3];
        u32 tdm_rx_fmt[3];
+       u32 xfer_tx_resolution[3];
+       u32 xfer_rx_resolution[3];
 };
 
 union acp_i2stdm_mstrclkgen {