Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
d58cc92b
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d58cc92b
编写于
9月 27, 2010
作者:
T
Tony Lindgren
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'misc_2.6.37' of
git://git.pwsan.com/linux-2.6
into omap-for-linus
上级
b245f26f
78f26e87
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
31 deletion
+30
-31
arch/arm/mach-omap2/cm4xxx.c
arch/arm/mach-omap2/cm4xxx.c
+5
-4
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/omap_hwmod.c
+11
-6
arch/arm/plat-omap/omap_device.c
arch/arm/plat-omap/omap_device.c
+14
-21
未找到文件。
arch/arm/mach-omap2/cm4xxx.c
浏览文件 @
d58cc92b
...
...
@@ -43,7 +43,6 @@
* using separate functional clock
* 0x3 disabled: Module is disabled and cannot be accessed
*
* TODO: Need to handle module accessible in idle state
*/
int
omap4_cm_wait_module_ready
(
void
__iomem
*
clkctrl_reg
)
{
...
...
@@ -52,9 +51,11 @@ int omap4_cm_wait_module_ready(void __iomem *clkctrl_reg)
if
(
!
clkctrl_reg
)
return
0
;
omap_test_timeout
(((
__raw_readl
(
clkctrl_reg
)
&
OMAP4430_IDLEST_MASK
)
==
0
),
MAX_MODULE_READY_TIME
,
i
);
omap_test_timeout
((
((
__raw_readl
(
clkctrl_reg
)
&
OMAP4430_IDLEST_MASK
)
==
0
)
||
(((
__raw_readl
(
clkctrl_reg
)
&
OMAP4430_IDLEST_MASK
)
>>
OMAP4430_IDLEST_SHIFT
)
==
0x2
)),
MAX_MODULE_READY_TIME
,
i
);
return
(
i
<
MAX_MODULE_READY_TIME
)
?
0
:
-
EBUSY
;
}
...
...
arch/arm/mach-omap2/omap_hwmod.c
浏览文件 @
d58cc92b
...
...
@@ -777,12 +777,6 @@ static void _enable_sysc(struct omap_hwmod *oh)
_set_master_standbymode
(
oh
,
idlemode
,
&
v
);
}
if
(
sf
&
SYSC_HAS_AUTOIDLE
)
{
idlemode
=
(
oh
->
flags
&
HWMOD_NO_OCP_AUTOIDLE
)
?
0
:
1
;
_set_module_autoidle
(
oh
,
idlemode
,
&
v
);
}
/*
* XXX The clock framework should handle this, by
* calling into this code. But this must wait until the
...
...
@@ -797,6 +791,17 @@ static void _enable_sysc(struct omap_hwmod *oh)
/* If slave is in SMARTIDLE, also enable wakeup */
if
((
sf
&
SYSC_HAS_SIDLEMODE
)
&&
!
(
oh
->
flags
&
HWMOD_SWSUP_SIDLE
))
_enable_wakeup
(
oh
);
/*
* Set the autoidle bit only after setting the smartidle bit
* Setting this will not have any impact on the other modules.
*/
if
(
sf
&
SYSC_HAS_AUTOIDLE
)
{
idlemode
=
(
oh
->
flags
&
HWMOD_NO_OCP_AUTOIDLE
)
?
0
:
1
;
_set_module_autoidle
(
oh
,
idlemode
,
&
v
);
_write_sysconfig
(
v
,
oh
);
}
}
/**
...
...
arch/arm/plat-omap/omap_device.c
浏览文件 @
d58cc92b
...
...
@@ -290,12 +290,11 @@ static void _add_optional_clock_alias(struct omap_device *od,
*/
int
omap_device_count_resources
(
struct
omap_device
*
od
)
{
struct
omap_hwmod
*
oh
;
int
c
=
0
;
int
i
;
for
(
i
=
0
,
oh
=
*
od
->
hwmods
;
i
<
od
->
hwmods_cnt
;
i
++
,
oh
++
)
c
+=
omap_hwmod_count_resources
(
o
h
);
for
(
i
=
0
;
i
<
od
->
hwmods_cnt
;
i
++
)
c
+=
omap_hwmod_count_resources
(
o
d
->
hwmods
[
i
]
);
pr_debug
(
"omap_device: %s: counted %d total resources across %d "
"hwmods
\n
"
,
od
->
pdev
.
name
,
c
,
od
->
hwmods_cnt
);
...
...
@@ -322,12 +321,11 @@ int omap_device_count_resources(struct omap_device *od)
*/
int
omap_device_fill_resources
(
struct
omap_device
*
od
,
struct
resource
*
res
)
{
struct
omap_hwmod
*
oh
;
int
c
=
0
;
int
i
,
r
;
for
(
i
=
0
,
oh
=
*
od
->
hwmods
;
i
<
od
->
hwmods_cnt
;
i
++
,
oh
++
)
{
r
=
omap_hwmod_fill_resources
(
o
h
,
res
);
for
(
i
=
0
;
i
<
od
->
hwmods_cnt
;
i
++
)
{
r
=
omap_hwmod_fill_resources
(
o
d
->
hwmods
[
i
]
,
res
);
res
+=
r
;
c
+=
r
;
}
...
...
@@ -600,7 +598,6 @@ int omap_device_shutdown(struct platform_device *pdev)
{
int
ret
,
i
;
struct
omap_device
*
od
;
struct
omap_hwmod
*
oh
;
od
=
_find_by_pdev
(
pdev
);
...
...
@@ -613,8 +610,8 @@ int omap_device_shutdown(struct platform_device *pdev)
ret
=
_omap_device_deactivate
(
od
,
IGNORE_WAKEUP_LAT
);
for
(
i
=
0
,
oh
=
*
od
->
hwmods
;
i
<
od
->
hwmods_cnt
;
i
++
,
oh
++
)
omap_hwmod_shutdown
(
o
h
);
for
(
i
=
0
;
i
<
od
->
hwmods_cnt
;
i
++
)
omap_hwmod_shutdown
(
o
d
->
hwmods
[
i
]
);
od
->
_state
=
OMAP_DEVICE_STATE_SHUTDOWN
;
...
...
@@ -714,11 +711,10 @@ void __iomem *omap_device_get_rt_va(struct omap_device *od)
*/
int
omap_device_enable_hwmods
(
struct
omap_device
*
od
)
{
struct
omap_hwmod
*
oh
;
int
i
;
for
(
i
=
0
,
oh
=
*
od
->
hwmods
;
i
<
od
->
hwmods_cnt
;
i
++
,
oh
++
)
omap_hwmod_enable
(
o
h
);
for
(
i
=
0
;
i
<
od
->
hwmods_cnt
;
i
++
)
omap_hwmod_enable
(
o
d
->
hwmods
[
i
]
);
/* XXX pass along return value here? */
return
0
;
...
...
@@ -732,11 +728,10 @@ int omap_device_enable_hwmods(struct omap_device *od)
*/
int
omap_device_idle_hwmods
(
struct
omap_device
*
od
)
{
struct
omap_hwmod
*
oh
;
int
i
;
for
(
i
=
0
,
oh
=
*
od
->
hwmods
;
i
<
od
->
hwmods_cnt
;
i
++
,
oh
++
)
omap_hwmod_idle
(
o
h
);
for
(
i
=
0
;
i
<
od
->
hwmods_cnt
;
i
++
)
omap_hwmod_idle
(
o
d
->
hwmods
[
i
]
);
/* XXX pass along return value here? */
return
0
;
...
...
@@ -751,11 +746,10 @@ int omap_device_idle_hwmods(struct omap_device *od)
*/
int
omap_device_disable_clocks
(
struct
omap_device
*
od
)
{
struct
omap_hwmod
*
oh
;
int
i
;
for
(
i
=
0
,
oh
=
*
od
->
hwmods
;
i
<
od
->
hwmods_cnt
;
i
++
,
oh
++
)
omap_hwmod_disable_clocks
(
o
h
);
for
(
i
=
0
;
i
<
od
->
hwmods_cnt
;
i
++
)
omap_hwmod_disable_clocks
(
o
d
->
hwmods
[
i
]
);
/* XXX pass along return value here? */
return
0
;
...
...
@@ -770,11 +764,10 @@ int omap_device_disable_clocks(struct omap_device *od)
*/
int
omap_device_enable_clocks
(
struct
omap_device
*
od
)
{
struct
omap_hwmod
*
oh
;
int
i
;
for
(
i
=
0
,
oh
=
*
od
->
hwmods
;
i
<
od
->
hwmods_cnt
;
i
++
,
oh
++
)
omap_hwmod_enable_clocks
(
o
h
);
for
(
i
=
0
;
i
<
od
->
hwmods_cnt
;
i
++
)
omap_hwmod_enable_clocks
(
o
d
->
hwmods
[
i
]
);
/* XXX pass along return value here? */
return
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录