Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
1f51b001
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
1f51b001
编写于
9月 10, 2011
作者:
A
Arnd Bergmann
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'cns3xxx/fixes', 'omap/fixes' and 'davinci/fixes' into fixes
上级
7caaf7ef
87635501
897a6a1a
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
64 addition
and
14 deletion
+64
-14
arch/arm/mach-davinci/board-da850-evm.c
arch/arm/mach-davinci/board-da850-evm.c
+28
-0
arch/arm/mach-davinci/include/mach/psc.h
arch/arm/mach-davinci/include/mach/psc.h
+1
-1
arch/arm/mach-davinci/sleep.S
arch/arm/mach-davinci/sleep.S
+5
-1
arch/arm/mach-omap2/clock3xxx_data.c
arch/arm/mach-omap2/clock3xxx_data.c
+2
-0
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/clock44xx_data.c
+9
-1
arch/arm/mach-omap2/clockdomain.c
arch/arm/mach-omap2/clockdomain.c
+2
-0
arch/arm/mach-omap2/omap_hwmod_2430_data.c
arch/arm/mach-omap2/omap_hwmod_2430_data.c
+1
-0
arch/arm/mach-omap2/pm.c
arch/arm/mach-omap2/pm.c
+0
-2
arch/arm/mach-omap2/powerdomain.c
arch/arm/mach-omap2/powerdomain.c
+16
-9
未找到文件。
arch/arm/mach-davinci/board-da850-evm.c
浏览文件 @
1f51b001
...
...
@@ -115,6 +115,32 @@ static struct spi_board_info da850evm_spi_info[] = {
},
};
#ifdef CONFIG_MTD
static
void
da850_evm_m25p80_notify_add
(
struct
mtd_info
*
mtd
)
{
char
*
mac_addr
=
davinci_soc_info
.
emac_pdata
->
mac_addr
;
size_t
retlen
;
if
(
!
strcmp
(
mtd
->
name
,
"MAC-Address"
))
{
mtd
->
read
(
mtd
,
0
,
ETH_ALEN
,
&
retlen
,
mac_addr
);
if
(
retlen
==
ETH_ALEN
)
pr_info
(
"Read MAC addr from SPI Flash: %pM
\n
"
,
mac_addr
);
}
}
static
struct
mtd_notifier
da850evm_spi_notifier
=
{
.
add
=
da850_evm_m25p80_notify_add
,
};
static
void
da850_evm_setup_mac_addr
(
void
)
{
register_mtd_user
(
&
da850evm_spi_notifier
);
}
#else
static
void
da850_evm_setup_mac_addr
(
void
)
{
}
#endif
static
struct
mtd_partition
da850_evm_norflash_partition
[]
=
{
{
.
name
=
"bootloaders + env"
,
...
...
@@ -1244,6 +1270,8 @@ static __init void da850_evm_init(void)
if
(
ret
)
pr_warning
(
"da850_evm_init: sata registration failed: %d
\n
"
,
ret
);
da850_evm_setup_mac_addr
();
}
#ifdef CONFIG_SERIAL_8250_CONSOLE
...
...
arch/arm/mach-davinci/include/mach/psc.h
浏览文件 @
1f51b001
...
...
@@ -243,7 +243,7 @@
#define PSC_STATE_DISABLE 2
#define PSC_STATE_ENABLE 3
#define MDSTAT_STATE_MASK 0x
1
f
#define MDSTAT_STATE_MASK 0x
3
f
#define MDCTL_FORCE BIT(31)
#ifndef __ASSEMBLER__
...
...
arch/arm/mach-davinci/sleep.S
浏览文件 @
1f51b001
...
...
@@ -217,7 +217,11 @@ ddr2clk_stop_done:
ENDPROC
(
davinci_ddr_psc_config
)
CACHE_FLUSH
:
.
word
arm926_flush_kern_cache_all
#ifdef CONFIG_CPU_V6
.
word
v6_flush_kern_cache_all
#else
.
word
arm926_flush_kern_cache_all
#endif
ENTRY
(
davinci_cpu_suspend_sz
)
.
word
.
-
davinci_cpu_suspend
...
...
arch/arm/mach-omap2/clock3xxx_data.c
浏览文件 @
1f51b001
...
...
@@ -3078,6 +3078,7 @@ static struct clk gpt12_fck = {
.
name
=
"gpt12_fck"
,
.
ops
=
&
clkops_null
,
.
parent
=
&
secure_32k_fck
,
.
clkdm_name
=
"wkup_clkdm"
,
.
recalc
=
&
followparent_recalc
,
};
...
...
@@ -3085,6 +3086,7 @@ static struct clk wdt1_fck = {
.
name
=
"wdt1_fck"
,
.
ops
=
&
clkops_null
,
.
parent
=
&
secure_32k_fck
,
.
clkdm_name
=
"wkup_clkdm"
,
.
recalc
=
&
followparent_recalc
,
};
...
...
arch/arm/mach-omap2/clock44xx_data.c
浏览文件 @
1f51b001
...
...
@@ -3376,10 +3376,18 @@ int __init omap4xxx_clk_init(void)
}
else
if
(
cpu_is_omap446x
())
{
cpu_mask
=
RATE_IN_4460
;
cpu_clkflg
=
CK_446X
;
}
else
{
return
0
;
}
clk_init
(
&
omap2_clk_functions
);
omap2_clk_disable_clkdm_control
();
/*
* Must stay commented until all OMAP SoC drivers are
* converted to runtime PM, or drivers may start crashing
*
* omap2_clk_disable_clkdm_control();
*/
for
(
c
=
omap44xx_clks
;
c
<
omap44xx_clks
+
ARRAY_SIZE
(
omap44xx_clks
);
c
++
)
...
...
arch/arm/mach-omap2/clockdomain.c
浏览文件 @
1f51b001
...
...
@@ -747,6 +747,7 @@ int clkdm_wakeup(struct clockdomain *clkdm)
spin_lock_irqsave
(
&
clkdm
->
lock
,
flags
);
clkdm
->
_flags
&=
~
_CLKDM_FLAG_HWSUP_ENABLED
;
ret
=
arch_clkdm
->
clkdm_wakeup
(
clkdm
);
ret
|=
pwrdm_state_switch
(
clkdm
->
pwrdm
.
ptr
);
spin_unlock_irqrestore
(
&
clkdm
->
lock
,
flags
);
return
ret
;
}
...
...
@@ -818,6 +819,7 @@ void clkdm_deny_idle(struct clockdomain *clkdm)
spin_lock_irqsave
(
&
clkdm
->
lock
,
flags
);
clkdm
->
_flags
&=
~
_CLKDM_FLAG_HWSUP_ENABLED
;
arch_clkdm
->
clkdm_deny_idle
(
clkdm
);
pwrdm_state_switch
(
clkdm
->
pwrdm
.
ptr
);
spin_unlock_irqrestore
(
&
clkdm
->
lock
,
flags
);
}
...
...
arch/arm/mach-omap2/omap_hwmod_2430_data.c
浏览文件 @
1f51b001
...
...
@@ -192,6 +192,7 @@ static struct omap_hwmod_addr_space omap2430_usbhsotg_addrs[] = {
.
pa_end
=
OMAP243X_HS_BASE
+
SZ_4K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
/* l4_core ->usbhsotg interface */
...
...
arch/arm/mach-omap2/pm.c
浏览文件 @
1f51b001
...
...
@@ -130,7 +130,6 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state)
}
else
{
hwsup
=
clkdm_in_hwsup
(
pwrdm
->
pwrdm_clkdms
[
0
]);
clkdm_wakeup
(
pwrdm
->
pwrdm_clkdms
[
0
]);
pwrdm_wait_transition
(
pwrdm
);
sleep_switch
=
FORCEWAKEUP_SWITCH
;
}
}
...
...
@@ -156,7 +155,6 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state)
return
ret
;
}
pwrdm_wait_transition
(
pwrdm
);
pwrdm_state_switch
(
pwrdm
);
err:
return
ret
;
...
...
arch/arm/mach-omap2/powerdomain.c
浏览文件 @
1f51b001
...
...
@@ -195,28 +195,35 @@ static int _pwrdm_post_transition_cb(struct powerdomain *pwrdm, void *unused)
/**
* pwrdm_init - set up the powerdomain layer
* @pwrdm
_list
: array of struct powerdomain pointers to register
* @pwrdm
s
: array of struct powerdomain pointers to register
* @custom_funcs: func pointers for arch specific implementations
*
* Loop through the array of powerdomains @pwrdm_list, registering all
* that are available on the current CPU. If pwrdm_list is supplied
* and not null, all of the referenced powerdomains will be
* registered. No return value. XXX pwrdm_list is not really a
* "list"; it is an array. Rename appropriately.
* Loop through the array of powerdomains @pwrdms, registering all
* that are available on the current CPU. Also, program all
* powerdomain target state as ON; this is to prevent domains from
* hitting low power states (if bootloader has target states set to
* something other than ON) and potentially even losing context while
* PM is not fully initialized. The PM late init code can then program
* the desired target state for all the power domains. No return
* value.
*/
void
pwrdm_init
(
struct
powerdomain
**
pwrdm
_list
,
struct
pwrdm_ops
*
custom_funcs
)
void
pwrdm_init
(
struct
powerdomain
**
pwrdm
s
,
struct
pwrdm_ops
*
custom_funcs
)
{
struct
powerdomain
**
p
=
NULL
;
struct
powerdomain
*
temp_p
;
if
(
!
custom_funcs
)
WARN
(
1
,
"powerdomain: No custom pwrdm functions registered
\n
"
);
else
arch_pwrdm
=
custom_funcs
;
if
(
pwrdm
_list
)
{
for
(
p
=
pwrdm
_list
;
*
p
;
p
++
)
if
(
pwrdm
s
)
{
for
(
p
=
pwrdm
s
;
*
p
;
p
++
)
_pwrdm_register
(
*
p
);
}
list_for_each_entry
(
temp_p
,
&
pwrdm_list
,
node
)
pwrdm_set_next_pwrst
(
temp_p
,
PWRDM_POWER_ON
);
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录