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@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@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 |
/* SCH */ { PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_SCH_SNOOP |AZX_DCAPS_BUFSIZE},
-- 1.7.9.5
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project; Red Hat, Inc.