diff options
author | Daniel Baluta <daniel.baluta@nxp.com> | 2020-11-11 12:11:17 +0100 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2020-11-16 09:33:45 +0100 |
commit | 046326989a1845db321d3b3db637e1336383b047 (patch) | |
tree | f0eb9145d073a46c8f4ccce437315e1335c7c7e3 /drivers/firmware | |
parent | firmware: imx: Introduce imx_dsp_setup_channels (diff) | |
download | linux-046326989a1845db321d3b3db637e1336383b047.tar.xz linux-046326989a1845db321d3b3db637e1336383b047.zip |
firmware: imx: Save channel name for further use
We want to request / free channels on demand later in order
to save power.
For this for each channel we save the name and use it to
reference the channel later.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Paul Olaru <paul.olaru@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Diffstat (limited to 'drivers/firmware')
-rw-r--r-- | drivers/firmware/imx/imx-dsp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/firmware/imx/imx-dsp.c b/drivers/firmware/imx/imx-dsp.c index a3a018c87b52..b6e95d6d34c0 100644 --- a/drivers/firmware/imx/imx-dsp.c +++ b/drivers/firmware/imx/imx-dsp.c @@ -79,6 +79,7 @@ static int imx_dsp_setup_channels(struct imx_dsp_ipc *dsp_ipc) return -ENOMEM; dsp_chan = &dsp_ipc->chans[i]; + dsp_chan->name = chan_name; cl = &dsp_chan->cl; cl->dev = dev; cl->tx_block = false; @@ -97,16 +98,14 @@ static int imx_dsp_setup_channels(struct imx_dsp_ipc *dsp_ipc) } dev_dbg(dev, "request mbox chan %s\n", chan_name); - /* chan_name is not used anymore by framework */ - kfree(chan_name); } return 0; out: - kfree(chan_name); for (j = 0; j < i; j++) { dsp_chan = &dsp_ipc->chans[j]; mbox_free_channel(dsp_chan->ch); + kfree(dsp_chan->name); } return ret; @@ -147,6 +146,7 @@ static int imx_dsp_remove(struct platform_device *pdev) for (i = 0; i < DSP_MU_CHAN_NUM; i++) { dsp_chan = &dsp_ipc->chans[i]; mbox_free_channel(dsp_chan->ch); + kfree(dsp_chan->name); } return 0; |