| 214 May 2004. Summary of changes for version 20040514: 3 41) ACPI CA Core Subsystem: 5 6Fixed a problem where hardware GPE enable bits sometimes not set 7properly during and after GPE method execution. Result of 04/27 8changes. 9 10Removed extra "clear all GPEs" when sleeping/waking. 11 12Removed AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the 13single AcpiHwWriteGpeEnableReg. Changed a couple of calls to the 14functions above to the new AcpiEv* calls as appropriate. 15 16ACPI_OS_NAME was removed from the OS-specific headers. The 17default name is now "Microsoft Windows NT" for maximum 18compatibility. However this can be changed by modifying the 19acconfig.h file. 20 21Allow a single invocation of AcpiInstallNotifyHandler for a 22handler that traps both types of notifies (System, Device). Use 23ACPI_ALL_NOTIFY flag. 24 25Run _INI methods on ThermalZone objects. This is against the 26ACPI specification, but there is apparently ASL code in the field 27that has these _INI methods, and apparently "other" AML 28interpreters execute them. 29 30Performed a full 16/32/64 bit lint that resulted in some small 31changes. 32 33Added a sleep simulation command to the AML debugger to test 34sleep code. 35 36Code and Data Size: Current and previous core subsystem library 37sizes are shown below. These are the code and data sizes for the 38acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and 39these values do not include any ACPI driver or OSPM code. The 40debug version of the code includes the debug output trace 41mechanism and has a much larger code and data size. Note that 42these values will vary depending on the efficiency of the 43compiler and the compiler options used during generation. 44 45 Previous Release: 46 Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total 47 Debug Version: 162.9K Code, 67.0K Data, 229.9K Total 48 Current Release: 49 Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total 50 Debug Version: 163.2K Code, 67.2K Data, 230.4K Total 51 52---------------------------------------- 5327 April 2004. Summary of changes for version 20040427: 54 551) ACPI CA Core Subsystem: 56 57Completed a major overhaul of the GPE handling within ACPI CA. 58There are now three types of GPEs: wake-only, runtime-only, and 59combination wake/run. The only GPEs allowed to be combination 60wake/run are for button-style devices such as a control-method 61power button, control-method sleep button, or a notebook lid 62switch. GPEs that have an _Lxx or _Exx method and are not 63referenced by any _PRW methods are marked for "runtime" and 64hardware enabled. Any GPE that is referenced by a _PRW method is 65marked for "wake" (and disabled at runtime). However, at sleep 66time, only those GPEs that have been specifically enabled for 67wake via the AcpiEnableGpe interface will actually be hardware 68enabled. 69 70A new external interface has been added, AcpiSetGpeType(), that 71is meant to be used by device drivers to force a GPE to a 72particular type. It will be especially useful for the drivers 73for the button devices mentioned above. 74 75Completed restructuring of the ACPI CA initialization sequence so 76that default operation region handlers are installed before GPEs 77are initialized and the _PRW methods are executed. This will 78prevent errors when the _PRW methods attempt to access system 79memory or I/O space. 80 81GPE enable/disable no longer reads the GPE enable register. We 82now keep the enable info for runtime and wake separate and in the 83GPE_EVENT_INFO. We thus no longer depend on the hardware to 84maintain these bits. 85 86Always clear the wake status and fixed/GPE status bits before 87sleep, even for state S5. 88 89Improved the AML debugger output for displaying the GPE blocks 90and their current status. 91 92Added new strings for the _OSI method, of the form "Windows 2001 93SPx" where x = 0,1,2,3,4. 94 95Fixed a problem where the physical address was incorrectly 96calculated when the Load() operator was used to directly load 97from an Operation Region (vs. loading from a Field object.) Also 98added check for minimum table length for this case. 99 100Fix for multiple mutex acquisition. Restore original thread 101SyncLevel on mutex release. 102 103Added ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for 104consistency with the other fields returned. 105 106Shrunk the ACPI_GPE_EVENT_INFO structure by 40%. There is one 107such structure for each GPE in the system, so the size of this 108structure is important. 109 110CPU stack requirement reduction: Cleaned up the method execution 111and object evaluation paths so that now a parameter structure is 112passed, instead of copying the various method parameters over and 113over again. 114 115In evregion.c: Correctly exit and reenter the interpreter region 116if and only if dispatching an operation region request to a user- 117installed handler. Do not exit/reenter when dispatching to a 118default handler (e.g., default system memory or I/O handlers) 119 120 121Notes for updating drivers for the new GPE support. The 122following changes must be made to ACPI-related device drivers 123that are attached to one or more GPEs: (This information will be 124added to the ACPI CA Programmer Reference.) 125 1261) AcpiInstallGpeHandler no longer automatically enables the GPE, 127you must explicitly call AcpiEnableGpe. 1282) There is a new interface called AcpiSetGpeType. This should be 129called before enabling the GPE. Also, this interface will 130automatically disable the GPE if it is currently enabled. 1313) AcpiEnableGpe no longer supports a GPE type flag. 132 133Specific drivers that must be changed: 1341) EC driver: 135 AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED, 136AeGpeHandler, NULL); 137 AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME); 138 AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR); 139 1402) Button Drivers (Power, Lid, Sleep): 141Run _PRW method under parent device 142If _PRW exists: /* This is a control-method button */ 143 Extract GPE number and possibly GpeDevice 144 AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN); 145 AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR); 146 147For all other devices that have _PRWs, we automatically set the 148GPE type to ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically 149(wake) enabled. This must be done on a selective basis, usually 150requiring some kind of user app to allow the user to pick the 151wake devices. 152 153 154Code and Data Size: Current and previous core subsystem library 155sizes are shown below. These are the code and data sizes for the 156acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and 157these values do not include any ACPI driver or OSPM code. The 158debug version of the code includes the debug output trace 159mechanism and has a much larger code and data size. Note that 160these values will vary depending on the efficiency of the 161compiler and the compiler options used during generation. 162 163 Previous Release: 164 Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total 165 Debug Version: 161.0K Code, 66.3K Data, 227.3K Total 166 Current Release: 167 Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total 168 Debug Version: 162.9K Code, 67.0K Data, 229.9K Total 169 170 171 172----------------------------------------
|