This patch defines four types of current supported DMA engines and assignes them to each dma engine. This should get rid of a few ifdefs later on. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> --- drivers/usb/musb/cppi_dma.c | 1 + drivers/usb/musb/musb_cppi41.c | 1 + drivers/usb/musb/musb_dma.h | 9 +++++++++ drivers/usb/musb/musbhsdma.c | 1 + drivers/usb/musb/tusb6010_omap.c | 1 + drivers/usb/musb/ux500_dma.c | 1 + 6 files changed, 14 insertions(+) diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c index 904fb85..e4cdcdd 100644 --- a/drivers/usb/musb/cppi_dma.c +++ b/drivers/usb/musb/cppi_dma.c @@ -1312,6 +1312,7 @@ struct dma_controller *dma_controller_create(struct musb *musb, void __iomem *mr controller->tibase = mregs - DAVINCI_BASE_OFFSET; controller->musb = musb; + controller->controller.type = MSUB_DMA_CPPI; controller->controller.channel_alloc = cppi_channel_allocate; controller->controller.channel_release = cppi_channel_release; controller->controller.channel_program = cppi_channel_program; diff --git a/drivers/usb/musb/musb_cppi41.c b/drivers/usb/musb/musb_cppi41.c index e64701d..a16a93c 100644 --- a/drivers/usb/musb/musb_cppi41.c +++ b/drivers/usb/musb/musb_cppi41.c @@ -537,6 +537,7 @@ struct dma_controller *dma_controller_create(struct musb *musb, controller->musb = musb; + controller->controller.type = MSUB_DMA_CPPI; controller->controller.channel_alloc = cppi41_dma_channel_allocate; controller->controller.channel_release = cppi41_dma_channel_release; controller->controller.channel_program = cppi41_dma_channel_program; diff --git a/drivers/usb/musb/musb_dma.h b/drivers/usb/musb/musb_dma.h index 1345a4f..7a8bfb5 100644 --- a/drivers/usb/musb/musb_dma.h +++ b/drivers/usb/musb/musb_dma.h @@ -145,6 +145,14 @@ dma_channel_status(struct dma_channel *c) return (is_dma_capable() && c) ? c->status : MUSB_DMA_STATUS_UNKNOWN; } +enum musb_dma_type { + MSUB_DMA_INVALID = 0, + MSUB_DMA_MENTOR, + MSUB_DMA_UX500, + MSUB_DMA_CPPI, + MSUB_DMA_TUSB6010, +}; + /** * struct dma_controller - A DMA Controller. * @start: call this to start a DMA controller; @@ -159,6 +167,7 @@ dma_channel_status(struct dma_channel *c) * Controllers manage dma channels. */ struct dma_controller { + enum musb_dma_type type; struct dma_channel *(*channel_alloc)(struct dma_controller *, struct musb_hw_ep *, u8 is_tx); void (*channel_release)(struct dma_channel *); diff --git a/drivers/usb/musb/musbhsdma.c b/drivers/usb/musb/musbhsdma.c index e8e9f9a..df2048d 100644 --- a/drivers/usb/musb/musbhsdma.c +++ b/drivers/usb/musb/musbhsdma.c @@ -389,6 +389,7 @@ struct dma_controller *dma_controller_create(struct musb *musb, void __iomem *ba controller->private_data = musb; controller->base = base; + controller->controller.type = MSUB_DMA_MENTOR; controller->controller.channel_alloc = dma_channel_allocate; controller->controller.channel_release = dma_channel_release; controller->controller.channel_program = dma_channel_program; diff --git a/drivers/usb/musb/tusb6010_omap.c b/drivers/usb/musb/tusb6010_omap.c index b8794eb..1591d50 100644 --- a/drivers/usb/musb/tusb6010_omap.c +++ b/drivers/usb/musb/tusb6010_omap.c @@ -673,6 +673,7 @@ struct dma_controller *dma_controller_create(struct musb *musb, void __iomem *ba tusb_dma->dmareq = -1; tusb_dma->sync_dev = -1; + tusb_dma->controller.type = MSUB_DMA_TUSB6010; tusb_dma->controller.channel_alloc = tusb_omap_dma_allocate; tusb_dma->controller.channel_release = tusb_omap_dma_release; tusb_dma->controller.channel_program = tusb_omap_dma_program; diff --git a/drivers/usb/musb/ux500_dma.c b/drivers/usb/musb/ux500_dma.c index e51dd9b..b3c3bd3 100644 --- a/drivers/usb/musb/ux500_dma.c +++ b/drivers/usb/musb/ux500_dma.c @@ -390,6 +390,7 @@ struct dma_controller *dma_controller_create(struct musb *musb, controller->phy_base = (dma_addr_t) iomem->start; + controller->controller.type = MSUB_DMA_MENTOR; controller->controller.channel_alloc = ux500_dma_channel_allocate; controller->controller.channel_release = ux500_dma_channel_release; controller->controller.channel_program = ux500_dma_channel_program; -- 1.8.4.rc1 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html