[alsa-devel] [PATCH 1/1] drm/i915/audio: apply SKL codec wake up patch to BXT
From: "Lu, Han" han.lu@intel.com
Signed-off-by: Lu, Han han.lu@intel.com
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 63d4706..8310bf3 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -591,7 +591,8 @@ static void i915_audio_component_codec_wake_override(struct device *dev, struct drm_i915_private *dev_priv = dev_to_i915(dev); u32 tmp;
- if (!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv)) + if (!IS_SKYLAKE(dev_priv) && !IS_BROXTON(dev_priv) && + !IS_KABYLAKE(dev_priv)) return;
/*
On Thu, 19 Nov 2015, han.lu@intel.com wrote:
From: "Lu, Han" han.lu@intel.com
Signed-off-by: Lu, Han han.lu@intel.com
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 63d4706..8310bf3 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -591,7 +591,8 @@ static void i915_audio_component_codec_wake_override(struct device *dev, struct drm_i915_private *dev_priv = dev_to_i915(dev); u32 tmp;
- if (!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv))
- if (!IS_SKYLAKE(dev_priv) && !IS_BROXTON(dev_priv) &&
!IS_KABYLAKE(dev_priv))
How about if (INTEL_INFO(dev_priv)->gen < 9)?
BR, Jani.
return;
/*
On Thu, 19 Nov 2015, Jani Nikula jani.nikula@intel.com wrote:
On Thu, 19 Nov 2015, han.lu@intel.com wrote:
From: "Lu, Han" han.lu@intel.com
Signed-off-by: Lu, Han han.lu@intel.com
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 63d4706..8310bf3 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -591,7 +591,8 @@ static void i915_audio_component_codec_wake_override(struct device *dev, struct drm_i915_private *dev_priv = dev_to_i915(dev); u32 tmp;
- if (!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv))
- if (!IS_SKYLAKE(dev_priv) && !IS_BROXTON(dev_priv) &&
!IS_KABYLAKE(dev_priv))
How about if (INTEL_INFO(dev_priv)->gen < 9)?
Oh, and I guess we also wonder why this is only relevant for the latest platforms?
BR, Jani.
return;
/*
On Thu, 19 Nov 2015 10:09:01 +0100, Jani Nikula wrote:
On Thu, 19 Nov 2015, Jani Nikula jani.nikula@intel.com wrote:
On Thu, 19 Nov 2015, han.lu@intel.com wrote:
From: "Lu, Han" han.lu@intel.com
Signed-off-by: Lu, Han han.lu@intel.com
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 63d4706..8310bf3 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -591,7 +591,8 @@ static void i915_audio_component_codec_wake_override(struct device *dev, struct drm_i915_private *dev_priv = dev_to_i915(dev); u32 tmp;
- if (!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv))
- if (!IS_SKYLAKE(dev_priv) && !IS_BROXTON(dev_priv) &&
!IS_KABYLAKE(dev_priv))
How about if (INTEL_INFO(dev_priv)->gen < 9)?
Oh, and I guess we also wonder why this is only relevant for the latest platforms?
My understanding is that it's a workaround specific to HSW/BDW. It's issued only during the audio controller initialization and at the resume. But I never know why it's needed, it's a black magic :)
Takashi
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Thursday, November 19, 2015 6:29 PM To: Nikula, Jani Cc: Lu, Han; daniel.vetter@ffwll.ch; intel-gfx@lists.freedesktop.org; libin.yang@linux.intel.com; mengdong.lin@linux.intel.com; han.lu@linux.intel.com; alsa-devel@alsa-project.org Subject: Re: [PATCH 1/1] drm/i915/audio: apply SKL codec wake up patch to BXT
On Thu, 19 Nov 2015 10:09:01 +0100, Jani Nikula wrote:
On Thu, 19 Nov 2015, Jani Nikula jani.nikula@intel.com wrote:
On Thu, 19 Nov 2015, han.lu@intel.com wrote:
From: "Lu, Han" han.lu@intel.com
Signed-off-by: Lu, Han han.lu@intel.com
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 63d4706..8310bf3 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -591,7 +591,8 @@ static void
i915_audio_component_codec_wake_override(struct device *dev,
struct drm_i915_private *dev_priv = dev_to_i915(dev); u32 tmp;
- if (!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv))
- if (!IS_SKYLAKE(dev_priv) && !IS_BROXTON(dev_priv) &&
!IS_KABYLAKE(dev_priv))
How about if (INTEL_INFO(dev_priv)->gen < 9)?
Oh, and I guess we also wonder why this is only relevant for the latest platforms?
My understanding is that it's a workaround specific to HSW/BDW. It's issued only during the audio controller initialization and at the resume. But I never know why it's needed, it's a black magic :)
Takashi
Sorry, I should have made it more clear. For SKL we added a patch (commit 632f3ab95fe2ffebf09969a57ab21), in order to enable codec wakeup override signal, to allow re-enumeration of the controller on SKL after resume from low power state. In SKL, HDMI/DP codec and PCH HD Audio Controller are in different power wells, so it's necessary to reset display audio codecs when power well on, otherwise display audio codecs will disappear when resume from low power state. Reset steps when power on: enable codec wakeup -> azx_init_chip() -> disable codec wakeup Since the power well design didn't change from SKL to BXT, we need to apply the workaround to BXT also. I'll re-submit the patch with these info added on.
Regards, Han Lu
participants (4)
-
han.luļ¼ intel.com
-
Jani Nikula
-
Lu, Han
-
Takashi Iwai