OSDN Git Service

ASoC: SOF: Intel: BYT: harden IPC initialization and handling
authorKeyon Jie <yang.jie@linux.intel.com>
Tue, 26 May 2020 20:36:40 +0000 (15:36 -0500)
committerMark Brown <broonie@kernel.org>
Wed, 27 May 2020 13:06:59 +0000 (14:06 +0100)
commit3d2e5c480742b4a22534e72e2647b6c8c98a94a4
treee5a5d86104b8cc4af56926cf05dacb4d1d7f93b1
parent3d3d1fb9ce34bc045b9d140a5f2ec531eff6a0fe
ASoC: SOF: Intel: BYT: harden IPC initialization and handling

On probe and reset, we should not touch the SHIM_IMRD register since
it is configured by firmware.

The driver only configures SHIM_IMRX with the BUSY interrupt enabled
by default and DONE interrupt disabled. When sending an IPC message,
the DONE interrupt is enabled until the DSP response is provided.

This sequence hardens the IPC communication and avoid
interrupt-related issues when adding/removing modules or during system
suspend-resume transitions.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tested-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20200526203640.25980-9-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/byt.c