On Fri, 2022-03-04 at 15:57 +0100, Cezary Rojewski wrote:
Audio DSP supports low power states i.e.: transitions between D0 and D3 and D0-substates in form of D0i0 and D0i3. That process is a combination of core and IPC operations. Here, Dx and D0ix IPC handlers are added.
Signed-off-by: Amadeusz Sławiński < amadeuszx.slawinski@linux.intel.com> Signed-off-by: Cezary Rojewski cezary.rojewski@intel.com
sound/soc/intel/avs/messages.c | 44 ++++++++++++++++++++++++++++++++++ sound/soc/intel/avs/messages.h | 15 ++++++++++++ 2 files changed, 59 insertions(+)
diff --git a/sound/soc/intel/avs/messages.c b/sound/soc/intel/avs/messages.c index 613c9452226d..e8f441b28d71 100644 --- a/sound/soc/intel/avs/messages.c +++ b/sound/soc/intel/avs/messages.c @@ -401,3 +401,47 @@ int avs_ipc_get_large_config(struct avs_dev *adev, u16 module_id, u8 instance_id
return 0; }
+int avs_ipc_set_dx(struct avs_dev *adev, u32 core_mask, bool powerup)
a description for this function would be helpful.
+{
- union avs_module_msg msg = AVS_MODULE_REQUEST(SET_DX);
- struct avs_ipc_msg request;
- struct avs_dxstate_info dx;
- int ret;
- dx.core_mask = core_mask;
- dx.dx_mask = powerup ? core_mask : 0;
- request.header = msg.val;
- request.data = &dx;
- request.size = sizeof(dx);
- ret = avs_dsp_send_msg(adev, &request, NULL);
- if (ret)
avs_ipc_err(adev, &request, "set dx", ret);
- return ret;
+}
+/*
- avs_ipc_set_d0ix - Set power gating policy (entering D0IX
substates)
- @enable_pg: Whether to enable or disable power gating
- @streaming: Whether a stream is running when transitioning
- */
What do you mean why "whether a stream is running" does it mean any stream? What is the difference between a D0ix transition with a stream running compared to not running? Thanks,Ranjani