Message ID | 20200309142124.29262-1-cezary.rojewski@intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a3b7343e3f8c4c74516df41827b6d81905e346a1 |
Headers | show |
Series | ASoC: SOF: Fix probe point getter | expand |
On 3/9/20 9:21 AM, Cezary Rojewski wrote: > Firmware API changes which introduced 'num_elems' param in several probe > structs such as sof_ipc_probe_dma_add_params also impacted getter for > both, DMA and probe points. All struct handlers except for > sof_ipc_probe_info_params have been updated. Align said handler too to > calculate payload size correctly. > > Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Thanks Cezary! > Fixes: f3b433e4699f ("ASoC: SOF: Implement Probe IPC API") > --- > sound/soc/sof/probe.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/sound/soc/sof/probe.c b/sound/soc/sof/probe.c > index 2b2f3dcfc7e9..c38169fe00c5 100644 > --- a/sound/soc/sof/probe.c > +++ b/sound/soc/sof/probe.c > @@ -95,13 +95,17 @@ static int sof_ipc_probe_info(struct snd_sof_dev *sdev, unsigned int cmd, > if (!reply->num_elems) > goto exit; > > - bytes = reply->num_elems * sizeof(reply->dma[0]); > + if (cmd == SOF_IPC_PROBE_DMA_INFO) > + bytes = sizeof(reply->dma[0]); > + else > + bytes = sizeof(reply->desc[0]); > + bytes *= reply->num_elems; > *params = kmemdup(&reply->dma[0], bytes, GFP_KERNEL); > if (!*params) { > ret = -ENOMEM; > goto exit; > } > - *num_params = msg.num_elems; > + *num_params = reply->num_elems; > > exit: > kfree(reply); >
diff --git a/sound/soc/sof/probe.c b/sound/soc/sof/probe.c index 2b2f3dcfc7e9..c38169fe00c5 100644 --- a/sound/soc/sof/probe.c +++ b/sound/soc/sof/probe.c @@ -95,13 +95,17 @@ static int sof_ipc_probe_info(struct snd_sof_dev *sdev, unsigned int cmd, if (!reply->num_elems) goto exit; - bytes = reply->num_elems * sizeof(reply->dma[0]); + if (cmd == SOF_IPC_PROBE_DMA_INFO) + bytes = sizeof(reply->dma[0]); + else + bytes = sizeof(reply->desc[0]); + bytes *= reply->num_elems; *params = kmemdup(&reply->dma[0], bytes, GFP_KERNEL); if (!*params) { ret = -ENOMEM; goto exit; } - *num_params = msg.num_elems; + *num_params = reply->num_elems; exit: kfree(reply);
Firmware API changes which introduced 'num_elems' param in several probe structs such as sof_ipc_probe_dma_add_params also impacted getter for both, DMA and probe points. All struct handlers except for sof_ipc_probe_info_params have been updated. Align said handler too to calculate payload size correctly. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Fixes: f3b433e4699f ("ASoC: SOF: Implement Probe IPC API") --- sound/soc/sof/probe.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)