diff options
author | msmith <msmith@FreeBSD.org> | 2001-07-27 09:01:13 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2001-07-27 09:01:13 +0000 |
commit | 0d733d6fa5b6b7a9ce6eabdcbbd909c40a1a5e26 (patch) | |
tree | b098541149a707ffaf5e4f032c03be1b8bcf7d3f /sys/dev/acpica/acpi_timer.c | |
parent | 99e02098701c38804a815ecfa8ce48ab4bbb4c4a (diff) | |
download | FreeBSD-src-0d733d6fa5b6b7a9ce6eabdcbbd909c40a1a5e26.zip FreeBSD-src-0d733d6fa5b6b7a9ce6eabdcbbd909c40a1a5e26.tar.gz |
The ACPI timer register corruption problem is resolved in the PIIX4
starting with the PIIX4M. Restrict enabling the workaround to those
chips known to be buggy.
Diffstat (limited to 'sys/dev/acpica/acpi_timer.c')
-rw-r--r-- | sys/dev/acpica/acpi_timer.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/acpica/acpi_timer.c b/sys/dev/acpica/acpi_timer.c index 0ed8d82..4c87b09 100644 --- a/sys/dev/acpica/acpi_timer.c +++ b/sys/dev/acpica/acpi_timer.c @@ -82,7 +82,8 @@ static int acpi_timer_flags; * ] software for time critical events and delays. * ] * ] Workaround: Read the register twice and compare. - * ] Status: This will not be fixed in the PIIX4 or PIIX4E. + * ] Status: This will not be fixed in the PIIX4 or PIIX4E, it is fixed + * ] in the PIIX4M. * * The counter is in other words not latched to the PCI bus clock when * read. Notice the workaround isn't: We need to read until we have @@ -210,8 +211,8 @@ acpi_timer_attach(device_t dev) } /* - * Look at PCI devices as they go past, and if we detect a PIIX4, set - * the PIIX_WAR flag. + * Look at PCI devices as they go past, and if we detect a PIIX4 older than + * the PIIX4M, set the PIIX_WAR flag. * * XXX do we know that other timecounters work? Interesting question. */ @@ -219,7 +220,8 @@ static int acpi_timer_pci_probe(device_t dev) { if ((pci_get_vendor(dev) == 0x8086) && - (pci_get_device(dev) == 0x7113)) { + (pci_get_device(dev) == 0x7113) && + (pci_get_revid(dev) < 0x03)) { acpi_timer_flags |= TFLAG_NEED_PIIX_WAR; device_printf(acpi_timer_dev, "enabling PIIX4 timer workaround\n"); } |