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
361243fd
Commit
361243fd
authored
Jan 20, 2010
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'bugzilla-15064' into release
parents
49897dee
d22edd29
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
38 deletions
+26
-38
drivers/acpi/processor_idle.c
drivers/acpi/processor_idle.c
+26
-38
No files found.
drivers/acpi/processor_idle.c
View file @
361243fd
...
...
@@ -305,6 +305,28 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
pr
->
power
.
states
[
ACPI_STATE_C2
].
latency
=
acpi_gbl_FADT
.
C2latency
;
pr
->
power
.
states
[
ACPI_STATE_C3
].
latency
=
acpi_gbl_FADT
.
C3latency
;
/*
* FADT specified C2 latency must be less than or equal to
* 100 microseconds.
*/
if
(
acpi_gbl_FADT
.
C2latency
>
ACPI_PROCESSOR_MAX_C2_LATENCY
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"C2 latency too large [%d]
\n
"
,
acpi_gbl_FADT
.
C2latency
));
/* invalidate C2 */
pr
->
power
.
states
[
ACPI_STATE_C2
].
address
=
0
;
}
/*
* FADT supplied C3 latency must be less than or equal to
* 1000 microseconds.
*/
if
(
acpi_gbl_FADT
.
C3latency
>
ACPI_PROCESSOR_MAX_C3_LATENCY
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"C3 latency too large [%d]
\n
"
,
acpi_gbl_FADT
.
C3latency
));
/* invalidate C3 */
pr
->
power
.
states
[
ACPI_STATE_C3
].
address
=
0
;
}
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"lvl2[0x%08x] lvl3[0x%08x]
\n
"
,
pr
->
power
.
states
[
ACPI_STATE_C2
].
address
,
...
...
@@ -494,33 +516,6 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr)
return
status
;
}
static
void
acpi_processor_power_verify_c2
(
struct
acpi_processor_cx
*
cx
)
{
if
(
!
cx
->
address
)
return
;
/*
* C2 latency must be less than or equal to 100
* microseconds.
*/
else
if
(
cx
->
latency
>
ACPI_PROCESSOR_MAX_C2_LATENCY
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"latency too large [%d]
\n
"
,
cx
->
latency
));
return
;
}
/*
* Otherwise we've met all of our C2 requirements.
* Normalize the C2 latency to expidite policy
*/
cx
->
valid
=
1
;
cx
->
latency_ticks
=
cx
->
latency
;
return
;
}
static
void
acpi_processor_power_verify_c3
(
struct
acpi_processor
*
pr
,
struct
acpi_processor_cx
*
cx
)
{
...
...
@@ -531,16 +526,6 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
if
(
!
cx
->
address
)
return
;
/*
* C3 latency must be less than or equal to 1000
* microseconds.
*/
else
if
(
cx
->
latency
>
ACPI_PROCESSOR_MAX_C3_LATENCY
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"latency too large [%d]
\n
"
,
cx
->
latency
));
return
;
}
/*
* PIIX4 Erratum #18: We don't support C3 when Type-F (fast)
* DMA transfers are used by any ISA device to avoid livelock.
...
...
@@ -629,7 +614,10 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
break
;
case
ACPI_STATE_C2
:
acpi_processor_power_verify_c2
(
cx
);
if
(
!
cx
->
address
)
break
;
cx
->
valid
=
1
;
cx
->
latency_ticks
=
cx
->
latency
;
/* Normalize latency */
break
;
case
ACPI_STATE_C3
:
...
...
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