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
360adfc4
Commit
360adfc4
authored
Feb 26, 2004
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge intel.com:/home/lenb/bk/linux-2.6.4
into intel.com:/home/lenb/src/linux-acpi-test-2.6.4
parents
4c848133
52da3834
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
210 additions
and
57 deletions
+210
-57
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+4
-1
MAINTAINERS
MAINTAINERS
+1
-1
arch/i386/kernel/acpi/boot.c
arch/i386/kernel/acpi/boot.c
+3
-2
arch/i386/kernel/mpparse.c
arch/i386/kernel/mpparse.c
+1
-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
+3
-2
arch/x86_64/kernel/mpparse.c
arch/x86_64/kernel/mpparse.c
+1
-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/pci_link.c
drivers/acpi/pci_link.c
+0
-2
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 @
360adfc4
...
...
@@ -90,10 +90,13 @@ running once the system is up.
Format: <irq>, default is 13
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
off -- disabled ACPI for systems with default on
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.
acpi_pic_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
...
...
MAINTAINERS
View file @
360adfc4
...
...
@@ -172,7 +172,7 @@ ACPI
P: Len Brown
M: len.brown@intel.com
L: acpi-devel@lists.sourceforge.net
W: http://
sf.net/projects/acpi
/
W: http://
acpi.sourceforge.net
/
S: Maintained
AD1816 SOUND DRIVER
...
...
arch/i386/kernel/acpi/boot.c
View file @
360adfc4
...
...
@@ -43,11 +43,12 @@
#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_lapic
;
int
acpi_ioapic
;
int
acpi_strict
;
/* --------------------------------------------------------------------------
Boot-time Configuration
...
...
@@ -259,7 +260,7 @@ acpi_parse_nmi_src (
* programs the PIC-mode SCI to Level Trigger.
* (NO-OP if the BIOS set Level Trigger already)
*
* If a PIC-mode SCI is not recog
zni
ed or gives spurious IRQ7's
* If a PIC-mode SCI is not recog
niz
ed or gives spurious IRQ7's
* it may require Edge Trigger -- use "acpi_pic_sci=edge"
* (NO-OP if the BIOS set Edge Trigger already)
*
...
...
arch/i386/kernel/mpparse.c
View file @
360adfc4
...
...
@@ -1156,7 +1156,7 @@ void __init mp_parse_prt (void)
continue
;
}
if
((
1
<<
bit
)
&
mp_ioapic_routing
[
ioapic
].
pin_programmed
[
idx
])
{
printk
(
KERN_DEBUG
"Pin %d-%d already programmed
\n
"
,
D
printk
(
KERN_DEBUG
"Pin %d-%d already programmed
\n
"
,
mp_ioapic_routing
[
ioapic
].
apic_id
,
ioapic_pin
);
entry
->
irq
=
acpi_irq_to_vector
(
irq
);
continue
;
...
...
arch/i386/kernel/setup.c
View file @
360adfc4
...
...
@@ -569,6 +569,11 @@ static void __init parse_cmdline_early (char ** cmdline_p)
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 */
else
if
(
!
memcmp
(
from
,
"acpi=ht"
,
7
))
{
acpi_ht
=
1
;
...
...
arch/x86_64/kernel/acpi/boot.c
View file @
360adfc4
...
...
@@ -48,11 +48,12 @@
#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_lapic
;
int
acpi_ioapic
;
int
acpi_strict
;
/* --------------------------------------------------------------------------
Boot-time Configuration
...
...
@@ -264,7 +265,7 @@ acpi_parse_hpet (
* programs the PIC-mode SCI to Level Trigger.
* (NO-OP if the BIOS set Level Trigger already)
*
* If a PIC-mode SCI is not recog
zni
ed or gives spurious IRQ7's
* If a PIC-mode SCI is not recog
niz
ed or gives spurious IRQ7's
* it may require Edge Trigger -- use "acpi_pic_sci=edge"
* (NO-OP if the BIOS set Edge Trigger already)
*
...
...
arch/x86_64/kernel/mpparse.c
View file @
360adfc4
...
...
@@ -996,7 +996,7 @@ void __init mp_parse_prt (void)
continue
;
}
if
((
1
<<
bit
)
&
mp_ioapic_routing
[
ioapic
].
pin_programmed
[
idx
])
{
printk
(
KERN_DEBUG
"Pin %d-%d already programmed
\n
"
,
D
printk
(
KERN_DEBUG
"Pin %d-%d already programmed
\n
"
,
mp_ioapic_routing
[
ioapic
].
apic_id
,
ioapic_pin
);
if
(
use_pci_vector
()
&&
!
platform_legacy_irq
(
irq
))
irq
=
IO_APIC_VECTOR
(
irq
);
...
...
drivers/acpi/Kconfig
View file @
360adfc4
...
...
@@ -251,18 +251,6 @@ config ACPI_SYSTEM
This driver will enable your system to shut down using ACPI, and
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
bool "Power Management Timer Support"
depends on X86 && ACPI
...
...
drivers/acpi/executer/exfldio.c
View file @
360adfc4
...
...
@@ -154,8 +154,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
));
#ifdef CONFIG_ACPI_RELAXED_AML
{
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
...
...
@@ -186,9 +185,9 @@ acpi_ex_setup_region (
return_ACPI_STATUS
(
AE_OK
);
}
}
#else
else
{
return_ACPI_STATUS
(
AE_AML_REGION_LIMIT
);
#endif
}
}
return_ACPI_STATUS
(
AE_OK
);
...
...
drivers/acpi/hardware/hwgpe.c
View file @
360adfc4
...
...
@@ -528,6 +528,14 @@ acpi_hw_enable_non_wakeup_gpe_block (
/* Examine each GPE register within the block */
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.
* Blast them back in.
...
...
drivers/acpi/hardware/hwregs.c
View file @
360adfc4
...
...
@@ -152,11 +152,11 @@ acpi_get_sleep_type_data (
/*
* 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
);
if
(
ACPI_FAILURE
(
status
))
{
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
);
}
...
...
@@ -201,7 +201,7 @@ acpi_get_sleep_type_data (
if
(
ACPI_FAILURE
(
status
))
{
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
);
...
...
drivers/acpi/hardware/hwsleep.c
View file @
360adfc4
...
...
@@ -48,6 +48,19 @@
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
...
...
@@ -171,19 +184,41 @@ acpi_enter_sleep_state_prep (
/* 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
)
{
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
)
{
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. */
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
)
{
ACPI_REPORT_ERROR
((
"Method _SST failed, %s
\n
"
,
acpi_format_exception
(
status
)));
}
...
...
@@ -477,19 +512,19 @@ acpi_leave_sleep_state (
/* Ignore any errors from these methods */
arg
.
integer
.
value
=
0
;
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_SI._SST"
,
&
arg_list
,
NULL
);
arg
.
integer
.
value
=
ACPI_SST_WAKING
;
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
)));
}
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
)
{
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
)
{
ACPI_REPORT_ERROR
((
"Method _WAK failed, %s
\n
"
,
acpi_format_exception
(
status
)));
}
...
...
@@ -501,8 +536,25 @@ acpi_leave_sleep_state (
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 */
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
);
}
drivers/acpi/namespace/nseval.c
View file @
360adfc4
...
...
@@ -110,7 +110,7 @@ acpi_ns_evaluate_relative (
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
)
;
goto
cleanup
;
}
prefix_node
=
acpi_ns_map_handle_to_node
(
handle
);
...
...
@@ -197,7 +197,7 @@ acpi_ns_evaluate_by_name (
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
)
;
goto
cleanup
;
}
/* Lookup the name in the namespace */
...
...
drivers/acpi/namespace/nsutils.c
View file @
360adfc4
...
...
@@ -918,7 +918,7 @@ acpi_ns_get_node_by_path (
status
=
acpi_ut_acquire_mutex
(
ACPI_MTX_NAMESPACE
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
)
;
goto
cleanup
;
}
/* Setup lookup scope (search starting point) */
...
...
@@ -936,10 +936,10 @@ acpi_ns_get_node_by_path (
internal_path
,
acpi_format_exception
(
status
)));
}
/* Cleanup */
(
void
)
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
cleanup:
/* Cleanup */
if
(
internal_path
)
{
ACPI_MEM_FREE
(
internal_path
);
}
...
...
drivers/acpi/namespace/nsxfname.c
View file @
360adfc4
...
...
@@ -326,6 +326,13 @@ acpi_get_object_info (
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
;
}
...
...
drivers/acpi/pci_link.c
View file @
360adfc4
...
...
@@ -768,7 +768,6 @@ __setup("acpi_irq_pci=", acpi_irq_pci);
static
int
__init
acpi_irq_nobalance_set
(
char
*
str
)
{
printk
(
"ACPI STATIC SET
\n
"
);
acpi_irq_balance
=
0
;
return
(
1
);
}
...
...
@@ -776,7 +775,6 @@ __setup("acpi_irq_nobalance", acpi_irq_nobalance_set);
int
__init
acpi_irq_balance_set
(
char
*
str
)
{
printk
(
"ACPI BALANCE SET
\n
"
);
acpi_irq_balance
=
1
;
return
(
1
);
}
...
...
drivers/acpi/resources/rsxface.c
View file @
360adfc4
...
...
@@ -239,6 +239,7 @@ acpi_walk_resources (
acpi_status
status
;
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
struct
acpi_resource
*
resource
;
struct
acpi_resource
*
buffer_end
;
ACPI_FUNCTION_TRACE
(
"acpi_walk_resources"
);
...
...
@@ -255,7 +256,13 @@ acpi_walk_resources (
return_ACPI_STATUS
(
status
);
}
resource
=
(
struct
acpi_resource
*
)
buffer
.
pointer
;
/* Setup pointers */
resource
=
(
struct
acpi_resource
*
)
buffer
.
pointer
;
buffer_end
=
(
struct
acpi_resource
*
)
((
u8
*
)
buffer
.
pointer
+
buffer
.
length
);
/* Walk the resource list */
for
(;;)
{
if
(
!
resource
||
resource
->
id
==
ACPI_RSTYPE_END_TAG
)
{
break
;
...
...
@@ -268,6 +275,7 @@ acpi_walk_resources (
case
AE_CTRL_DEPTH
:
/* Just keep going */
status
=
AE_OK
;
break
;
...
...
@@ -285,7 +293,15 @@ acpi_walk_resources (
goto
cleanup
;
}
/* Get the next resource descriptor */
resource
=
ACPI_NEXT_RESOURCE
(
resource
);
/* Check for end-of-buffer */
if
(
resource
>=
buffer_end
)
{
goto
cleanup
;
}
}
cleanup:
...
...
drivers/acpi/utilities/uteval.c
View file @
360adfc4
...
...
@@ -562,3 +562,63 @@ acpi_ut_execute_STA (
acpi_ut_remove_reference
(
obj_desc
);
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 @
360adfc4
...
...
@@ -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
char
*
acpi_gbl_
db_sleep_stat
es
[
ACPI_S_STATE_COUNT
]
=
{
const
char
*
acpi_gbl_
sleep_state_nam
es
[
ACPI_S_STATE_COUNT
]
=
{
"
\\
_S0_"
,
"
\\
_S1_"
,
"
\\
_S2_"
,
...
...
@@ -179,6 +179,11 @@ const char *acpi_gbl_db_sleep_states[ACPI_S_STATE_COUNT
"
\\
_S4_"
,
"
\\
_S5_"
};
const
char
*
acpi_gbl_highest_dstate_names
[
4
]
=
{
"_S1D"
,
"_S2D"
,
"_S3D"
,
"_S4D"
};
/******************************************************************************
*
...
...
include/acpi/acconfig.h
View file @
360adfc4
...
...
@@ -64,7 +64,7 @@
/* Version string */
#define ACPI_CA_VERSION 0x200402
11
#define ACPI_CA_VERSION 0x200402
20
/* Maximum objects in the various object caches */
...
...
include/acpi/acglobal.h
View file @
360adfc4
...
...
@@ -57,6 +57,12 @@
#define ACPI_EXTERN extern
#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;
ACPI_EXTERN
struct
acpi_table_header
*
acpi_gbl_DSDT
;
ACPI_EXTERN
FACS_DESCRIPTOR
*
acpi_gbl_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
...
...
@@ -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_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
*/
...
...
@@ -165,7 +165,8 @@ ACPI_EXTERN u8 acpi_gbl_events_initialized;
extern
u8
acpi_gbl_shutdown
;
extern
u32
acpi_gbl_startup_flags
;
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
char
*
acpi_gbl_region_types
[
ACPI_NUM_PREDEFINED_REGIONS
];
...
...
include/acpi/actypes.h
View file @
360adfc4
...
...
@@ -880,7 +880,8 @@ struct acpi_device_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 */
acpi_integer
address
;
/* _ADR value if any */
struct
acpi_device_id
hardware_id
;
/* _HID value if any */
...
...
include/acpi/acutils.h
View file @
360adfc4
...
...
@@ -508,6 +508,10 @@ acpi_ut_execute_UID (
struct
acpi_namespace_node
*
device_node
,
struct
acpi_device_id
*
uid
);
acpi_status
acpi_ut_execute_sxds
(
struct
acpi_namespace_node
*
device_node
,
u8
*
highest
);
/*
* ut_mutex - mutual exclusion interfaces
...
...
include/asm-i386/acpi.h
View file @
360adfc4
...
...
@@ -110,6 +110,7 @@
extern
int
acpi_lapic
;
extern
int
acpi_ioapic
;
extern
int
acpi_noirq
;
extern
int
acpi_strict
;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#define FIX_ACPI_PAGES 4
...
...
include/asm-ia64/acpi.h
View file @
360adfc4
...
...
@@ -88,6 +88,8 @@ ia64_acpi_release_global_lock (unsigned int *lock)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
((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
);
int
acpi_request_vector
(
u32
int_type
);
int
acpi_register_irq
(
u32
gsi
,
u32
polarity
,
u32
trigger
);
...
...
include/asm-x86_64/acpi.h
View file @
360adfc4
...
...
@@ -104,6 +104,7 @@ __acpi_release_global_lock (unsigned int *lock)
extern
int
acpi_lapic
;
extern
int
acpi_ioapic
;
extern
int
acpi_noirq
;
extern
int
acpi_strict
;
/* Fixmap pages to reserve for ACPI boot-time tables (see fixmap.h) */
#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