soundwire: intel: add eml_lock in the interface for new platforms
In existing Intel/SoundWire systems, all the SoundWire configuration is 'self-contained', with the 'shim_lock' mutex used to protect access to shared registers in multi-link configurations. With the move of part of the SoundWire registers to the HDaudio multi-link structure, we need a unified lock. The hda-mlink implementation provides an 'eml_lock' that is used to protect shared registers such as LCTL and LSYNC, we can pass it to the SoundWire side. There is no issue with possible dangling pointers since the SoundWire auxiliary devices are children of the PCI device, so the 'eml_lock' cannot be removed while the SoundWire side is in use. This patch only adds the interface for now. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://lore.kernel.org/r/20230515071042.2038-8-yung-chuan.liao@linux.intel.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Родитель
881cf1e9df
Коммит
ec2c9dbe53
|
@ -327,6 +327,8 @@ struct sdw_intel_ctx {
|
|||
* @alh_base: sdw alh base.
|
||||
* @ext: extended HDaudio link support
|
||||
* @hbus: hdac_bus pointer, needed for power management
|
||||
* @eml_lock: mutex protecting shared registers in the HDaudio multi-link
|
||||
* space
|
||||
*/
|
||||
struct sdw_intel_res {
|
||||
const struct sdw_intel_hw_ops *hw_ops;
|
||||
|
@ -343,6 +345,7 @@ struct sdw_intel_res {
|
|||
u32 alh_base;
|
||||
bool ext;
|
||||
struct hdac_bus *hbus;
|
||||
struct mutex *eml_lock;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче