On Mon, 10 Sep 2018 23:23:58 +0200, Yu Zhao wrote:
Internally, skl_init_chip() calls snd_hdac_bus_init_chip() which
- 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
- 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") Signed-off-by: Yu Zhao yuzhao@google.com
That makes sense.
And I noticed that the legacy HD-audio driver potentially needs the same reset (although we haven't heard of any problem for years).
So now I wonder whether this requirement of reset is really mandatory for the real hardware, or just theoretical...
In anyway,
Reviewed-by: Takashi Iwai tiwai@suse.de
thanks,
Takashi