Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Apr 2004 17:48:17 -0700 (PDT)
From:      Nate Lawson <njl@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/acpica acpi_timer.c
Message-ID:  <200404210048.i3L0mHid048001@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
njl         2004/04/20 17:48:17 PDT

  FreeBSD src repository

  Modified files:
    sys/dev/acpica       acpi_timer.c 
  Log:
  Fix several bugs where 32-bit timers and wraparound were not properly
  supported.  Symptoms of this bug included unnecessary use of ACPI-safe
  and a dmesg that has deltas of about 2^24:
  
      ACPI timer looks BAD  min = 2, max = 16777206, width = 16777204
      ACPI timer looks BAD  min = 2, max = 7, width = 5
      ACPI timer looks GOOD min = 4, max = 5, width = 1
      ACPI timer looks BAD  min = 2, max = 16777206, width = 16777204
      ACPI timer looks BAD  min = 2, max = 7, width = 5
      ACPI timer looks BAD  min = 2, max = 16777210, width = 16777208
      ACPI timer looks BAD  min = 4, max = 16777189, width = 16777185
      ACPI timer looks GOOD min = 4, max = 5, width = 1
      ACPI timer looks BAD  min = 2, max = 7, width = 5
      ACPI timer looks BAD  min = 4, max = 16777189, width = 16777185
  
  To fix this:
  * Use a 32 bit timecounter mask when the timer is 32 bits.
  * In test_counter(), use the acpi_TimerDelta function which handles 24/32
    bit timers and wraparound.
  
  Miscellaneous fixes:
  * Use C99 initializers for timecounter struct.
  * Use u_int and uint32_t where appropriate instead of unsigned.
  * Remove whitespace-only lines
  * Remove the old PIIX4 PCI workaround.  The timecounter testing code has
    been in use for long enough to prove it's functional.
  
  Revision  Changes    Path
  1.29      +26 -110   src/sys/dev/acpica/acpi_timer.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404210048.i3L0mHid048001>