firmware: imx-dsp: Export functions to request/free channels
authorDaniel Baluta <daniel.baluta@nxp.com>
Wed, 11 Nov 2020 11:11:18 +0000 (13:11 +0200)
committerShawn Guo <shawnguo@kernel.org>
Mon, 16 Nov 2020 08:33:48 +0000 (16:33 +0800)
commit23d89aa0c2192f2d4582198b381d8805492c7925
treea4f331d9c2613db9ca7ab53cc253d727902535e1
parent046326989a1845db321d3b3db637e1336383b047
firmware: imx-dsp: Export functions to request/free channels

In order to save power, we only need to request a channel
when the communication with the DSP active.

For this we export the following functions:
- imx_dsp_request_channel, gets a channel with a given index
- imx_dsp_free_channel, frees a channel with a given index

Notice that we still request channels at probe to support devices
that do not have PM callbacks implemented.

More explanations about why requesting a channel has an effect
on power savings:
 - requesting an mailbox channel will call mailbox's startup
   function.
 - startup function calls pm_runtime_get_sync which increments device
   usage count and will keep the device active. Specifically, mailbox
   clock will be always ON when a mailbox channel is requested.

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>
drivers/firmware/imx/imx-dsp.c
include/linux/firmware/imx/dsp.h