Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
4d442482
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看板
提交
4d442482
编写于
6年前
作者:
V
Vinod Koul
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'topic/xilinx' into for-linus
上级
de764fdc
0894aa28
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
26 addition
and
0 deletion
+26
-0
Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt
Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt
+2
-0
drivers/dma/xilinx/xilinx_dma.c
drivers/dma/xilinx/xilinx_dma.c
+22
-0
include/linux/dma/xilinx_dma.h
include/linux/dma/xilinx_dma.h
+2
-0
未找到文件。
Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt
浏览文件 @
4d442482
...
...
@@ -66,6 +66,8 @@ Optional child node properties:
Optional child node properties for VDMA:
- xlnx,genlock-mode: Tells Genlock synchronization is
enabled/disabled in hardware.
- xlnx,enable-vert-flip: Tells vertical flip is
enabled/disabled in hardware(S2MM path).
Optional child node properties for AXI DMA:
-dma-channels: Number of dma channels in child node.
...
...
This diff is collapsed.
Click to expand it.
drivers/dma/xilinx/xilinx_dma.c
浏览文件 @
4d442482
...
...
@@ -115,6 +115,9 @@
#define XILINX_VDMA_REG_START_ADDRESS(n) (0x000c + 4 * (n))
#define XILINX_VDMA_REG_START_ADDRESS_64(n) (0x000c + 8 * (n))
#define XILINX_VDMA_REG_ENABLE_VERTICAL_FLIP 0x00ec
#define XILINX_VDMA_ENABLE_VERTICAL_FLIP BIT(0)
/* HW specific definitions */
#define XILINX_DMA_MAX_CHANS_PER_DEVICE 0x20
...
...
@@ -340,6 +343,7 @@ struct xilinx_dma_tx_descriptor {
* @start_transfer: Differentiate b/w DMA IP's transfer
* @stop_transfer: Differentiate b/w DMA IP's quiesce
* @tdest: TDEST value for mcdma
* @has_vflip: S2MM vertical flip
*/
struct
xilinx_dma_chan
{
struct
xilinx_dma_device
*
xdev
;
...
...
@@ -376,6 +380,7 @@ struct xilinx_dma_chan {
void
(
*
start_transfer
)(
struct
xilinx_dma_chan
*
chan
);
int
(
*
stop_transfer
)(
struct
xilinx_dma_chan
*
chan
);
u16
tdest
;
bool
has_vflip
;
};
/**
...
...
@@ -1092,6 +1097,14 @@ static void xilinx_vdma_start_transfer(struct xilinx_dma_chan *chan)
desc
->
async_tx
.
phys
);
/* Configure the hardware using info in the config structure */
if
(
chan
->
has_vflip
)
{
reg
=
dma_read
(
chan
,
XILINX_VDMA_REG_ENABLE_VERTICAL_FLIP
);
reg
&=
~
XILINX_VDMA_ENABLE_VERTICAL_FLIP
;
reg
|=
config
->
vflip_en
;
dma_write
(
chan
,
XILINX_VDMA_REG_ENABLE_VERTICAL_FLIP
,
reg
);
}
reg
=
dma_ctrl_read
(
chan
,
XILINX_DMA_REG_DMACR
);
if
(
config
->
frm_cnt_en
)
...
...
@@ -2105,6 +2118,8 @@ int xilinx_vdma_channel_set_config(struct dma_chan *dchan,
}
chan
->
config
.
frm_cnt_en
=
cfg
->
frm_cnt_en
;
chan
->
config
.
vflip_en
=
cfg
->
vflip_en
;
if
(
cfg
->
park
)
chan
->
config
.
park_frm
=
cfg
->
park_frm
;
else
...
...
@@ -2428,6 +2443,13 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
chan
->
direction
=
DMA_DEV_TO_MEM
;
chan
->
id
=
chan_id
;
chan
->
tdest
=
chan_id
-
xdev
->
nr_channels
;
chan
->
has_vflip
=
of_property_read_bool
(
node
,
"xlnx,enable-vert-flip"
);
if
(
chan
->
has_vflip
)
{
chan
->
config
.
vflip_en
=
dma_read
(
chan
,
XILINX_VDMA_REG_ENABLE_VERTICAL_FLIP
)
&
XILINX_VDMA_ENABLE_VERTICAL_FLIP
;
}
chan
->
ctrl_offset
=
XILINX_DMA_S2MM_CTRL_OFFSET
;
if
(
xdev
->
dma_config
->
dmatype
==
XDMA_TYPE_VDMA
)
{
...
...
This diff is collapsed.
Click to expand it.
include/linux/dma/xilinx_dma.h
浏览文件 @
4d442482
...
...
@@ -27,6 +27,7 @@
* @delay: Delay counter
* @reset: Reset Channel
* @ext_fsync: External Frame Sync source
* @vflip_en: Vertical Flip enable
*/
struct
xilinx_vdma_config
{
int
frm_dly
;
...
...
@@ -39,6 +40,7 @@ struct xilinx_vdma_config {
int
delay
;
int
reset
;
int
ext_fsync
;
bool
vflip_en
;
};
int
xilinx_vdma_channel_set_config
(
struct
dma_chan
*
dchan
,
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部