svn commit: r302782 - in head/sys: dev/acpica i386/isa

Bruce Evans brde at optusnet.com.au
Fri Jul 15 19:12:58 UTC 2016


On Fri, 15 Jul 2016, Warner Losh wrote:

> On Fri, Jul 15, 2016 at 9:09 AM, Bruce Evans <brde at optusnet.com.au> wrote:
>> pmtimer is in i386's GENERIC, but this is probably not needed now
>
> I think it's time to relegate pmtimer to the apm power stuff and make sure that
> ACPI has the right hooks to do anything it currently isn't doing
> correctly. pmtimer
> was originally written for apm and was never really brought forward into the
> ACPI era...

I thought that pmtimer was only for apm.  Since it not mentioned in
any man page, it is not clear what it is for.  However, it is documented
in i386/conf/NOTES as "Adjust system timer at wakeup time".  According
to that, it is a bug for acpi to do its own adjustment and not use
pmtimer.  However, pmtimer only exists on i386 with isa and it doesn't
actually adjust _the_ system timer there or have any dependencies on
i386 or isa except for foot shooting.  What it actually does is:
- restore all hardware timers using blind calls between dummy device
   drivers.  This is broken if an attached driver calls an unattached
   one, but usually on x86, all the drivers are attached so this reduces
   to spelling boolean true using only 100-200 lines of driver code.
   The i386 and isa dependencies in pm are only needed to spell true
   there.  This spelling of true depends on i386 requiring isa.  That
   is: true := isa_parent_is_attached().
- restore the system (software) timer using MI code
- try to fix up callups using broken ifdefed out MI code.

The recent commit makes the comment not match the code in another way.
Now the conditon for using pmtimer is 'if (true || !acpi_is_attached())'.

Bruce


More information about the svn-src-all mailing list