dmaengine: add peripheral configuration
authorVinod Koul <vkoul@kernel.org>
Mon, 9 Nov 2020 08:54:49 +0000 (14:24 +0530)
committerVinod Koul <vkoul@kernel.org>
Tue, 24 Nov 2020 16:12:04 +0000 (21:42 +0530)
Some complex dmaengine controllers have capability to program the
peripheral device, so pass on the peripheral configuration as part of
dma_slave_config

Link: https://lore.kernel.org/r/20201109085450.24843-3-vkoul@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
include/linux/dmaengine.h

index dd357a7..493a047 100644 (file)
@@ -418,6 +418,9 @@ enum dma_slave_buswidth {
  * @slave_id: Slave requester id. Only valid for slave channels. The dma
  * slave peripheral will have unique id as dma requester which need to be
  * pass as slave config.
+ * @peripheral_config: peripheral configuration for programming peripheral
+ * for dmaengine transfer
+ * @peripheral_size: peripheral configuration buffer size
  *
  * This struct is passed in as configuration data to a DMA engine
  * in order to set up a certain channel for DMA transport at runtime.
@@ -443,6 +446,8 @@ struct dma_slave_config {
        u32 dst_port_window_size;
        bool device_fc;
        unsigned int slave_id;
+       void *peripheral_config;
+       size_t peripheral_size;
 };
 
 /**