[Intel-gfx] FW: [PATCH] drm: i915: Fix audio issue on BXT

Sharma, Shashank shashank.sharma at intel.com
Thu Jan 4 06:23:29 UTC 2018


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 at intel.com>
>>>
>>> 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 at intel.com>
>>> ---
>>>   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 at intel.com>

- 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 at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx



More information about the Intel-gfx mailing list