linux/sound/hda
Rander Wang 7c2b3629d0 ALSA: hda: Fix a headphone detection issue when using SOF
To save power, the hda hdmi driver in ASoC invokes snd_hdac_ext_bus_link_put
to disable CORB/RIRB buffers DMA if there is no user of bus and invokes
snd_hdac_ext_bus_link_get to set up CORB/RIRB buffers when it is used.
Unsolicited responses is disabled in snd_hdac_bus_stop_cmd_io called by
snd_hdac_ext_bus_link_put , but it is not enabled in snd_hdac_bus_init_cmd_io
called by snd_hdac_ext_bus_link_get. So for put-get sequence, Unsolicited
responses is disabled and headphone can't be detected by hda codecs.

Now unsolicited responses is only enabled in snd_hdac_bus_reset_link
which resets controller. The function is only called for setup of
controller. This patch enables Unsolicited responses after RIRB is
initialized in snd_hdac_bus_init_cmd_io which works together with
snd_hdac_bus_reset_link to set up controller.

Tested legacy hda driver and SOF driver on intel whiskeylake.

Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-07-01 16:27:27 +02:00
..
ext ALSA: hda: Initialize ext-bus-specific fields in snd_hdac_bus_init(), too 2019-04-13 10:10:26 +02:00
array.c ALSA: hda: Fix krealloc() with __GFP_ZERO usage 2016-08-03 15:17:22 +02:00
hda_bus_type.c ALSA: hda - Advertise MODALIAS in uevent 2015-10-20 10:15:53 +02:00
hdac_bus.c ALSA: hda: Initialize ext-bus-specific fields in snd_hdac_bus_init(), too 2019-04-13 10:10:26 +02:00
hdac_component.c Linux 5.1-rc5 2019-04-15 15:51:49 +10:00
hdac_controller.c ALSA: hda: Fix a headphone detection issue when using SOF 2019-07-01 16:27:27 +02:00
hdac_device.c ALSA: hda: Fix race between creating and refreshing sysfs entries 2019-05-13 14:41:56 +02:00
hdac_i915.c Char/Misc driver patches for 5.1-rc1 2019-03-06 14:18:59 -08:00
hdac_regmap.c regmap: split up regmap_config.use_single_rw 2018-09-07 13:03:55 +01:00
hdac_stream.c ALSA: hda: Avoid NULL pointer dereference at snd_hdac_stream_start() 2019-03-13 11:23:59 +01:00
hdac_sysfs.c ALSA: hda: Fix race between creating and refreshing sysfs entries 2019-05-13 14:41:56 +02:00
hdmi_chmap.c ALSA: hda: Fix too short HDMI/DP chmap reporting 2017-11-17 12:20:37 +01:00
Kconfig ALSA: hda: Make audio component support more generic 2018-07-17 22:25:48 +02:00
local.h ASoC: Updates for v4.15 2017-11-13 15:45:57 +01:00
Makefile ALSA: hda: Make audio component support more generic 2018-07-17 22:25:48 +02:00
trace.c ALSA: hda - Re-add tracepoints to HD-audio core driver 2015-03-23 13:17:58 +01:00
trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00