ASoC: Intel: Skylake: Remove superfluous chip initialization
commit 2ef81057d80456870b97890dd79c8f56a85b1242 upstream. Skylake driver does the controller init operation twice: - first during probe (only to stop it just before scheduling probe_work) - and during said probe_work where the actual correct sequence is executed To properly complete boot sequence when iDisp codec is present, bus initialization has to be called only after _i915_init() finishes. With additional _reset_list preceding _i915_init(), iDisp codec never gets the chance to enumerate on the link. Remove the superfluous initialization to address the issue. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200305145314.32579-2-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org> Cc: <stable@vger.kernel.org> # 5.4.x Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
23b093a2c4
commit
422c4938f7
@ -807,6 +807,9 @@ static void skl_probe_work(struct work_struct *work)
|
||||
return;
|
||||
}
|
||||
|
||||
skl_init_pci(skl);
|
||||
skl_dum_set(bus);
|
||||
|
||||
err = skl_init_chip(bus, true);
|
||||
if (err < 0) {
|
||||
dev_err(bus->dev, "Init chip failed with err: %d\n", err);
|
||||
@ -922,8 +925,6 @@ static int skl_first_init(struct hdac_bus *bus)
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
snd_hdac_bus_reset_link(bus, true);
|
||||
|
||||
snd_hdac_bus_parse_capabilities(bus);
|
||||
|
||||
/* check if PPCAP exists */
|
||||
@ -971,11 +972,7 @@ static int skl_first_init(struct hdac_bus *bus)
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* initialize chip */
|
||||
skl_init_pci(skl);
|
||||
skl_dum_set(bus);
|
||||
|
||||
return skl_init_chip(bus, true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int skl_probe(struct pci_dev *pci,
|
||||
@ -1080,8 +1077,6 @@ static int skl_probe(struct pci_dev *pci,
|
||||
if (bus->mlcap)
|
||||
snd_hdac_ext_bus_get_ml_capabilities(bus);
|
||||
|
||||
snd_hdac_bus_stop_chip(bus);
|
||||
|
||||
/* create device for soc dmic */
|
||||
err = skl_dmic_device_register(skl);
|
||||
if (err < 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user