1 | Index: VoodooTSCSync.cpp␊ |
2 | ===================================================================␊ |
3 | --- VoodooTSCSync.cpp␉(revision 2)␊ |
4 | +++ VoodooTSCSync.cpp␉(working copy)␊ |
5 | @@ -27,12 +27,32 @@␊ |
6 | ␉return true;␊ |
7 | }␊ |
8 | ␊ |
9 | +static IOPMPowerState powerStates[2] = {␊ |
10 | + {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},␊ |
11 | + {1, kIOPMPowerOn, kIOPMPowerOn, kIOPMPowerOn, 0, 0, 0, 0, 0, 0, 0, 0}␊ |
12 | +};␊ |
13 | +␊ |
14 | +IOReturn org_voodoo_driver_VoodooTSCSync::setPowerState(unsigned long powerStateOrdinal, IOService *whatDevice ) {␊ |
15 | + if (powerStateOrdinal)␊ |
16 | + this->doTSC();␊ |
17 | + return IOPMAckImplied;␊ |
18 | +}␊ |
19 | +␊ |
20 | +void org_voodoo_driver_VoodooTSCSync::stop(IOService *provider)␊ |
21 | +{␊ |
22 | + PMstop();␊ |
23 | + super::stop(provider);␊ |
24 | +}␊ |
25 | +␊ |
26 | +␊ |
27 | bool org_voodoo_driver_VoodooTSCSync::start(IOService *provider)␊ |
28 | ␊ |
29 | {␉␊ |
30 | ␉if (!super::start(provider)){ return false; }␊ |
31 | ␉countCalled = 0;␊ |
32 | -␉this->doTSC();␊ |
33 | + PMinit();␊ |
34 | + registerPowerDriver(this, powerStates, 2);␊ |
35 | + provider->joinPMtree(this);␊ |
36 | ␉return true;␊ |
37 | ␉␊ |
38 | }␊ |
39 | Index: VoodooTSCSync.h␊ |
40 | ===================================================================␊ |
41 | --- VoodooTSCSync.h␉(revision 2)␊ |
42 | +++ VoodooTSCSync.h␉(working copy)␊ |
43 | @@ -42,4 +42,7 @@␊ |
44 | ␊ |
45 | virtual bool init(OSDictionary *dictionary = 0);␊ |
46 | virtual bool start(IOService *provider);␊ |
47 | + virtual void stop(IOService *provider);␊ |
48 | + virtual IOReturn setPowerState(unsigned long powerStateOrdinal, IOService *whatDevice);␊ |
49 | +␊ |
50 | };␊ |
51 |