mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-22 22:07:20 +07:00
029d92c289
The current HD-audio code manages the DRM audio power via too complex redirections, and this seems even still unbalanced in a corner case as Intel DRM CI has been intermittently reporting. This patch is a big surgery for addressing the complexity and the possible unbalance. Basically the patch changes the display PM in the following ways: - Both HD-audio controller and codec drivers call a single helper, snd_hdac_display_power(). (Formerly, the display power control from a codec was done indirectly via link_power bus ops.) - snd_hdac_display_power() receives the codec address index. For turning on/off from the controller, pass HDA_CODEC_IDX_CONTROLLER. - snd_hdac_display_power() doesn't manage refcounts any longer, but keeps the power status in bitmap. If any of controller or codecs is turned on, the function updates the DRM power state via get_power() or put_power(). Also this refactor allows us more cleanup: - The link_power bus ops is dropped, so there is no longer indirect management, as mentioned in the above. - hdac_device link_power_control flag is moved to hda_codec display_power_control flag, as it's only for HDA legacy. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106525 Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
---|---|---|
.. | ||
ca0132_regs.h | ||
dell_wmi_helper.c | ||
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 |