mm: unrig VMA cache hit ratio
[cascardo/linux.git] / include / linux / dmaengine.h
index 30de019..cc535a4 100644 (file)
@@ -441,6 +441,21 @@ typedef bool (*dma_filter_fn)(struct dma_chan *chan, void *filter_param);
 
 typedef void (*dma_async_tx_callback)(void *dma_async_param);
 
+enum dmaengine_tx_result {
+       DMA_TRANS_NOERROR = 0,          /* SUCCESS */
+       DMA_TRANS_READ_FAILED,          /* Source DMA read failed */
+       DMA_TRANS_WRITE_FAILED,         /* Destination DMA write failed */
+       DMA_TRANS_ABORTED,              /* Op never submitted / aborted */
+};
+
+struct dmaengine_result {
+       enum dmaengine_tx_result result;
+       u32 residue;
+};
+
+typedef void (*dma_async_tx_callback_result)(void *dma_async_param,
+                               const struct dmaengine_result *result);
+
 struct dmaengine_unmap_data {
        u8 map_cnt;
        u8 to_cnt;
@@ -478,6 +493,7 @@ struct dma_async_tx_descriptor {
        dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *tx);
        int (*desc_free)(struct dma_async_tx_descriptor *tx);
        dma_async_tx_callback callback;
+       dma_async_tx_callback_result callback_result;
        void *callback_param;
        struct dmaengine_unmap_data *unmap;
 #ifdef CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH