Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
f2493ff8
Commit
f2493ff8
authored
Oct 06, 2004
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge intel.com:/home/lenb/bk/26-latest-ref
into intel.com:/home/lenb/src/26-latest-dev
parents
8fc0532a
e51b4863
Changes
32
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
402 additions
and
328 deletions
+402
-328
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+14
-0
arch/i386/kernel/acpi/boot.c
arch/i386/kernel/acpi/boot.c
+10
-3
arch/i386/kernel/dmi_scan.c
arch/i386/kernel/dmi_scan.c
+2
-37
arch/i386/kernel/io_apic.c
arch/i386/kernel/io_apic.c
+1
-9
arch/i386/pci/mmconfig.c
arch/i386/pci/mmconfig.c
+7
-0
arch/x86_64/kernel/io_apic.c
arch/x86_64/kernel/io_apic.c
+1
-9
drivers/acpi/Kconfig
drivers/acpi/Kconfig
+27
-0
drivers/acpi/blacklist.c
drivers/acpi/blacklist.c
+44
-0
drivers/acpi/bus.c
drivers/acpi/bus.c
+8
-4
drivers/acpi/debug.c
drivers/acpi/debug.c
+103
-2
drivers/acpi/dispatcher/dsmethod.c
drivers/acpi/dispatcher/dsmethod.c
+31
-21
drivers/acpi/dispatcher/dsutils.c
drivers/acpi/dispatcher/dsutils.c
+37
-16
drivers/acpi/events/evgpe.c
drivers/acpi/events/evgpe.c
+5
-1
drivers/acpi/events/evmisc.c
drivers/acpi/events/evmisc.c
+23
-9
drivers/acpi/events/evregion.c
drivers/acpi/events/evregion.c
+8
-9
drivers/acpi/events/evrgnini.c
drivers/acpi/events/evrgnini.c
+6
-6
drivers/acpi/events/evxface.c
drivers/acpi/events/evxface.c
+5
-6
drivers/acpi/executer/exfldio.c
drivers/acpi/executer/exfldio.c
+2
-35
drivers/acpi/hardware/hwgpe.c
drivers/acpi/hardware/hwgpe.c
+1
-1
drivers/acpi/hardware/hwregs.c
drivers/acpi/hardware/hwregs.c
+22
-48
drivers/acpi/hardware/hwtimer.c
drivers/acpi/hardware/hwtimer.c
+12
-16
drivers/acpi/numa.c
drivers/acpi/numa.c
+10
-6
drivers/acpi/osl.c
drivers/acpi/osl.c
+10
-0
drivers/acpi/pci_link.c
drivers/acpi/pci_link.c
+2
-2
drivers/acpi/tables.c
drivers/acpi/tables.c
+2
-2
drivers/acpi/utilities/utglobal.c
drivers/acpi/utilities/utglobal.c
+2
-7
include/acpi/acconfig.h
include/acpi/acconfig.h
+1
-1
include/acpi/acexcep.h
include/acpi/acexcep.h
+1
-1
include/acpi/acglobal.h
include/acpi/acglobal.h
+1
-1
include/acpi/acmacros.h
include/acpi/acmacros.h
+0
-18
include/acpi/acpi_drivers.h
include/acpi/acpi_drivers.h
+0
-55
include/linux/acpi.h
include/linux/acpi.h
+4
-3
No files found.
Documentation/kernel-parameters.txt
View file @
f2493ff8
...
...
@@ -135,6 +135,20 @@ running once the system is up.
Recognize and ignore IRQ0/pin2 Interrupt Override.
For broken nForce2 BIOS resulting in XT-PIC timer.
acpi_dbg_layer= [HW,ACPI]
Format: <int>
Each bit of the <int> indicates an acpi debug layer,
1: enable, 0: disable. It is useful for boot time
debugging. After system has booted up, it can be set
via /proc/acpi/debug_layer.
acpi_dbg_level= [HW,ACPI]
Format: <int>
Each bit of the <int> indicates an acpi debug level,
1: enable, 0: disable. It is useful for boot time
debugging. After system has booted up, it can be set
via /proc/acpi/debug_level.
ad1816= [HW,OSS]
Format: <io>,<irq>,<dma>,<dma2>
See also Documentation/sound/oss/AD1816.
...
...
arch/i386/kernel/acpi/boot.c
View file @
f2493ff8
...
...
@@ -71,6 +71,7 @@ int acpi_ht __initdata = 1; /* enable HT */
int
acpi_lapic
;
int
acpi_ioapic
;
int
acpi_strict
;
EXPORT_SYMBOL
(
acpi_strict
);
acpi_interrupt_flags
acpi_sci_flags
__initdata
;
int
acpi_sci_override_gsi
__initdata
;
...
...
@@ -829,9 +830,15 @@ acpi_boot_init (void)
*/
error
=
acpi_blacklisted
();
if
(
error
)
{
printk
(
KERN_WARNING
PREFIX
"BIOS listed in blacklist, disabling ACPI support
\n
"
);
disable_acpi
();
return
error
;
extern
int
acpi_force
;
if
(
acpi_force
)
{
printk
(
KERN_WARNING
PREFIX
"acpi=force override
\n
"
);
}
else
{
printk
(
KERN_WARNING
PREFIX
"Disabling ACPI support
\n
"
);
disable_acpi
();
return
error
;
}
}
/*
...
...
arch/i386/kernel/dmi_scan.c
View file @
f2493ff8
...
...
@@ -4,7 +4,7 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <
asm
/acpi.h>
#include <
linux
/acpi.h>
#include <asm/io.h>
#include <linux/pm.h>
#include <asm/system.h>
...
...
@@ -443,41 +443,6 @@ static __initdata struct dmi_blacklist dmi_blacklist[]={
{
NULL
,
}
};
/*
* Walk the blacklist table running matching functions until someone
* returns 1 or we hit the end.
*/
static
__init
void
dmi_check_blacklist
(
void
)
{
#ifdef CONFIG_ACPI_BOOT
#define ACPI_BLACKLIST_CUTOFF_YEAR 2001
if
(
dmi_ident
[
DMI_BIOS_DATE
])
{
char
*
s
=
strrchr
(
dmi_ident
[
DMI_BIOS_DATE
],
'/'
);
if
(
s
)
{
int
year
,
disable
=
0
;
s
++
;
year
=
simple_strtoul
(
s
,
NULL
,
0
);
if
(
year
>=
1000
)
disable
=
year
<
ACPI_BLACKLIST_CUTOFF_YEAR
;
else
if
(
year
<
1
||
(
year
>
90
&&
year
<=
99
))
disable
=
1
;
if
(
disable
&&
!
acpi_force
)
{
printk
(
KERN_NOTICE
"ACPI disabled because your bios is from %s and too old
\n
"
,
s
);
printk
(
KERN_NOTICE
"You can enable it with acpi=force
\n
"
);
disable_acpi
();
}
}
}
#endif
dmi_check_system
(
dmi_blacklist
);
}
/*
* Process a DMI table entry. Right now all we care about are the BIOS
...
...
@@ -535,7 +500,7 @@ void __init dmi_scan_machine(void)
{
int
err
=
dmi_iterate
(
dmi_decode
);
if
(
err
==
0
)
dmi_check_blacklist
(
);
dmi_check_system
(
dmi_blacklist
);
else
printk
(
KERN_INFO
"DMI not present.
\n
"
);
}
...
...
arch/i386/kernel/io_apic.c
View file @
f2493ff8
...
...
@@ -2520,15 +2520,7 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
mp_ioapics
[
ioapic
].
mpc_apicid
,
pin
,
entry
.
vector
,
irq
,
edge_level
,
active_high_low
);
if
(
use_pci_vector
()
&&
!
platform_legacy_irq
(
irq
))
irq
=
IO_APIC_VECTOR
(
irq
);
if
(
edge_level
)
{
irq_desc
[
irq
].
handler
=
&
ioapic_level_type
;
}
else
{
irq_desc
[
irq
].
handler
=
&
ioapic_edge_type
;
}
set_intr_gate
(
entry
.
vector
,
interrupt
[
irq
]);
ioapic_register_intr
(
irq
,
entry
.
vector
,
edge_level
);
if
(
!
ioapic
&&
(
irq
<
16
))
disable_8259A_irq
(
irq
);
...
...
arch/i386/pci/mmconfig.c
View file @
f2493ff8
/*
* Copyright (C) 2004 Matthew Wilcox <matthew@wil.cx>
* Copyright (C) 2004 Intel Corp.
*
* This code is released under the GNU General Public License version 2.
*/
/*
* mmconfig.c - Low-level direct PCI config space access via MMCONFIG
*/
...
...
arch/x86_64/kernel/io_apic.c
View file @
f2493ff8
...
...
@@ -2029,15 +2029,7 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
mp_ioapics
[
ioapic
].
mpc_apicid
,
pin
,
entry
.
vector
,
irq
,
edge_level
,
active_high_low
);
if
(
use_pci_vector
()
&&
!
platform_legacy_irq
(
irq
))
irq
=
IO_APIC_VECTOR
(
irq
);
if
(
edge_level
)
{
irq_desc
[
irq
].
handler
=
&
ioapic_level_type
;
}
else
{
irq_desc
[
irq
].
handler
=
&
ioapic_edge_type
;
}
set_intr_gate
(
entry
.
vector
,
interrupt
[
irq
]);
ioapic_register_intr
(
irq
,
entry
.
vector
,
edge_level
);
if
(
!
ioapic
&&
(
irq
<
16
))
disable_8259A_irq
(
irq
);
...
...
drivers/acpi/Kconfig
View file @
f2493ff8
...
...
@@ -204,6 +204,33 @@ config ACPI_TOSHIBA
If you have a legacy free Toshiba laptop (such as the Libretto L1
series), say Y.
config ACPI_CUSTOM_DSDT
bool "Include Custom DSDT"
depends on X86
depends on ACPI_INTERPRETER
default n
help
Thist option is to load a custom ACPI DSDT
If you don't know what that is, say N.
config ACPI_CUSTOM_DSDT_FILE
string "Custom DSDT Table file to include"
depends on ACPI_CUSTOM_DSDT
default ""
help
Enter the full path name to the file wich includes the AmlCode declaration.
config ACPI_BLACKLIST_YEAR
int "Disable ACPI for systems before Jan 1st this year"
default 0
help
enter a 4-digit year, eg. 2001 to disable ACPI by default
on platforms with DMI BIOS date before January 1st that year.
"acpi=force" can be used to override this mechanism.
Enter 0 to disable this mechanism and allow ACPI to
run by default no matter what the year. (default)
config ACPI_DEBUG
bool "Debug Statements"
depends on ACPI_INTERPRETER
...
...
drivers/acpi/blacklist.c
View file @
f2493ff8
...
...
@@ -2,7 +2,9 @@
* blacklist.c
*
* Check to see if the given machine has a known bad ACPI BIOS
* or if the BIOS is too old.
*
* Copyright (C) 2004 Len Brown <len.brown@intel.com>
* Copyright (C) 2002 Andy Grover <andrew.grover@intel.com>
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
...
@@ -30,6 +32,7 @@
#include <linux/init.h>
#include <linux/acpi.h>
#include <acpi/acpi_bus.h>
#include <linux/dmi.h>
enum
acpi_blacklist_predicates
{
...
...
@@ -70,6 +73,45 @@ static struct acpi_blacklist_item acpi_blacklist[] __initdata =
};
#if CONFIG_ACPI_BLACKLIST_YEAR
static
int
__init
blacklist_by_year
(
void
)
{
int
year
;
char
*
s
=
dmi_get_system_info
(
DMI_BIOS_DATE
);
if
(
!
s
)
return
0
;
if
(
!*
s
)
return
0
;
s
=
strrchr
(
s
,
'/'
);
if
(
!
s
)
return
0
;
s
+=
1
;
year
=
simple_strtoul
(
s
,
NULL
,
0
);
if
(
year
<
100
)
{
/* 2-digit year */
year
+=
1900
;
if
(
year
<
1996
)
/* no dates < spec 1.0 */
year
+=
100
;
}
if
(
year
<
CONFIG_ACPI_BLACKLIST_YEAR
)
{
printk
(
KERN_ERR
PREFIX
"BIOS age (%d) fails cutoff (%d), "
"acpi=force is required to enable ACPI
\n
"
,
year
,
CONFIG_ACPI_BLACKLIST_YEAR
);
return
1
;
}
return
0
;
}
#else
static
inline
int
blacklist_by_year
(
void
)
{
return
0
;
}
#endif
int
__init
acpi_blacklisted
(
void
)
{
...
...
@@ -120,6 +162,8 @@ acpi_blacklisted(void)
}
}
blacklisted
+=
blacklist_by_year
();
return
blacklisted
;
}
drivers/acpi/bus.c
View file @
f2493ff8
...
...
@@ -596,7 +596,14 @@ acpi_early_init (void)
acpi_status
status
=
AE_OK
;
struct
acpi_buffer
buffer
=
{
sizeof
(
acpi_fadt
),
&
acpi_fadt
};
ACPI_FUNCTION_TRACE
(
"acpi_bus_init"
);
ACPI_FUNCTION_TRACE
(
"acpi_early_init"
);
if
(
acpi_disabled
)
return
;
/* enable workarounds, unless strict ACPI spec. compliance */
if
(
!
acpi_strict
)
acpi_gbl_enable_interpreter_slack
=
TRUE
;
status
=
acpi_initialize_subsystem
();
if
(
ACPI_FAILURE
(
status
))
{
...
...
@@ -734,9 +741,6 @@ static int __init acpi_init (void)
printk
(
KERN_INFO
PREFIX
"Subsystem revision %08x
\n
"
,
ACPI_CA_VERSION
);
/* Initial core debug level excludes drivers, so include them now */
acpi_set_debug
(
ACPI_DEBUG_LOW
);
if
(
acpi_disabled
)
{
printk
(
KERN_INFO
PREFIX
"Interpreter disabled.
\n
"
);
return
-
ENODEV
;
...
...
drivers/acpi/debug.c
View file @
f2493ff8
...
...
@@ -4,6 +4,7 @@
#include <linux/proc_fs.h>
#include <linux/init.h>
#include <linux/moduleparam.h>
#include <asm/uaccess.h>
#include <acpi/acpi_drivers.h>
...
...
@@ -13,6 +14,81 @@ ACPI_MODULE_NAME ("debug")
#define ACPI_SYSTEM_FILE_DEBUG_LAYER "debug_layer"
#define ACPI_SYSTEM_FILE_DEBUG_LEVEL "debug_level"
#ifdef MODULE_PARAM_PREFIX
#undef MODULE_PARAM_PREFIX
#endif
#define MODULE_PARAM_PREFIX
module_param
(
acpi_dbg_layer
,
uint
,
0400
);
module_param
(
acpi_dbg_level
,
uint
,
0400
);
struct
acpi_dlayer
{
const
char
*
name
;
unsigned
long
value
;
};
struct
acpi_dlevel
{
const
char
*
name
;
unsigned
long
value
;
};
#define ACPI_DEBUG_INIT(v) { .name = #v, .value = v }
const
struct
acpi_dlayer
acpi_debug_layers
[]
=
{
ACPI_DEBUG_INIT
(
ACPI_UTILITIES
),
ACPI_DEBUG_INIT
(
ACPI_HARDWARE
),
ACPI_DEBUG_INIT
(
ACPI_EVENTS
),
ACPI_DEBUG_INIT
(
ACPI_TABLES
),
ACPI_DEBUG_INIT
(
ACPI_NAMESPACE
),
ACPI_DEBUG_INIT
(
ACPI_PARSER
),
ACPI_DEBUG_INIT
(
ACPI_DISPATCHER
),
ACPI_DEBUG_INIT
(
ACPI_EXECUTER
),
ACPI_DEBUG_INIT
(
ACPI_RESOURCES
),
ACPI_DEBUG_INIT
(
ACPI_CA_DEBUGGER
),
ACPI_DEBUG_INIT
(
ACPI_OS_SERVICES
),
ACPI_DEBUG_INIT
(
ACPI_CA_DISASSEMBLER
),
ACPI_DEBUG_INIT
(
ACPI_COMPILER
),
ACPI_DEBUG_INIT
(
ACPI_TOOLS
),
};
const
struct
acpi_dlevel
acpi_debug_levels
[]
=
{
ACPI_DEBUG_INIT
(
ACPI_LV_ERROR
),
ACPI_DEBUG_INIT
(
ACPI_LV_WARN
),
ACPI_DEBUG_INIT
(
ACPI_LV_INIT
),
ACPI_DEBUG_INIT
(
ACPI_LV_DEBUG_OBJECT
),
ACPI_DEBUG_INIT
(
ACPI_LV_INFO
),
ACPI_DEBUG_INIT
(
ACPI_LV_INIT_NAMES
),
ACPI_DEBUG_INIT
(
ACPI_LV_PARSE
),
ACPI_DEBUG_INIT
(
ACPI_LV_LOAD
),
ACPI_DEBUG_INIT
(
ACPI_LV_DISPATCH
),
ACPI_DEBUG_INIT
(
ACPI_LV_EXEC
),
ACPI_DEBUG_INIT
(
ACPI_LV_NAMES
),
ACPI_DEBUG_INIT
(
ACPI_LV_OPREGION
),
ACPI_DEBUG_INIT
(
ACPI_LV_BFIELD
),
ACPI_DEBUG_INIT
(
ACPI_LV_TABLES
),
ACPI_DEBUG_INIT
(
ACPI_LV_VALUES
),
ACPI_DEBUG_INIT
(
ACPI_LV_OBJECTS
),
ACPI_DEBUG_INIT
(
ACPI_LV_RESOURCES
),
ACPI_DEBUG_INIT
(
ACPI_LV_USER_REQUESTS
),
ACPI_DEBUG_INIT
(
ACPI_LV_PACKAGE
),
ACPI_DEBUG_INIT
(
ACPI_LV_ALLOCATIONS
),
ACPI_DEBUG_INIT
(
ACPI_LV_FUNCTIONS
),
ACPI_DEBUG_INIT
(
ACPI_LV_OPTIMIZATIONS
),
ACPI_DEBUG_INIT
(
ACPI_LV_MUTEX
),
ACPI_DEBUG_INIT
(
ACPI_LV_THREADS
),
ACPI_DEBUG_INIT
(
ACPI_LV_IO
),
ACPI_DEBUG_INIT
(
ACPI_LV_INTERRUPTS
),
ACPI_DEBUG_INIT
(
ACPI_LV_AML_DISASSEMBLE
),
ACPI_DEBUG_INIT
(
ACPI_LV_VERBOSE_INFO
),
ACPI_DEBUG_INIT
(
ACPI_LV_FULL_TABLES
),
ACPI_DEBUG_INIT
(
ACPI_LV_EVENTS
),
};
#define NUM_OF(v) ( sizeof(v)/sizeof(v[0]) )
static
int
acpi_system_read_debug
(
char
*
page
,
...
...
@@ -24,16 +100,41 @@ acpi_system_read_debug (
{
char
*
p
=
page
;
int
size
=
0
;
int
i
;
if
(
off
!=
0
)
goto
end
;
p
+=
sprintf
(
p
,
"%-25s
\t
Hex SET
\n
"
,
"Description"
);
switch
((
unsigned
long
)
data
)
{
case
0
:
p
+=
sprintf
(
p
,
"0x%08x
\n
"
,
acpi_dbg_layer
);
for
(
i
=
0
;
i
<
NUM_OF
(
acpi_debug_layers
);
i
++
)
{
p
+=
sprintf
(
p
,
"%-25s
\t
0x%08lX [%c]
\n
"
,
acpi_debug_layers
[
i
].
name
,
acpi_debug_layers
[
i
].
value
,
(
acpi_dbg_layer
&
acpi_debug_layers
[
i
].
value
)
?
'*'
:
' '
);
}
p
+=
sprintf
(
p
,
"%-25s
\t
0x%08X [%c]
\n
"
,
"ACPI_ALL_DRIVERS"
,
ACPI_ALL_DRIVERS
,
(
acpi_dbg_layer
&
ACPI_ALL_DRIVERS
)
==
ACPI_ALL_DRIVERS
?
'*'
:
(
acpi_dbg_layer
&
ACPI_ALL_DRIVERS
)
==
0
?
' '
:
'-'
);
p
+=
sprintf
(
p
,
"--
\n
debug_layer = 0x%08X (* = enabled, - = partial)
\n
"
,
acpi_dbg_layer
);
break
;
case
1
:
p
+=
sprintf
(
p
,
"0x%08x
\n
"
,
acpi_dbg_level
);
for
(
i
=
0
;
i
<
NUM_OF
(
acpi_debug_levels
);
i
++
)
{
p
+=
sprintf
(
p
,
"%-25s
\t
0x%08lX [%c]
\n
"
,
acpi_debug_levels
[
i
].
name
,
acpi_debug_levels
[
i
].
value
,
(
acpi_dbg_level
&
acpi_debug_levels
[
i
].
value
)
?
'*'
:
' '
);
}
p
+=
sprintf
(
p
,
"--
\n
debug_level = 0x%08X (* = enabled)
\n
"
,
acpi_dbg_level
);
break
;
default:
p
+=
sprintf
(
p
,
"Invalid debug option
\n
"
);
...
...
drivers/acpi/dispatcher/dsmethod.c
View file @
f2493ff8
...
...
@@ -58,15 +58,12 @@
*
* FUNCTION: acpi_ds_parse_method
*
* PARAMETERS: obj_handle - Node of the method
* Level - Current nesting level
* Context - Points to a method counter
* return_value - Not used
* PARAMETERS: obj_handle - Method node
*
* RETURN: Status
*
* DESCRIPTION: Call the parser and parse the AML that is
*
associated with the
method.
* DESCRIPTION: Call the parser and parse the AML that is
associated with the
* method.
*
* MUTEX: Assumes parser is locked
*
...
...
@@ -191,8 +188,6 @@ acpi_ds_parse_method (
* increments the thread count, and waits at the method semaphore
* for clearance to execute.
*
* MUTEX: Locks/unlocks parser.
*
******************************************************************************/
acpi_status
...
...
@@ -251,7 +246,8 @@ acpi_ds_begin_method_execution (
*
* FUNCTION: acpi_ds_call_control_method
*
* PARAMETERS: walk_state - Current state of the walk
* PARAMETERS: Thread - Info for this thread
* this_walk_state - Current walk state
* Op - Current Op to be walked
*
* RETURN: Status
...
...
@@ -401,12 +397,13 @@ acpi_ds_call_control_method (
*
* FUNCTION: acpi_ds_restart_control_method
*
* PARAMETERS: walk_state - State
of the method when it was preempted
*
Op - Pointer to new current op
* PARAMETERS: walk_state - State
for preempted method (caller)
*
return_desc - Return value from the called method
*
* RETURN: Status
*
* DESCRIPTION: Restart a method that was preempted
* DESCRIPTION: Restart a method that was preempted by another (nested) method
* invocation. Handle the return value (if any) from the callee.
*
******************************************************************************/
...
...
@@ -421,17 +418,35 @@ acpi_ds_restart_control_method (
ACPI_FUNCTION_TRACE_PTR
(
"ds_restart_control_method"
,
walk_state
);
ACPI_DEBUG_PRINT
((
ACPI_DB_DISPATCH
,
"****Restart [%4.4s] Op %p return_value_from_callee %p
\n
"
,
(
char
*
)
&
walk_state
->
method_node
->
name
,
walk_state
->
method_call_op
,
return_desc
));
ACPI_DEBUG_PRINT
((
ACPI_DB_DISPATCH
,
" return_from_this_method_used?=%X res_stack %p Walk %p
\n
"
,
walk_state
->
return_used
,
walk_state
->
results
,
walk_state
));
/* Did the called method return a value? */
if
(
return_desc
)
{
/* Are we actually going to use the return value? */
if
(
walk_state
->
return_used
)
{
/*
* Get the return value (if any) from the previous method.
* NULL if no return value
*/
/* Save the return value from the previous method */
status
=
acpi_ds_result_push
(
return_desc
,
walk_state
);
if
(
ACPI_FAILURE
(
status
))
{
acpi_ut_remove_reference
(
return_desc
);
return_ACPI_STATUS
(
status
);
}
/*
* Save as THIS method's return value in case it is returned
* immediately to yet another method
*/
walk_state
->
return_desc
=
return_desc
;
}
else
{
/*
...
...
@@ -442,11 +457,6 @@ acpi_ds_restart_control_method (
}
}
ACPI_DEBUG_PRINT
((
ACPI_DB_DISPATCH
,
"Method=%p Return=%p return_used?=%X res_stack=%p State=%p
\n
"
,
walk_state
->
method_call_op
,
return_desc
,
walk_state
->
return_used
,
walk_state
->
results
,
walk_state
));
return_ACPI_STATUS
(
AE_OK
);
}
...
...
drivers/acpi/dispatcher/dsutils.c
View file @
f2493ff8
...
...
@@ -60,11 +60,10 @@
*
* FUNCTION: acpi_ds_is_result_used
*
* PARAMETERS: Op
* result_obj
* walk_state
* PARAMETERS: Op - Current Op
* walk_state - Current State
*
* RETURN:
Status
* RETURN:
TRUE if result is used, FALSE otherwise
*
* DESCRIPTION: Check if a result object will be used by the parent
*
...
...
@@ -89,18 +88,39 @@ acpi_ds_is_result_used (
}
/*
* If there is no parent, the result can't possibly be used!
* (An executing method typically has no parent, since each
* method is parsed separately) However, a method that is
* invoked from another method has a parent.
* If there is no parent, we are executing at the method level.
* An executing method typically has no parent, since each method
* is parsed separately.
*/
if
(
!
op
->
common
.
parent
)
{
/*
* If this is the last statement in the method, we know it is not a
* Return() operator (would not come here.) The following code is the
* optional support for a so-called "implicit return". Some AML code
* assumes that the last value of the method is "implicitly" returned
* to the caller. Just save the last result as the return value.
* NOTE: this is optional because the ASL language does not actually
* support this behavior.
*/
if
((
acpi_gbl_enable_interpreter_slack
)
&&
(
walk_state
->
parser_state
.
aml
>=
walk_state
->
parser_state
.
aml_end
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_DISPATCH
,
"Result of [%s] will be implicitly returned
\n
"
,
acpi_ps_get_opcode_name
(
op
->
common
.
aml_opcode
)));
/* Use the top of the result stack as the implicit return value */
walk_state
->
return_desc
=
walk_state
->
results
->
results
.
obj_desc
[
0
];
return_VALUE
(
TRUE
);
}
/* No parent, the return value cannot possibly be used */
return_VALUE
(
FALSE
);
}
/*
* Get info on the parent. The root Op is AML_SCOPE
*/
/* Get info on the parent. The root_op is AML_SCOPE */
parent_info
=
acpi_ps_get_opcode_info
(
op
->
common
.
parent
->
common
.
aml_opcode
);
if
(
parent_info
->
class
==
AML_CLASS_UNKNOWN
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_ERROR
,
"Unknown parent opcode. Op=%p
\n
"
,
op
));
...
...
@@ -204,9 +224,9 @@ acpi_ds_is_result_used (
*
* FUNCTION: acpi_ds_delete_result_if_not_used
*
* PARAMETERS: Op
* result_obj
* walk_state
* PARAMETERS: Op
- Current parse Op
* result_obj
- Result of the operation
* walk_state
- Current state
*
* RETURN: Status
*
...
...
@@ -338,8 +358,9 @@ acpi_ds_clear_operands (
*
* FUNCTION: acpi_ds_create_operand
*
* PARAMETERS: walk_state
* Arg
* PARAMETERS: walk_state - Current walk state
* Arg - Parse object for the argument
* arg_index - Which argument (zero based)
*
* RETURN: Status
*
...
...
drivers/acpi/events/evgpe.c
View file @
f2493ff8
...
...
@@ -102,6 +102,8 @@ acpi_ev_set_gpe_type (
* FUNCTION: acpi_ev_update_gpe_enable_masks
*
* PARAMETERS: gpe_event_info - GPE to update
* Type - What to do: ACPI_GPE_DISABLE or
* ACPI_GPE_ENABLE
*
* RETURN: Status
*
...
...
@@ -166,6 +168,8 @@ acpi_ev_update_gpe_enable_masks (
* FUNCTION: acpi_ev_enable_gpe
*
* PARAMETERS: gpe_event_info - GPE to enable
* write_to_hardware - Enable now, or just mark data structs
* (WAKE GPEs should be deferred)
*
* RETURN: Status
*
...
...
@@ -707,7 +711,7 @@ acpi_ev_gpe_dispatch (
#ifdef ACPI_GPE_NOTIFY_CHECK
/*******************************************************************************
* NOT USED, PROTOTYPE ONLY AND WILL PROBABLY BE REMOVED
*
TBD:
NOT USED, PROTOTYPE ONLY AND WILL PROBABLY BE REMOVED
*
* FUNCTION: acpi_ev_check_for_wake_only_gpe
*
...
...
drivers/acpi/events/evmisc.c
View file @
f2493ff8
...
...
@@ -88,9 +88,10 @@ acpi_ev_is_notify_object (
*
* FUNCTION: acpi_ev_queue_notify_request
*
* PARAMETERS:
* PARAMETERS: Node - NS node for the notified object
* notify_value - Value from the Notify() request
*
* RETURN:
None.
* RETURN:
Status
*
* DESCRIPTION: Dispatch a device notification event to a previously
* installed handler.
...
...
@@ -143,9 +144,8 @@ acpi_ev_queue_notify_request (
notify_value
));
}
/*
* Get the notify object attached to the NS Node
*/
/* Get the notify object attached to the NS Node */
obj_desc
=
acpi_ns_get_attached_object
(
node
);
if
(
obj_desc
)
{
/* We have the notify object, Get the right handler */
...
...
@@ -193,8 +193,10 @@ acpi_ev_queue_notify_request (
}
if
(
!
handler_obj
)
{
/* There is no per-device notify handler for this device */
/*
* There is no per-device notify handler for this device.
* This may or may not be a problem.
*/
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No notify handler for Notify(%4.4s, %X) node %p
\n
"
,
acpi_ut_get_node_name
(
node
),
notify_value
,
node
));
...
...
@@ -208,7 +210,7 @@ acpi_ev_queue_notify_request (
*
* FUNCTION: acpi_ev_notify_dispatch
*
* PARAMETERS:
* PARAMETERS:
Context - To be passsed to the notify handler
*
* RETURN: None.
*
...
...
@@ -275,6 +277,8 @@ acpi_ev_notify_dispatch (
*
* FUNCTION: acpi_ev_global_lock_thread
*
* PARAMETERS: Context - From thread interface, not used
*
* RETURN: None
*
* DESCRIPTION: Invoked by SCI interrupt handler upon acquisition of the
...
...
@@ -308,7 +312,9 @@ acpi_ev_global_lock_thread (
*
* FUNCTION: acpi_ev_global_lock_handler
*
* RETURN: Status
* PARAMETERS: Context - From thread interface, not used
*
* RETURN: ACPI_INTERRUPT_HANDLED or ACPI_INTERRUPT_NOT_HANDLED
*
* DESCRIPTION: Invoked directly from the SCI handler when a global lock
* release interrupt occurs. Grab the global lock and queue
...
...
@@ -355,6 +361,8 @@ acpi_ev_global_lock_handler (
*
* FUNCTION: acpi_ev_init_global_lock_handler
*
* PARAMETERS: None
*
* RETURN: Status
*
* DESCRIPTION: Install a handler for the global lock release event
...
...
@@ -394,6 +402,8 @@ acpi_ev_init_global_lock_handler (void)
*
* FUNCTION: acpi_ev_acquire_global_lock
*
* PARAMETERS: Timeout - Max time to wait for the lock, in millisec.
*
* RETURN: Status
*
* DESCRIPTION: Attempt to gain ownership of the Global Lock.
...
...
@@ -461,6 +471,10 @@ acpi_ev_acquire_global_lock (
*
* FUNCTION: acpi_ev_release_global_lock
*
* PARAMETERS: None
*
* RETURN: Status
*
* DESCRIPTION: Releases ownership of the Global Lock.
*
******************************************************************************/
...
...
drivers/acpi/events/evregion.c
View file @
f2493ff8
...
...
@@ -180,7 +180,7 @@ acpi_ev_initialize_op_regions (
* FUNCTION: acpi_ev_execute_reg_method
*
* PARAMETERS: region_obj - Object structure
* Function - On (1) or Off (0)
* Function -
Passed to _REG:
On (1) or Off (0)
*
* RETURN: Status
*
...
...
@@ -232,7 +232,7 @@ acpi_ev_execute_reg_method (
goto
cleanup
;
}
/* Set
up the parameter objects */
/* Setup the parameter objects */
params
[
0
]
->
integer
.
value
=
region_obj
->
region
.
space_id
;
params
[
1
]
->
integer
.
value
=
function
;
...
...
@@ -262,7 +262,6 @@ acpi_ev_execute_reg_method (
* FUNCTION: acpi_ev_address_space_dispatch
*
* PARAMETERS: region_obj - Internal region object
* space_id - ID of the address space (0-255)
* Function - Read or Write operation
* Address - Where in the space to read or write
* bit_width - Field width in bits (8, 16, 32, or 64)
...
...
@@ -425,8 +424,8 @@ acpi_ev_address_space_dispatch (
*
* FUNCTION: acpi_ev_detach_region
*
* PARAMETERS: region_obj - Region Object
* acpi_ns_is_locked - Namespace Region Already Locked?
* PARAMETERS: region_obj
- Region Object
* acpi_ns_is_locked
- Namespace Region Already Locked?
*
* RETURN: None
*
...
...
@@ -560,9 +559,9 @@ acpi_ev_detach_region(
*
* FUNCTION: acpi_ev_attach_region
*
* PARAMETERS: handler_obj - Handler Object
* region_obj - Region Object
* acpi_ns_is_locked - Namespace Region Already Locked?
* PARAMETERS: handler_obj
- Handler Object
* region_obj
- Region Object
* acpi_ns_is_locked
- Namespace Region Already Locked?
*
* RETURN: None
*
...
...
@@ -971,7 +970,7 @@ acpi_ev_install_space_handler (
*
* RETURN: Status
*
* DESCRIPTION: Run
_REG methods for the
Space ID;
* DESCRIPTION: Run
all _REG methods for the input
Space ID;
* Note: assumes namespace is locked, or system init time.
*
******************************************************************************/
...
...
drivers/acpi/events/evrgnini.c
View file @
f2493ff8
...
...
@@ -54,7 +54,7 @@
*
* FUNCTION: acpi_ev_system_memory_region_setup
*
* PARAMETERS:
region_obj
- Region we are interested in
* PARAMETERS:
Handle
- Region we are interested in
* Function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
...
...
@@ -108,7 +108,7 @@ acpi_ev_system_memory_region_setup (
*
* FUNCTION: acpi_ev_io_space_region_setup
*
* PARAMETERS:
region_obj
- Region we are interested in
* PARAMETERS:
Handle
- Region we are interested in
* Function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
...
...
@@ -144,7 +144,7 @@ acpi_ev_io_space_region_setup (
*
* FUNCTION: acpi_ev_pci_config_region_setup
*
* PARAMETERS:
region_obj
- Region we are interested in
* PARAMETERS:
Handle
- Region we are interested in
* Function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
...
...
@@ -317,7 +317,7 @@ acpi_ev_pci_config_region_setup (
*
* FUNCTION: acpi_ev_pci_bar_region_setup
*
* PARAMETERS:
region_obj
- Region we are interested in
* PARAMETERS:
Handle
- Region we are interested in
* Function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
...
...
@@ -348,7 +348,7 @@ acpi_ev_pci_bar_region_setup (
*
* FUNCTION: acpi_ev_cmos_region_setup
*
* PARAMETERS:
region_obj
- Region we are interested in
* PARAMETERS:
Handle
- Region we are interested in
* Function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
...
...
@@ -379,7 +379,7 @@ acpi_ev_cmos_region_setup (
*
* FUNCTION: acpi_ev_default_region_setup
*
* PARAMETERS:
region_obj
- Region we are interested in
* PARAMETERS:
Handle
- Region we are interested in
* Function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
...
...
drivers/acpi/events/evxface.c
View file @
f2493ff8
...
...
@@ -359,6 +359,7 @@ acpi_install_notify_handler (
* ACPI_DEVICE_NOTIFY: driver_handler (80-ff)
* ACPI_ALL_NOTIFY: both system and device
* Handler - Address of the handler
*
* RETURN: Status
*
* DESCRIPTION: Remove a handler for notifies on an ACPI device
...
...
@@ -401,9 +402,8 @@ acpi_remove_notify_handler (
goto
unlock_and_exit
;
}
/*
* Root Object
*/
/* Root Object */
if
(
device
==
ACPI_ROOT_OBJECT
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Removing notify handler for ROOT object.
\n
"
));
...
...
@@ -437,9 +437,8 @@ acpi_remove_notify_handler (
}
}
/*
* All Other Objects
*/
/* All Other Objects */
else
{
/* Notifies allowed on this object? */
...
...
drivers/acpi/executer/exfldio.c
View file @
f2493ff8
...
...
@@ -130,7 +130,7 @@ acpi_ex_setup_region (
if
(
rgn_desc
->
region
.
length
<
(
obj_desc
->
common_field
.
base_byte_offset
+
field_datum_byte_offset
+
obj_desc
->
common_field
.
access_byte_width
))
{
if
(
acpi_gbl_enable_interpeter_slack
)
{
if
(
acpi_gbl_enable_interp
r
eter_slack
)
{
/*
* Slack mode only: We will go ahead and allow access to this
* field if it is within the region length rounded up to the next
...
...
@@ -169,40 +169,7 @@ acpi_ex_setup_region (
field_datum_byte_offset
,
obj_desc
->
common_field
.
access_byte_width
,
acpi_ut_get_node_name
(
rgn_desc
->
region
.
node
),
rgn_desc
->
region
.
length
));
if
(
!
acpi_strict
)
{
/*
* Allow access to the field if it is within the region size
* rounded up to a multiple of the access byte width. This
* overcomes "off-by-one" programming errors in the AML often
* found in Toshiba laptops. These errors were allowed by
* the Microsoft ASL compiler.
*/
u32
rounded_length
=
ACPI_ROUND_UP
(
rgn_desc
->
region
.
length
,
obj_desc
->
common_field
.
access_byte_width
);
if
(
rounded_length
<
(
obj_desc
->
common_field
.
base_byte_offset
+
field_datum_byte_offset
+
obj_desc
->
common_field
.
access_byte_width
))
{
return_ACPI_STATUS
(
AE_AML_REGION_LIMIT
);
}
else
{
static
int
warn_once
=
1
;
if
(
warn_once
)
{
// Could also associate a flag with each field, and
// warn once for each field.
ACPI_REPORT_WARNING
((
"The ACPI AML in your computer contains errors, "
"please nag the manufacturer to correct it.
\n
"
));
ACPI_REPORT_WARNING
((
"Allowing relaxed access to fields; "
"turn on CONFIG_ACPI_DEBUG for details.
\n
"
));
warn_once
=
0
;
}
return_ACPI_STATUS
(
AE_OK
);
}
}
else
{
return_ACPI_STATUS
(
AE_AML_REGION_LIMIT
);
}
return_ACPI_STATUS
(
AE_AML_REGION_LIMIT
);
}
return_ACPI_STATUS
(
AE_OK
);
...
...
drivers/acpi/hardware/hwgpe.c
View file @
f2493ff8
...
...
@@ -96,7 +96,7 @@ acpi_hw_write_gpe_enable_reg (
*
* PARAMETERS: gpe_event_info - Info block for the GPE to be cleared
*
* RETURN:
status_s
tatus
* RETURN:
S
tatus
*
* DESCRIPTION: Clear the status bit for a single GPE.
*
...
...
drivers/acpi/hardware/hwregs.c
View file @
f2493ff8
...
...
@@ -249,8 +249,8 @@ acpi_hw_get_bit_register_info (
* return_value - Value that was read from the register
* Flags - Lock the hardware or not
*
* RETURN:
Value is read from specified Register. Value returned is
* normalized to bit0 (is shifted all the way right)
* RETURN:
Status and the value read from specified Register. Value
*
returned is
normalized to bit0 (is shifted all the way right)
*
* DESCRIPTION: ACPI bit_register read function.
*
...
...
@@ -284,6 +284,8 @@ acpi_get_register (
}
}
/* Read from the register */
status
=
acpi_hw_register_read
(
ACPI_MTX_DO_NOT_LOCK
,
bit_reg_info
->
parent_register
,
&
register_value
);
...
...
@@ -313,10 +315,10 @@ acpi_get_register (
*
* PARAMETERS: register_id - ID of ACPI bit_register to access
* Value - (only used on write) value to write to the
* Register, NOT pre-normalized to the bit pos
.
* Register, NOT pre-normalized to the bit pos
* Flags - Lock the hardware or not
*
* RETURN:
None
* RETURN:
Status
*
* DESCRIPTION: ACPI Bit Register write function.
*
...
...
@@ -461,10 +463,11 @@ acpi_set_register (
*
* FUNCTION: acpi_hw_register_read
*
* PARAMETERS: use_lock - Mutex hw access.
* register_id - register_iD + Offset.
* PARAMETERS: use_lock - Mutex hw access
* register_id - register_iD + Offset
* return_value - Value that was read from the register
*
* RETURN:
Value read or written
.
* RETURN:
Status and the value read
.
*
* DESCRIPTION: Acpi register read function. Registers are read at the
* given offset.
...
...
@@ -572,10 +575,11 @@ acpi_hw_register_read (
*
* FUNCTION: acpi_hw_register_write
*
* PARAMETERS: use_lock - Mutex hw access.
* register_id - register_iD + Offset.
* PARAMETERS: use_lock - Mutex hw access
* register_id - register_iD + Offset
* Value - The value to write
*
* RETURN:
Value read or written.
* RETURN:
Status
*
* DESCRIPTION: Acpi register Write function. Registers are written at the
* given offset.
...
...
@@ -691,11 +695,11 @@ acpi_hw_register_write (
*
* PARAMETERS: Width - 8, 16, or 32
* Value - Where the value is returned
* Reg
ister
- GAS register structure
* Reg
- GAS register structure
*
* RETURN: Status
*
* DESCRIPTION: Read from either memory
, IO, or PCI config
space.
* DESCRIPTION: Read from either memory
or IO
space.
*
******************************************************************************/
...
...
@@ -705,8 +709,6 @@ acpi_hw_low_level_read (
u32
*
value
,
struct
acpi_generic_address
*
reg
)
{
struct
acpi_pci_id
pci_id
;
u16
pci_register
;
acpi_status
status
;
...
...
@@ -725,8 +727,8 @@ acpi_hw_low_level_read (
*
value
=
0
;
/*
* T
hree address spaces supported:
*
Memory, IO, or PCI_Config.
* T
wo address spaces supported: Memory or IO.
*
PCI_Config is not supported here because the GAS struct is insufficient
*/
switch
(
reg
->
address_space_id
)
{
case
ACPI_ADR_SPACE_SYSTEM_MEMORY
:
...
...
@@ -744,19 +746,6 @@ acpi_hw_low_level_read (
break
;
case
ACPI_ADR_SPACE_PCI_CONFIG
:
pci_id
.
segment
=
0
;
pci_id
.
bus
=
0
;
pci_id
.
device
=
ACPI_PCI_DEVICE
(
reg
->
address
);
pci_id
.
function
=
ACPI_PCI_FUNCTION
(
reg
->
address
);
pci_register
=
(
u16
)
ACPI_PCI_REGISTER
(
reg
->
address
);
status
=
acpi_os_read_pci_configuration
(
&
pci_id
,
pci_register
,
value
,
width
);
break
;
default:
ACPI_DEBUG_PRINT
((
ACPI_DB_ERROR
,
"Unsupported address space: %X
\n
"
,
reg
->
address_space_id
));
...
...
@@ -778,11 +767,11 @@ acpi_hw_low_level_read (
*
* PARAMETERS: Width - 8, 16, or 32
* Value - To be written
* Reg
ister
- GAS register structure
* Reg
- GAS register structure
*
* RETURN: Status
*
* DESCRIPTION: Write to either memory
, IO, or PCI config
space.
* DESCRIPTION: Write to either memory
or IO
space.
*
******************************************************************************/
...
...
@@ -792,8 +781,6 @@ acpi_hw_low_level_write (
u32
value
,
struct
acpi_generic_address
*
reg
)
{
struct
acpi_pci_id
pci_id
;
u16
pci_register
;
acpi_status
status
;
...
...
@@ -811,8 +798,8 @@ acpi_hw_low_level_write (
}
/*
* T
hree address spaces supported:
*
Memory, IO, or PCI_Config.
* T
wo address spaces supported: Memory or IO.
*
PCI_Config is not supported here because the GAS struct is insufficient
*/
switch
(
reg
->
address_space_id
)
{
case
ACPI_ADR_SPACE_SYSTEM_MEMORY
:
...
...
@@ -830,19 +817,6 @@ acpi_hw_low_level_write (
break
;
case
ACPI_ADR_SPACE_PCI_CONFIG
:
pci_id
.
segment
=
0
;
pci_id
.
bus
=
0
;
pci_id
.
device
=
ACPI_PCI_DEVICE
(
reg
->
address
);
pci_id
.
function
=
ACPI_PCI_FUNCTION
(
reg
->
address
);
pci_register
=
(
u16
)
ACPI_PCI_REGISTER
(
reg
->
address
);
status
=
acpi_os_write_pci_configuration
(
&
pci_id
,
pci_register
,
(
acpi_integer
)
value
,
width
);
break
;
default:
ACPI_DEBUG_PRINT
((
ACPI_DB_ERROR
,
"Unsupported address space: %X
\n
"
,
reg
->
address_space_id
));
...
...
drivers/acpi/hardware/hwtimer.c
View file @
f2493ff8
...
...
@@ -52,11 +52,11 @@
*
* FUNCTION: acpi_get_timer_resolution
*
* PARAMETERS:
none
* PARAMETERS:
Resolution - Where the resolution is returned
*
* RETURN:
Number of bits of resolution in the PM Timer (24 or 32).
* RETURN:
Status and timer resolution
*
* DESCRIPTION: Obtains resolution of the ACPI PM Timer.
* DESCRIPTION: Obtains resolution of the ACPI PM Timer
(24 or 32 bits)
.
*
******************************************************************************/
...
...
@@ -86,11 +86,11 @@ acpi_get_timer_resolution (
*
* FUNCTION: acpi_get_timer
*
* PARAMETERS:
none
* PARAMETERS:
Ticks - Where the timer value is returned
*
* RETURN:
Current value of the ACPI PM Timer (in ticks).
* RETURN:
Status and current ticks
*
* DESCRIPTION: Obtains current value of ACPI PM Timer.
* DESCRIPTION: Obtains current value of ACPI PM Timer
(in ticks)
.
*
******************************************************************************/
...
...
@@ -118,11 +118,11 @@ acpi_get_timer (
*
* FUNCTION: acpi_get_timer_duration
*
* PARAMETERS: start_ticks
* end_ticks
* time_elapsed
* PARAMETERS: start_ticks
- Starting timestamp
* end_ticks
- End timestamp
* time_elapsed
- Where the elapsed time is returned
*
* RETURN: time_elapsed
* RETURN:
Status and
time_elapsed
*
* DESCRIPTION: Computes the time elapsed (in microseconds) between two
* PM Timer time stamps, taking into account the possibility of
...
...
@@ -136,7 +136,7 @@ acpi_get_timer (
* Note that this function accommodates only a single timer
* rollover. Thus for 24-bit timers, this function should only
* be used for calculating durations less than ~4.6 seconds
* (~20 minutes for 32-bit timers) -- calculations below
* (~20 minutes for 32-bit timers) -- calculations below
:
*
* 2**24 Ticks / 3,600,000 Ticks/Sec = 4.66 sec
* 2**32 Ticks / 3,600,000 Ticks/Sec = 1193 sec or 19.88 minutes
...
...
@@ -164,7 +164,6 @@ acpi_get_timer_duration (
/*
* Compute Tick Delta:
* -------------------
* Handle (max one) timer rollovers on 24- versus 32-bit timers.
*/
if
(
start_ticks
<
end_ticks
)
{
...
...
@@ -188,10 +187,7 @@ acpi_get_timer_duration (
}
/*
* Compute Duration:
* -----------------
*
* Requires a 64-bit divide:
* Compute Duration (Requires a 64-bit divide):
*
* time_elapsed = (delta_ticks * 1000000) / PM_TIMER_FREQUENCY;
*/
...
...
drivers/acpi/numa.c
View file @
f2493ff8
...
...
@@ -51,6 +51,7 @@ acpi_table_print_srat_entry (
switch
(
header
->
type
)
{
case
ACPI_SRAT_PROCESSOR_AFFINITY
:
#ifdef ACPI_DEBUG_OUTPUT
{
struct
acpi_table_processor_affinity
*
p
=
(
struct
acpi_table_processor_affinity
*
)
header
;
...
...
@@ -58,9 +59,11 @@ acpi_table_print_srat_entry (
p
->
apic_id
,
p
->
lsapic_eid
,
p
->
proximity_domain
,
p
->
flags
.
enabled
?
"enabled"
:
"disabled"
));
}
#endif
/* ACPI_DEBUG_OUTPUT */
break
;
case
ACPI_SRAT_MEMORY_AFFINITY
:
#ifdef ACPI_DEBUG_OUTPUT
{
struct
acpi_table_memory_affinity
*
p
=
(
struct
acpi_table_memory_affinity
*
)
header
;
...
...
@@ -70,6 +73,7 @@ acpi_table_print_srat_entry (
p
->
flags
.
enabled
?
"enabled"
:
"disabled"
,
p
->
flags
.
hot_pluggable
?
" hot-pluggable"
:
""
));
}
#endif
/* ACPI_DEBUG_OUTPUT */
break
;
default:
...
...
@@ -94,8 +98,6 @@ acpi_parse_slit (unsigned long phys_addr, unsigned long size)
/* downcast just for %llu vs %lu for i386/ia64 */
localities
=
(
u32
)
slit
->
localities
;
printk
(
KERN_INFO
PREFIX
"SLIT localities %ux%u
\n
"
,
localities
,
localities
);
acpi_numa_slit_init
(
slit
);
return
0
;
...
...
@@ -103,7 +105,9 @@ acpi_parse_slit (unsigned long phys_addr, unsigned long size)
static
int
__init
acpi_parse_processor_affinity
(
acpi_table_entry_header
*
header
)
acpi_parse_processor_affinity
(
acpi_table_entry_header
*
header
,
const
unsigned
long
end
)
{
struct
acpi_table_processor_affinity
*
processor_affinity
;
...
...
@@ -121,7 +125,9 @@ acpi_parse_processor_affinity (acpi_table_entry_header *header)
static
int
__init
acpi_parse_memory_affinity
(
acpi_table_entry_header
*
header
)
acpi_parse_memory_affinity
(
acpi_table_entry_header
*
header
,
const
unsigned
long
end
)
{
struct
acpi_table_memory_affinity
*
memory_affinity
;
...
...
@@ -148,8 +154,6 @@ acpi_parse_srat (unsigned long phys_addr, unsigned long size)
srat
=
(
struct
acpi_table_srat
*
)
__va
(
phys_addr
);
printk
(
KERN_INFO
PREFIX
"SRAT revision %d
\n
"
,
srat
->
table_revision
);
return
0
;
}
...
...
drivers/acpi/osl.c
View file @
f2493ff8
...
...
@@ -55,6 +55,9 @@ struct acpi_os_dpc
void
*
context
;
};
#ifdef CONFIG_ACPI_CUSTOM_DSDT
#include CONFIG_ACPI_CUSTOM_DSDT_FILE
#endif
#ifdef ENABLE_DEBUGGER
#include <linux/kdb.h>
...
...
@@ -241,7 +244,14 @@ acpi_os_table_override (struct acpi_table_header *existing_table,
if
(
!
existing_table
||
!
new_table
)
return
AE_BAD_PARAMETER
;
#ifdef CONFIG_ACPI_CUSTOM_DSDT
if
(
strncmp
(
existing_table
->
signature
,
"DSDT"
,
4
)
==
0
)
*
new_table
=
(
struct
acpi_table_header
*
)
AmlCode
;
else
*
new_table
=
NULL
;
#else
*
new_table
=
NULL
;
#endif
return
AE_OK
;
}
...
...
drivers/acpi/pci_link.c
View file @
f2493ff8
...
...
@@ -448,7 +448,7 @@ acpi_pci_link_set (
#define PIRQ_PENALTY_ISA_USED (16*16*16*16*16)
#define PIRQ_PENALTY_ISA_ALWAYS (16*16*16*16*16*16)
static
int
__initdata
acpi_irq_penalty
[
ACPI_MAX_IRQS
]
=
{
static
int
acpi_irq_penalty
[
ACPI_MAX_IRQS
]
=
{
PIRQ_PENALTY_ISA_ALWAYS
,
/* IRQ0 timer */
PIRQ_PENALTY_ISA_ALWAYS
,
/* IRQ1 keyboard */
PIRQ_PENALTY_ISA_ALWAYS
,
/* IRQ2 cascade */
...
...
@@ -468,7 +468,7 @@ static int __initdata acpi_irq_penalty[ACPI_MAX_IRQS] = {
/* >IRQ15 */
};
int
int
__init
acpi_irq_penalty_init
(
void
)
{
struct
list_head
*
node
=
NULL
;
...
...
drivers/acpi/tables.c
View file @
f2493ff8
...
...
@@ -101,7 +101,7 @@ acpi_table_print (
else
name
=
header
->
signature
;
printk
(
KERN_
INFO
PREFIX
"%.4s (v%3.3d %6.6s %8.8s 0x%08x %.4s 0x%08x) @ 0x%p
\n
"
,
printk
(
KERN_
DEBUG
PREFIX
"%.4s (v%3.3d %6.6s %8.8s 0x%08x %.4s 0x%08x) @ 0x%p
\n
"
,
name
,
header
->
revision
,
header
->
oem_id
,
header
->
oem_table_id
,
header
->
oem_revision
,
header
->
asl_compiler_id
,
header
->
asl_compiler_revision
,
...
...
@@ -587,7 +587,7 @@ acpi_table_init (void)
return
-
ENODEV
;
}
printk
(
KERN_
INFO
PREFIX
"RSDP (v%3.3d %6.6s
) @ 0x%p
\n
"
,
printk
(
KERN_
DEBUG
PREFIX
"RSDP (v%3.3d %6.6s
) @ 0x%p
\n
"
,
rsdp
->
revision
,
rsdp
->
oem_id
,
(
void
*
)
rsdp_phys
);
if
(
rsdp
->
revision
<
2
)
...
...
drivers/acpi/utilities/utglobal.c
View file @
f2493ff8
...
...
@@ -142,16 +142,11 @@ acpi_format_exception (
*/
/* Debug switch - level and trace mask */
#ifdef ACPI_DEBUG_OUTPUT
u32
acpi_dbg_level
=
ACPI_DEBUG_DEFAULT
;
#else
u32
acpi_dbg_level
=
ACPI_NORMAL_DEFAULT
;
#endif
u32
acpi_dbg_level
=
0
;
/* Debug switch - layer (component) mask */
u32
acpi_dbg_layer
=
ACPI_COMPONENT_DEFAULT
;
u32
acpi_dbg_layer
=
0
;
u32
acpi_gbl_nesting_level
=
0
;
...
...
include/acpi/acconfig.h
View file @
f2493ff8
...
...
@@ -64,7 +64,7 @@
/* Version string */
#define ACPI_CA_VERSION 0x20040
715
#define ACPI_CA_VERSION 0x20040
816
/*
* OS name, used for the _OS object. The _OS object is essentially obsolete,
...
...
include/acpi/acexcep.h
View file @
f2493ff8
...
...
@@ -166,7 +166,7 @@
#define AE_AML_CIRCULAR_REFERENCE (acpi_status) (0x0020 | AE_CODE_AML)
#define AE_AML_BAD_RESOURCE_LENGTH (acpi_status) (0x0021 | AE_CODE_AML)
#define AE_CODE_AML_MAX 0x002
0
#define AE_CODE_AML_MAX 0x002
1
/*
* Internal exceptions used for control
...
...
include/acpi/acglobal.h
View file @
f2493ff8
...
...
@@ -94,7 +94,7 @@ extern u32 acpi_gbl_nesting_level;
* interpreter strictly follows the ACPI specification. Setting to TRUE
* allows the interpreter to forgive certain bad AML constructs.
*/
ACPI_EXTERN
u8
ACPI_INIT_GLOBAL
(
acpi_gbl_enable_interpeter_slack
,
FALSE
);
ACPI_EXTERN
u8
ACPI_INIT_GLOBAL
(
acpi_gbl_enable_interp
r
eter_slack
,
FALSE
);
/*
* Automatically serialize ALL control methods? Default is FALSE, meaning
...
...
include/acpi/acmacros.h
View file @
f2493ff8
...
...
@@ -364,24 +364,6 @@
#define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7'))
/* Macros for GAS addressing */
#if ACPI_MACHINE_WIDTH != 16
#define ACPI_PCI_DEVICE(a) (u16) ((ACPI_HIDWORD ((a))) & 0x0000FFFF)
#define ACPI_PCI_FUNCTION(a) (u16) ((ACPI_LODWORD ((a))) >> 16)
#define ACPI_PCI_REGISTER(a) (u16) ((ACPI_LODWORD ((a))) & 0x0000FFFF)
#else
/* No support for GAS and PCI IDs in 16-bit mode */
#define ACPI_PCI_FUNCTION(a) (u16) ((a) & 0xFFFF0000)
#define ACPI_PCI_DEVICE(a) (u16) ((a) & 0x0000FFFF)
#define ACPI_PCI_REGISTER(a) (u16) ((a) & 0x0000FFFF)
#endif
/* Bitfields within ACPI registers */
...
...
include/acpi/acpi_drivers.h
View file @
f2493ff8
...
...
@@ -106,59 +106,4 @@ int acpi_ec_ecdt_probe (void);
int
acpi_processor_set_thermal_limit
(
acpi_handle
handle
,
int
type
);
/* --------------------------------------------------------------------------
Debug Support
-------------------------------------------------------------------------- */
#define ACPI_DEBUG_RESTORE 0
#define ACPI_DEBUG_LOW 1
#define ACPI_DEBUG_MEDIUM 2
#define ACPI_DEBUG_HIGH 3
#define ACPI_DEBUG_DRIVERS 4
extern
u32
acpi_dbg_level
;
extern
u32
acpi_dbg_layer
;
static
inline
void
acpi_set_debug
(
u32
flag
)
{
static
u32
layer_save
;
static
u32
level_save
;
switch
(
flag
)
{
case
ACPI_DEBUG_RESTORE
:
acpi_dbg_layer
=
layer_save
;
acpi_dbg_level
=
level_save
;
break
;
case
ACPI_DEBUG_LOW
:
case
ACPI_DEBUG_MEDIUM
:
case
ACPI_DEBUG_HIGH
:
case
ACPI_DEBUG_DRIVERS
:
layer_save
=
acpi_dbg_layer
;
level_save
=
acpi_dbg_level
;
break
;
}
switch
(
flag
)
{
case
ACPI_DEBUG_LOW
:
acpi_dbg_layer
=
ACPI_COMPONENT_DEFAULT
|
ACPI_ALL_DRIVERS
;
acpi_dbg_level
=
ACPI_DEBUG_DEFAULT
;
break
;
case
ACPI_DEBUG_MEDIUM
:
acpi_dbg_layer
=
ACPI_COMPONENT_DEFAULT
|
ACPI_ALL_DRIVERS
;
acpi_dbg_level
=
ACPI_LV_FUNCTIONS
|
ACPI_LV_ALL_EXCEPTIONS
;
break
;
case
ACPI_DEBUG_HIGH
:
acpi_dbg_layer
=
0xFFFFFFFF
;
acpi_dbg_level
=
0xFFFFFFFF
;
break
;
case
ACPI_DEBUG_DRIVERS
:
acpi_dbg_layer
=
ACPI_ALL_DRIVERS
;
acpi_dbg_level
=
0xFFFFFFFF
;
break
;
}
}
#endif
/*__ACPI_DRIVERS_H__*/
include/linux/acpi.h
View file @
f2493ff8
...
...
@@ -453,14 +453,15 @@ void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
#ifdef CONFIG_ACPI_EC
int
ec_read
(
u8
addr
,
u8
*
val
);
int
ec_write
(
u8
addr
,
u8
val
);
extern
int
ec_read
(
u8
addr
,
u8
*
val
);
extern
int
ec_write
(
u8
addr
,
u8
val
);
#endif
/*CONFIG_ACPI_EC*/
#ifdef CONFIG_ACPI_INTERPRETER
int
acpi_blacklisted
(
void
);
extern
int
acpi_blacklisted
(
void
);
extern
void
acpi_bios_year
(
char
*
s
);
#else
/*!CONFIG_ACPI_INTERPRETER*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment