Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
ac0849fb
Commit
ac0849fb
authored
Apr 24, 2009
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'bugzilla-13041' into release
parents
09041dae
96f15efc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
17 deletions
+53
-17
drivers/acpi/acpica/hwsleep.c
drivers/acpi/acpica/hwsleep.c
+26
-17
drivers/acpi/sleep.c
drivers/acpi/sleep.c
+27
-0
No files found.
drivers/acpi/acpica/hwsleep.c
View file @
ac0849fb
...
...
@@ -211,6 +211,12 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)
ACPI_EXPORT_SYMBOL
(
acpi_enter_sleep_state_prep
)
static
unsigned
int
gts
,
bfs
;
module_param
(
gts
,
uint
,
0644
);
module_param
(
bfs
,
uint
,
0644
);
MODULE_PARM_DESC
(
gts
,
"Enable evaluation of _GTS on suspend."
);
MODULE_PARM_DESC
(
bfs
,
"Enable evaluation of _BFS on resume"
.);
/*******************************************************************************
*
* FUNCTION: acpi_enter_sleep_state
...
...
@@ -278,16 +284,18 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
return_ACPI_STATUS
(
status
);
}
/* Execute the _GTS method */
if
(
gts
)
{
/* Execute the _GTS method */
arg_list
.
count
=
1
;
arg_list
.
pointer
=
&
arg
;
arg
.
type
=
ACPI_TYPE_INTEGER
;
arg
.
integer
.
value
=
sleep_state
;
arg_list
.
count
=
1
;
arg_list
.
pointer
=
&
arg
;
arg
.
type
=
ACPI_TYPE_INTEGER
;
arg
.
integer
.
value
=
sleep_state
;
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__GTS
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
return_ACPI_STATUS
(
status
);
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__GTS
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
return_ACPI_STATUS
(
status
);
}
}
/* Get current value of PM1A control */
...
...
@@ -513,18 +521,19 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
}
}
/* Execute the _BFS method */
if
(
bfs
)
{
/* Execute the _BFS method */
arg_list
.
count
=
1
;
arg_list
.
pointer
=
&
arg
;
arg
.
type
=
ACPI_TYPE_INTEGER
;
arg
.
integer
.
value
=
sleep_state
;
arg_list
.
count
=
1
;
arg_list
.
pointer
=
&
arg
;
arg
.
type
=
ACPI_TYPE_INTEGER
;
arg
.
integer
.
value
=
sleep_state
;
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__BFS
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"During Method _BFS"
));
status
=
acpi_evaluate_object
(
NULL
,
METHOD_NAME__BFS
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"During Method _BFS"
));
}
}
return_ACPI_STATUS
(
status
);
}
...
...
drivers/acpi/sleep.c
View file @
ac0849fb
...
...
@@ -713,6 +713,32 @@ static void acpi_power_off(void)
acpi_enter_sleep_state
(
ACPI_STATE_S5
);
}
/*
* ACPI 2.0 created the optional _GTS and _BFS,
* but industry adoption has been neither rapid nor broad.
*
* Linux gets into trouble when it executes poorly validated
* paths through the BIOS, so disable _GTS and _BFS by default,
* but do speak up and offer the option to enable them.
*/
void
__init
acpi_gts_bfs_check
(
void
)
{
acpi_handle
dummy
;
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
ACPI_ROOT_OBJECT
,
METHOD_NAME__GTS
,
&
dummy
)))
{
printk
(
KERN_NOTICE
PREFIX
"BIOS offers _GTS
\n
"
);
printk
(
KERN_NOTICE
PREFIX
"If
\"
acpi.gts=1
\"
improves suspend, "
"please notify linux-acpi@vger.kernel.org
\n
"
);
}
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
ACPI_ROOT_OBJECT
,
METHOD_NAME__BFS
,
&
dummy
)))
{
printk
(
KERN_NOTICE
PREFIX
"BIOS offers _BFS
\n
"
);
printk
(
KERN_NOTICE
PREFIX
"If
\"
acpi.bfs=1
\"
improves resume, "
"please notify linux-acpi@vger.kernel.org
\n
"
);
}
}
int
__init
acpi_sleep_init
(
void
)
{
acpi_status
status
;
...
...
@@ -771,5 +797,6 @@ int __init acpi_sleep_init(void)
* object can also be evaluated when the system enters S5.
*/
register_reboot_notifier
(
&
tts_notifier
);
acpi_gts_bfs_check
();
return
0
;
}
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