Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
09074950
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 大约 4 年
通知
14
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
09074950
编写于
8月 19, 2015
作者:
V
Vineet Gupta
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ARC: add/fix some comments in code - no functional change
Signed-off-by:
N
Vineet Gupta
<
vgupta@synopsys.com
>
上级
6de6066c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
23 addition
and
22 deletion
+23
-22
arch/arc/boot/dts/axc003.dtsi
arch/arc/boot/dts/axc003.dtsi
+7
-6
arch/arc/include/asm/cmpxchg.h
arch/arc/include/asm/cmpxchg.h
+11
-11
arch/arc/include/asm/perf_event.h
arch/arc/include/asm/perf_event.h
+1
-1
arch/arc/kernel/perf_event.c
arch/arc/kernel/perf_event.c
+2
-2
arch/arc/kernel/process.c
arch/arc/kernel/process.c
+1
-1
arch/arc/plat-axs10x/axs10x.c
arch/arc/plat-axs10x/axs10x.c
+1
-1
未找到文件。
arch/arc/boot/dts/axc003.dtsi
浏览文件 @
09074950
...
@@ -72,12 +72,13 @@
...
@@ -72,12 +72,13 @@
};
};
/*
/*
* This INTC is actually connected to DW APB GPIO
* The DW APB ICTL intc on MB is connected to CPU intc via a
* which acts as a wire between MB INTC and CPU INTC.
* DT "invisible" DW APB GPIO block, configured to simply pass thru
* GPIO INTC is configured in platform init code
* interrupts - setup accordinly in platform init (plat-axs10x/ax10x.c)
* and here we mimic direct connection from MB INTC to
*
* CPU INTC, thus we set "interrupts = <7>" instead of
* So here we mimic a direct connection betwen them, ignoring the
* "interrupts = <12>"
* ABPG GPIO. Thus set "interrupts = <24>" (DW APB GPIO to core)
* instead of "interrupts = <12>" (DW APB ICTL to DW APB GPIO)
*
*
* This intc actually resides on MB, but we move it here to
* This intc actually resides on MB, but we move it here to
* avoid duplicating the MB dtsi file given that IRQ from
* avoid duplicating the MB dtsi file given that IRQ from
...
...
arch/arc/include/asm/cmpxchg.h
浏览文件 @
09074950
...
@@ -110,18 +110,18 @@ static inline unsigned long __xchg(unsigned long val, volatile void *ptr,
...
@@ -110,18 +110,18 @@ static inline unsigned long __xchg(unsigned long val, volatile void *ptr,
sizeof(*(ptr))))
sizeof(*(ptr))))
/*
/*
*
On ARC700, EX insn is inherently atomic, so by default "vanilla" xchg() need
*
xchg() maps directly to ARC EX instruction which guarantees atomicity.
*
not require any locking. However there's a quirk.
*
However in !LLSC config, it also needs to be use @atomic_ops_lock spinlock
*
ARC lacks native CMPXCHG, thus emulated (see above), using external locking -
*
due to a subtle reason:
*
incidently it "reuses" the same atomic_ops_lock used by atomic APIs.
*
- For !LLSC, cmpxchg() needs to use that lock (see above) and there is lot
*
Now, llist code uses cmpxchg() and xchg() on same data, so xchg() needs to
*
of kernel code which calls xchg()/cmpxchg() on same data (see llist.h)
*
abide by same serializing rules, thus ends up using atomic_ops_lock as well
.
*
Hence xchg() needs to follow same locking rules
.
*
*
* T
his however is only relevant if SMP and/or ARC lacks LLSC
* T
echnically the lock is also needed for UP (boils down to irq save/restore)
*
if (UP or LLSC)
*
but we can cheat a bit since cmpxchg() atomic_ops_lock() would cause irqs to
*
xchg doesn't need serialization
*
be disabled thus can't possibly be interrpted/preempted/clobbered by xchg()
*
else <==> !(UP or LLSC) <==> (!UP and !LLSC) <==> (SMP and !LLSC)
*
Other way around, xchg is one instruction anyways, so can't be interrupted
*
xchg needs serialization
*
as such
*/
*/
#if !defined(CONFIG_ARC_HAS_LLSC) && defined(CONFIG_SMP)
#if !defined(CONFIG_ARC_HAS_LLSC) && defined(CONFIG_SMP)
...
...
arch/arc/include/asm/perf_event.h
浏览文件 @
09074950
...
@@ -95,7 +95,7 @@ static const char * const arc_pmu_ev_hw_map[] = {
...
@@ -95,7 +95,7 @@ static const char * const arc_pmu_ev_hw_map[] = {
/* counts condition */
/* counts condition */
[
PERF_COUNT_HW_INSTRUCTIONS
]
=
"iall"
,
[
PERF_COUNT_HW_INSTRUCTIONS
]
=
"iall"
,
[
PERF_COUNT_HW_BRANCH_INSTRUCTIONS
]
=
"ijmp"
,
[
PERF_COUNT_HW_BRANCH_INSTRUCTIONS
]
=
"ijmp"
,
/* Excludes ZOL jumps */
[
PERF_COUNT_ARC_BPOK
]
=
"bpok"
,
/* NP-NT, PT-T, PNT-NT */
[
PERF_COUNT_ARC_BPOK
]
=
"bpok"
,
/* NP-NT, PT-T, PNT-NT */
[
PERF_COUNT_HW_BRANCH_MISSES
]
=
"bpfail"
,
/* NP-T, PT-NT, PNT-T */
[
PERF_COUNT_HW_BRANCH_MISSES
]
=
"bpfail"
,
/* NP-T, PT-NT, PNT-T */
...
...
arch/arc/kernel/perf_event.c
浏览文件 @
09074950
...
@@ -199,8 +199,8 @@ static void arc_pmu_start(struct perf_event *event, int flags)
...
@@ -199,8 +199,8 @@ static void arc_pmu_start(struct perf_event *event, int flags)
event
->
hw
.
state
=
0
;
event
->
hw
.
state
=
0
;
/* enable ARC pmu here */
/* enable ARC pmu here */
write_aux_reg
(
ARC_REG_PCT_INDEX
,
idx
);
write_aux_reg
(
ARC_REG_PCT_INDEX
,
idx
);
/* counter # */
write_aux_reg
(
ARC_REG_PCT_CONFIG
,
hwc
->
config
);
write_aux_reg
(
ARC_REG_PCT_CONFIG
,
hwc
->
config
);
/* condition */
}
}
static
void
arc_pmu_stop
(
struct
perf_event
*
event
,
int
flags
)
static
void
arc_pmu_stop
(
struct
perf_event
*
event
,
int
flags
)
...
...
arch/arc/kernel/process.c
浏览文件 @
09074950
...
@@ -65,7 +65,7 @@ asmlinkage void ret_from_fork(void);
...
@@ -65,7 +65,7 @@ asmlinkage void ret_from_fork(void);
* ------------------
* ------------------
* | r25 | <==== top of Stack (thread.ksp)
* | r25 | <==== top of Stack (thread.ksp)
* ~ ~
* ~ ~
* | --to-- | (CALLEE Regs of
user
mode)
* | --to-- | (CALLEE Regs of
kernel
mode)
* | r13 |
* | r13 |
* ------------------
* ------------------
* | fp |
* | fp |
...
...
arch/arc/plat-axs10x/axs10x.c
浏览文件 @
09074950
...
@@ -46,7 +46,7 @@ static void __init axs10x_enable_gpio_intc_wire(void)
...
@@ -46,7 +46,7 @@ static void __init axs10x_enable_gpio_intc_wire(void)
* ------------------- -------------------
* ------------------- -------------------
* | snps,dw-apb-gpio | | snps,dw-apb-gpio |
* | snps,dw-apb-gpio | | snps,dw-apb-gpio |
* ------------------- -------------------
* ------------------- -------------------
* |
|
* |
#12
|
* | [ Debug UART on cpu card ]
* | [ Debug UART on cpu card ]
* |
* |
* ------------------------
* ------------------------
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录