summaryrefslogtreecommitdiff
path: root/sound/soc/intel/skylake/skl.h
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2017-05-04 14:09:10 +0530
committerMark Brown <broonie@kernel.org>2017-05-14 18:48:57 +0900
commitab1b732d53c18f26f51cad49371be3244fe67504 (patch)
tree36181534417539d8bbf526d5b4ba9e4e1f841928 /sound/soc/intel/skylake/skl.h
parent2ea659a9ef488125eb46da6eb571de5eae5c43f6 (diff)
ASoC: Intel: Skylake: Move i915 registration to worker thread
The i915 component framework expects the caller to be invoking snd_hdac_i915_init() from a thread context. Otherwise it results in lockups on drm side. So move the registering of component interface and probing of codecs on this bus to a worker thread. init_failed in skl structure is not used currently, so renamed to init_done and used to track the initialization done in worker thread. Reported-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Sodhi, VunnyX <vunnyx.sodhi@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake/skl.h')
-rw-r--r--sound/soc/intel/skylake/skl.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/intel/skylake/skl.h b/sound/soc/intel/skylake/skl.h
index a454f6035f3e..2a630fcb7f08 100644
--- a/sound/soc/intel/skylake/skl.h
+++ b/sound/soc/intel/skylake/skl.h
@@ -46,7 +46,7 @@ struct skl {
struct hdac_ext_bus ebus;
struct pci_dev *pci;
- unsigned int init_failed:1; /* delayed init failed */
+ unsigned int init_done:1; /* delayed init status */
struct platform_device *dmic_dev;
struct platform_device *i2s_dev;
struct snd_soc_platform *platform;
@@ -64,6 +64,8 @@ struct skl {
const struct firmware *tplg;
int supend_active;
+
+ struct work_struct probe_work;
};
#define skl_to_ebus(s) (&(s)->ebus)