[alsa-devel] [PATCH] ALSA: hda - using POS_FIX_LPIB on Broadwell HDMI Audio

Lin, Mengdong mengdong.lin at intel.com
Mon May 12 10:22:13 CEST 2014


> -----Original Message-----
> From: Takashi Iwai [mailto:tiwai at suse.de]
> Sent: Friday, May 09, 2014 6:20 PM
> To: Lin, Mengdong
> Cc: David Henningsson; Yang, Libin; anssi.hannula at iki.fi;
> alsa-devel at alsa-project.org; Pierre-Louis Bossart
> Subject: Re: [alsa-devel] [PATCH] ALSA: hda - using POS_FIX_LPIB on Broadwell
> HDMI Audio
> 
> At Fri, 9 May 2014 10:08:19 +0000,
> Lin, Mengdong wrote:
> >
> > Hi,
> >
> > We found the Broadwell HDMI audio regression is introduced by this patch:
> >
> > commit dcb32ecd9a533f47ab652c5c5680bc50a7a822cd
> > Author: Anssi Hannula <anssi.hannula at iki.fi>
> > Date: Tue Apr 8 12:36:42 2014 +0300
> > ALSA: hda - Do not assign streams in reverse order
> >
> > We'll further check the root cause.
> > Since this patch seems only affect the stream ID. Actually Intel GPU tool only
> find the stream ID is changed by this patch.
> >
> > In addition, Haswell HDMI audio is not affected and works well. It seems
> there is HW behavior difference between HSW and BDW.
> 
> Thanks for spotting out!
> 
> This sounds like a weird hardware bug of BDW.  If any, we'd need to introduce
> a flag indicating flipping this  lookup behavior depending on the chip.

In the display HD-A controller of HSW/BDW, there are 3 sets of stream descriptors registers which controls the DMA engines to transfer audio data over HD-A link:
set #0: 0x80 ~ 0x9c SD0CTL ~ SD0BDPU
set #1: 0xa0 ~ 0xbc SD1CTL ~ SD1BDPU
set #2: 0xc0 ~ 0xdc SD2CTL ~ SD2BDPU

Test shows that
On HSW, DMA update on all 3 sets of registers are okay.
On BDW, DMA update on set #1 and #2 are okay, but is buggy on set #0. Since the three sets of registers have the same definition according to spec and driver behavior is also same, it seems to be a HW issue.

Maybe we'll have to use the original reverse lookup order for BDW HDMI/DP audio.

Thanks
Mengdong




More information about the Alsa-devel mailing list