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
00527cc6
Commit
00527cc6
authored
Oct 23, 2010
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'intel_idle+snb' into idle-release
Signed-off-by:
Len Brown
<
len.brown@intel.com
>
parents
0f3f164d
d13780d4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
1 deletion
+42
-1
drivers/idle/intel_idle.c
drivers/idle/intel_idle.c
+42
-1
No files found.
drivers/idle/intel_idle.c
View file @
00527cc6
...
...
@@ -81,7 +81,7 @@ static int max_cstate = MWAIT_MAX_NUM_CSTATES - 1;
static
unsigned
int
mwait_substates
;
/* Reliable LAPIC Timer States, bit 1 for C1 etc. */
static
unsigned
int
lapic_timer_reliable_states
;
static
unsigned
int
lapic_timer_reliable_states
=
(
1
<<
1
);
/* Default to only C1 */
static
struct
cpuidle_device
__percpu
*
intel_idle_cpuidle_devices
;
static
int
intel_idle
(
struct
cpuidle_device
*
dev
,
struct
cpuidle_state
*
state
);
...
...
@@ -121,6 +121,42 @@ static struct cpuidle_state nehalem_cstates[MWAIT_MAX_NUM_CSTATES] = {
.
enter
=
&
intel_idle
},
};
static
struct
cpuidle_state
snb_cstates
[
MWAIT_MAX_NUM_CSTATES
]
=
{
{
/* MWAIT C0 */
},
{
/* MWAIT C1 */
.
name
=
"SNB-C1"
,
.
desc
=
"MWAIT 0x00"
,
.
driver_data
=
(
void
*
)
0x00
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
exit_latency
=
1
,
.
target_residency
=
4
,
.
enter
=
&
intel_idle
},
{
/* MWAIT C2 */
.
name
=
"SNB-C3"
,
.
desc
=
"MWAIT 0x10"
,
.
driver_data
=
(
void
*
)
0x10
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
80
,
.
target_residency
=
160
,
.
enter
=
&
intel_idle
},
{
/* MWAIT C3 */
.
name
=
"SNB-C6"
,
.
desc
=
"MWAIT 0x20"
,
.
driver_data
=
(
void
*
)
0x20
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
104
,
.
target_residency
=
208
,
.
enter
=
&
intel_idle
},
{
/* MWAIT C4 */
.
name
=
"SNB-C7"
,
.
desc
=
"MWAIT 0x30"
,
.
driver_data
=
(
void
*
)
0x30
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
109
,
.
target_residency
=
300
,
.
enter
=
&
intel_idle
},
};
static
struct
cpuidle_state
atom_cstates
[
MWAIT_MAX_NUM_CSTATES
]
=
{
{
/* MWAIT C0 */
},
{
/* MWAIT C1 */
...
...
@@ -269,6 +305,11 @@ static int intel_idle_probe(void)
lapic_timer_reliable_states
=
(
1
<<
2
)
|
(
1
<<
1
);
/* C2, C1 */
cpuidle_state_table
=
atom_cstates
;
break
;
case
0x2A
:
/* SNB */
case
0x2D
:
/* SNB Xeon */
cpuidle_state_table
=
snb_cstates
;
break
;
#ifdef FUTURE_USE
case
0x17
:
/* 23 - Core 2 Duo */
lapic_timer_reliable_states
=
(
1
<<
2
)
|
(
1
<<
1
);
/* C2, C1 */
...
...
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