All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Acquire intel_runtime_pm for HD-Audio registers
@ 2016-07-09 10:05 Chris Wilson
  2016-07-09 10:48 ` ✗ Ro.CI.BAT: failure for " Patchwork
  2016-07-12 13:10 ` [PATCH] " Mika Kuoppala
  0 siblings, 2 replies; 9+ messages in thread
From: Chris Wilson @ 2016-07-09 10:05 UTC (permalink / raw)
  To: intel-gfx; +Cc: Takashi Iwai

On Haswell/Broadwell, the HD-Audio block is inside the HDMI/display
power well and so the sna-hda audio codec acquires the display power
well while it is operational. However, Skylake separates the powerwells
again, and so we must remember to acquire the rpm wakeref for ourselves
whilst tweaking the registers.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96214
Fixes: 03b135cebc47 "ALSA: hda - remove dependency on i915 power well for SKL")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Libin Yang <libin.yang@intel.com>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Marius Vlad <marius.c.vlad@intel.com>
---
 drivers/gpu/drm/i915/intel_audio.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
index 5d5f6bc10e85..eedcce6478ef 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -600,6 +600,8 @@ static void i915_audio_component_codec_wake_override(struct device *dev,
 	if (!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv))
 		return;
 
+	intel_runtime_pm_get(dev_priv);
+
 	/*
 	 * Enable/disable generating the codec wake signal, overriding the
 	 * internal logic to generate the codec wake to controller.
@@ -615,6 +617,8 @@ static void i915_audio_component_codec_wake_override(struct device *dev,
 		I915_WRITE(HSW_AUD_CHICKENBIT, tmp);
 		usleep_range(1000, 1500);
 	}
+
+	intel_runtime_pm_put(dev_priv);
 }
 
 /* Get CDCLK in kHz  */
@@ -648,6 +652,8 @@ static int i915_audio_component_sync_audio_rate(struct device *dev,
 	    !IS_HASWELL(dev_priv))
 		return 0;
 
+	intel_runtime_pm_get(dev_priv);
+
 	mutex_lock(&dev_priv->av_mutex);
 	/* 1. get the pipe */
 	intel_encoder = dev_priv->dig_port_map[port];
@@ -698,6 +704,7 @@ static int i915_audio_component_sync_audio_rate(struct device *dev,
 
  unlock:
 	mutex_unlock(&dev_priv->av_mutex);
+	intel_runtime_pm_put(dev_priv);
 	return err;
 }
 
-- 
2.8.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-07-16  7:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-09 10:05 [PATCH] drm/i915: Acquire intel_runtime_pm for HD-Audio registers Chris Wilson
2016-07-09 10:48 ` ✗ Ro.CI.BAT: failure for " Patchwork
2016-07-12 13:10 ` [PATCH] " Mika Kuoppala
2016-07-12 13:16   ` Chris Wilson
2016-07-13 14:01     ` Marius Vlad
2016-07-14 14:34       ` Chris Wilson
2016-07-15  2:40         ` Yang, Libin
2016-07-15  8:44           ` Chris Wilson
2016-07-16  7:06             ` Yang, Libin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.