updated on Thu Jan 26 16:09:46 UTC 2012
[aur-mirror.git] / catalyst-old / 2.6.29.diff
blob520bdeb9fcf675af9768f9bf2a19df7b88c06edf
1 patch fglrx 9-2 aka 8.582 to work with linux 2.6.29
2 **** new version ****
4 contains files from acpica.org
6 USE AT YOUR OWN RISK
8 diff -Naurp lib/modules/fglrx/build_mod/common/lib/common/lib/modules/fglrx/build_mod/modules/fglrx/build_mod/2.6.x/Makefile lib/modules/fglrx/build_mod/2.6.x/Makefile
9 --- lib/modules/fglrx/build_mod/2.6.x/Makefile 2009-02-28 21:53:58.000000000 +0100
10 +++ lib/modules/fglrx/build_mod/2.6.x/Makefile 2009-02-28 22:24:38.000000000 +0100
11 @@ -55,7 +55,10 @@ fglrx-hdrs += firegl_public.h
12 kcl_pci.h \
13 kcl_str.h \
14 kcl_type.h \
15 - kcl_wait.h
16 + kcl_wait.h \
17 + acpica-acconfig.h \
18 + acpica-aclocal.h \
19 + acpica-acobject.h
21 drm-hdrs += drm.h drmP.h drm_os_linux.h drm_proc.h drm_compat.h
23 diff -Naurp lib/modules/fglrx/build_mod/common/lib/common/lib/modules/fglrx/build_mod/modules/fglrx/build_mod/acpica-acconfig.h lib/modules/fglrx/build_mod/acpica-acconfig.h
24 --- lib/modules/fglrx/build_mod/acpica-acconfig.h 1970-01-01 01:00:00.000000000 +0100
25 +++ lib/modules/fglrx/build_mod/acpica-acconfig.h 2009-02-28 22:24:01.000000000 +0100
26 @@ -0,0 +1,217 @@
27 +/******************************************************************************
28 + *
29 + * Name: acconfig.h - Global configuration constants
30 + *
31 + *****************************************************************************/
33 +/*
34 + * Copyright (C) 2000 - 2008, Intel Corp.
35 + * All rights reserved.
36 + *
37 + * Redistribution and use in source and binary forms, with or without
38 + * modification, are permitted provided that the following conditions
39 + * are met:
40 + * 1. Redistributions of source code must retain the above copyright
41 + * notice, this list of conditions, and the following disclaimer,
42 + * without modification.
43 + * 2. Redistributions in binary form must reproduce at minimum a disclaimer
44 + * substantially similar to the "NO WARRANTY" disclaimer below
45 + * ("Disclaimer") and any redistribution must be conditioned upon
46 + * including a substantially similar Disclaimer requirement for further
47 + * binary redistribution.
48 + * 3. Neither the names of the above-listed copyright holders nor the names
49 + * of any contributors may be used to endorse or promote products derived
50 + * from this software without specific prior written permission.
51 + *
52 + * Alternatively, this software may be distributed under the terms of the
53 + * GNU General Public License ("GPL") version 2 as published by the Free
54 + * Software Foundation.
55 + *
56 + * NO WARRANTY
57 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
58 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
59 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
60 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
61 + * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
62 + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
63 + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
64 + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
65 + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
66 + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
67 + * POSSIBILITY OF SUCH DAMAGES.
68 + */
70 +#ifndef _ACCONFIG_H
71 +#define _ACCONFIG_H
73 +/******************************************************************************
74 + *
75 + * Configuration options
76 + *
77 + *****************************************************************************/
79 +/*
80 + * ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the
81 + * ACPI subsystem. This includes the DEBUG_PRINT output
82 + * statements. When disabled, all DEBUG_PRINT
83 + * statements are compiled out.
84 + *
85 + * ACPI_APPLICATION - Use this switch if the subsystem is going to be run
86 + * at the application level.
87 + *
88 + */
90 +/*
91 + * OS name, used for the _OS object. The _OS object is essentially obsolete,
92 + * but there is a large base of ASL/AML code in existing machines that check
93 + * for the string below. The use of this string usually guarantees that
94 + * the ASL will execute down the most tested code path. Also, there is some
95 + * code that will not execute the _OSI method unless _OS matches the string
96 + * below. Therefore, change this string at your own risk.
97 + */
98 +#define ACPI_OS_NAME "Microsoft Windows NT"
100 +/* Maximum objects in the various object caches */
102 +#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */
103 +#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */
104 +#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */
105 +#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */
106 +#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */
109 + * Should the subsystem abort the loading of an ACPI table if the
110 + * table checksum is incorrect?
111 + */
112 +#define ACPI_CHECKSUM_ABORT FALSE
114 +/******************************************************************************
116 + * Subsystem Constants
118 + *****************************************************************************/
120 +/* Version of ACPI supported */
122 +#define ACPI_CA_SUPPORT_LEVEL 3
124 +/* Maximum count for a semaphore object */
126 +#define ACPI_MAX_SEMAPHORE_COUNT 256
128 +/* Maximum object reference count (detects object deletion issues) */
130 +#define ACPI_MAX_REFERENCE_COUNT 0x1000
132 +/* Size of cached memory mapping for system memory operation region */
134 +#define ACPI_SYSMEM_REGION_WINDOW_SIZE 4096
136 +/* owner_id tracking. 8 entries allows for 255 owner_ids */
138 +#define ACPI_NUM_OWNERID_MASKS 8
140 +/* Size of the root table array is increased by this increment */
142 +#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4
144 +/* Maximum number of While() loop iterations before forced abort */
146 +#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF
148 +/******************************************************************************
150 + * ACPI Specification constants (Do not change unless the specification changes)
152 + *****************************************************************************/
154 +/* Number of distinct GPE register blocks and register width */
156 +#define ACPI_MAX_GPE_BLOCKS 2
157 +#define ACPI_GPE_REGISTER_WIDTH 8
159 +/* Method info (in WALK_STATE), containing local variables and argumetns */
161 +#define ACPI_METHOD_NUM_LOCALS 8
162 +#define ACPI_METHOD_MAX_LOCAL 7
164 +#define ACPI_METHOD_NUM_ARGS 7
165 +#define ACPI_METHOD_MAX_ARG 6
167 +/* Length of _HID, _UID, _CID, and UUID values */
169 +#define ACPI_DEVICE_ID_LENGTH 0x09
170 +#define ACPI_MAX_CID_LENGTH 48
171 +#define ACPI_UUID_LENGTH 16
174 + * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
175 + */
176 +#define ACPI_OBJ_NUM_OPERANDS 8
177 +#define ACPI_OBJ_MAX_OPERAND 7
179 +/* Number of elements in the Result Stack frame, can be an arbitrary value */
181 +#define ACPI_RESULTS_FRAME_OBJ_NUM 8
184 + * Maximal number of elements the Result Stack can contain,
185 + * it may be an arbitray value not exceeding the types of
186 + * result_size and result_count (now u8).
187 + */
188 +#define ACPI_RESULTS_OBJ_NUM_MAX 255
190 +/* Names within the namespace are 4 bytes long */
192 +#define ACPI_NAME_SIZE 4
193 +#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
194 +#define ACPI_PATH_SEPARATOR '.'
196 +/* Sizes for ACPI table headers */
198 +#define ACPI_OEM_ID_SIZE 6
199 +#define ACPI_OEM_TABLE_ID_SIZE 8
201 +/* Constants used in searching for the RSDP in low memory */
203 +#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */
204 +#define ACPI_EBDA_PTR_LENGTH 2
205 +#define ACPI_EBDA_WINDOW_SIZE 1024
206 +#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */
207 +#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000
208 +#define ACPI_RSDP_SCAN_STEP 16
210 +/* Operation regions */
212 +#define ACPI_NUM_PREDEFINED_REGIONS 8
213 +#define ACPI_USER_REGION_BEGIN 0x80
215 +/* Maximum space_ids for Operation Regions */
217 +#define ACPI_MAX_ADDRESS_SPACE 255
219 +/* Array sizes. Used for range checking also */
221 +#define ACPI_MAX_MATCH_OPCODE 5
223 +/* RSDP checksums */
225 +#define ACPI_RSDP_CHECKSUM_LENGTH 20
226 +#define ACPI_RSDP_XCHECKSUM_LENGTH 36
228 +/* SMBus bidirectional buffer size */
230 +#define ACPI_SMBUS_BUFFER_SIZE 34
232 +/******************************************************************************
234 + * ACPI AML Debugger
236 + *****************************************************************************/
238 +#define ACPI_DEBUGGER_MAX_ARGS 8 /* Must be max method args + 1 */
240 +#define ACPI_DEBUGGER_COMMAND_PROMPT '-'
241 +#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'
243 +#endif /* _ACCONFIG_H */
244 diff -Naurp lib/modules/fglrx/build_mod/common/lib/common/lib/modules/fglrx/build_mod/modules/fglrx/build_mod/acpica-aclocal.h lib/modules/fglrx/build_mod/acpica-aclocal.h
245 --- lib/modules/fglrx/build_mod/acpica-aclocal.h 1970-01-01 01:00:00.000000000 +0100
246 +++ lib/modules/fglrx/build_mod/acpica-aclocal.h 2009-02-28 21:35:32.000000000 +0100
247 @@ -0,0 +1,990 @@
248 +/******************************************************************************
250 + * Name: aclocal.h - Internal data types used across the ACPI subsystem
252 + *****************************************************************************/
255 + * Copyright (C) 2000 - 2008, Intel Corp.
256 + * All rights reserved.
258 + * Redistribution and use in source and binary forms, with or without
259 + * modification, are permitted provided that the following conditions
260 + * are met:
261 + * 1. Redistributions of source code must retain the above copyright
262 + * notice, this list of conditions, and the following disclaimer,
263 + * without modification.
264 + * 2. Redistributions in binary form must reproduce at minimum a disclaimer
265 + * substantially similar to the "NO WARRANTY" disclaimer below
266 + * ("Disclaimer") and any redistribution must be conditioned upon
267 + * including a substantially similar Disclaimer requirement for further
268 + * binary redistribution.
269 + * 3. Neither the names of the above-listed copyright holders nor the names
270 + * of any contributors may be used to endorse or promote products derived
271 + * from this software without specific prior written permission.
273 + * Alternatively, this software may be distributed under the terms of the
274 + * GNU General Public License ("GPL") version 2 as published by the Free
275 + * Software Foundation.
277 + * NO WARRANTY
278 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
279 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
280 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
281 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
282 + * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
283 + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
284 + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
285 + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
286 + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
287 + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
288 + * POSSIBILITY OF SUCH DAMAGES.
289 + */
291 +#ifndef __ACLOCAL_H__
292 +#define __ACLOCAL_H__
294 +/* acpisrc:struct_defs -- for acpisrc conversion */
296 +#define ACPI_SERIALIZED 0xFF
298 +typedef u32 acpi_mutex_handle;
299 +#define ACPI_GLOBAL_LOCK (acpi_semaphore) (-1)
301 +/* Total number of aml opcodes defined */
303 +#define AML_NUM_OPCODES 0x7F
305 +/* Forward declarations */
307 +struct acpi_walk_state;
308 +struct acpi_obj_mutex;
309 +union acpi_parse_object;
311 +/*****************************************************************************
313 + * Mutex typedefs and structs
315 + ****************************************************************************/
318 + * Predefined handles for the mutex objects used within the subsystem
319 + * All mutex objects are automatically created by acpi_ut_mutex_initialize.
321 + * The acquire/release ordering protocol is implied via this list. Mutexes
322 + * with a lower value must be acquired before mutexes with a higher value.
324 + * NOTE: any changes here must be reflected in the acpi_gbl_mutex_names
325 + * table below also!
326 + */
327 +#define ACPI_MTX_INTERPRETER 0 /* AML Interpreter, main lock */
328 +#define ACPI_MTX_NAMESPACE 1 /* ACPI Namespace */
329 +#define ACPI_MTX_TABLES 2 /* Data for ACPI tables */
330 +#define ACPI_MTX_EVENTS 3 /* Data for ACPI events */
331 +#define ACPI_MTX_CACHES 4 /* Internal caches, general purposes */
332 +#define ACPI_MTX_MEMORY 5 /* Debug memory tracking lists */
333 +#define ACPI_MTX_DEBUG_CMD_COMPLETE 6 /* AML debugger */
334 +#define ACPI_MTX_DEBUG_CMD_READY 7 /* AML debugger */
336 +#define ACPI_MAX_MUTEX 7
337 +#define ACPI_NUM_MUTEX ACPI_MAX_MUTEX+1
339 +#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
340 +#ifdef DEFINE_ACPI_GLOBALS
342 +/* Debug names for the mutexes above */
344 +static char *acpi_gbl_mutex_names[ACPI_NUM_MUTEX] = {
345 + "ACPI_MTX_Interpreter",
346 + "ACPI_MTX_Namespace",
347 + "ACPI_MTX_Tables",
348 + "ACPI_MTX_Events",
349 + "ACPI_MTX_Caches",
350 + "ACPI_MTX_Memory",
351 + "ACPI_MTX_CommandComplete",
352 + "ACPI_MTX_CommandReady"
355 +#endif
356 +#endif
359 + * Predefined handles for spinlocks used within the subsystem.
360 + * These spinlocks are created by acpi_ut_mutex_initialize
361 + */
362 +#define ACPI_LOCK_GPES 0
363 +#define ACPI_LOCK_HARDWARE 1
365 +#define ACPI_MAX_LOCK 1
366 +#define ACPI_NUM_LOCK ACPI_MAX_LOCK+1
368 +/* This Thread ID means that the mutex is not in use (unlocked) */
370 +#define ACPI_MUTEX_NOT_ACQUIRED (acpi_thread_id) 0
372 +/* Table for the global mutexes */
374 +struct acpi_mutex_info {
375 + acpi_mutex mutex;
376 + u32 use_count;
377 + acpi_thread_id thread_id;
380 +/* Lock flag parameter for various interfaces */
382 +#define ACPI_MTX_DO_NOT_LOCK 0
383 +#define ACPI_MTX_LOCK 1
385 +/* Field access granularities */
387 +#define ACPI_FIELD_BYTE_GRANULARITY 1
388 +#define ACPI_FIELD_WORD_GRANULARITY 2
389 +#define ACPI_FIELD_DWORD_GRANULARITY 4
390 +#define ACPI_FIELD_QWORD_GRANULARITY 8
392 +#define ACPI_ENTRY_NOT_FOUND NULL
394 +/*****************************************************************************
396 + * Namespace typedefs and structs
398 + ****************************************************************************/
400 +/* Operational modes of the AML interpreter/scanner */
402 +typedef enum {
403 + ACPI_IMODE_LOAD_PASS1 = 0x01,
404 + ACPI_IMODE_LOAD_PASS2 = 0x02,
405 + ACPI_IMODE_EXECUTE = 0x03
406 +} acpi_interpreter_mode;
409 + * The Namespace Node describes a named object that appears in the AML.
410 + * descriptor_type is used to differentiate between internal descriptors.
412 + * The node is optimized for both 32-bit and 64-bit platforms:
413 + * 20 bytes for the 32-bit case, 32 bytes for the 64-bit case.
415 + * Note: The descriptor_type and Type fields must appear in the identical
416 + * position in both the struct acpi_namespace_node and union acpi_operand_object
417 + * structures.
418 + */
419 +struct acpi_namespace_node {
420 + union acpi_operand_object *object; /* Interpreter object */
421 + u8 descriptor_type; /* Differentiate object descriptor types */
422 + u8 type; /* ACPI Type associated with this name */
423 + u8 flags; /* Miscellaneous flags */
424 + acpi_owner_id owner_id; /* Node creator */
425 + union acpi_name_union name; /* ACPI Name, always 4 chars per ACPI spec */
426 + struct acpi_namespace_node *child; /* First child */
427 + struct acpi_namespace_node *peer; /* Peer. Parent if ANOBJ_END_OF_PEER_LIST set */
429 + /*
430 + * The following fields are used by the ASL compiler and disassembler only
431 + */
432 +#ifdef ACPI_LARGE_NAMESPACE_NODE
433 + union acpi_parse_object *op;
434 + u32 value;
435 + u32 length;
436 +#endif
439 +/* Namespace Node flags */
441 +#define ANOBJ_END_OF_PEER_LIST 0x01 /* End-of-list, Peer field points to parent */
442 +#define ANOBJ_TEMPORARY 0x02 /* Node is create by a method and is temporary */
443 +#define ANOBJ_METHOD_ARG 0x04 /* Node is a method argument */
444 +#define ANOBJ_METHOD_LOCAL 0x08 /* Node is a method local */
445 +#define ANOBJ_SUBTREE_HAS_INI 0x10 /* Used to optimize device initialization */
446 +#define ANOBJ_EVALUATED 0x20 /* Set on first evaluation of node */
448 +#define ANOBJ_IS_EXTERNAL 0x08 /* i_aSL only: This object created via External() */
449 +#define ANOBJ_METHOD_NO_RETVAL 0x10 /* i_aSL only: Method has no return value */
450 +#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* i_aSL only: Method has at least one return value */
451 +#define ANOBJ_IS_BIT_OFFSET 0x40 /* i_aSL only: Reference is a bit offset */
452 +#define ANOBJ_IS_REFERENCED 0x80 /* i_aSL only: Object was referenced */
454 +/* One internal RSDT for table management */
456 +struct acpi_internal_rsdt {
457 + struct acpi_table_desc *tables;
458 + u32 count;
459 + u32 size;
460 + u8 flags;
463 +/* Flags for above */
465 +#define ACPI_ROOT_ORIGIN_UNKNOWN (0) /* ~ORIGIN_ALLOCATED */
466 +#define ACPI_ROOT_ORIGIN_ALLOCATED (1)
467 +#define ACPI_ROOT_ALLOW_RESIZE (2)
469 +/* Predefined (fixed) table indexes */
471 +#define ACPI_TABLE_INDEX_DSDT (0)
472 +#define ACPI_TABLE_INDEX_FACS (1)
474 +struct acpi_find_context {
475 + char *search_for;
476 + acpi_handle *list;
477 + u32 *count;
480 +struct acpi_ns_search_data {
481 + struct acpi_namespace_node *node;
484 +/* Object types used during package copies */
486 +#define ACPI_COPY_TYPE_SIMPLE 0
487 +#define ACPI_COPY_TYPE_PACKAGE 1
489 +/* Info structure used to convert external<->internal namestrings */
491 +struct acpi_namestring_info {
492 + const char *external_name;
493 + const char *next_external_char;
494 + char *internal_name;
495 + u32 length;
496 + u32 num_segments;
497 + u32 num_carats;
498 + u8 fully_qualified;
501 +/* Field creation info */
503 +struct acpi_create_field_info {
504 + struct acpi_namespace_node *region_node;
505 + struct acpi_namespace_node *field_node;
506 + struct acpi_namespace_node *register_node;
507 + struct acpi_namespace_node *data_register_node;
508 + u32 bank_value;
509 + u32 field_bit_position;
510 + u32 field_bit_length;
511 + u8 field_flags;
512 + u8 attribute;
513 + u8 field_type;
516 +typedef
517 +acpi_status(*ACPI_INTERNAL_METHOD) (struct acpi_walk_state * walk_state);
520 + * Bitmapped ACPI types. Used internally only
521 + */
522 +#define ACPI_BTYPE_ANY 0x00000000
523 +#define ACPI_BTYPE_INTEGER 0x00000001
524 +#define ACPI_BTYPE_STRING 0x00000002
525 +#define ACPI_BTYPE_BUFFER 0x00000004
526 +#define ACPI_BTYPE_PACKAGE 0x00000008
527 +#define ACPI_BTYPE_FIELD_UNIT 0x00000010
528 +#define ACPI_BTYPE_DEVICE 0x00000020
529 +#define ACPI_BTYPE_EVENT 0x00000040
530 +#define ACPI_BTYPE_METHOD 0x00000080
531 +#define ACPI_BTYPE_MUTEX 0x00000100
532 +#define ACPI_BTYPE_REGION 0x00000200
533 +#define ACPI_BTYPE_POWER 0x00000400
534 +#define ACPI_BTYPE_PROCESSOR 0x00000800
535 +#define ACPI_BTYPE_THERMAL 0x00001000
536 +#define ACPI_BTYPE_BUFFER_FIELD 0x00002000
537 +#define ACPI_BTYPE_DDB_HANDLE 0x00004000
538 +#define ACPI_BTYPE_DEBUG_OBJECT 0x00008000
539 +#define ACPI_BTYPE_REFERENCE 0x00010000
540 +#define ACPI_BTYPE_RESOURCE 0x00020000
542 +#define ACPI_BTYPE_COMPUTE_DATA (ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER)
544 +#define ACPI_BTYPE_DATA (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_PACKAGE)
545 +#define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE)
546 +#define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR)
547 +#define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */
548 +#define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF
551 + * Information structure for ACPI predefined names.
552 + * Each entry in the table contains the following items:
554 + * Name - The ACPI reserved name
555 + * param_count - Number of arguments to the method
556 + * expected_return_btypes - Allowed type(s) for the return value
557 + */
558 +struct acpi_name_info {
559 + char name[ACPI_NAME_SIZE];
560 + u8 param_count;
561 + u8 expected_btypes;
565 + * Secondary information structures for ACPI predefined objects that return
566 + * package objects. This structure appears as the next entry in the table
567 + * after the NAME_INFO structure above.
569 + * The reason for this is to minimize the size of the predefined name table.
570 + */
573 + * Used for ACPI_PTYPE1_FIXED, ACPI_PTYPE1_VAR, ACPI_PTYPE2,
574 + * ACPI_PTYPE2_MIN, ACPI_PTYPE2_PKG_COUNT, ACPI_PTYPE2_COUNT
575 + */
576 +struct acpi_package_info {
577 + u8 type;
578 + u8 object_type1;
579 + u8 count1;
580 + u8 object_type2;
581 + u8 count2;
582 + u8 reserved;
585 +/* Used for ACPI_PTYPE2_FIXED */
587 +struct acpi_package_info2 {
588 + u8 type;
589 + u8 count;
590 + u8 object_type[4];
593 +/* Used for ACPI_PTYPE1_OPTION */
595 +struct acpi_package_info3 {
596 + u8 type;
597 + u8 count;
598 + u8 object_type[2];
599 + u8 tail_object_type;
600 + u8 reserved;
603 +union acpi_predefined_info {
604 + struct acpi_name_info info;
605 + struct acpi_package_info ret_info;
606 + struct acpi_package_info2 ret_info2;
607 + struct acpi_package_info3 ret_info3;
611 + * Bitmapped return value types
612 + * Note: the actual data types must be contiguous, a loop in nspredef.c
613 + * depends on this.
614 + */
615 +#define ACPI_RTYPE_ANY 0x00
616 +#define ACPI_RTYPE_NONE 0x01
617 +#define ACPI_RTYPE_INTEGER 0x02
618 +#define ACPI_RTYPE_STRING 0x04
619 +#define ACPI_RTYPE_BUFFER 0x08
620 +#define ACPI_RTYPE_PACKAGE 0x10
621 +#define ACPI_RTYPE_REFERENCE 0x20
622 +#define ACPI_RTYPE_ALL 0x3F
624 +#define ACPI_NUM_RTYPES 5 /* Number of actual object types */
626 +/*****************************************************************************
628 + * Event typedefs and structs
630 + ****************************************************************************/
632 +/* Dispatch info for each GPE -- either a method or handler, cannot be both */
634 +struct acpi_handler_info {
635 + acpi_event_handler address; /* Address of handler, if any */
636 + void *context; /* Context to be passed to handler */
637 + struct acpi_namespace_node *method_node; /* Method node for this GPE level (saved) */
640 +union acpi_gpe_dispatch_info {
641 + struct acpi_namespace_node *method_node; /* Method node for this GPE level */
642 + struct acpi_handler_info *handler;
646 + * Information about a GPE, one per each GPE in an array.
647 + * NOTE: Important to keep this struct as small as possible.
648 + */
649 +struct acpi_gpe_event_info {
650 + union acpi_gpe_dispatch_info dispatch; /* Either Method or Handler */
651 + struct acpi_gpe_register_info *register_info; /* Backpointer to register info */
652 + u8 flags; /* Misc info about this GPE */
653 + u8 gpe_number; /* This GPE */
656 +/* Information about a GPE register pair, one per each status/enable pair in an array */
658 +struct acpi_gpe_register_info {
659 + struct acpi_generic_address status_address; /* Address of status reg */
660 + struct acpi_generic_address enable_address; /* Address of enable reg */
661 + u8 enable_for_wake; /* GPEs to keep enabled when sleeping */
662 + u8 enable_for_run; /* GPEs to keep enabled when running */
663 + u8 base_gpe_number; /* Base GPE number for this register */
667 + * Information about a GPE register block, one per each installed block --
668 + * GPE0, GPE1, and one per each installed GPE Block Device.
669 + */
670 +struct acpi_gpe_block_info {
671 + struct acpi_namespace_node *node;
672 + struct acpi_gpe_block_info *previous;
673 + struct acpi_gpe_block_info *next;
674 + struct acpi_gpe_xrupt_info *xrupt_block; /* Backpointer to interrupt block */
675 + struct acpi_gpe_register_info *register_info; /* One per GPE register pair */
676 + struct acpi_gpe_event_info *event_info; /* One for each GPE */
677 + struct acpi_generic_address block_address; /* Base address of the block */
678 + u32 register_count; /* Number of register pairs in block */
679 + u8 block_base_number; /* Base GPE number for this block */
682 +/* Information about GPE interrupt handlers, one per each interrupt level used for GPEs */
684 +struct acpi_gpe_xrupt_info {
685 + struct acpi_gpe_xrupt_info *previous;
686 + struct acpi_gpe_xrupt_info *next;
687 + struct acpi_gpe_block_info *gpe_block_list_head; /* List of GPE blocks for this xrupt */
688 + u32 interrupt_number; /* System interrupt number */
691 +struct acpi_gpe_walk_info {
692 + struct acpi_namespace_node *gpe_device;
693 + struct acpi_gpe_block_info *gpe_block;
696 +struct acpi_gpe_device_info {
697 + u32 index;
698 + u32 next_block_base_index;
699 + acpi_status status;
700 + struct acpi_namespace_node *gpe_device;
703 +typedef acpi_status(*acpi_gpe_callback) (struct acpi_gpe_xrupt_info *gpe_xrupt_info,
704 + struct acpi_gpe_block_info *gpe_block, void *context);
706 +/* Information about each particular fixed event */
708 +struct acpi_fixed_event_handler {
709 + acpi_event_handler handler; /* Address of handler. */
710 + void *context; /* Context to be passed to handler */
713 +struct acpi_fixed_event_info {
714 + u8 status_register_id;
715 + u8 enable_register_id;
716 + u16 status_bit_mask;
717 + u16 enable_bit_mask;
720 +/* Information used during field processing */
722 +struct acpi_field_info {
723 + u8 skip_field;
724 + u8 field_flag;
725 + u32 pkg_length;
728 +/*****************************************************************************
730 + * Generic "state" object for stacks
732 + ****************************************************************************/
734 +#define ACPI_CONTROL_NORMAL 0xC0
735 +#define ACPI_CONTROL_CONDITIONAL_EXECUTING 0xC1
736 +#define ACPI_CONTROL_PREDICATE_EXECUTING 0xC2
737 +#define ACPI_CONTROL_PREDICATE_FALSE 0xC3
738 +#define ACPI_CONTROL_PREDICATE_TRUE 0xC4
740 +#define ACPI_STATE_COMMON \
741 + void *next; \
742 + u8 descriptor_type; /* To differentiate various internal objs */\
743 + u8 flags; \
744 + u16 value; \
745 + u16 state;
747 + /* There are 2 bytes available here until the next natural alignment boundary */
749 +struct acpi_common_state {
750 +ACPI_STATE_COMMON};
753 + * Update state - used to traverse complex objects such as packages
754 + */
755 +struct acpi_update_state {
756 + ACPI_STATE_COMMON union acpi_operand_object *object;
760 + * Pkg state - used to traverse nested package structures
761 + */
762 +struct acpi_pkg_state {
763 + ACPI_STATE_COMMON u16 index;
764 + union acpi_operand_object *source_object;
765 + union acpi_operand_object *dest_object;
766 + struct acpi_walk_state *walk_state;
767 + void *this_target_obj;
768 + u32 num_packages;
772 + * Control state - one per if/else and while constructs.
773 + * Allows nesting of these constructs
774 + */
775 +struct acpi_control_state {
776 + ACPI_STATE_COMMON u16 opcode;
777 + union acpi_parse_object *predicate_op;
778 + u8 *aml_predicate_start; /* Start of if/while predicate */
779 + u8 *package_end; /* End of if/while block */
780 + u32 loop_count; /* While() loop counter */
784 + * Scope state - current scope during namespace lookups
785 + */
786 +struct acpi_scope_state {
787 + ACPI_STATE_COMMON struct acpi_namespace_node *node;
790 +struct acpi_pscope_state {
791 + ACPI_STATE_COMMON u32 arg_count; /* Number of fixed arguments */
792 + union acpi_parse_object *op; /* Current op being parsed */
793 + u8 *arg_end; /* Current argument end */
794 + u8 *pkg_end; /* Current package end */
795 + u32 arg_list; /* Next argument to parse */
799 + * Thread state - one per thread across multiple walk states. Multiple walk
800 + * states are created when there are nested control methods executing.
801 + */
802 +struct acpi_thread_state {
803 + ACPI_STATE_COMMON u8 current_sync_level; /* Mutex Sync (nested acquire) level */
804 + struct acpi_walk_state *walk_state_list; /* Head of list of walk_states for this thread */
805 + union acpi_operand_object *acquired_mutex_list; /* List of all currently acquired mutexes */
806 + acpi_thread_id thread_id; /* Running thread ID */
810 + * Result values - used to accumulate the results of nested
811 + * AML arguments
812 + */
813 +struct acpi_result_values {
814 + ACPI_STATE_COMMON
815 + union acpi_operand_object *obj_desc[ACPI_RESULTS_FRAME_OBJ_NUM];
818 +typedef
819 +acpi_status(*acpi_parse_downwards) (struct acpi_walk_state * walk_state,
820 + union acpi_parse_object ** out_op);
822 +typedef acpi_status(*acpi_parse_upwards) (struct acpi_walk_state * walk_state);
825 + * Notify info - used to pass info to the deferred notify
826 + * handler/dispatcher.
827 + */
828 +struct acpi_notify_info {
829 + ACPI_STATE_COMMON struct acpi_namespace_node *node;
830 + union acpi_operand_object *handler_obj;
833 +/* Generic state is union of structs above */
835 +union acpi_generic_state {
836 + struct acpi_common_state common;
837 + struct acpi_control_state control;
838 + struct acpi_update_state update;
839 + struct acpi_scope_state scope;
840 + struct acpi_pscope_state parse_scope;
841 + struct acpi_pkg_state pkg;
842 + struct acpi_thread_state thread;
843 + struct acpi_result_values results;
844 + struct acpi_notify_info notify;
847 +/*****************************************************************************
849 + * Interpreter typedefs and structs
851 + ****************************************************************************/
853 +typedef acpi_status(*ACPI_EXECUTE_OP) (struct acpi_walk_state * walk_state);
855 +/*****************************************************************************
857 + * Parser typedefs and structs
859 + ****************************************************************************/
862 + * AML opcode, name, and argument layout
863 + */
864 +struct acpi_opcode_info {
865 +#if defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUG_OUTPUT)
866 + char *name; /* Opcode name (disassembler/debug only) */
867 +#endif
868 + u32 parse_args; /* Grammar/Parse time arguments */
869 + u32 runtime_args; /* Interpret time arguments */
870 + u16 flags; /* Misc flags */
871 + u8 object_type; /* Corresponding internal object type */
872 + u8 class; /* Opcode class */
873 + u8 type; /* Opcode type */
876 +union acpi_parse_value {
877 + acpi_integer integer; /* Integer constant (Up to 64 bits) */
878 + struct uint64_struct integer64; /* Structure overlay for 2 32-bit Dwords */
879 + u32 size; /* bytelist or field size */
880 + char *string; /* NULL terminated string */
881 + u8 *buffer; /* buffer or string */
882 + char *name; /* NULL terminated string */
883 + union acpi_parse_object *arg; /* arguments and contained ops */
886 +#ifdef ACPI_DISASSEMBLER
887 +#define ACPI_DISASM_ONLY_MEMBERS(a) a;
888 +#else
889 +#define ACPI_DISASM_ONLY_MEMBERS(a)
890 +#endif
892 +#define ACPI_PARSE_COMMON \
893 + union acpi_parse_object *parent; /* Parent op */\
894 + u8 descriptor_type; /* To differentiate various internal objs */\
895 + u8 flags; /* Type of Op */\
896 + u16 aml_opcode; /* AML opcode */\
897 + u32 aml_offset; /* Offset of declaration in AML */\
898 + union acpi_parse_object *next; /* Next op */\
899 + struct acpi_namespace_node *node; /* For use by interpreter */\
900 + union acpi_parse_value value; /* Value or args associated with the opcode */\
901 + u8 arg_list_length; /* Number of elements in the arg list */\
902 + ACPI_DISASM_ONLY_MEMBERS (\
903 + u8 disasm_flags; /* Used during AML disassembly */\
904 + u8 disasm_opcode; /* Subtype used for disassembly */\
905 + char aml_op_name[16]) /* Op name (debug only) */
907 +#define ACPI_DASM_BUFFER 0x00
908 +#define ACPI_DASM_RESOURCE 0x01
909 +#define ACPI_DASM_STRING 0x02
910 +#define ACPI_DASM_UNICODE 0x03
911 +#define ACPI_DASM_EISAID 0x04
912 +#define ACPI_DASM_MATCHOP 0x05
913 +#define ACPI_DASM_LNOT_PREFIX 0x06
914 +#define ACPI_DASM_LNOT_SUFFIX 0x07
915 +#define ACPI_DASM_IGNORE 0x08
918 + * Generic operation (for example: If, While, Store)
919 + */
920 +struct acpi_parse_obj_common {
921 +ACPI_PARSE_COMMON};
924 + * Extended Op for named ops (Scope, Method, etc.), deferred ops (Methods and op_regions),
925 + * and bytelists.
926 + */
927 +struct acpi_parse_obj_named {
928 + ACPI_PARSE_COMMON u8 *path;
929 + u8 *data; /* AML body or bytelist data */
930 + u32 length; /* AML length */
931 + u32 name; /* 4-byte name or zero if no name */
934 +/* This version is used by the i_aSL compiler only */
936 +#define ACPI_MAX_PARSEOP_NAME 20
938 +struct acpi_parse_obj_asl {
939 + ACPI_PARSE_COMMON union acpi_parse_object *child;
940 + union acpi_parse_object *parent_method;
941 + char *filename;
942 + char *external_name;
943 + char *namepath;
944 + char name_seg[4];
945 + u32 extra_value;
946 + u32 column;
947 + u32 line_number;
948 + u32 logical_line_number;
949 + u32 logical_byte_offset;
950 + u32 end_line;
951 + u32 end_logical_line;
952 + u32 acpi_btype;
953 + u32 aml_length;
954 + u32 aml_subtree_length;
955 + u32 final_aml_length;
956 + u32 final_aml_offset;
957 + u32 compile_flags;
958 + u16 parse_opcode;
959 + u8 aml_opcode_length;
960 + u8 aml_pkg_len_bytes;
961 + u8 extra;
962 + char parse_op_name[ACPI_MAX_PARSEOP_NAME];
965 +union acpi_parse_object {
966 + struct acpi_parse_obj_common common;
967 + struct acpi_parse_obj_named named;
968 + struct acpi_parse_obj_asl asl;
972 + * Parse state - one state per parser invocation and each control
973 + * method.
974 + */
975 +struct acpi_parse_state {
976 + u8 *aml_start; /* First AML byte */
977 + u8 *aml; /* Next AML byte */
978 + u8 *aml_end; /* (last + 1) AML byte */
979 + u8 *pkg_start; /* Current package begin */
980 + u8 *pkg_end; /* Current package end */
981 + union acpi_parse_object *start_op; /* Root of parse tree */
982 + struct acpi_namespace_node *start_node;
983 + union acpi_generic_state *scope; /* Current scope */
984 + union acpi_parse_object *start_scope;
985 + u32 aml_size;
988 +/* Parse object flags */
990 +#define ACPI_PARSEOP_GENERIC 0x01
991 +#define ACPI_PARSEOP_NAMED 0x02
992 +#define ACPI_PARSEOP_DEFERRED 0x04
993 +#define ACPI_PARSEOP_BYTELIST 0x08
994 +#define ACPI_PARSEOP_IN_STACK 0x10
995 +#define ACPI_PARSEOP_TARGET 0x20
996 +#define ACPI_PARSEOP_IN_CACHE 0x80
998 +/* Parse object disasm_flags */
1000 +#define ACPI_PARSEOP_IGNORE 0x01
1001 +#define ACPI_PARSEOP_PARAMLIST 0x02
1002 +#define ACPI_PARSEOP_EMPTY_TERMLIST 0x04
1003 +#define ACPI_PARSEOP_SPECIAL 0x10
1005 +/*****************************************************************************
1007 + * Hardware (ACPI registers) and PNP
1009 + ****************************************************************************/
1011 +struct acpi_bit_register_info {
1012 + u8 parent_register;
1013 + u8 bit_position;
1014 + u16 access_bit_mask;
1018 + * Some ACPI registers have bits that must be ignored -- meaning that they
1019 + * must be preserved.
1020 + */
1021 +#define ACPI_PM1_STATUS_PRESERVED_BITS 0x0800 /* Bit 11 */
1022 +#define ACPI_PM1_CONTROL_PRESERVED_BITS 0x0200 /* Bit 9 (whatever) */
1025 + * Register IDs
1026 + * These are the full ACPI registers
1027 + */
1028 +#define ACPI_REGISTER_PM1_STATUS 0x01
1029 +#define ACPI_REGISTER_PM1_ENABLE 0x02
1030 +#define ACPI_REGISTER_PM1_CONTROL 0x03
1031 +#define ACPI_REGISTER_PM1A_CONTROL 0x04
1032 +#define ACPI_REGISTER_PM1B_CONTROL 0x05
1033 +#define ACPI_REGISTER_PM2_CONTROL 0x06
1034 +#define ACPI_REGISTER_PM_TIMER 0x07
1035 +#define ACPI_REGISTER_PROCESSOR_BLOCK 0x08
1036 +#define ACPI_REGISTER_SMI_COMMAND_BLOCK 0x09
1038 +/* Masks used to access the bit_registers */
1040 +#define ACPI_BITMASK_TIMER_STATUS 0x0001
1041 +#define ACPI_BITMASK_BUS_MASTER_STATUS 0x0010
1042 +#define ACPI_BITMASK_GLOBAL_LOCK_STATUS 0x0020
1043 +#define ACPI_BITMASK_POWER_BUTTON_STATUS 0x0100
1044 +#define ACPI_BITMASK_SLEEP_BUTTON_STATUS 0x0200
1045 +#define ACPI_BITMASK_RT_CLOCK_STATUS 0x0400
1046 +#define ACPI_BITMASK_PCIEXP_WAKE_STATUS 0x4000 /* ACPI 3.0 */
1047 +#define ACPI_BITMASK_WAKE_STATUS 0x8000
1049 +#define ACPI_BITMASK_ALL_FIXED_STATUS (\
1050 + ACPI_BITMASK_TIMER_STATUS | \
1051 + ACPI_BITMASK_BUS_MASTER_STATUS | \
1052 + ACPI_BITMASK_GLOBAL_LOCK_STATUS | \
1053 + ACPI_BITMASK_POWER_BUTTON_STATUS | \
1054 + ACPI_BITMASK_SLEEP_BUTTON_STATUS | \
1055 + ACPI_BITMASK_RT_CLOCK_STATUS | \
1056 + ACPI_BITMASK_WAKE_STATUS)
1058 +#define ACPI_BITMASK_TIMER_ENABLE 0x0001
1059 +#define ACPI_BITMASK_GLOBAL_LOCK_ENABLE 0x0020
1060 +#define ACPI_BITMASK_POWER_BUTTON_ENABLE 0x0100
1061 +#define ACPI_BITMASK_SLEEP_BUTTON_ENABLE 0x0200
1062 +#define ACPI_BITMASK_RT_CLOCK_ENABLE 0x0400
1063 +#define ACPI_BITMASK_PCIEXP_WAKE_DISABLE 0x4000 /* ACPI 3.0 */
1065 +#define ACPI_BITMASK_SCI_ENABLE 0x0001
1066 +#define ACPI_BITMASK_BUS_MASTER_RLD 0x0002
1067 +#define ACPI_BITMASK_GLOBAL_LOCK_RELEASE 0x0004
1068 +#define ACPI_BITMASK_SLEEP_TYPE_X 0x1C00
1069 +#define ACPI_BITMASK_SLEEP_ENABLE 0x2000
1071 +#define ACPI_BITMASK_ARB_DISABLE 0x0001
1073 +/* Raw bit position of each bit_register */
1075 +#define ACPI_BITPOSITION_TIMER_STATUS 0x00
1076 +#define ACPI_BITPOSITION_BUS_MASTER_STATUS 0x04
1077 +#define ACPI_BITPOSITION_GLOBAL_LOCK_STATUS 0x05
1078 +#define ACPI_BITPOSITION_POWER_BUTTON_STATUS 0x08
1079 +#define ACPI_BITPOSITION_SLEEP_BUTTON_STATUS 0x09
1080 +#define ACPI_BITPOSITION_RT_CLOCK_STATUS 0x0A
1081 +#define ACPI_BITPOSITION_PCIEXP_WAKE_STATUS 0x0E /* ACPI 3.0 */
1082 +#define ACPI_BITPOSITION_WAKE_STATUS 0x0F
1084 +#define ACPI_BITPOSITION_TIMER_ENABLE 0x00
1085 +#define ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE 0x05
1086 +#define ACPI_BITPOSITION_POWER_BUTTON_ENABLE 0x08
1087 +#define ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE 0x09
1088 +#define ACPI_BITPOSITION_RT_CLOCK_ENABLE 0x0A
1089 +#define ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE 0x0E /* ACPI 3.0 */
1091 +#define ACPI_BITPOSITION_SCI_ENABLE 0x00
1092 +#define ACPI_BITPOSITION_BUS_MASTER_RLD 0x01
1093 +#define ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE 0x02
1094 +#define ACPI_BITPOSITION_SLEEP_TYPE_X 0x0A
1095 +#define ACPI_BITPOSITION_SLEEP_ENABLE 0x0D
1097 +#define ACPI_BITPOSITION_ARB_DISABLE 0x00
1099 +/*****************************************************************************
1101 + * Resource descriptors
1103 + ****************************************************************************/
1105 +/* resource_type values */
1107 +#define ACPI_ADDRESS_TYPE_MEMORY_RANGE 0
1108 +#define ACPI_ADDRESS_TYPE_IO_RANGE 1
1109 +#define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE 2
1111 +/* Resource descriptor types and masks */
1113 +#define ACPI_RESOURCE_NAME_LARGE 0x80
1114 +#define ACPI_RESOURCE_NAME_SMALL 0x00
1116 +#define ACPI_RESOURCE_NAME_SMALL_MASK 0x78 /* Bits 6:3 contain the type */
1117 +#define ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK 0x07 /* Bits 2:0 contain the length */
1118 +#define ACPI_RESOURCE_NAME_LARGE_MASK 0x7F /* Bits 6:0 contain the type */
1121 + * Small resource descriptor "names" as defined by the ACPI specification.
1122 + * Note: Bits 2:0 are used for the descriptor length
1123 + */
1124 +#define ACPI_RESOURCE_NAME_IRQ 0x20
1125 +#define ACPI_RESOURCE_NAME_DMA 0x28
1126 +#define ACPI_RESOURCE_NAME_START_DEPENDENT 0x30
1127 +#define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38
1128 +#define ACPI_RESOURCE_NAME_IO 0x40
1129 +#define ACPI_RESOURCE_NAME_FIXED_IO 0x48
1130 +#define ACPI_RESOURCE_NAME_RESERVED_S1 0x50
1131 +#define ACPI_RESOURCE_NAME_RESERVED_S2 0x58
1132 +#define ACPI_RESOURCE_NAME_RESERVED_S3 0x60
1133 +#define ACPI_RESOURCE_NAME_RESERVED_S4 0x68
1134 +#define ACPI_RESOURCE_NAME_VENDOR_SMALL 0x70
1135 +#define ACPI_RESOURCE_NAME_END_TAG 0x78
1138 + * Large resource descriptor "names" as defined by the ACPI specification.
1139 + * Note: includes the Large Descriptor bit in bit[7]
1140 + */
1141 +#define ACPI_RESOURCE_NAME_MEMORY24 0x81
1142 +#define ACPI_RESOURCE_NAME_GENERIC_REGISTER 0x82
1143 +#define ACPI_RESOURCE_NAME_RESERVED_L1 0x83
1144 +#define ACPI_RESOURCE_NAME_VENDOR_LARGE 0x84
1145 +#define ACPI_RESOURCE_NAME_MEMORY32 0x85
1146 +#define ACPI_RESOURCE_NAME_FIXED_MEMORY32 0x86
1147 +#define ACPI_RESOURCE_NAME_ADDRESS32 0x87
1148 +#define ACPI_RESOURCE_NAME_ADDRESS16 0x88
1149 +#define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89
1150 +#define ACPI_RESOURCE_NAME_ADDRESS64 0x8A
1151 +#define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B
1152 +#define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B
1154 +/*****************************************************************************
1156 + * Miscellaneous
1158 + ****************************************************************************/
1160 +#define ACPI_ASCII_ZERO 0x30
1162 +/*****************************************************************************
1164 + * Debugger
1166 + ****************************************************************************/
1168 +struct acpi_db_method_info {
1169 + acpi_handle main_thread_gate;
1170 + acpi_handle thread_complete_gate;
1171 + u32 *threads;
1172 + u32 num_threads;
1173 + u32 num_created;
1174 + u32 num_completed;
1176 + char *name;
1177 + u32 flags;
1178 + u32 num_loops;
1179 + char pathname[128];
1180 + char **args;
1182 + /*
1183 + * Arguments to be passed to method for the command
1184 + * Threads -
1185 + * the Number of threads, ID of current thread and
1186 + * Index of current thread inside all them created.
1187 + */
1188 + char init_args;
1189 + char *arguments[4];
1190 + char num_threads_str[11];
1191 + char id_of_thread_str[11];
1192 + char index_of_thread_str[11];
1195 +struct acpi_integrity_info {
1196 + u32 nodes;
1197 + u32 objects;
1200 +#define ACPI_DB_REDIRECTABLE_OUTPUT 0x01
1201 +#define ACPI_DB_CONSOLE_OUTPUT 0x02
1202 +#define ACPI_DB_DUPLICATE_OUTPUT 0x03
1204 +/*****************************************************************************
1206 + * Debug
1208 + ****************************************************************************/
1210 +/* Entry for a memory allocation (debug only) */
1212 +#define ACPI_MEM_MALLOC 0
1213 +#define ACPI_MEM_CALLOC 1
1214 +#define ACPI_MAX_MODULE_NAME 16
1216 +#define ACPI_COMMON_DEBUG_MEM_HEADER \
1217 + struct acpi_debug_mem_block *previous; \
1218 + struct acpi_debug_mem_block *next; \
1219 + u32 size; \
1220 + u32 component; \
1221 + u32 line; \
1222 + char module[ACPI_MAX_MODULE_NAME]; \
1223 + u8 alloc_type;
1225 +struct acpi_debug_mem_header {
1226 +ACPI_COMMON_DEBUG_MEM_HEADER};
1228 +struct acpi_debug_mem_block {
1229 + ACPI_COMMON_DEBUG_MEM_HEADER u64 user_space;
1232 +#define ACPI_MEM_LIST_GLOBAL 0
1233 +#define ACPI_MEM_LIST_NSNODE 1
1234 +#define ACPI_MEM_LIST_MAX 1
1235 +#define ACPI_NUM_MEM_LISTS 2
1237 +#endif /* __ACLOCAL_H__ */
1238 diff -Naurp lib/modules/fglrx/build_mod/common/lib/common/lib/modules/fglrx/build_mod/modules/fglrx/build_mod/acpica-acobject.h lib/modules/fglrx/build_mod/acpica-acobject.h
1239 --- lib/modules/fglrx/build_mod/acpica-acobject.h 1970-01-01 01:00:00.000000000 +0100
1240 +++ lib/modules/fglrx/build_mod/acpica-acobject.h 2009-02-28 22:24:01.000000000 +0100
1241 @@ -0,0 +1,446 @@
1243 +/******************************************************************************
1245 + * Name: acobject.h - Definition of union acpi_operand_object (Internal object only)
1247 + *****************************************************************************/
1250 + * Copyright (C) 2000 - 2008, Intel Corp.
1251 + * All rights reserved.
1253 + * Redistribution and use in source and binary forms, with or without
1254 + * modification, are permitted provided that the following conditions
1255 + * are met:
1256 + * 1. Redistributions of source code must retain the above copyright
1257 + * notice, this list of conditions, and the following disclaimer,
1258 + * without modification.
1259 + * 2. Redistributions in binary form must reproduce at minimum a disclaimer
1260 + * substantially similar to the "NO WARRANTY" disclaimer below
1261 + * ("Disclaimer") and any redistribution must be conditioned upon
1262 + * including a substantially similar Disclaimer requirement for further
1263 + * binary redistribution.
1264 + * 3. Neither the names of the above-listed copyright holders nor the names
1265 + * of any contributors may be used to endorse or promote products derived
1266 + * from this software without specific prior written permission.
1268 + * Alternatively, this software may be distributed under the terms of the
1269 + * GNU General Public License ("GPL") version 2 as published by the Free
1270 + * Software Foundation.
1272 + * NO WARRANTY
1273 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1274 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1275 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
1276 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1277 + * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1278 + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1279 + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1280 + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1281 + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1282 + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1283 + * POSSIBILITY OF SUCH DAMAGES.
1284 + */
1286 +#ifndef _ACOBJECT_H
1287 +#define _ACOBJECT_H
1289 +/* acpisrc:struct_defs -- for acpisrc conversion */
1292 + * The union acpi_operand_object is used to pass AML operands from the dispatcher
1293 + * to the interpreter, and to keep track of the various handlers such as
1294 + * address space handlers and notify handlers. The object is a constant
1295 + * size in order to allow it to be cached and reused.
1297 + * Note: The object is optimized to be aligned and will not work if it is
1298 + * byte-packed.
1299 + */
1300 +#if ACPI_MACHINE_WIDTH == 64
1301 +#pragma pack(8)
1302 +#else
1303 +#pragma pack(4)
1304 +#endif
1306 +/*******************************************************************************
1308 + * Common Descriptors
1310 + ******************************************************************************/
1313 + * Common area for all objects.
1315 + * descriptor_type is used to differentiate between internal descriptors, and
1316 + * must be in the same place across all descriptors
1318 + * Note: The descriptor_type and Type fields must appear in the identical
1319 + * position in both the struct acpi_namespace_node and union acpi_operand_object
1320 + * structures.
1321 + */
1322 +#define ACPI_OBJECT_COMMON_HEADER \
1323 + union acpi_operand_object *next_object; /* Objects linked to parent NS node */\
1324 + u8 descriptor_type; /* To differentiate various internal objs */\
1325 + u8 type; /* acpi_object_type */\
1326 + u16 reference_count; /* For object deletion management */\
1327 + u8 flags;
1328 + /*
1329 + * Note: There are 3 bytes available here before the
1330 + * next natural alignment boundary (for both 32/64 cases)
1331 + */
1333 +/* Values for Flag byte above */
1335 +#define AOPOBJ_AML_CONSTANT 0x01
1336 +#define AOPOBJ_STATIC_POINTER 0x02
1337 +#define AOPOBJ_DATA_VALID 0x04
1338 +#define AOPOBJ_OBJECT_INITIALIZED 0x08
1339 +#define AOPOBJ_SETUP_COMPLETE 0x10
1340 +#define AOPOBJ_SINGLE_DATUM 0x20
1341 +#define AOPOBJ_INVALID 0x40 /* Used if host OS won't allow an op_region address */
1343 +/******************************************************************************
1345 + * Basic data types
1347 + *****************************************************************************/
1349 +struct acpi_object_common {
1350 +ACPI_OBJECT_COMMON_HEADER};
1352 +struct acpi_object_integer {
1353 + ACPI_OBJECT_COMMON_HEADER u8 fill[3]; /* Prevent warning on some compilers */
1354 + acpi_integer value;
1358 + * Note: The String and Buffer object must be identical through the Pointer
1359 + * and length elements. There is code that depends on this.
1361 + * Fields common to both Strings and Buffers
1362 + */
1363 +#define ACPI_COMMON_BUFFER_INFO(_type) \
1364 + _type *pointer; \
1365 + u32 length;
1367 +struct acpi_object_string { /* Null terminated, ASCII characters only */
1368 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_BUFFER_INFO(char) /* String in AML stream or allocated string */
1371 +struct acpi_object_buffer {
1372 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_BUFFER_INFO(u8) /* Buffer in AML stream or allocated buffer */
1373 + u32 aml_length;
1374 + u8 *aml_start;
1375 + struct acpi_namespace_node *node; /* Link back to parent node */
1378 +struct acpi_object_package {
1379 + ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *node; /* Link back to parent node */
1380 + union acpi_operand_object **elements; /* Array of pointers to acpi_objects */
1381 + u8 *aml_start;
1382 + u32 aml_length;
1383 + u32 count; /* # of elements in package */
1386 +/******************************************************************************
1388 + * Complex data types
1390 + *****************************************************************************/
1392 +struct acpi_object_event {
1393 + ACPI_OBJECT_COMMON_HEADER acpi_semaphore os_semaphore; /* Actual OS synchronization object */
1396 +struct acpi_object_mutex {
1397 + ACPI_OBJECT_COMMON_HEADER u8 sync_level; /* 0-15, specified in Mutex() call */
1398 + u16 acquisition_depth; /* Allow multiple Acquires, same thread */
1399 + acpi_mutex os_mutex; /* Actual OS synchronization object */
1400 + acpi_thread_id thread_id; /* Current owner of the mutex */
1401 + struct acpi_thread_state *owner_thread; /* Current owner of the mutex */
1402 + union acpi_operand_object *prev; /* Link for list of acquired mutexes */
1403 + union acpi_operand_object *next; /* Link for list of acquired mutexes */
1404 + struct acpi_namespace_node *node; /* Containing namespace node */
1405 + u8 original_sync_level; /* Owner's original sync level (0-15) */
1408 +struct acpi_object_region {
1409 + ACPI_OBJECT_COMMON_HEADER u8 space_id;
1410 + struct acpi_namespace_node *node; /* Containing namespace node */
1411 + union acpi_operand_object *handler; /* Handler for region access */
1412 + union acpi_operand_object *next;
1413 + acpi_physical_address address;
1414 + u32 length;
1417 +struct acpi_object_method {
1418 + ACPI_OBJECT_COMMON_HEADER u8 method_flags;
1419 + u8 param_count;
1420 + u8 sync_level;
1421 + union acpi_operand_object *mutex;
1422 + u8 *aml_start;
1423 + ACPI_INTERNAL_METHOD implementation;
1424 + u32 aml_length;
1425 + u8 thread_count;
1426 + acpi_owner_id owner_id;
1429 +/******************************************************************************
1431 + * Objects that can be notified. All share a common notify_info area.
1433 + *****************************************************************************/
1436 + * Common fields for objects that support ASL notifications
1437 + */
1438 +#define ACPI_COMMON_NOTIFY_INFO \
1439 + union acpi_operand_object *system_notify; /* Handler for system notifies */\
1440 + union acpi_operand_object *device_notify; /* Handler for driver notifies */\
1441 + union acpi_operand_object *handler; /* Handler for Address space */
1443 +struct acpi_object_notify_common { /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
1444 +ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};
1446 +struct acpi_object_device {
1447 + ACPI_OBJECT_COMMON_HEADER
1448 + ACPI_COMMON_NOTIFY_INFO struct acpi_gpe_block_info *gpe_block;
1451 +struct acpi_object_power_resource {
1452 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO u32 system_level;
1453 + u32 resource_order;
1456 +struct acpi_object_processor {
1457 + ACPI_OBJECT_COMMON_HEADER
1458 + /* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */
1459 + u8 proc_id;
1460 + u8 length;
1461 + ACPI_COMMON_NOTIFY_INFO acpi_io_address address;
1464 +struct acpi_object_thermal_zone {
1465 +ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};
1467 +/******************************************************************************
1469 + * Fields. All share a common header/info field.
1471 + *****************************************************************************/
1474 + * Common bitfield for the field objects
1475 + * "Field Datum" -- a datum from the actual field object
1476 + * "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field
1477 + */
1478 +#define ACPI_COMMON_FIELD_INFO \
1479 + u8 field_flags; /* Access, update, and lock bits */\
1480 + u8 attribute; /* From access_as keyword */\
1481 + u8 access_byte_width; /* Read/Write size in bytes */\
1482 + struct acpi_namespace_node *node; /* Link back to parent node */\
1483 + u32 bit_length; /* Length of field in bits */\
1484 + u32 base_byte_offset; /* Byte offset within containing object */\
1485 + u32 value; /* Value to store into the Bank or Index register */\
1486 + u8 start_field_bit_offset;/* Bit offset within first field datum (0-63) */\
1487 + u8 access_bit_width; /* Read/Write size in bits (8-64) */
1489 +struct acpi_object_field_common { /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
1490 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Parent Operation Region object (REGION/BANK fields only) */
1493 +struct acpi_object_region_field {
1494 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Containing op_region object */
1497 +struct acpi_object_bank_field {
1498 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Containing op_region object */
1499 + union acpi_operand_object *bank_obj; /* bank_select Register object */
1502 +struct acpi_object_index_field {
1503 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO
1504 + /*
1505 + * No "RegionObj" pointer needed since the Index and Data registers
1506 + * are each field definitions unto themselves.
1507 + */
1508 + union acpi_operand_object *index_obj; /* Index register */
1509 + union acpi_operand_object *data_obj; /* Data register */
1512 +/* The buffer_field is different in that it is part of a Buffer, not an op_region */
1514 +struct acpi_object_buffer_field {
1515 + ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *buffer_obj; /* Containing Buffer object */
1518 +/******************************************************************************
1520 + * Objects for handlers
1522 + *****************************************************************************/
1524 +struct acpi_object_notify_handler {
1525 + ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *node; /* Parent device */
1526 + acpi_notify_handler handler;
1527 + void *context;
1530 +struct acpi_object_addr_handler {
1531 + ACPI_OBJECT_COMMON_HEADER u8 space_id;
1532 + u8 handler_flags;
1533 + acpi_adr_space_handler handler;
1534 + struct acpi_namespace_node *node; /* Parent device */
1535 + void *context;
1536 + acpi_adr_space_setup setup;
1537 + union acpi_operand_object *region_list; /* regions using this handler */
1538 + union acpi_operand_object *next;
1541 +/* Flags for address handler (handler_flags) */
1543 +#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED 0x01
1545 +/******************************************************************************
1547 + * Special internal objects
1549 + *****************************************************************************/
1552 + * The Reference object is used for these opcodes:
1553 + * Arg[0-6], Local[0-7], index_op, name_op, ref_of_op, load_op, load_table_op, debug_op
1554 + * The Reference.Class differentiates these types.
1555 + */
1556 +struct acpi_object_reference {
1557 + ACPI_OBJECT_COMMON_HEADER u8 class; /* Reference Class */
1558 + u8 target_type; /* Used for Index Op */
1559 + u8 reserved;
1560 + void *object; /* name_op=>HANDLE to obj, index_op=>union acpi_operand_object */
1561 + struct acpi_namespace_node *node; /* ref_of or Namepath */
1562 + union acpi_operand_object **where; /* Target of Index */
1563 + u32 value; /* Used for Local/Arg/Index/ddb_handle */
1566 +/* Values for Reference.Class above */
1568 +typedef enum {
1569 + ACPI_REFCLASS_LOCAL = 0, /* Method local */
1570 + ACPI_REFCLASS_ARG = 1, /* Method argument */
1571 + ACPI_REFCLASS_REFOF = 2, /* Result of ref_of() TBD: Split to Ref/Node and Ref/operand_obj? */
1572 + ACPI_REFCLASS_INDEX = 3, /* Result of Index() */
1573 + ACPI_REFCLASS_TABLE = 4, /* ddb_handle - Load(), load_table() */
1574 + ACPI_REFCLASS_NAME = 5, /* Reference to a named object */
1575 + ACPI_REFCLASS_DEBUG = 6, /* Debug object */
1577 + ACPI_REFCLASS_MAX = 6
1578 +} ACPI_REFERENCE_CLASSES;
1581 + * Extra object is used as additional storage for types that
1582 + * have AML code in their declarations (term_args) that must be
1583 + * evaluated at run time.
1585 + * Currently: Region and field_unit types
1586 + */
1587 +struct acpi_object_extra {
1588 + ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *method_REG; /* _REG method for this region (if any) */
1589 + void *region_context; /* Region-specific data */
1590 + u8 *aml_start;
1591 + u32 aml_length;
1594 +/* Additional data that can be attached to namespace nodes */
1596 +struct acpi_object_data {
1597 + ACPI_OBJECT_COMMON_HEADER acpi_object_handler handler;
1598 + void *pointer;
1601 +/* Structure used when objects are cached for reuse */
1603 +struct acpi_object_cache_list {
1604 + ACPI_OBJECT_COMMON_HEADER union acpi_operand_object *next; /* Link for object cache and internal lists */
1607 +/******************************************************************************
1609 + * union acpi_operand_object Descriptor - a giant union of all of the above
1611 + *****************************************************************************/
1613 +union acpi_operand_object {
1614 + struct acpi_object_common common;
1615 + struct acpi_object_integer integer;
1616 + struct acpi_object_string string;
1617 + struct acpi_object_buffer buffer;
1618 + struct acpi_object_package package;
1619 + struct acpi_object_event event;
1620 + struct acpi_object_method method;
1621 + struct acpi_object_mutex mutex;
1622 + struct acpi_object_region region;
1623 + struct acpi_object_notify_common common_notify;
1624 + struct acpi_object_device device;
1625 + struct acpi_object_power_resource power_resource;
1626 + struct acpi_object_processor processor;
1627 + struct acpi_object_thermal_zone thermal_zone;
1628 + struct acpi_object_field_common common_field;
1629 + struct acpi_object_region_field field;
1630 + struct acpi_object_buffer_field buffer_field;
1631 + struct acpi_object_bank_field bank_field;
1632 + struct acpi_object_index_field index_field;
1633 + struct acpi_object_notify_handler notify;
1634 + struct acpi_object_addr_handler address_space;
1635 + struct acpi_object_reference reference;
1636 + struct acpi_object_extra extra;
1637 + struct acpi_object_data data;
1638 + struct acpi_object_cache_list cache;
1640 + /*
1641 + * Add namespace node to union in order to simplify code that accepts both
1642 + * ACPI_OPERAND_OBJECTs and ACPI_NAMESPACE_NODEs. The structures share
1643 + * a common descriptor_type field in order to differentiate them.
1644 + */
1645 + struct acpi_namespace_node node;
1648 +/******************************************************************************
1650 + * union acpi_descriptor - objects that share a common descriptor identifier
1652 + *****************************************************************************/
1654 +/* Object descriptor types */
1656 +#define ACPI_DESC_TYPE_CACHED 0x01 /* Used only when object is cached */
1657 +#define ACPI_DESC_TYPE_STATE 0x02
1658 +#define ACPI_DESC_TYPE_STATE_UPDATE 0x03
1659 +#define ACPI_DESC_TYPE_STATE_PACKAGE 0x04
1660 +#define ACPI_DESC_TYPE_STATE_CONTROL 0x05
1661 +#define ACPI_DESC_TYPE_STATE_RPSCOPE 0x06
1662 +#define ACPI_DESC_TYPE_STATE_PSCOPE 0x07
1663 +#define ACPI_DESC_TYPE_STATE_WSCOPE 0x08
1664 +#define ACPI_DESC_TYPE_STATE_RESULT 0x09
1665 +#define ACPI_DESC_TYPE_STATE_NOTIFY 0x0A
1666 +#define ACPI_DESC_TYPE_STATE_THREAD 0x0B
1667 +#define ACPI_DESC_TYPE_WALK 0x0C
1668 +#define ACPI_DESC_TYPE_PARSER 0x0D
1669 +#define ACPI_DESC_TYPE_OPERAND 0x0E
1670 +#define ACPI_DESC_TYPE_NAMED 0x0F
1671 +#define ACPI_DESC_TYPE_MAX 0x0F
1673 +struct acpi_common_descriptor {
1674 + void *common_pointer;
1675 + u8 descriptor_type; /* To differentiate various internal objs */
1678 +union acpi_descriptor {
1679 + struct acpi_common_descriptor common;
1680 + union acpi_operand_object object;
1681 + struct acpi_namespace_node node;
1682 + union acpi_parse_object op;
1685 +#pragma pack()
1687 +#endif /* _ACOBJECT_H */
1688 diff -Naurp lib/modules/fglrx/build_mod/common/lib/common/lib/modules/fglrx/build_mod/modules/fglrx/build_mod/firegl_public.c lib/modules/fglrx/build_mod/firegl_public.c
1689 --- lib/modules/fglrx/build_mod/firegl_public.c 2009-02-28 22:31:33.000000000 +0100
1690 +++ lib/modules/fglrx/build_mod/firegl_public.c 2009-02-28 22:30:23.000000000 +0100
1691 @@ -1402,7 +1402,7 @@ KCL_TYPE_Pid ATI_API_CALL KCL_GetTgid(vo
1693 KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void)
1695 - return current->euid;
1696 + return current->cred->euid;
1699 /** /brief Delay execution for the specified number of microseconds
1700 @@ -1774,14 +1774,15 @@ int ATI_API_CALL KCL_PosixSecurityCapChe
1702 void ATI_API_CALL KCL_PosixSecurityCapSetIPCLock(unsigned int lock)
1704 + struct cred* currentCred = (struct cred*)get_current_cred();
1705 if (lock == 0 )
1707 - cap_lower(current->cap_effective, CAP_IPC_LOCK);
1708 + cap_lower(currentCred->cap_effective, CAP_IPC_LOCK);
1710 else
1712 - cap_raise(current->cap_effective, CAP_IPC_LOCK);
1713 - }
1714 + cap_raise(currentCred->cap_effective, CAP_IPC_LOCK);
1716 return;
1719 diff -Naurp lib/modules/fglrx/build_mod/common/lib/common/lib/modules/fglrx/build_mod/modules/fglrx/build_mod/firegl_public.h lib/modules/fglrx/build_mod/firegl_public.h
1720 --- lib/modules/fglrx/build_mod/firegl_public.h 2009-03-01 00:21:56.000000000 +0100
1721 +++ lib/modules/fglrx/build_mod/firegl_public.h 2009-03-01 00:21:17.000000000 +0100
1722 @@ -589,13 +589,13 @@ extern unsigned long KCL_SYSINFO_
1723 #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)
1724 #endif
1726 -#ifndef pgprot_writecombine
1727 +/* #ifndef pgprot_writecombine */
1728 #define pgprot_writecombine(prot) __pgprot((pgprot_val(prot) & ~(_PAGE_PCD)) | _PAGE_PWT)
1729 -#endif
1730 +/* #endif */
1732 -#ifndef pgprot_noncached
1733 +/* #ifndef pgprot_noncached */
1734 #define pgprot_noncached(prot) __pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)
1735 -#endif
1736 +/* #endif */
1738 #endif //FIREGL_USWC_SUPPORT
1740 diff -Naurp lib/modules/fglrx/build_mod/common/lib/common/lib/modules/fglrx/build_mod/modules/fglrx/build_mod/kcl_acpi.c lib/modules/fglrx/build_mod/kcl_acpi.c
1741 --- lib/modules/fglrx/build_mod/kcl_acpi.c 2009-02-28 21:39:21.000000000 +0100
1742 +++ lib/modules/fglrx/build_mod/kcl_acpi.c 2009-02-28 22:25:29.000000000 +0100
1743 @@ -17,6 +17,9 @@
1744 #include <linux/version.h>
1745 #include <linux/autoconf.h>
1746 #include <linux/acpi.h>
1747 +#include "acpica-acconfig.h"
1748 +#include "acpica-aclocal.h"
1749 +#include "acpica-acobject.h"
1751 #include "kcl_config.h"
1752 #include "kcl_type.h"