[alsa-devel] [PATCH] ALSA: hda - Add DeviceID for Haswell HDA

Takashi Iwai tiwai at suse.de
Mon Jul 16 10:40:49 CEST 2012


At Fri, 13 Jul 2012 19:48:22 +0200,
Jaroslav Kysela wrote:
> 
> Date 13.6.2012 08:46, Takashi Iwai wrote:
> > At Wed, 13 Jun 2012 10:23:51 +0800,
> > Wang Xingchao wrote:
> >>
> >> this patch add proper id for Haswell HDA Controller.
> >>
> >> Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
> > 
> > Oh, now ID number decreases to 0xxx? :)
> > 
> > While we are on this: could you verify whether position_fix=4 (combo)
> > options works for Haswell?  In this mode, LPIB is used for playback
> > positioning while POS buffer is used for capture. 
> > 
> > Seth (Cc'ed) figured out that this mode works better than the default
> > (usually POS buf both for playback and capture) on the recent Intel
> > controller chips, so I guess it'd be applied to Haswell, too.
> 
> The combo works OK for the Haswell. I think that the patch should be
> applied with the HDMI ID patch "[PATCH] ALSA: hda - add Haswell HDMI pci
> id".
> 
> Acked-by: Jaroslav Kysela <perex at perex.cz>
> 
> But it seems that the HDA bridge (8086:0c0c) with the HDMI codecs is
> detected as first in the PCI probe in this system, which is not ideal.
> So the card0 is HDMI only and card1 is analog:
> 
> 
> !Soundcards recognised by ALSA
> !!-----------------------------
> 
>  0 [PCH            ]: HDA-Intel - HDA Intel PCH
>                       HDA Intel PCH at 0xc2820000 irq 11
>  1 [PCH_1          ]: HDA-Intel - HDA Intel PCH
>                       HDA Intel PCH at 0xc2824000 irq 11
> 
> 
> !!PCI Soundcards installed in the system
> !!--------------------------------------
> 
> 00:03.0 Audio device: Intel Corporation Device 0c0c (rev 01)
> 00:1b.0 Audio device: Intel Corporation Device 8c20 (rev 01)
> 
> 
> !!Advanced information - PCI Vendor/Device/Subsystem ID's
> !!-------------------------------------------------------
> 
> 00:03.0 0403: 8086:0c0c (rev 01)
> 	Subsystem: 8086:2010
> --
> 00:1b.0 0403: 8086:8c20 (rev 01)
> 	Subsystem: 8086:7270
> 
> 
> Perhaps, we may add also some code to penalize the HDMI only HDA bridges
> and allocate these cards on indexes 1+ by default (implement
> AZX_DCAPS_INDEX1) . Comments? I'll prepare a patch upon an agreement.

Having index=0 for analog would be nice in general, but I'm afraid
that it isn't always safe in the case of HD-audio (depending on the
implementation, though, of course): 

- BIOS may disable the analog PCI part, e.g. if a device has only
  HDMI/DP, or vice versa.

- There are already devices showing the same problem, e.g. AMD
  on-board with AMD D-GPU, and users may have already added index
  option for such.

IMO, we should provide a mechanism to advertise the preferred
configuration from the driver side without fiddling the index.
For example, exposing an info bit that this is digital-I/O only card,
and let alsa-lib choose another one as default (unless explicitly
specified).


thanks,

Takashi

> 						Jaroslav
> 
> > 
> > 
> > thanks,
> > 
> > Takashi
> > 
> >> ---
> >>  sound/pci/hda/hda_intel.c |    5 +++++
> >>  1 file changed, 5 insertions(+)
> >>
> >> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> >> index 2b6392b..f530c40 100644
> >> --- a/sound/pci/hda/hda_intel.c
> >> +++ b/sound/pci/hda/hda_intel.c
> >> @@ -151,6 +151,7 @@ MODULE_SUPPORTED_DEVICE("{{Intel, ICH6},"
> >>  			 "{Intel, CPT},"
> >>  			 "{Intel, PPT},"
> >>  			 "{Intel, LPT},"
> >> +			 "{Intel, HPT},"
> >>  			 "{Intel, PBG},"
> >>  			 "{Intel, SCH},"
> >>  			 "{ATI, SB450},"
> >> @@ -3253,6 +3254,10 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
> >>  	{ PCI_DEVICE(0x8086, 0x8c20),
> >>  	  .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_SCH_SNOOP |
> >>  	  AZX_DCAPS_BUFSIZE},
> >> +	/* Haswell */
> >> +	{ PCI_DEVICE(0x8086, 0x0c0c),
> >> +	  .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_SCH_SNOOP |
> >> +	  AZX_DCAPS_BUFSIZE},
> >>  	/* SCH */
> >>  	{ PCI_DEVICE(0x8086, 0x811b),
> >>  	  .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_SCH_SNOOP |
> >> -- 
> >> 1.7.9.5
> >>
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel at alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> > 
> 
> 
> -- 
> Jaroslav Kysela <perex at perex.cz>
> Linux Kernel Sound Maintainer
> ALSA Project; Red Hat, Inc.
> 
> 


More information about the Alsa-devel mailing list