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
ac9f1cc2
Commit
ac9f1cc2
authored
Oct 07, 2013
by
Rafael J. Wysocki
Browse files
Options
Browse Files
Download
Plain Diff
Merge back earlier cpuidle material for v3.13.
parents
494b2449
35baa336
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
36 additions
and
10 deletions
+36
-10
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/common.c
+11
-0
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/common.h
+1
-0
arch/arm/mach-exynos/cpuidle.c
arch/arm/mach-exynos/cpuidle.c
+12
-2
arch/arm/mach-exynos/mach-exynos4-dt.c
arch/arm/mach-exynos/mach-exynos4-dt.c
+2
-0
arch/arm/mach-exynos/mach-exynos5-dt.c
arch/arm/mach-exynos/mach-exynos5-dt.c
+2
-0
drivers/idle/intel_idle.c
drivers/idle/intel_idle.c
+8
-8
No files found.
arch/arm/mach-exynos/common.c
View file @
ac9f1cc2
...
...
@@ -30,6 +30,7 @@
#include <linux/clk-provider.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/platform_device.h>
#include <asm/proc-fns.h>
#include <asm/exception.h>
...
...
@@ -294,6 +295,16 @@ void exynos5_restart(enum reboot_mode mode, const char *cmd)
__raw_writel
(
val
,
addr
);
}
static
struct
platform_device
exynos_cpuidle
=
{
.
name
=
"exynos_cpuidle"
,
.
id
=
-
1
,
};
void
__init
exynos_cpuidle_init
(
void
)
{
platform_device_register
(
&
exynos_cpuidle
);
}
void
__init
exynos_init_late
(
void
)
{
if
(
of_machine_is_compatible
(
"samsung,exynos5440"
))
...
...
arch/arm/mach-exynos/common.h
View file @
ac9f1cc2
...
...
@@ -22,6 +22,7 @@ struct map_desc;
void
exynos_init_io
(
void
);
void
exynos4_restart
(
enum
reboot_mode
mode
,
const
char
*
cmd
);
void
exynos5_restart
(
enum
reboot_mode
mode
,
const
char
*
cmd
);
void
exynos_cpuidle_init
(
void
);
void
exynos_init_late
(
void
);
void
exynos_firmware_init
(
void
);
...
...
arch/arm/mach-exynos/cpuidle.c
View file @
ac9f1cc2
...
...
@@ -15,6 +15,7 @@
#include <linux/io.h>
#include <linux/export.h>
#include <linux/time.h>
#include <linux/platform_device.h>
#include <asm/proc-fns.h>
#include <asm/smp_scu.h>
...
...
@@ -192,7 +193,7 @@ static void __init exynos5_core_down_clk(void)
__raw_writel
(
tmp
,
EXYNOS5_PWR_CTRL2
);
}
static
int
__init
exynos
4_init_cpuidle
(
void
)
static
int
__init
exynos
_cpuidle_probe
(
struct
platform_device
*
pdev
)
{
int
cpu_id
,
ret
;
struct
cpuidle_device
*
device
;
...
...
@@ -226,4 +227,13 @@ static int __init exynos4_init_cpuidle(void)
return
0
;
}
device_initcall
(
exynos4_init_cpuidle
);
static
struct
platform_driver
exynos_cpuidle_driver
=
{
.
probe
=
exynos_cpuidle_probe
,
.
driver
=
{
.
name
=
"exynos_cpuidle"
,
.
owner
=
THIS_MODULE
,
},
};
module_platform_driver
(
exynos_cpuidle_driver
);
arch/arm/mach-exynos/mach-exynos4-dt.c
View file @
ac9f1cc2
...
...
@@ -25,6 +25,8 @@
static
void
__init
exynos4_dt_machine_init
(
void
)
{
exynos_cpuidle_init
();
of_platform_populate
(
NULL
,
of_default_bus_match_table
,
NULL
,
NULL
);
}
...
...
arch/arm/mach-exynos/mach-exynos5-dt.c
View file @
ac9f1cc2
...
...
@@ -47,6 +47,8 @@ static void __init exynos5_dt_machine_init(void)
}
}
exynos_cpuidle_init
();
of_platform_populate
(
NULL
,
of_default_bus_match_table
,
NULL
,
NULL
);
}
...
...
drivers/idle/intel_idle.c
View file @
ac9f1cc2
...
...
@@ -123,7 +123,7 @@ static struct cpuidle_state *cpuidle_state_table;
* which is also the index into the MWAIT hint array.
* Thus C0 is a dummy.
*/
static
struct
cpuidle_state
nehalem_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
nehalem_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-NHM"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -156,7 +156,7 @@ static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
snb_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
snb_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-SNB"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -196,7 +196,7 @@ static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
ivb_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
ivb_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-IVB"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -236,7 +236,7 @@ static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
hsw_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
hsw_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-HSW"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -297,7 +297,7 @@ static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
atom_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
atom_cstates
[
]
__initdata
=
{
{
.
name
=
"C1E-ATM"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -490,7 +490,7 @@ MODULE_DEVICE_TABLE(x86cpu, intel_idle_ids);
/*
* intel_idle_probe()
*/
static
int
intel_idle_probe
(
void
)
static
int
__init
intel_idle_probe
(
void
)
{
unsigned
int
eax
,
ebx
,
ecx
;
const
struct
x86_cpu_id
*
id
;
...
...
@@ -558,7 +558,7 @@ static void intel_idle_cpuidle_devices_uninit(void)
* intel_idle_cpuidle_driver_init()
* allocate, initialize cpuidle_states
*/
static
int
intel_idle_cpuidle_driver_init
(
void
)
static
int
__init
intel_idle_cpuidle_driver_init
(
void
)
{
int
cstate
;
struct
cpuidle_driver
*
drv
=
&
intel_idle_driver
;
...
...
@@ -628,7 +628,7 @@ static int intel_idle_cpu_init(int cpu)
int
num_substates
,
mwait_hint
,
mwait_cstate
,
mwait_substate
;
if
(
cpuidle_state_table
[
cstate
].
enter
==
NULL
)
continue
;
break
;
if
(
cstate
+
1
>
max_cstate
)
{
printk
(
PREFIX
"max_cstate %d reached
\n
"
,
max_cstate
);
...
...
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