<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED - [BDW][Audio][HD-A Display] DP/HDMI audio playback abnormal"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91410#c26">Comment # 26</a>
on <a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED - [BDW][Audio][HD-A Display] DP/HDMI audio playback abnormal"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91410">bug 91410</a>
from <span class="vcard"><a class="email" href="mailto:jani.nikula@intel.com" title="Jani Nikula <jani.nikula@intel.com>"> <span class="fn">Jani Nikula</span></a>
</span></b>
<pre>We have the function to query cdclk frequency because the audio registers em4/5
are lost if the display power domains go to power save. If my memory serves me
right the function to query cdclk frequency predates the ability to change
cdclk frequency. It's likely the audio driver only queries cdclk whenever the
em4/5 registers may have been lost, and we don't communicate cdclk changes.
Sadly, there's no dmesg with drm.debug=14 to see if there actually are any
cdclk changes in the cases in question, or if that's just another theoretical
case I came up in addition!
I guess we should also do
diff --git a/drivers/gpu/drm/i915/intel_audio.c
b/drivers/gpu/drm/i915/intel_audio.c
index 56ba8765816e..1063108a9bab 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -624,17 +624,11 @@ static void
i915_audio_component_codec_wake_override(struct device *dev,
static int i915_audio_component_get_cdclk_freq(struct device *dev)
{
struct drm_i915_private *dev_priv = dev_to_i915(dev);
- int ret;
if (WARN_ON_ONCE(!HAS_DDI(dev_priv)))
return -ENODEV;
- intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
- ret = dev_priv->display.get_display_clock_speed(dev_priv->dev);
-
- intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO);
-
- return ret;
+ return dev_priv->cdclk_freq;
}
static int i915_audio_component_sync_audio_rate(struct device *dev,</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>