Skip to content

Commit c0390d9

Browse files
kv2019iintel-lab-lkp
authored andcommitted
drm/i915: do AUD_FREQ_CNTRL state save on all gen9+ platforms
Replace the TGL/ICL specific platform checks with a more generic check using INTEL_GEN(). Fixes bug with broken audio after S3 resume on JSL platforms. An initial version of state save and restore of AUD_FREQ_CNTRL register was added for subset of platforms in commit 87c1694 ("drm/i915: save AUD_FREQ_CNTRL state at audio domain suspend"). The state save has proven to work well and it is needed in newer platforms, so needs to be extended. Although the logic is not in practise needed on GEN9/10 systems, follow the hardware specification and apply state and restore on all gen9+ platforms. Bspec: 49281 Link: thesofproject#1719 Signed-off-by: Kai Vehmanen <[email protected]>
1 parent a627747 commit c0390d9

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/gpu/drm/i915/display/intel_audio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ static unsigned long i915_audio_component_get_power(struct device *kdev)
891891
ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
892892

893893
if (dev_priv->audio_power_refcount++ == 0) {
894-
if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) {
894+
if (INTEL_GEN(dev_priv) >= 9) {
895895
intel_de_write(dev_priv, AUD_FREQ_CNTRL,
896896
dev_priv->audio_freq_cntrl);
897897
drm_dbg_kms(&dev_priv->drm,
@@ -1173,7 +1173,7 @@ static void i915_audio_component_init(struct drm_i915_private *dev_priv)
11731173
return;
11741174
}
11751175

1176-
if (IS_TIGERLAKE(dev_priv) || IS_ICELAKE(dev_priv)) {
1176+
if (INTEL_GEN(dev_priv) >= 9) {
11771177
dev_priv->audio_freq_cntrl = intel_de_read(dev_priv,
11781178
AUD_FREQ_CNTRL);
11791179
drm_dbg_kms(&dev_priv->drm,

0 commit comments

Comments
 (0)