aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/skylake/skl-sst-ipc.c
diff options
context:
space:
mode:
authorDharageswari.R <dharageswari.r@intel.com>2015-12-18 04:42:04 -0500
committerMark Brown <broonie@kernel.org>2016-01-10 07:19:02 -0500
commit721c3e36f774150f453216efcf5e1895577ac68c (patch)
treec030cbcf741d8b829acf612443bddecaab2f8148 /sound/soc/intel/skylake/skl-sst-ipc.c
parent0c8ba9d28518822d612de23fc9020b2a66a0228c (diff)
ASoC: Intel: Skylake: Use CGCTL.MISCBDCGE for Phrase detection notification
Per HW recommendation, SW shall clear the CGCTL.MISCBDCGE and set it back once data is transferred. So clear this when we get the IPC and track using a driver flag, and set back on closure Signed-off-by: Dharageswari.R <dharageswari.r@intel.com> Signed-off-by: Jayachandran B <jayachandran.b@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake/skl-sst-ipc.c')
-rw-r--r--sound/soc/intel/skylake/skl-sst-ipc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/soc/intel/skylake/skl-sst-ipc.c b/sound/soc/intel/skylake/skl-sst-ipc.c
index 62e665a3b8f7..543460293b00 100644
--- a/sound/soc/intel/skylake/skl-sst-ipc.c
+++ b/sound/soc/intel/skylake/skl-sst-ipc.c
@@ -16,8 +16,10 @@
16 16
17#include "../common/sst-dsp.h" 17#include "../common/sst-dsp.h"
18#include "../common/sst-dsp-priv.h" 18#include "../common/sst-dsp-priv.h"
19#include "skl.h"
19#include "skl-sst-dsp.h" 20#include "skl-sst-dsp.h"
20#include "skl-sst-ipc.h" 21#include "skl-sst-ipc.h"
22#include "sound/hdaudio_ext.h"
21 23
22 24
23#define IPC_IXC_STATUS_BITS 24 25#define IPC_IXC_STATUS_BITS 24
@@ -322,6 +324,19 @@ static int skl_ipc_process_notification(struct sst_generic_ipc *ipc,
322 wake_up(&skl->boot_wait); 324 wake_up(&skl->boot_wait);
323 break; 325 break;
324 326
327 case IPC_GLB_NOTIFY_PHRASE_DETECTED:
328 dev_dbg(ipc->dev, "***** Phrase Detected **********\n");
329
330 /*
331 * Per HW recomendation, After phrase detection,
332 * clear the CGCTL.MISCBDCGE.
333 *
334 * This will be set back on stream closure
335 */
336 skl->enable_miscbdcge(ipc->dev, false);
337 skl->miscbdcg_disabled = true;
338 break;
339
325 default: 340 default:
326 dev_err(ipc->dev, "ipc: Unhandled error msg=%x", 341 dev_err(ipc->dev, "ipc: Unhandled error msg=%x",
327 header.primary); 342 header.primary);