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)
committerMark Brown <broonie@kernel.org>
Wed, 12 Sep 2018 10:22:09 +0000 (11:22 +0100)
commit75383f8d39d4c0fb96083dd460b7b139fbdac492
treea67f7449b24e98e50d395fa79f65f9884d6169d5
parentb61749a89f826eb61fc59794d9e4697bd246eb61
sound: don't call skl_init_chip() to reset intel skl soc

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>
include/sound/hdaudio.h
sound/hda/hdac_controller.c
sound/soc/intel/skylake/skl.c