vdma: Corrected the hsize and stride alignment logic
This patch corrects the hsize and stride alignment logic when DRE is not enabled in the design. Signed-off-by: Anurag Kumar Vulisha <anuragku@xilinx.com> Reviewed-by: Kedareswara rao Appana <appanad@xilinx.com>
This commit is contained in:
parent
c8e6ea5336
commit
649d61fc17
1 changed files with 6 additions and 0 deletions
|
@ -652,6 +652,8 @@ int XAxiVdma_ChannelConfig(XAxiVdma_Channel *Channel,
|
||||||
} else {
|
} else {
|
||||||
hsize_align =
|
hsize_align =
|
||||||
(u32)(ChannelCfgPtr->HoriSizeInput % Channel->WordLength);
|
(u32)(ChannelCfgPtr->HoriSizeInput % Channel->WordLength);
|
||||||
|
if (hsize_align > 0)
|
||||||
|
hsize_align = (Channel->WordLength - hsize_align);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (ChannelCfgPtr->HoriSizeInput < Channel->WordLength) {
|
if (ChannelCfgPtr->HoriSizeInput < Channel->WordLength) {
|
||||||
|
@ -659,6 +661,8 @@ int XAxiVdma_ChannelConfig(XAxiVdma_Channel *Channel,
|
||||||
} else {
|
} else {
|
||||||
hsize_align =
|
hsize_align =
|
||||||
(u32)(ChannelCfgPtr->HoriSizeInput % Channel->StreamWidth);
|
(u32)(ChannelCfgPtr->HoriSizeInput % Channel->StreamWidth);
|
||||||
|
if (hsize_align > 0)
|
||||||
|
hsize_align = (Channel->StreamWidth - hsize_align);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -667,6 +671,8 @@ int XAxiVdma_ChannelConfig(XAxiVdma_Channel *Channel,
|
||||||
stride_align = (u32)Channel->WordLength;
|
stride_align = (u32)Channel->WordLength;
|
||||||
} else {
|
} else {
|
||||||
stride_align = (u32)(ChannelCfgPtr->Stride % Channel->WordLength);
|
stride_align = (u32)(ChannelCfgPtr->Stride % Channel->WordLength);
|
||||||
|
if (stride_align > 0)
|
||||||
|
stride_align = (Channel->WordLength - stride_align);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If hardware has no DRE, then Hsize and Stride must
|
/* If hardware has no DRE, then Hsize and Stride must
|
||||||
|
|
Loading…
Add table
Reference in a new issue