Takashi Iwai 029d92c289 ALSA: hda: Refactor display power management
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>
2018-12-11 08:06:55 +01:00
..
2011-08-17 00:53:54 +09:00
2014-05-05 18:20:22 -07:00
2015-11-30 12:24:12 +00:00
2012-09-28 14:21:54 +01:00
2017-11-27 16:19:52 -05:00
2014-07-04 18:50:51 +01:00
2015-07-09 12:00:11 +01:00
2016-09-24 19:51:57 +01:00
2015-03-11 12:08:20 +00:00
2018-06-18 12:54:38 +01:00
2017-11-13 15:45:57 +01:00
2018-09-20 10:31:20 -07:00
2014-09-15 15:52:03 +02:00
2011-09-20 16:02:16 +01:00
2011-08-08 14:30:37 +09:00