Skip to content

Commit 422c493

Browse files
crojewsk-intelgregkh
authored andcommitted
ASoC: Intel: Skylake: Remove superfluous chip initialization
commit 2ef8105 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>
1 parent 23b093a commit 422c493

1 file changed

Lines changed: 4 additions & 9 deletions

File tree

  • sound/soc/intel/skylake

sound/soc/intel/skylake/skl.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -807,6 +807,9 @@ static void skl_probe_work(struct work_struct *work)
807807
return;
808808
}
809809

810+
skl_init_pci(skl);
811+
skl_dum_set(bus);
812+
810813
err = skl_init_chip(bus, true);
811814
if (err < 0) {
812815
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)
922925
return -ENXIO;
923926
}
924927

925-
snd_hdac_bus_reset_link(bus, true);
926-
927928
snd_hdac_bus_parse_capabilities(bus);
928929

929930
/* check if PPCAP exists */
@@ -971,11 +972,7 @@ static int skl_first_init(struct hdac_bus *bus)
971972
if (err < 0)
972973
return err;
973974

974-
/* initialize chip */
975-
skl_init_pci(skl);
976-
skl_dum_set(bus);
977-
978-
return skl_init_chip(bus, true);
975+
return 0;
979976
}
980977

981978
static int skl_probe(struct pci_dev *pci,
@@ -1080,8 +1077,6 @@ static int skl_probe(struct pci_dev *pci,
10801077
if (bus->mlcap)
10811078
snd_hdac_ext_bus_get_ml_capabilities(bus);
10821079

1083-
snd_hdac_bus_stop_chip(bus);
1084-
10851080
/* create device for soc dmic */
10861081
err = skl_dmic_device_register(skl);
10871082
if (err < 0) {

0 commit comments

Comments
 (0)