Do not use regular interrupts on NVidia HPETs. NVidia MCP5x chipsets have

number of unexplained interrupt problems. For some reason, using HPET
interrupts there breaks HDA sound. Legacy route mode interrupts reported
to work fine there.
This commit is contained in:
Alexander Motin 2010-09-30 16:23:01 +00:00
parent ba8834a379
commit 3a2c9a26b5

View File

@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$");
#define HPET_VENDID_AMD 0x4353
#define HPET_VENDID_INTEL 0x8086
#define HPET_VENDID_NVIDIA 0x10de
ACPI_SERIAL_DECL(hpet, "ACPI HPET support");
@ -491,6 +492,12 @@ hpet_attach(device_t dev)
*/
if (vendor == HPET_VENDID_AMD)
sc->allowed_irqs = 0x00000000;
/*
* NVidia MCP5x chipsets have number of unexplained interrupt
* problems. For some reason, using HPET interrupts breaks HDA sound.
*/
if (vendor == HPET_VENDID_NVIDIA && rev <= 0x01)
sc->allowed_irqs = 0x00000000;
/*
* Neither QEMU nor VirtualBox report supported IRQs correctly.
* The only way to use HPET there is to specify IRQs manually