]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/usb/musb/musb_dma.h
Merge tag 'sound-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[mirror_ubuntu-artful-kernel.git] / drivers / usb / musb / musb_dma.h
index 46357e183b4c8b764045091dd2153a09df2d3789..04c3bd86bd620e2ae1ebeaa778a52cf8abea2be2 100644 (file)
@@ -173,6 +173,7 @@ dma_channel_status(struct dma_channel *c)
 
 /**
  * struct dma_controller - A DMA Controller.
+ * @musb: the usb controller
  * @start: call this to start a DMA controller;
  *     return 0 on success, else negative errno
  * @stop: call this to stop a DMA controller
@@ -181,10 +182,13 @@ dma_channel_status(struct dma_channel *c)
  * @channel_release: call this to release a DMA channel
  * @channel_abort: call this to abort a pending DMA transaction,
  *     returning it to FREE (but allocated) state
+ * @dma_callback: invoked on DMA completion, useful to run platform
+ *     code such IRQ acknowledgment.
  *
  * Controllers manage dma channels.
  */
 struct dma_controller {
+       struct musb *musb;
        struct dma_channel      *(*channel_alloc)(struct dma_controller *,
                                        struct musb_hw_ep *, u8 is_tx);
        void                    (*channel_release)(struct dma_channel *);
@@ -196,6 +200,7 @@ struct dma_controller {
        int                     (*is_compatible)(struct dma_channel *channel,
                                                        u16 maxpacket,
                                                        void *buf, u32 length);
+       void                    (*dma_callback)(struct dma_controller *);
 };
 
 /* called after channel_program(), may indicate a fault */