Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
6619f035
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6619f035
编写于
10月 03, 2016
作者:
V
Vinod Koul
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'topic/compile_test' into for-linus
上级
02aa8486
509cf0b8
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
100 addition
and
79 deletion
+100
-79
drivers/dma/Kconfig
drivers/dma/Kconfig
+17
-21
drivers/dma/coh901318.c
drivers/dma/coh901318.c
+10
-10
drivers/dma/coh901318_lli.c
drivers/dma/coh901318_lli.c
+2
-2
drivers/dma/dma-jz4740.c
drivers/dma/dma-jz4740.c
+0
-2
drivers/dma/dma-jz4780.c
drivers/dma/dma-jz4780.c
+1
-1
drivers/dma/edma.c
drivers/dma/edma.c
+13
-13
drivers/dma/ep93xx_dma.c
drivers/dma/ep93xx_dma.c
+6
-6
drivers/dma/mmp_tdma.c
drivers/dma/mmp_tdma.c
+1
-1
drivers/dma/s3c24xx-dma.c
drivers/dma/s3c24xx-dma.c
+3
-3
drivers/dma/sa11x0-dma.c
drivers/dma/sa11x0-dma.c
+7
-7
drivers/dma/stm32-dma.c
drivers/dma/stm32-dma.c
+1
-1
drivers/dma/ti-dma-crossbar.c
drivers/dma/ti-dma-crossbar.c
+19
-11
include/linux/omap-dma.h
include/linux/omap-dma.h
+19
-0
include/linux/platform_data/dma-mmp_tdma.h
include/linux/platform_data/dma-mmp_tdma.h
+1
-1
未找到文件。
drivers/dma/Kconfig
浏览文件 @
6619f035
...
...
@@ -102,7 +102,7 @@ config AXI_DMAC
config COH901318
bool "ST-Ericsson COH901318 DMA support"
select DMA_ENGINE
depends on ARCH_U300
depends on ARCH_U300
|| COMPILE_TEST
help
Enable support for ST-Ericsson COH 901 318 DMA.
...
...
@@ -114,13 +114,13 @@ config DMA_BCM2835
config DMA_JZ4740
tristate "JZ4740 DMA support"
depends on MACH_JZ4740
depends on MACH_JZ4740
|| COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
config DMA_JZ4780
tristate "JZ4780 DMA support"
depends on MACH_JZ4780
depends on MACH_JZ4780
|| COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
...
...
@@ -130,14 +130,14 @@ config DMA_JZ4780
config DMA_OMAP
tristate "OMAP DMA support"
depends on ARCH_OMAP
depends on ARCH_OMAP
|| COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
select TI_DMA_CROSSBAR if
SOC_DRA7XX
select TI_DMA_CROSSBAR if
(SOC_DRA7XX || COMPILE_TEST)
config DMA_SA11X0
tristate "SA-11x0 DMA support"
depends on ARCH_SA1100
depends on ARCH_SA1100
|| COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
...
...
@@ -150,7 +150,6 @@ config DMA_SUN4I
depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
default (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
select DMA_ENGINE
select DMA_OF
select DMA_VIRTUAL_CHANNELS
help
Enable support for the DMA controller present in the sun4i,
...
...
@@ -167,7 +166,7 @@ config DMA_SUN6I
config EP93XX_DMA
bool "Cirrus Logic EP93xx DMA support"
depends on ARCH_EP93XX
depends on ARCH_EP93XX
|| COMPILE_TEST
select DMA_ENGINE
help
Enable support for the Cirrus Logic EP93xx M2P/M2M DMA controller.
...
...
@@ -297,16 +296,16 @@ config LPC18XX_DMAMUX
config MMP_PDMA
bool "MMP PDMA support"
depends on
(ARCH_MMP || ARCH_PXA)
depends on
ARCH_MMP || ARCH_PXA || COMPILE_TEST
select DMA_ENGINE
help
Support the MMP PDMA engine for PXA and MMP platform.
config MMP_TDMA
bool "MMP Two-Channel DMA support"
depends on ARCH_MMP
depends on ARCH_MMP
|| COMPILE_TEST
select DMA_ENGINE
select MMP_SRAM
select MMP_SRAM
if ARCH_MMP
help
Support the MMP Two-Channel DMA engine.
This engine used for MMP Audio DMA and pxa910 SQU.
...
...
@@ -316,7 +315,6 @@ config MOXART_DMA
tristate "MOXART DMA support"
depends on ARCH_MOXART
select DMA_ENGINE
select DMA_OF
select DMA_VIRTUAL_CHANNELS
help
Enable support for the MOXA ART SoC DMA controller.
...
...
@@ -439,9 +437,8 @@ config STE_DMA40
config STM32_DMA
bool "STMicroelectronics STM32 DMA support"
depends on ARCH_STM32
depends on ARCH_STM32
|| COMPILE_TEST
select DMA_ENGINE
select DMA_OF
select DMA_VIRTUAL_CHANNELS
help
Enable support for the on-chip DMA controller on STMicroelectronics
...
...
@@ -451,7 +448,7 @@ config STM32_DMA
config S3C24XX_DMAC
bool "Samsung S3C24XX DMA support"
depends on ARCH_S3C24XX
depends on ARCH_S3C24XX
|| COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
...
...
@@ -483,10 +480,9 @@ config TEGRA20_APB_DMA
config TEGRA210_ADMA
bool "NVIDIA Tegra210 ADMA support"
depends on
ARCH_TEGRA_210_SOC
depends on
(ARCH_TEGRA_210_SOC || COMPILE_TEST) && PM_CLK
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
select PM_CLK
help
Support for the NVIDIA Tegra210 ADMA controller driver. The
DMA controller has multiple DMA channels and is used to service
...
...
@@ -497,7 +493,7 @@ config TEGRA210_ADMA
config TIMB_DMA
tristate "Timberdale FPGA DMA support"
depends on MFD_TIMBERDALE
depends on MFD_TIMBERDALE
|| COMPILE_TEST
select DMA_ENGINE
help
Enable support for the Timberdale FPGA DMA engine.
...
...
@@ -515,10 +511,10 @@ config TI_DMA_CROSSBAR
config TI_EDMA
bool "TI EDMA support"
depends on ARCH_DAVINCI || ARCH_OMAP || ARCH_KEYSTONE
depends on ARCH_DAVINCI || ARCH_OMAP || ARCH_KEYSTONE
|| COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
select TI_DMA_CROSSBAR if
ARCH_OMAP
select TI_DMA_CROSSBAR if
(ARCH_OMAP || COMPILE_TEST)
default n
help
Enable support for the TI EDMA controller. This DMA
...
...
@@ -561,7 +557,7 @@ config XILINX_ZYNQMP_DMA
config ZX_DMA
tristate "ZTE ZX296702 DMA support"
depends on ARCH_ZX
depends on ARCH_ZX
|| COMPILE_TEST
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
...
...
drivers/dma/coh901318.c
浏览文件 @
6619f035
...
...
@@ -1319,10 +1319,10 @@ static void coh901318_list_print(struct coh901318_chan *cohc,
int
i
=
0
;
while
(
l
)
{
dev_vdbg
(
COHC_2_DEV
(
cohc
),
"i %d, lli %p, ctrl 0x%x, src 0x%
x
"
", dst 0x%
x, link 0x%x
virt_link_addr 0x%p
\n
"
,
i
,
l
,
l
->
control
,
l
->
src_addr
,
l
->
dst_addr
,
l
->
link_addr
,
l
->
virt_link_addr
);
dev_vdbg
(
COHC_2_DEV
(
cohc
),
"i %d, lli %p, ctrl 0x%x, src 0x%
pad
"
", dst 0x%
pad, link 0x%pad
virt_link_addr 0x%p
\n
"
,
i
,
l
,
l
->
control
,
&
l
->
src_addr
,
&
l
->
dst_addr
,
&
l
->
link_addr
,
l
->
virt_link_addr
);
i
++
;
l
=
l
->
virt_link_addr
;
}
...
...
@@ -1335,7 +1335,7 @@ static void coh901318_list_print(struct coh901318_chan *cohc,
static
struct
coh901318_base
*
debugfs_dma_base
;
static
struct
dentry
*
dma_dentry
;
static
in
t
coh901318_debugfs_read
(
struct
file
*
file
,
char
__user
*
buf
,
static
ssize_
t
coh901318_debugfs_read
(
struct
file
*
file
,
char
__user
*
buf
,
size_t
count
,
loff_t
*
f_pos
)
{
u64
started_channels
=
debugfs_dma_base
->
pm
.
started_channels
;
...
...
@@ -1753,7 +1753,7 @@ static int coh901318_resume(struct dma_chan *chan)
bool
coh901318_filter_id
(
struct
dma_chan
*
chan
,
void
*
chan_id
)
{
unsigned
int
ch_nr
=
(
unsigned
int
)
chan_id
;
unsigned
long
ch_nr
=
(
unsigned
long
)
chan_id
;
if
(
ch_nr
==
to_coh901318_chan
(
chan
)
->
id
)
return
true
;
...
...
@@ -2234,8 +2234,8 @@ coh901318_prep_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
spin_lock_irqsave
(
&
cohc
->
lock
,
flg
);
dev_vdbg
(
COHC_2_DEV
(
cohc
),
"[%s] channel %d src 0x%
x dest 0x%x size %d
\n
"
,
__func__
,
cohc
->
id
,
src
,
dest
,
size
);
"[%s] channel %d src 0x%
pad dest 0x%pad size %zu
\n
"
,
__func__
,
cohc
->
id
,
&
src
,
&
dest
,
size
);
if
(
flags
&
DMA_PREP_INTERRUPT
)
/* Trigger interrupt after last lli */
...
...
@@ -2731,8 +2731,8 @@ static int __init coh901318_probe(struct platform_device *pdev)
goto
err_register_of_dma
;
platform_set_drvdata
(
pdev
,
base
);
dev_info
(
&
pdev
->
dev
,
"Initialized COH901318 DMA on virtual base 0x%
08x
\n
"
,
(
u32
)
base
->
virtbase
);
dev_info
(
&
pdev
->
dev
,
"Initialized COH901318 DMA on virtual base 0x%
p
\n
"
,
base
->
virtbase
);
return
err
;
...
...
drivers/dma/coh901318_lli.c
浏览文件 @
6619f035
...
...
@@ -75,7 +75,7 @@ coh901318_lli_alloc(struct coh901318_pool *pool, unsigned int len)
lli
=
head
;
lli
->
phy_this
=
phy
;
lli
->
link_addr
=
0x00000000
;
lli
->
virt_link_addr
=
0x00000000U
;
lli
->
virt_link_addr
=
NULL
;
for
(
i
=
1
;
i
<
len
;
i
++
)
{
lli_prev
=
lli
;
...
...
@@ -88,7 +88,7 @@ coh901318_lli_alloc(struct coh901318_pool *pool, unsigned int len)
DEBUGFS_POOL_COUNTER_ADD
(
pool
,
1
);
lli
->
phy_this
=
phy
;
lli
->
link_addr
=
0x00000000
;
lli
->
virt_link_addr
=
0x00000000U
;
lli
->
virt_link_addr
=
NULL
;
lli_prev
->
link_addr
=
phy
;
lli_prev
->
virt_link_addr
=
lli
;
...
...
drivers/dma/dma-jz4740.c
浏览文件 @
6619f035
...
...
@@ -21,8 +21,6 @@
#include <linux/irq.h>
#include <linux/clk.h>
#include <asm/mach-jz4740/dma.h>
#include "virt-dma.h"
#define JZ_DMA_NR_CHANS 6
...
...
drivers/dma/dma-jz4780.c
浏览文件 @
6619f035
...
...
@@ -400,7 +400,7 @@ static struct dma_async_tx_descriptor *jz4780_dma_prep_dma_cyclic(
return
vchan_tx_prep
(
&
jzchan
->
vchan
,
&
desc
->
vdesc
,
flags
);
}
struct
dma_async_tx_descriptor
*
jz4780_dma_prep_dma_memcpy
(
st
atic
st
ruct
dma_async_tx_descriptor
*
jz4780_dma_prep_dma_memcpy
(
struct
dma_chan
*
chan
,
dma_addr_t
dest
,
dma_addr_t
src
,
size_t
len
,
unsigned
long
flags
)
{
...
...
drivers/dma/edma.c
浏览文件 @
6619f035
...
...
@@ -263,22 +263,29 @@ static const struct edmacc_param dummy_paramset = {
#define EDMA_BINDING_LEGACY 0
#define EDMA_BINDING_TPCC 1
static
const
u32
edma_binding_type
[]
=
{
[
EDMA_BINDING_LEGACY
]
=
EDMA_BINDING_LEGACY
,
[
EDMA_BINDING_TPCC
]
=
EDMA_BINDING_TPCC
,
};
static
const
struct
of_device_id
edma_of_ids
[]
=
{
{
.
compatible
=
"ti,edma3"
,
.
data
=
(
void
*
)
EDMA_BINDING_LEGACY
,
.
data
=
&
edma_binding_type
[
EDMA_BINDING_LEGACY
]
,
},
{
.
compatible
=
"ti,edma3-tpcc"
,
.
data
=
(
void
*
)
EDMA_BINDING_TPCC
,
.
data
=
&
edma_binding_type
[
EDMA_BINDING_TPCC
]
,
},
{}
};
MODULE_DEVICE_TABLE
(
of
,
edma_of_ids
);
static
const
struct
of_device_id
edma_tptc_of_ids
[]
=
{
{
.
compatible
=
"ti,edma3-tptc"
,
},
{}
};
MODULE_DEVICE_TABLE
(
of
,
edma_tptc_of_ids
);
static
inline
unsigned
int
edma_read
(
struct
edma_cc
*
ecc
,
int
offset
)
{
...
...
@@ -405,18 +412,12 @@ static inline void edma_param_or(struct edma_cc *ecc, int offset, int param_no,
edma_or
(
ecc
,
EDMA_PARM
+
offset
+
(
param_no
<<
5
),
or
);
}
static
inline
void
set_bits
(
int
offset
,
int
len
,
unsigned
long
*
p
)
static
inline
void
edma_
set_bits
(
int
offset
,
int
len
,
unsigned
long
*
p
)
{
for
(;
len
>
0
;
len
--
)
set_bit
(
offset
+
(
len
-
1
),
p
);
}
static
inline
void
clear_bits
(
int
offset
,
int
len
,
unsigned
long
*
p
)
{
for
(;
len
>
0
;
len
--
)
clear_bit
(
offset
+
(
len
-
1
),
p
);
}
static
void
edma_assign_priority_to_queue
(
struct
edma_cc
*
ecc
,
int
queue_no
,
int
priority
)
{
...
...
@@ -2023,8 +2024,7 @@ static struct edma_soc_info *edma_setup_info_from_dt(struct device *dev,
{
struct
edma_soc_info
*
info
;
struct
property
*
prop
;
size_t
sz
;
int
ret
;
int
sz
,
ret
;
info
=
devm_kzalloc
(
dev
,
sizeof
(
struct
edma_soc_info
),
GFP_KERNEL
);
if
(
!
info
)
...
...
@@ -2186,7 +2186,7 @@ static int edma_probe(struct platform_device *pdev)
const
struct
of_device_id
*
match
;
match
=
of_match_node
(
edma_of_ids
,
node
);
if
(
match
&&
(
u32
)
match
->
data
==
EDMA_BINDING_TPCC
)
if
(
match
&&
(
*
(
u32
*
)
match
->
data
)
==
EDMA_BINDING_TPCC
)
legacy_mode
=
false
;
info
=
edma_setup_info_from_dt
(
dev
,
legacy_mode
);
...
...
@@ -2264,7 +2264,7 @@ static int edma_probe(struct platform_device *pdev)
for
(
i
=
0
;
rsv_slots
[
i
][
0
]
!=
-
1
;
i
++
)
{
off
=
rsv_slots
[
i
][
0
];
ln
=
rsv_slots
[
i
][
1
];
set_bits
(
off
,
ln
,
ecc
->
slot_inuse
);
edma_
set_bits
(
off
,
ln
,
ecc
->
slot_inuse
);
}
}
}
...
...
drivers/dma/ep93xx_dma.c
浏览文件 @
6619f035
...
...
@@ -1045,11 +1045,11 @@ ep93xx_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
first
=
NULL
;
for_each_sg
(
sgl
,
sg
,
sg_len
,
i
)
{
size_t
sg_
len
=
sg_dma_len
(
sg
);
size_t
len
=
sg_dma_len
(
sg
);
if
(
sg_
len
>
DMA_MAX_CHAN_BYTES
)
{
dev_warn
(
chan2dev
(
edmac
),
"too big transfer size %
d
\n
"
,
sg_
len
);
if
(
len
>
DMA_MAX_CHAN_BYTES
)
{
dev_warn
(
chan2dev
(
edmac
),
"too big transfer size %
zu
\n
"
,
len
);
goto
fail
;
}
...
...
@@ -1066,7 +1066,7 @@ ep93xx_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
desc
->
src_addr
=
edmac
->
runtime_addr
;
desc
->
dst_addr
=
sg_dma_address
(
sg
);
}
desc
->
size
=
sg_
len
;
desc
->
size
=
len
;
if
(
!
first
)
first
=
desc
;
...
...
@@ -1123,7 +1123,7 @@ ep93xx_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t dma_addr,
}
if
(
period_len
>
DMA_MAX_CHAN_BYTES
)
{
dev_warn
(
chan2dev
(
edmac
),
"too big period length %
d
\n
"
,
dev_warn
(
chan2dev
(
edmac
),
"too big period length %
zu
\n
"
,
period_len
);
return
NULL
;
}
...
...
drivers/dma/mmp_tdma.c
浏览文件 @
6619f035
...
...
@@ -433,7 +433,7 @@ static struct dma_async_tx_descriptor *mmp_tdma_prep_dma_cyclic(
if
(
period_len
>
TDMA_MAX_XFER_BYTES
)
{
dev_err
(
tdmac
->
dev
,
"maximum period size exceeded: %
d
> %d
\n
"
,
"maximum period size exceeded: %
zu
> %d
\n
"
,
period_len
,
TDMA_MAX_XFER_BYTES
);
goto
err_out
;
}
...
...
drivers/dma/s3c24xx-dma.c
浏览文件 @
6619f035
...
...
@@ -823,11 +823,11 @@ static struct dma_async_tx_descriptor *s3c24xx_dma_prep_memcpy(
struct
s3c24xx_sg
*
dsg
;
int
src_mod
,
dest_mod
;
dev_dbg
(
&
s3cdma
->
pdev
->
dev
,
"prepare memcpy of %
d
bytes from %s
\n
"
,
dev_dbg
(
&
s3cdma
->
pdev
->
dev
,
"prepare memcpy of %
zu
bytes from %s
\n
"
,
len
,
s3cchan
->
name
);
if
((
len
&
S3C24XX_DCON_TC_MASK
)
!=
len
)
{
dev_err
(
&
s3cdma
->
pdev
->
dev
,
"memcpy size %
d
to large
\n
"
,
len
);
dev_err
(
&
s3cdma
->
pdev
->
dev
,
"memcpy size %
zu
to large
\n
"
,
len
);
return
NULL
;
}
...
...
@@ -1421,7 +1421,7 @@ bool s3c24xx_dma_filter(struct dma_chan *chan, void *param)
s3cchan
=
to_s3c24xx_dma_chan
(
chan
);
return
s3cchan
->
id
==
(
in
t
)
param
;
return
s3cchan
->
id
==
(
uintptr_
t
)
param
;
}
EXPORT_SYMBOL
(
s3c24xx_dma_filter
);
...
...
drivers/dma/sa11x0-dma.c
浏览文件 @
6619f035
...
...
@@ -463,7 +463,7 @@ static enum dma_status sa11x0_dma_tx_status(struct dma_chan *chan,
dma_addr_t
addr
=
sa11x0_dma_pos
(
p
);
unsigned
i
;
dev_vdbg
(
d
->
slave
.
dev
,
"tx_status: addr:%
x
\n
"
,
addr
);
dev_vdbg
(
d
->
slave
.
dev
,
"tx_status: addr:%
pad
\n
"
,
&
addr
);
for
(
i
=
0
;
i
<
txd
->
sglen
;
i
++
)
{
dev_vdbg
(
d
->
slave
.
dev
,
"tx_status: [%u] %x+%x
\n
"
,
...
...
@@ -491,7 +491,7 @@ static enum dma_status sa11x0_dma_tx_status(struct dma_chan *chan,
}
spin_unlock_irqrestore
(
&
c
->
vc
.
lock
,
flags
);
dev_vdbg
(
d
->
slave
.
dev
,
"tx_status: bytes 0x%
z
x
\n
"
,
state
->
residue
);
dev_vdbg
(
d
->
slave
.
dev
,
"tx_status: bytes 0x%x
\n
"
,
state
->
residue
);
return
ret
;
}
...
...
@@ -551,8 +551,8 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
if
(
len
>
DMA_MAX_SIZE
)
j
+=
DIV_ROUND_UP
(
len
,
DMA_MAX_SIZE
&
~
DMA_ALIGN
)
-
1
;
if
(
addr
&
DMA_ALIGN
)
{
dev_dbg
(
chan
->
device
->
dev
,
"vchan %p: bad buffer alignment: %
08x
\n
"
,
&
c
->
vc
,
addr
);
dev_dbg
(
chan
->
device
->
dev
,
"vchan %p: bad buffer alignment: %
pad
\n
"
,
&
c
->
vc
,
&
addr
);
return
NULL
;
}
}
...
...
@@ -599,7 +599,7 @@ static struct dma_async_tx_descriptor *sa11x0_dma_prep_slave_sg(
txd
->
size
=
size
;
txd
->
sglen
=
j
;
dev_dbg
(
chan
->
device
->
dev
,
"vchan %p: txd %p: size %u nr %u
\n
"
,
dev_dbg
(
chan
->
device
->
dev
,
"vchan %p: txd %p: size %
z
u nr %u
\n
"
,
&
c
->
vc
,
&
txd
->
vd
,
txd
->
size
,
txd
->
sglen
);
return
vchan_tx_prep
(
&
c
->
vc
,
&
txd
->
vd
,
flags
);
...
...
@@ -693,8 +693,8 @@ static int sa11x0_dma_device_config(struct dma_chan *chan,
if
(
maxburst
==
8
)
ddar
|=
DDAR_BS
;
dev_dbg
(
c
->
vc
.
chan
.
device
->
dev
,
"vchan %p: dma_slave_config addr %
x
width %u burst %u
\n
"
,
&
c
->
vc
,
addr
,
width
,
maxburst
);
dev_dbg
(
c
->
vc
.
chan
.
device
->
dev
,
"vchan %p: dma_slave_config addr %
pad
width %u burst %u
\n
"
,
&
c
->
vc
,
&
addr
,
width
,
maxburst
);
c
->
ddar
=
ddar
|
(
addr
&
0xf0000000
)
|
(
addr
&
0x003ffffc
)
<<
6
;
...
...
drivers/dma/stm32-dma.c
浏览文件 @
6619f035
...
...
@@ -954,7 +954,7 @@ static void stm32_dma_desc_free(struct virt_dma_desc *vdesc)
kfree
(
container_of
(
vdesc
,
struct
stm32_dma_desc
,
vdesc
));
}
void
stm32_dma_set_config
(
struct
stm32_dma_chan
*
chan
,
static
void
stm32_dma_set_config
(
struct
stm32_dma_chan
*
chan
,
struct
stm32_dma_cfg
*
cfg
)
{
stm32_dma_clear_reg
(
&
chan
->
chan_reg
);
...
...
drivers/dma/ti-dma-crossbar.c
浏览文件 @
6619f035
...
...
@@ -18,15 +18,19 @@
#define TI_XBAR_DRA7 0
#define TI_XBAR_AM335X 1
static
const
u32
ti_xbar_type
[]
=
{
[
TI_XBAR_DRA7
]
=
TI_XBAR_DRA7
,
[
TI_XBAR_AM335X
]
=
TI_XBAR_AM335X
,
};
static
const
struct
of_device_id
ti_dma_xbar_match
[]
=
{
{
.
compatible
=
"ti,dra7-dma-crossbar"
,
.
data
=
(
void
*
)
TI_XBAR_DRA7
,
.
data
=
&
ti_xbar_type
[
TI_XBAR_DRA7
]
,
},
{
.
compatible
=
"ti,am335x-edma-crossbar"
,
.
data
=
(
void
*
)
TI_XBAR_AM335X
,
.
data
=
&
ti_xbar_type
[
TI_XBAR_AM335X
]
,
},
{},
};
...
...
@@ -190,9 +194,6 @@ static int ti_am335x_xbar_probe(struct platform_device *pdev)
#define TI_DRA7_XBAR_OUTPUTS 127
#define TI_DRA7_XBAR_INPUTS 256
#define TI_XBAR_EDMA_OFFSET 0
#define TI_XBAR_SDMA_OFFSET 1
struct
ti_dra7_xbar_data
{
void
__iomem
*
iomem
;
...
...
@@ -280,18 +281,25 @@ static void *ti_dra7_xbar_route_allocate(struct of_phandle_args *dma_spec,
return
map
;
}
#define TI_XBAR_EDMA_OFFSET 0
#define TI_XBAR_SDMA_OFFSET 1
static
const
u32
ti_dma_offset
[]
=
{
[
TI_XBAR_EDMA_OFFSET
]
=
0
,
[
TI_XBAR_SDMA_OFFSET
]
=
1
,
};
static
const
struct
of_device_id
ti_dra7_master_match
[]
=
{
{
.
compatible
=
"ti,omap4430-sdma"
,
.
data
=
(
void
*
)
TI_XBAR_SDMA_OFFSET
,
.
data
=
&
ti_dma_offset
[
TI_XBAR_SDMA_OFFSET
]
,
},
{
.
compatible
=
"ti,edma3"
,
.
data
=
(
void
*
)
TI_XBAR_EDMA_OFFSET
,
.
data
=
&
ti_dma_offset
[
TI_XBAR_EDMA_OFFSET
]
,
},
{
.
compatible
=
"ti,edma3-tpcc"
,
.
data
=
(
void
*
)
TI_XBAR_EDMA_OFFSET
,
.
data
=
&
ti_dma_offset
[
TI_XBAR_EDMA_OFFSET
]
,
},
{},
};
...
...
@@ -311,7 +319,7 @@ static int ti_dra7_xbar_probe(struct platform_device *pdev)
struct
property
*
prop
;
struct
resource
*
res
;
u32
safe_val
;
size_
t
sz
;
in
t
sz
;
void
__iomem
*
iomem
;
int
i
,
ret
;
...
...
@@ -395,7 +403,7 @@ static int ti_dra7_xbar_probe(struct platform_device *pdev)
xbar
->
dmarouter
.
dev
=
&
pdev
->
dev
;
xbar
->
dmarouter
.
route_free
=
ti_dra7_xbar_free
;
xbar
->
dma_offset
=
(
u32
)
match
->
data
;
xbar
->
dma_offset
=
*
(
u32
*
)
match
->
data
;
mutex_init
(
&
xbar
->
mutex
);
platform_set_drvdata
(
pdev
,
xbar
);
...
...
@@ -428,7 +436,7 @@ static int ti_dma_xbar_probe(struct platform_device *pdev)
if
(
unlikely
(
!
match
))
return
-
EINVAL
;
switch
(
(
u32
)
match
->
data
)
{
switch
(
*
(
u32
*
)
match
->
data
)
{
case
TI_XBAR_DRA7
:
ret
=
ti_dra7_xbar_probe
(
pdev
);
break
;
...
...
include/linux/omap-dma.h
浏览文件 @
6619f035
...
...
@@ -297,6 +297,7 @@ struct omap_system_dma_plat_info {
#define dma_omap15xx() __dma_omap15xx(d)
#define dma_omap16xx() __dma_omap16xx(d)
#if defined(CONFIG_ARCH_OMAP)
extern
struct
omap_system_dma_plat_info
*
omap_get_plat_info
(
void
);
extern
void
omap_set_dma_priority
(
int
lch
,
int
dst_port
,
int
priority
);
...
...
@@ -355,4 +356,22 @@ static inline int omap_lcd_dma_running(void)
}
#endif
#else
/* CONFIG_ARCH_OMAP */
static
inline
struct
omap_system_dma_plat_info
*
omap_get_plat_info
(
void
)
{
return
NULL
;
}
static
inline
int
omap_request_dma
(
int
dev_id
,
const
char
*
dev_name
,
void
(
*
callback
)(
int
lch
,
u16
ch_status
,
void
*
data
),
void
*
data
,
int
*
dma_ch
)
{
return
-
ENODEV
;
}
static
inline
void
omap_free_dma
(
int
ch
)
{
}
#endif
/* CONFIG_ARCH_OMAP */
#endif
/* __LINUX_OMAP_DMA_H */
include/linux/platform_data/dma-mmp_tdma.h
浏览文件 @
6619f035
...
...
@@ -28,7 +28,7 @@ struct sram_platdata {
int
granularity
;
};
#ifdef CONFIG_
AR
M
#ifdef CONFIG_
MMP_SRA
M
extern
struct
gen_pool
*
sram_get_gpool
(
char
*
pool_name
);
#else
static
inline
struct
gen_pool
*
sram_get_gpool
(
char
*
pool_name
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录