svn commit: r213302 - head/sys/dev/acpica

Alexander Motin mav at FreeBSD.org
Thu Sep 30 16:23:01 UTC 2010


Author: mav
Date: Thu Sep 30 16:23:01 2010
New Revision: 213302
URL: http://svn.freebsd.org/changeset/base/213302

Log:
  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.

Modified:
  head/sys/dev/acpica/acpi_hpet.c

Modified: head/sys/dev/acpica/acpi_hpet.c
==============================================================================
--- head/sys/dev/acpica/acpi_hpet.c	Thu Sep 30 16:09:52 2010	(r213301)
+++ head/sys/dev/acpica/acpi_hpet.c	Thu Sep 30 16:23:01 2010	(r213302)
@@ -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");
 
@@ -492,6 +493,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
 	 * and/or use legacy_route. Legacy_route mode work on both.


More information about the svn-src-all mailing list