Unverified Commit 207bf12f authored by Ranjani Sridharan's avatar Ranjani Sridharan Committed by Mark Brown
Browse files

ASoC: SOF: Intel: hda: Amend the DSP state transition diagram



Amend the DSP state transition diagram in preparation
for introducing the feature to support opportunistic
DSP D0I3 state when the system is in S0.

Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200129220726.31792-8-pierre-louis.bossart@linux.intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent de23a838
Loading
Loading
Loading
Loading
+17 −19
Original line number Diff line number Diff line
@@ -488,33 +488,31 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
/*
 * Audio DSP states may transform as below:-
 *
 *                                         D0I3 compatible stream
 *     Runtime    +---------------------+   opened only, timeout
 *                                         Opportunistic D0I3 in S0
 *     Runtime    +---------------------+  Delayed D0i3 work timeout
 *     suspend    |                     +--------------------+
 *   +------------+       D0(active)    |                    |
 *   +------------+       D0I0(active)  |                    |
 *   |            |                     <---------------+    |
 *   |   +-------->                     |               |    |
 *   |   |Runtime +--^--+---------^--+--+ The last      |    |
 *   |   |resume     |  |         |  |    opened D0I3   |    |
 *   |   |           |  |         |  |    compatible    |    |
 *   |   |     resume|  |         |  |    stream closed |    |
 *   |   |      from |  | D3      |  |                  |    |
 *   |   |       D3  |  |suspend  |  | d0i3             |    |
 *   |   +-------->                     |    New IPC	|    |
 *   |   |Runtime +--^--+---------^--+--+ (via mailbox)	|    |
 *   |   |resume     |  |         |  |			|    |
 *   |   |           |  |         |  |			|    |
 *   |   |     System|  |         |  |			|    |
 *   |   |     resume|  | S3/S0IX |  |                  |    |
 *   |   |	     |  | suspend |  | S0IX             |    |
 *   |   |           |  |         |  |suspend           |    |
 *   |   |           |  |         |  |                  |    |
 *   |   |           |  |         |  |                  |    |
 * +-v---+-----------+--v-------+ |  |           +------+----v----+
 * |                            | |  +----------->                |
 * |       D3 (suspended)       | |              |      D0I3      +-----+
 * |                            | +--------------+                |     |
 * |                            |  resume from   |                |     |
 * +-------------------^--------+  d0i3 suspend  +----------------+     |
 *                     |                                                |
 *                     |                       D3 suspend               |
 *                     +------------------------------------------------+
 * |       D3 (suspended)       | |              |      D0I3      |
 * |                            | +--------------+                |
 * |                            |  System resume |                |
 * +----------------------------+		 +----------------+
 *
 * d0i3_suspend = s0_suspend && D0I3 stream opened,
 * D3 suspend = !d0i3_suspend,
 * S0IX suspend: The DSP is in D0I3 if any D0I3-compatible streams
 *		 ignored the suspend trigger. Otherwise the DSP
 *		 is in D3.
 */

static int hda_suspend(struct snd_sof_dev *sdev, bool runtime_suspend)