]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
sound: don't call skl_init_chip() to reset intel skl soc
authorYu Zhao <yuzhao@google.com>
Tue, 11 Sep 2018 21:15:16 +0000 (15:15 -0600)
committerJuerg Haefliger <juergh@canonical.com>
Wed, 24 Jul 2019 01:53:34 +0000 (19:53 -0600)
commitcd38f4f219922fadf75b69d6154fd4846cb9e9b2
tree2242be1df30fd0cfa05b316be089ce397d70f51c
parentaab4523f177852cf57ce82bbe7caa1275301cddb
sound: don't call skl_init_chip() to reset intel skl soc

BugLink: https://bugs.launchpad.net/bugs/1836426
[ Upstream commit 75383f8d39d4c0fb96083dd460b7b139fbdac492 ]

Internally, skl_init_chip() calls snd_hdac_bus_init_chip() which
1) sets bus->chip_init to prevent multiple entrances before device
is stopped; 2) enables interrupt.

We shouldn't use it for the purpose of resetting device only because
1) when we really want to initialize device, we won't be able to do
so; 2) we are ready to handle interrupt yet, and kernel crashes when
interrupt comes in.

Rename azx_reset() to snd_hdac_bus_reset_link(), and use it to reset
device properly.

Fixes: 60767abcea3d ("ASoC: Intel: Skylake: Reset the controller in probe")
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Yu Zhao <yuzhao@google.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
include/sound/hdaudio.h
sound/hda/hdac_controller.c
sound/soc/intel/skylake/skl.c