HDA controllers and MSI support.

Paul B. Mahol onemda at gmail.com
Fri Oct 24 20:48:45 UTC 2008


On 10/24/08, Alexander Motin <mav at freebsd.org> wrote:
> Hi.
>
> I have tried and found that my ICH8-based system successfully supports
> Message Signaled Interrupts on HDA controller. It allows to avoid
> interrupt sharing and in theory gives some performance benefits.
>
> It is now disabled in driver by default, but can be enabled via
> hint.hdac.%d.msi device.hints control. You can see that MSI is in use if
> your hdacX device uses interrupt vector above 255.
>
> I am thinking, shouldn't we enable this feature by default?
>
> There should be no problem with both supporting and nonsupporting
> hardware. There could be only problems with broken hardware declaring
> fake features. So I would like to know, is there any of such cases for
> HDA hardware or not?

It works for me:

> vmstat -i
interrupt                          total       rate
irq1: atkbd0                       11234          9
irq9: acpi0                         1532          1
irq12: psm0                        81372         71
irq14: ata0                            1          0
irq16: vgapci0                    175701        153
irq17: ndis0+                       8240          7
cpu0: timer                      2286240       1998
irq256: hdac0                      99566         87
cpu1: timer                      2286004       1998
Total                            4949890       4326

hdac0 at pci0:0:27:0:      class=0x040300 card=0x30a2103c chip=0x27d88086
rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801G (ICH7 Family) High Definition Audio'
    class      = multimedia
    cap 01[50] = powerspec 2  supports D0 D3  current D0
    cap 05[60] = MSI supports 1 message, 64 bit enabled with 1 message
    cap 10[70] = PCI-Express 1 type 0

hdac0: <Intel 82801G High Definition Audio Controller> mem
0xf4580000-0xf4583fff irq 16 at device 27.0 on pci0
hdac0: HDA Driver Revision: 20081013_0113
hdac0: [ITHREAD]
hdac0: HDA Codec #0: Analog Devices AD1981HD
hdac0: HDA Codec #1: Lucent/Agere Systems (Unknown)
pcm0: <HDA Analog Devices AD1981HD PCM #0> at cad 0 nid 1 on hdac0


More information about the freebsd-multimedia mailing list