mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
951894cf30
External HDMI receivers have analog circuitry that needs to be powered-on when exiting standby, and a mechanism to detect PCM v. IEC61937 data. These two steps take time and up to 2-3 seconds of audio may be muted when starting playback. Intel hardware (Haswell and beyond) can keep the link active with a 'silent stream', so that the receiver does not go through those two steps when valid audio is transmitted. This mechanism relies on an setting the channel_id as 0xf, sending info packet and preventing the codec from going to D3, which will increase the platform static power consumption. The info packet assumes a basic 2ch stereo, and the silent stream is enabled when connecting a monitor. In case of format changes the detection of PCM v. IEC61937 needs to be re-run. In this case there is no way to avoid the 2-3s mute. The silent stream is enabled with a Kconfig option, as well as a kernel parameter should there be a need to override the build time default. This approach is used based on the power_save capability as an example, but in the future, it may be used with a kcontrol, depending on UCM support for HDaudio legacy. Signed-off-by: Harsha Priya <harshapriya.n@intel.com> Signed-off-by: Emmanuel Jillela <emmanuel.jillela@intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reported-by: kernel test robot <lkp@intel.com> Link: https://lore.kernel.org/r/1594068797-14011-1-git-send-email-harshapriya.n@intel.com Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
---|---|---|
.. | ||
ca0132_regs.h | ||
hda_auto_parser.c | ||
hda_auto_parser.h | ||
hda_beep.c | ||
hda_beep.h | ||
hda_bind.c | ||
hda_codec.c | ||
hda_controller_trace.h | ||
hda_controller.c | ||
hda_controller.h | ||
hda_eld.c | ||
hda_generic.c | ||
hda_generic.h | ||
hda_hwdep.c | ||
hda_intel_trace.h | ||
hda_intel.c | ||
hda_intel.h | ||
hda_jack.c | ||
hda_jack.h | ||
hda_local.h | ||
hda_proc.c | ||
hda_sysfs.c | ||
hda_tegra.c | ||
hp_x360_helper.c | ||
Kconfig | ||
Makefile | ||
patch_analog.c | ||
patch_ca0110.c | ||
patch_ca0132.c | ||
patch_cirrus.c | ||
patch_cmedia.c | ||
patch_conexant.c | ||
patch_hdmi.c | ||
patch_realtek.c | ||
patch_si3054.c | ||
patch_sigmatel.c | ||
patch_via.c | ||
thinkpad_helper.c |