diff options
author | Maxime Ripard <maxime.ripard@free-electrons.com> | 2015-08-24 09:21:15 (GMT) |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2015-08-26 02:20:21 (GMT) |
commit | 4d112426c3446d94b9bc56396075524b06913b1c (patch) | |
tree | a33a099e243ee40e9b3fe7168294b5b56770d8b1 /drivers/dma/at_hdmac_regs.h | |
parent | 8a4ce226b9061fe3ab04f6db34d4b2ae645b9f65 (diff) | |
download | linux-4d112426c3446d94b9bc56396075524b06913b1c.tar.xz |
dmaengine: hdmac: Add memset capabilities
Just like for the XDMAC, the SoCs that embed the HDMAC don't have any kind
of GPU, and need to accelerate a few framebuffer-related operations through
their DMA controller.
However, unlike the XDMAC, the HDMAC doesn't have the memset capability
built-in. That can be easily emulated though, by doing a transfer with a
fixed address on the variable that holds the value we want to set.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/at_hdmac_regs.h')
-rw-r--r-- | drivers/dma/at_hdmac_regs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/dma/at_hdmac_regs.h b/drivers/dma/at_hdmac_regs.h index bc8d5eb..a228388 100644 --- a/drivers/dma/at_hdmac_regs.h +++ b/drivers/dma/at_hdmac_regs.h @@ -201,6 +201,11 @@ struct at_desc { size_t boundary; size_t dst_hole; size_t src_hole; + + /* Memset temporary buffer */ + bool memset; + dma_addr_t memset_paddr; + int *memset_vaddr; }; static inline struct at_desc * @@ -331,6 +336,7 @@ struct at_dma { u8 all_chan_mask; struct dma_pool *dma_desc_pool; + struct dma_pool *memset_pool; /* AT THE END channels table */ struct at_dma_chan chan[0]; }; |