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
52da3834
Commit
52da3834
authored
Feb 26, 2004
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
425e6258
b892eea6
Changes
22
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
205 additions
and
50 deletions
+205
-50
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+4
-1
arch/i386/kernel/acpi/boot.c
arch/i386/kernel/acpi/boot.c
+2
-1
arch/i386/kernel/setup.c
arch/i386/kernel/setup.c
+5
-0
arch/x86_64/kernel/acpi/boot.c
arch/x86_64/kernel/acpi/boot.c
+2
-1
drivers/acpi/Kconfig
drivers/acpi/Kconfig
+0
-12
drivers/acpi/executer/exfldio.c
drivers/acpi/executer/exfldio.c
+3
-4
drivers/acpi/hardware/hwgpe.c
drivers/acpi/hardware/hwgpe.c
+8
-0
drivers/acpi/hardware/hwregs.c
drivers/acpi/hardware/hwregs.c
+3
-3
drivers/acpi/hardware/hwsleep.c
drivers/acpi/hardware/hwsleep.c
+59
-7
drivers/acpi/namespace/nseval.c
drivers/acpi/namespace/nseval.c
+2
-2
drivers/acpi/namespace/nsutils.c
drivers/acpi/namespace/nsutils.c
+3
-3
drivers/acpi/namespace/nsxfname.c
drivers/acpi/namespace/nsxfname.c
+7
-0
drivers/acpi/resources/rsxface.c
drivers/acpi/resources/rsxface.c
+17
-1
drivers/acpi/utilities/uteval.c
drivers/acpi/utilities/uteval.c
+60
-0
drivers/acpi/utilities/utglobal.c
drivers/acpi/utilities/utglobal.c
+6
-1
include/acpi/acconfig.h
include/acpi/acconfig.h
+1
-1
include/acpi/acglobal.h
include/acpi/acglobal.h
+13
-12
include/acpi/actypes.h
include/acpi/actypes.h
+2
-1
include/acpi/acutils.h
include/acpi/acutils.h
+4
-0
include/asm-i386/acpi.h
include/asm-i386/acpi.h
+1
-0
include/asm-ia64/acpi.h
include/asm-ia64/acpi.h
+2
-0
include/asm-x86_64/acpi.h
include/asm-x86_64/acpi.h
+1
-0
No files found.
Documentation/kernel-parameters.txt
View file @
52da3834
...
@@ -90,10 +90,13 @@ running once the system is up.
...
@@ -90,10 +90,13 @@ running once the system is up.
Format: <irq>, default is 13
Format: <irq>, default is 13
acpi= [HW,ACPI] Advanced Configuration and Power Interface
acpi= [HW,ACPI] Advanced Configuration and Power Interface
Format: { force | off | ht }
Format: { force | off | ht
| strict
}
force -- enables ACPI for systems with default off
force -- enables ACPI for systems with default off
off -- disabled ACPI for systems with default on
off -- disabled ACPI for systems with default on
ht -- run only enough ACPI to enable Hyper Threading
ht -- run only enough ACPI to enable Hyper Threading
strict -- Be less tolerant of platforms that are not
strictly ACPI specification compliant.
See also Documentation/pm.txt.
See also Documentation/pm.txt.
acpi_pic_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
acpi_pic_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
...
...
arch/i386/kernel/acpi/boot.c
View file @
52da3834
...
@@ -43,11 +43,12 @@
...
@@ -43,11 +43,12 @@
#define PREFIX "ACPI: "
#define PREFIX "ACPI: "
int
acpi_noirq
__initdata
=
0
;
/* skip ACPI IRQ initialization */
int
acpi_noirq
__initdata
;
/* skip ACPI IRQ initialization */
int
acpi_ht
__initdata
=
1
;
/* enable HT */
int
acpi_ht
__initdata
=
1
;
/* enable HT */
int
acpi_lapic
;
int
acpi_lapic
;
int
acpi_ioapic
;
int
acpi_ioapic
;
int
acpi_strict
;
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
Boot-time Configuration
Boot-time Configuration
...
...
arch/i386/kernel/setup.c
View file @
52da3834
...
@@ -569,6 +569,11 @@ static void __init parse_cmdline_early (char ** cmdline_p)
...
@@ -569,6 +569,11 @@ static void __init parse_cmdline_early (char ** cmdline_p)
acpi_disabled
=
0
;
acpi_disabled
=
0
;
}
}
/* acpi=strict disables out-of-spec workarounds */
else
if
(
!
memcmp
(
from
,
"acpi=strict"
,
11
))
{
acpi_strict
=
1
;
}
/* Limit ACPI just to boot-time to enable HT */
/* Limit ACPI just to boot-time to enable HT */
else
if
(
!
memcmp
(
from
,
"acpi=ht"
,
7
))
{
else
if
(
!
memcmp
(
from
,
"acpi=ht"
,
7
))
{
acpi_ht
=
1
;
acpi_ht
=
1
;
...
...
arch/x86_64/kernel/acpi/boot.c
View file @
52da3834
...
@@ -48,11 +48,12 @@
...
@@ -48,11 +48,12 @@
#define PREFIX "ACPI: "
#define PREFIX "ACPI: "
int
acpi_noirq
__initdata
=
0
;
/* skip ACPI IRQ initialization */
int
acpi_noirq
__initdata
;
/* skip ACPI IRQ initialization */
int
acpi_ht
__initdata
=
1
;
/* enable HT */
int
acpi_ht
__initdata
=
1
;
/* enable HT */
int
acpi_lapic
;
int
acpi_lapic
;
int
acpi_ioapic
;
int
acpi_ioapic
;
int
acpi_strict
;
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
Boot-time Configuration
Boot-time Configuration
...
...
drivers/acpi/Kconfig
View file @
52da3834
...
@@ -251,18 +251,6 @@ config ACPI_SYSTEM
...
@@ -251,18 +251,6 @@ config ACPI_SYSTEM
This driver will enable your system to shut down using ACPI, and
This driver will enable your system to shut down using ACPI, and
dump your ACPI DSDT table using /proc/acpi/dsdt.
dump your ACPI DSDT table using /proc/acpi/dsdt.
config ACPI_RELAXED_AML
bool "Relaxed AML"
depends on ACPI_INTERPRETER
depends on !IA64_SGI_SN
default n
help
If you say `Y' here, the ACPI interpreter will relax its checking
for valid AML and will ignore some AML mistakes, such as off-by-one
errors in region sizes. Some laptops may require this option. In
particular, many Toshiba laptops require this for correct operation
of the AC module.
config X86_PM_TIMER
config X86_PM_TIMER
bool "Power Management Timer Support"
bool "Power Management Timer Support"
depends on X86 && ACPI
depends on X86 && ACPI
...
...
drivers/acpi/executer/exfldio.c
View file @
52da3834
...
@@ -154,8 +154,7 @@ acpi_ex_setup_region (
...
@@ -154,8 +154,7 @@ acpi_ex_setup_region (
field_datum_byte_offset
,
obj_desc
->
common_field
.
access_byte_width
,
field_datum_byte_offset
,
obj_desc
->
common_field
.
access_byte_width
,
acpi_ut_get_node_name
(
rgn_desc
->
region
.
node
),
rgn_desc
->
region
.
length
));
acpi_ut_get_node_name
(
rgn_desc
->
region
.
node
),
rgn_desc
->
region
.
length
));
#ifdef CONFIG_ACPI_RELAXED_AML
if
(
!
acpi_strict
)
{
{
/*
/*
* Allow access to the field if it is within the region size
* Allow access to the field if it is within the region size
* rounded up to a multiple of the access byte width. This
* rounded up to a multiple of the access byte width. This
...
@@ -186,9 +185,9 @@ acpi_ex_setup_region (
...
@@ -186,9 +185,9 @@ acpi_ex_setup_region (
return_ACPI_STATUS
(
AE_OK
);
return_ACPI_STATUS
(
AE_OK
);
}
}
}
}
#else
else
{
return_ACPI_STATUS
(
AE_AML_REGION_LIMIT
);
return_ACPI_STATUS
(
AE_AML_REGION_LIMIT
);
#endif
}
}
}
return_ACPI_STATUS
(
AE_OK
);
return_ACPI_STATUS
(
AE_OK
);
...
...
drivers/acpi/hardware/hwgpe.c
View file @
52da3834
...
@@ -528,6 +528,14 @@ acpi_hw_enable_non_wakeup_gpe_block (
...
@@ -528,6 +528,14 @@ acpi_hw_enable_non_wakeup_gpe_block (
/* Examine each GPE register within the block */
/* Examine each GPE register within the block */
for
(
i
=
0
;
i
<
gpe_block
->
register_count
;
i
++
)
{
for
(
i
=
0
;
i
<
gpe_block
->
register_count
;
i
++
)
{
/* Clear the entire status register */
status
=
acpi_hw_low_level_write
(
8
,
0xFF
,
&
gpe_block
->
register_info
[
i
].
status_address
);
if
(
ACPI_FAILURE
(
status
))
{
return
(
status
);
}
/*
/*
* We previously stored the enabled status of all GPEs.
* We previously stored the enabled status of all GPEs.
* Blast them back in.
* Blast them back in.
...
...
drivers/acpi/hardware/hwregs.c
View file @
52da3834
...
@@ -152,11 +152,11 @@ acpi_get_sleep_type_data (
...
@@ -152,11 +152,11 @@ acpi_get_sleep_type_data (
/*
/*
* Evaluate the namespace object containing the values for this state
* Evaluate the namespace object containing the values for this state
*/
*/
status
=
acpi_ns_evaluate_by_name
((
char
*
)
acpi_gbl_
db_sleep_stat
es
[
sleep_state
],
status
=
acpi_ns_evaluate_by_name
((
char
*
)
acpi_gbl_
sleep_state_nam
es
[
sleep_state
],
NULL
,
&
obj_desc
);
NULL
,
&
obj_desc
);
if
(
ACPI_FAILURE
(
status
))
{
if
(
ACPI_FAILURE
(
status
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_EXEC
,
"%s while evaluating sleep_state [%s]
\n
"
,
ACPI_DEBUG_PRINT
((
ACPI_DB_EXEC
,
"%s while evaluating sleep_state [%s]
\n
"
,
acpi_format_exception
(
status
),
acpi_gbl_
db_sleep_stat
es
[
sleep_state
]));
acpi_format_exception
(
status
),
acpi_gbl_
sleep_state_nam
es
[
sleep_state
]));
return_ACPI_STATUS
(
status
);
return_ACPI_STATUS
(
status
);
}
}
...
@@ -201,7 +201,7 @@ acpi_get_sleep_type_data (
...
@@ -201,7 +201,7 @@ acpi_get_sleep_type_data (
if
(
ACPI_FAILURE
(
status
))
{
if
(
ACPI_FAILURE
(
status
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_ERROR
,
"While evaluating sleep_state [%s], bad Sleep object %p type %s
\n
"
,
ACPI_DEBUG_PRINT
((
ACPI_DB_ERROR
,
"While evaluating sleep_state [%s], bad Sleep object %p type %s
\n
"
,
acpi_gbl_
db_sleep_stat
es
[
sleep_state
],
obj_desc
,
acpi_ut_get_object_type_name
(
obj_desc
)));
acpi_gbl_
sleep_state_nam
es
[
sleep_state
],
obj_desc
,
acpi_ut_get_object_type_name
(
obj_desc
)));
}
}
acpi_ut_remove_reference
(
obj_desc
);
acpi_ut_remove_reference
(
obj_desc
);
...
...
drivers/acpi/hardware/hwsleep.c
View file @
52da3834
...
@@ -48,6 +48,19 @@
...
@@ -48,6 +48,19 @@
ACPI_MODULE_NAME
(
"hwsleep"
)
ACPI_MODULE_NAME
(
"hwsleep"
)
#define METHOD_NAME__BFS "\\_BFS"
#define METHOD_NAME__GTS "\\_GTS"
#define METHOD_NAME__PTS "\\_PTS"
#define METHOD_NAME__SST "\\_SI._SST"
#define METHOD_NAME__WAK "\\_WAK"
#define ACPI_SST_INDICATOR_OFF 0
#define ACPI_SST_WORKING 1
#define ACPI_SST_WAKING 2
#define ACPI_SST_SLEEPING 3
#define ACPI_SST_SLEEP_CONTEXT 4
/******************************************************************************
/******************************************************************************
*
*
* FUNCTION: acpi_set_firmware_waking_vector
* FUNCTION: acpi_set_firmware_waking_vector
...
@@ -171,19 +184,41 @@ acpi_enter_sleep_state_prep (
...
@@ -171,19 +184,41 @@ acpi_enter_sleep_state_prep (
/* Run the _PTS and _GTS methods */
/* Run the _PTS and _GTS methods */
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_PTS"
,
&
arg_list
,
NULL
);
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__PTS
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
return_ACPI_STATUS
(
status
);
return_ACPI_STATUS
(
status
);
}
}
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_GTS"
,
&
arg_list
,
NULL
);
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__GTS
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
return_ACPI_STATUS
(
status
);
return_ACPI_STATUS
(
status
);
}
}
/* Setup the argument to _SST */
switch
(
sleep_state
)
{
case
ACPI_STATE_S0
:
arg
.
integer
.
value
=
ACPI_SST_WORKING
;
break
;
case
ACPI_STATE_S1
:
case
ACPI_STATE_S2
:
case
ACPI_STATE_S3
:
arg
.
integer
.
value
=
ACPI_SST_SLEEPING
;
break
;
case
ACPI_STATE_S4
:
arg
.
integer
.
value
=
ACPI_SST_SLEEP_CONTEXT
;
break
;
default:
arg
.
integer
.
value
=
ACPI_SST_INDICATOR_OFF
;
/* Default is indicator off */
break
;
}
/* Set the system indicators to show the desired sleep state. */
/* Set the system indicators to show the desired sleep state. */
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_SI._SST"
,
&
arg_list
,
NULL
);
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__SST
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_REPORT_ERROR
((
"Method _SST failed, %s
\n
"
,
acpi_format_exception
(
status
)));
ACPI_REPORT_ERROR
((
"Method _SST failed, %s
\n
"
,
acpi_format_exception
(
status
)));
}
}
...
@@ -477,19 +512,19 @@ acpi_leave_sleep_state (
...
@@ -477,19 +512,19 @@ acpi_leave_sleep_state (
/* Ignore any errors from these methods */
/* Ignore any errors from these methods */
arg
.
integer
.
value
=
0
;
arg
.
integer
.
value
=
ACPI_SST_WAKING
;
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_SI._SST"
,
&
arg_list
,
NULL
);
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__SST
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_REPORT_ERROR
((
"Method _SST failed, %s
\n
"
,
acpi_format_exception
(
status
)));
ACPI_REPORT_ERROR
((
"Method _SST failed, %s
\n
"
,
acpi_format_exception
(
status
)));
}
}
arg
.
integer
.
value
=
sleep_state
;
arg
.
integer
.
value
=
sleep_state
;
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_BFS"
,
&
arg_list
,
NULL
);
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__BFS
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_REPORT_ERROR
((
"Method _BFS failed, %s
\n
"
,
acpi_format_exception
(
status
)));
ACPI_REPORT_ERROR
((
"Method _BFS failed, %s
\n
"
,
acpi_format_exception
(
status
)));
}
}
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_WAK"
,
&
arg_list
,
NULL
);
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__WAK
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_REPORT_ERROR
((
"Method _WAK failed, %s
\n
"
,
acpi_format_exception
(
status
)));
ACPI_REPORT_ERROR
((
"Method _WAK failed, %s
\n
"
,
acpi_format_exception
(
status
)));
}
}
...
@@ -501,8 +536,25 @@ acpi_leave_sleep_state (
...
@@ -501,8 +536,25 @@ acpi_leave_sleep_state (
return_ACPI_STATUS
(
status
);
return_ACPI_STATUS
(
status
);
}
}
/* Enable power button */
acpi_set_register
(
acpi_gbl_fixed_event_info
[
ACPI_EVENT_POWER_BUTTON
].
enable_register_id
,
1
,
ACPI_MTX_DO_NOT_LOCK
);
acpi_set_register
(
acpi_gbl_fixed_event_info
[
ACPI_EVENT_POWER_BUTTON
].
status_register_id
,
1
,
ACPI_MTX_DO_NOT_LOCK
);
/* Enable BM arbitration */
/* Enable BM arbitration */
status
=
acpi_set_register
(
ACPI_BITREG_ARB_DISABLE
,
0
,
ACPI_MTX_LOCK
);
status
=
acpi_set_register
(
ACPI_BITREG_ARB_DISABLE
,
0
,
ACPI_MTX_LOCK
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
);
}
arg
.
integer
.
value
=
ACPI_SST_WORKING
;
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__SST
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_REPORT_ERROR
((
"Method _SST failed, %s
\n
"
,
acpi_format_exception
(
status
)));
}
return_ACPI_STATUS
(
status
);
return_ACPI_STATUS
(
status
);
}
}
drivers/acpi/namespace/nseval.c
View file @
52da3834
...
@@ -110,7 +110,7 @@ acpi_ns_evaluate_relative (
...
@@ -110,7 +110,7 @@ acpi_ns_evaluate_relative (
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
if
(
ACPI_FAILURE
(
status
))
{
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
)
;
goto
cleanup
;
}
}
prefix_node
=
acpi_ns_map_handle_to_node
(
handle
);
prefix_node
=
acpi_ns_map_handle_to_node
(
handle
);
...
@@ -197,7 +197,7 @@ acpi_ns_evaluate_by_name (
...
@@ -197,7 +197,7 @@ acpi_ns_evaluate_by_name (
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
if
(
ACPI_FAILURE
(
status
))
{
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
)
;
goto
cleanup
;
}
}
/* Lookup the name in the namespace */
/* Lookup the name in the namespace */
...
...
drivers/acpi/namespace/nsutils.c
View file @
52da3834
...
@@ -918,7 +918,7 @@ acpi_ns_get_node_by_path (
...
@@ -918,7 +918,7 @@ acpi_ns_get_node_by_path (
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
if
(
ACPI_FAILURE
(
status
))
{
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
)
;
goto
cleanup
;
}
}
/* Setup lookup scope (search starting point) */
/* Setup lookup scope (search starting point) */
...
@@ -936,10 +936,10 @@ acpi_ns_get_node_by_path (
...
@@ -936,10 +936,10 @@ acpi_ns_get_node_by_path (
internal_path
,
acpi_format_exception
(
status
)));
internal_path
,
acpi_format_exception
(
status
)));
}
}
/* Cleanup */
(
void
)
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
(
void
)
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
cleanup:
/* Cleanup */
if
(
internal_path
)
{
if
(
internal_path
)
{
ACPI_MEM_FREE
(
internal_path
);
ACPI_MEM_FREE
(
internal_path
);
}
}
...
...
drivers/acpi/namespace/nsxfname.c
View file @
52da3834
...
@@ -326,6 +326,13 @@ acpi_get_object_info (
...
@@ -326,6 +326,13 @@ acpi_get_object_info (
info
.
valid
|=
ACPI_VALID_ADR
;
info
.
valid
|=
ACPI_VALID_ADR
;
}
}
/* Execute the Device._sx_d methods */
status
=
acpi_ut_execute_sxds
(
node
,
info
.
highest_dstates
);
if
(
ACPI_SUCCESS
(
status
))
{
info
.
valid
|=
ACPI_VALID_STA
;
}
status
=
AE_OK
;
status
=
AE_OK
;
}
}
...
...
drivers/acpi/resources/rsxface.c
View file @
52da3834
...
@@ -239,6 +239,7 @@ acpi_walk_resources (
...
@@ -239,6 +239,7 @@ acpi_walk_resources (
acpi_status
status
;
acpi_status
status
;
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
struct
acpi_resource
*
resource
;
struct
acpi_resource
*
resource
;
struct
acpi_resource
*
buffer_end
;
ACPI_FUNCTION_TRACE
(
"acpi_walk_resources"
);
ACPI_FUNCTION_TRACE
(
"acpi_walk_resources"
);
...
@@ -255,7 +256,13 @@ acpi_walk_resources (
...
@@ -255,7 +256,13 @@ acpi_walk_resources (
return_ACPI_STATUS
(
status
);
return_ACPI_STATUS
(
status
);
}
}
/* Setup pointers */
resource
=
(
struct
acpi_resource
*
)
buffer
.
pointer
;
resource
=
(
struct
acpi_resource
*
)
buffer
.
pointer
;
buffer_end
=
(
struct
acpi_resource
*
)
((
u8
*
)
buffer
.
pointer
+
buffer
.
length
);
/* Walk the resource list */
for
(;;)
{
for
(;;)
{
if
(
!
resource
||
resource
->
id
==
ACPI_RSTYPE_END_TAG
)
{
if
(
!
resource
||
resource
->
id
==
ACPI_RSTYPE_END_TAG
)
{
break
;
break
;
...
@@ -268,6 +275,7 @@ acpi_walk_resources (
...
@@ -268,6 +275,7 @@ acpi_walk_resources (
case
AE_CTRL_DEPTH
:
case
AE_CTRL_DEPTH
:
/* Just keep going */
/* Just keep going */
status
=
AE_OK
;
status
=
AE_OK
;
break
;
break
;
...
@@ -285,7 +293,15 @@ acpi_walk_resources (
...
@@ -285,7 +293,15 @@ acpi_walk_resources (
goto
cleanup
;
goto
cleanup
;
}
}
/* Get the next resource descriptor */
resource
=
ACPI_NEXT_RESOURCE
(
resource
);
resource
=
ACPI_NEXT_RESOURCE
(
resource
);
/* Check for end-of-buffer */
if
(
resource
>=
buffer_end
)
{
goto
cleanup
;
}
}
}
cleanup:
cleanup:
...
...
drivers/acpi/utilities/uteval.c
View file @
52da3834
...
@@ -562,3 +562,63 @@ acpi_ut_execute_STA (
...
@@ -562,3 +562,63 @@ acpi_ut_execute_STA (
acpi_ut_remove_reference
(
obj_desc
);
acpi_ut_remove_reference
(
obj_desc
);
return_ACPI_STATUS
(
status
);
return_ACPI_STATUS
(
status
);
}
}
/*******************************************************************************
*
* FUNCTION: acpi_ut_execute_Sxds
*
* PARAMETERS: device_node - Node for the device
* *Flags - Where the status flags are returned
*
* RETURN: Status
*
* DESCRIPTION: Executes _STA for selected device and stores results in
* *Flags.
*
* NOTE: Internal function, no parameter validation
*
******************************************************************************/
acpi_status
acpi_ut_execute_sxds
(
struct
acpi_namespace_node
*
device_node
,
u8
*
highest
)
{
union
acpi_operand_object
*
obj_desc
;
acpi_status
status
;
u32
i
;
ACPI_FUNCTION_TRACE
(
"ut_execute_Sxds"
);
for
(
i
=
0
;
i
<
4
;
i
++
)
{
highest
[
i
]
=
0xFF
;
status
=
acpi_ut_evaluate_object
(
device_node
,
(
char
*
)
acpi_gbl_highest_dstate_names
[
i
],
ACPI_BTYPE_INTEGER
,
&
obj_desc
);
if
(
ACPI_FAILURE
(
status
))
{
if
(
status
!=
AE_NOT_FOUND
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_EXEC
,
"%s on Device %4.4s, %s
\n
"
,
(
char
*
)
acpi_gbl_highest_dstate_names
[
i
],
acpi_ut_get_node_name
(
device_node
),
acpi_format_exception
(
status
)));
return_ACPI_STATUS
(
status
);
}
}
else
{
/* Extract the Dstate value */
highest
[
i
]
=
(
u8
)
obj_desc
->
integer
.
value
;
/* Delete the return object */
acpi_ut_remove_reference
(
obj_desc
);
}
}
return_ACPI_STATUS
(
AE_OK
);
}
drivers/acpi/utilities/utglobal.c
View file @
52da3834
...
@@ -171,7 +171,7 @@ u8 acpi_gbl_shutdown = TRUE;
...
@@ -171,7 +171,7 @@ u8 acpi_gbl_shutdown = TRUE;
const
u8
acpi_gbl_decode_to8bit
[
8
]
=
{
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
};
const
u8
acpi_gbl_decode_to8bit
[
8
]
=
{
1
,
2
,
4
,
8
,
16
,
32
,
64
,
128
};
const
char
*
acpi_gbl_
db_sleep_stat
es
[
ACPI_S_STATE_COUNT
]
=
{
const
char
*
acpi_gbl_
sleep_state_nam
es
[
ACPI_S_STATE_COUNT
]
=
{
"
\\
_S0_"
,
"
\\
_S0_"
,
"
\\
_S1_"
,
"
\\
_S1_"
,
"
\\
_S2_"
,
"
\\
_S2_"
,
...
@@ -179,6 +179,11 @@ const char *acpi_gbl_db_sleep_states[ACPI_S_STATE_COUNT
...
@@ -179,6 +179,11 @@ const char *acpi_gbl_db_sleep_states[ACPI_S_STATE_COUNT
"
\\
_S4_"
,
"
\\
_S4_"
,
"
\\
_S5_"
};
"
\\
_S5_"
};
const
char
*
acpi_gbl_highest_dstate_names
[
4
]
=
{
"_S1D"
,
"_S2D"
,
"_S3D"
,
"_S4D"
};
/******************************************************************************
/******************************************************************************
*
*
...
...
include/acpi/acconfig.h
View file @
52da3834
...
@@ -64,7 +64,7 @@
...
@@ -64,7 +64,7 @@
/* Version string */
/* Version string */
#define ACPI_CA_VERSION 0x200402
11
#define ACPI_CA_VERSION 0x200402
20
/* Maximum objects in the various object caches */
/* Maximum objects in the various object caches */
...
...
include/acpi/acglobal.h
View file @
52da3834
...
@@ -57,6 +57,12 @@
...
@@ -57,6 +57,12 @@
#define ACPI_EXTERN extern
#define ACPI_EXTERN extern
#endif
#endif
/*
* Keep local copies of these FADT-based registers. NOTE: These globals
* are first in this file for alignment reasons on 64-bit systems.
*/
ACPI_EXTERN
struct
acpi_generic_address
acpi_gbl_xpm1a_enable
;
ACPI_EXTERN
struct
acpi_generic_address
acpi_gbl_xpm1b_enable
;
/*****************************************************************************
/*****************************************************************************
*
*
...
@@ -97,6 +103,11 @@ ACPI_EXTERN FADT_DESCRIPTOR *acpi_gbl_FADT;
...
@@ -97,6 +103,11 @@ ACPI_EXTERN FADT_DESCRIPTOR *acpi_gbl_FADT;
ACPI_EXTERN
struct
acpi_table_header
*
acpi_gbl_DSDT
;
ACPI_EXTERN
struct
acpi_table_header
*
acpi_gbl_DSDT
;
ACPI_EXTERN
FACS_DESCRIPTOR
*
acpi_gbl_FACS
;
ACPI_EXTERN
FACS_DESCRIPTOR
*
acpi_gbl_FACS
;
ACPI_EXTERN
struct
acpi_common_facs
acpi_gbl_common_fACS
;
ACPI_EXTERN
struct
acpi_common_facs
acpi_gbl_common_fACS
;
/*
* Since there may be multiple SSDTs and PSDTS, a single pointer is not
* sufficient; Therefore, there isn't one!
*/
/*
/*
* Handle both ACPI 1.0 and ACPI 2.0 Integer widths
* Handle both ACPI 1.0 and ACPI 2.0 Integer widths
...
@@ -107,17 +118,6 @@ ACPI_EXTERN u8 acpi_gbl_integer_bit_width;
...
@@ -107,17 +118,6 @@ ACPI_EXTERN u8 acpi_gbl_integer_bit_width;
ACPI_EXTERN
u8
acpi_gbl_integer_byte_width
;
ACPI_EXTERN
u8
acpi_gbl_integer_byte_width
;
ACPI_EXTERN
u8
acpi_gbl_integer_nybble_width
;
ACPI_EXTERN
u8
acpi_gbl_integer_nybble_width
;
/* Keep local copies of these FADT-based registers */
ACPI_EXTERN
struct
acpi_generic_address
acpi_gbl_xpm1a_enable
;
ACPI_EXTERN
struct
acpi_generic_address
acpi_gbl_xpm1b_enable
;
/*
* Since there may be multiple SSDTs and PSDTS, a single pointer is not
* sufficient; Therefore, there isn't one!
*/
/*
/*
* ACPI Table info arrays
* ACPI Table info arrays
*/
*/
...
@@ -165,7 +165,8 @@ ACPI_EXTERN u8 acpi_gbl_events_initialized;
...
@@ -165,7 +165,8 @@ ACPI_EXTERN u8 acpi_gbl_events_initialized;
extern
u8
acpi_gbl_shutdown
;
extern
u8
acpi_gbl_shutdown
;
extern
u32
acpi_gbl_startup_flags
;
extern
u32
acpi_gbl_startup_flags
;
extern
const
u8
acpi_gbl_decode_to8bit
[
8
];
extern
const
u8
acpi_gbl_decode_to8bit
[
8
];
extern
const
char
*
acpi_gbl_db_sleep_states
[
ACPI_S_STATE_COUNT
];
extern
const
char
*
acpi_gbl_sleep_state_names
[
ACPI_S_STATE_COUNT
];
extern
const
char
*
acpi_gbl_highest_dstate_names
[
4
];
extern
const
struct
acpi_opcode_info
acpi_gbl_aml_op_info
[
AML_NUM_OPCODES
];
extern
const
struct
acpi_opcode_info
acpi_gbl_aml_op_info
[
AML_NUM_OPCODES
];
extern
const
char
*
acpi_gbl_region_types
[
ACPI_NUM_PREDEFINED_REGIONS
];
extern
const
char
*
acpi_gbl_region_types
[
ACPI_NUM_PREDEFINED_REGIONS
];
...
...
include/acpi/actypes.h
View file @
52da3834
...
@@ -880,7 +880,8 @@ struct acpi_device_info
...
@@ -880,7 +880,8 @@ struct acpi_device_info
{
{
ACPI_COMMON_OBJ_INFO
;
ACPI_COMMON_OBJ_INFO
;
u32
valid
;
/* Indicates which fields are valid */
u8
highest_dstates
[
4
];
/* _sx_d values 0xFF indicates not valid */
u32
valid
;
/* Indicates which fields below are valid */
u32
current_status
;
/* _STA value */
u32
current_status
;
/* _STA value */
acpi_integer
address
;
/* _ADR value if any */
acpi_integer
address
;
/* _ADR value if any */
struct
acpi_device_id
hardware_id
;
/* _HID value if any */
struct
acpi_device_id
hardware_id
;
/* _HID value if any */
...
...
include/acpi/acutils.h
View file @
52da3834
...
@@ -508,6 +508,10 @@ acpi_ut_execute_UID (
...
@@ -508,6 +508,10 @@ acpi_ut_execute_UID (
struct
acpi_namespace_node
*
device_node
,
struct
acpi_namespace_node
*
device_node
,
struct
acpi_device_id
*
uid
);
struct
acpi_device_id
*
uid
);
acpi_status
acpi_ut_execute_sxds
(
struct
acpi_namespace_node
*
device_node
,
u8
*
highest
);
/*
/*
* ut_mutex - mutual exclusion interfaces
* ut_mutex - mutual exclusion interfaces
...
...
include/asm-i386/acpi.h
View file @
52da3834
...
@@ -110,6 +110,7 @@
...
@@ -110,6 +110,7 @@
extern
int
acpi_lapic
;
extern
int
acpi_lapic
;
extern
int
acpi_ioapic
;
extern
int
acpi_ioapic
;
extern
int
acpi_noirq
;
extern
int
acpi_noirq
;
extern
int
acpi_strict
;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4
#define FIX_ACPI_PAGES 4
...
...
include/asm-ia64/acpi.h
View file @
52da3834
...
@@ -88,6 +88,8 @@ ia64_acpi_release_global_lock (unsigned int *lock)
...
@@ -88,6 +88,8 @@ ia64_acpi_release_global_lock (unsigned int *lock)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
((Acq) = ia64_acpi_release_global_lock((unsigned int *) GLptr))
((Acq) = ia64_acpi_release_global_lock((unsigned int *) GLptr))
#define acpi_strict 1
/* no ACPI spec workarounds on IA64 */
const
char
*
acpi_get_sysname
(
void
);
const
char
*
acpi_get_sysname
(
void
);
int
acpi_request_vector
(
u32
int_type
);
int
acpi_request_vector
(
u32
int_type
);
int
acpi_register_irq
(
u32
gsi
,
u32
polarity
,
u32
trigger
);
int
acpi_register_irq
(
u32
gsi
,
u32
polarity
,
u32
trigger
);
...
...
include/asm-x86_64/acpi.h
View file @
52da3834
...
@@ -104,6 +104,7 @@ __acpi_release_global_lock (unsigned int *lock)
...
@@ -104,6 +104,7 @@ __acpi_release_global_lock (unsigned int *lock)
extern
int
acpi_lapic
;
extern
int
acpi_lapic
;
extern
int
acpi_ioapic
;
extern
int
acpi_ioapic
;
extern
int
acpi_noirq
;
extern
int
acpi_noirq
;
extern
int
acpi_strict
;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4
#define FIX_ACPI_PAGES 4
...
...
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