RE: RFC: usb: musb: Changes proposed for adding CPPI4.1 DMA

From: Gupta, Ajay Kumar
Date: Wed Feb 01 2012 - 23:57:19 EST


Hi,
> On 31-01-2012 8:41, Gupta, Ajay Kumar wrote:
>
> >>> As a next step to dma-engine based cppi4.1 driver implementation
> >>> this RFC has the overview of changes in the musb driver.
> >>> RFC on CPPI slave driver changes will follow next.
>
> >>> Overview of changes in the musb driver
> >>> ======================================
>
> >>> 1)Add a dma-engine.c file in the drivers/usb/musb folder
> >>> 2)This file will host the current musb dma APIs and translates them
> to
> >>> dmaengine APIs.
> >>> 3)This will help to keep the changes in drivers/usb/musb/musb* files
> >>> minimal and also to retain compatibility other DMA (Mentor etc.)
> >>> drivers which are yet to be moved to drivers/dma
> >>> 4)drivers/usb/musb/dma-engine.c, will wrap the dmaengine APIs to
> >>> make existing musb APIs compatible.
> >>> 5)drivers/usb/musb/dma-engine.c file will implement the filter
> >>> functions and also implement .dma_controller_create (allocates
> >>> & provides "dma_controller" object) and .dma_controller_delete
> >>> 6)CPPI4.1 DMA specific queue and buffer management will be internal
> >>> to slave CPPI DMA driver implementation.
>
> >> You mean drivers/dma/ driver?
>
> > yes.
>
> >> I think you are forgotting that CPPI 4.1 MUSB
> >> has some registers controlling DMA/interrupts beside those of CPPI
> 4.1
> >> controller and MUSB core itself. How do they fit in your scheme?
>
> > We have been discussing on how to handle these in slave driver and
>
> These certainly cannot be handled in the slave driver because the
> registers are different for every controller implementation and, the
> main thing, they don't belong to CPPI 4.1 as such.

Felipe suggested to use device tree for differences in register maps
among different platforms.

I do see issues in reading wrapper interrupt status register and then
calling musb_interrupt() [defined inside musb_core.c] from slave driver.

>
> > would post our proposal in RFC for slave driver design. Do you have
> > any proposal?
>
> I think this will need hooks from dma-engine.c to the glue layers. I
> was going to implement such in my version of MUSB CPPI 4.1 driver (in order
> to also support AM35x) but lacked time.

That would mean a change in current drivers/dma API.

Ajay
>
> > Regards,
> > Ajay
>
> WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/