Re: FW: [PATCH] drm: i915: Fix audio issue on BXT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Regards

Shashank


On 1/4/2018 11:40 AM, Sharma, Shashank wrote:
On Wed, Jan 03, 2018 at 08:31:10PM +0000, Pandiyan, Dhinakaran wrote:
On Thu, 2018-01-04 at 00:48 +0530, Gaurav K Singh wrote:
From: Gaurav Singh <gaurav.k.singh@xxxxxxxxx>

On Apollolake, with stress test warm reboot, audio card was not
getting enumerated after reboot. This was a
The problem looks similar to
https://lists.freedesktop.org/archives/intel-gfx/2017-October/144495.h
tml

although the proposed solutions are vastly different. I have Cc'd some
more people.

spurious issue happening on Apollolake. HW codec and HD audio
controller link was going out of sync for which there was a fix in
i915 driver but was not getting invoked for BXT. Extending this fix
to BXT as well.

Tested on apollolake chromebook by stress test warm reboot with 2500
iterations.

Signed-off-by: Gaurav K Singh <gaurav.k.singh@xxxxxxxxx>
---
  drivers/gpu/drm/i915/intel_audio.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_audio.c
b/drivers/gpu/drm/i915/intel_audio.c
index f1502a0188eb..c71c04e1c3f6 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -729,7 +729,7 @@ static void i915_audio_component_codec_wake_override(struct device *kdev,
  	struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
  	u32 tmp;
- if (!IS_GEN9_BC(dev_priv))
+	if (!IS_GEN9_BC(dev_priv) && !IS_BROXTON(dev_priv))
IS_GEN9()? GLK might need this too.
if GLK need there is the possibility of CNL also needing it...
So not sure where to stop.

Also looking to the original patch that introduced this function, commit '632f3ab95fe2 ("drm/i915/audio: add codec wakeup override enabled/disable callback")'

it tells that the reason was:
"In SKL, HDMI/DP codec and PCH HD Audio Controller are in different p$ wells, so it's necessary to reset display audio codecs when power we$ otherwise display audio codecs will disappear when resume from low p$ state."

Is this the case here on BXT?
I think this is valid for all GEN9 displays, because HW codec's power control is with display engine only. The scenario which this patch is going to cover is a possible race during boot-up:
- display probe happens, first (or second) display modeset is in progress.
- meanwhile audio probe happens in parallel, audio driver is trying to probe HDMI audio codec. - codec's power well is under display's control, and there is a chance that while modeset, display would have disabled power wells during disable sequence, so the codec can't be probed. - now audio driver needs a way, to enable power using I915 driver, so that it can probe and enable codec IIRC component framework was added to solve this problem only, so this situation is valid for any platform where HD audio codec depends on display power well, so I guess this should go for GLK too.

Acked-by: Shashank Sharma <shashank.sharma@xxxxxxxxx>

- Shashank
Another interesting thing I noticed on Spec when searching for this bit was that this bit is related to an workaround on SKL/KBL/CFL... no mention to BXT.

"This workaround is needed for an HW issue in SKL and KBL in which HW codec and HD audio controller link was going out of sync."

Thanks,
Rodrigo.


  		return;
i915_audio_component_get_power(kdev);
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux