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
nexedi
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