Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC ADC 100M 14b 4cha - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
FMC ADC 100M 14b 4cha - Software
Commits
59e32553
Commit
59e32553
authored
Apr 22, 2020
by
Federico Vaga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP drv: fix multishot DMA offset
Signed-off-by:
Federico Vaga
<
federico.vaga@cern.ch
>
parent
95317efc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
8 deletions
+9
-8
fa-dma.c
kernel/fa-dma.c
+9
-8
No files found.
kernel/fa-dma.c
View file @
59e32553
...
...
@@ -425,6 +425,7 @@ static int zfad_dma_start(struct zio_cset *cset)
struct
dma_chan
*
dchan
;
struct
dma_slave_config
sconfig
;
dma_cap_mask_t
dma_mask
;
unsigned
int
data_offset
;
int
err
,
i
;
err
=
zfad_wait_idle
(
cset
,
5
,
1
);
...
...
@@ -451,18 +452,18 @@ static int zfad_dma_start(struct zio_cset *cset)
goto
err
;
}
if
(
fa
->
pdev
->
id_entry
->
driver_data
==
ADC_VER_SPEC
)
{
memset
(
&
sconfig
,
0
,
sizeof
(
sconfig
));
sconfig
.
direction
=
DMA_DEV_TO_MEM
;
if
(
fa
->
n_shots
==
1
)
memset
(
&
sconfig
,
0
,
sizeof
(
sconfig
));
sconfig
.
direction
=
DMA_DEV_TO_MEM
;
sconfig
.
src_addr_width
=
8
;
/* 2 bytes for each channel (4) */
data_offset
=
(
cset
->
interleave
->
current_ctrl
->
ssize
*
cset
->
ti
->
nsamples
)
+
FA_TRIG_TIMETAG_BYTES
;
for
(
i
=
0
;
i
<
fa
->
n_shots
;
++
i
)
{
if
(
fa
->
pdev
->
id_entry
->
driver_data
==
ADC_VER_SPEC
&&
fa
->
n_shots
==
1
)
sconfig
.
src_addr
=
zfad_dev_mem_offset
(
cset
);
sconfig
.
src_addr_width
=
8
;
/* 2 bytes for each channel (4) */
else
sconfig
.
src_addr
=
i
*
data_offset
;
err
=
dmaengine_slave_config
(
dchan
,
&
sconfig
);
if
(
err
)
goto
err_config
;
}
for
(
i
=
0
;
i
<
fa
->
n_shots
;
++
i
)
{
err
=
zfad_dma_prep_slave_sg
(
dchan
,
cset
,
&
zfad_block
[
i
]);
if
(
err
)
goto
err_prep
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment