Thread (52 messages) 52 messages, 5 authors, 2014-10-13

[PATCH v6 07/12] usb: chipidea: add a usb2 driver for ci13xxx

From: arnd@arndb.de (Arnd Bergmann)
Date: 2014-09-26 07:02:10
Also in: linux-devicetree, lkml

On Friday 26 September 2014 08:23:40 Peter Chen wrote:
In current chipidea structure, the parent (glue layer) driver will not be
used for dma, udc/host driver uses dma mask from child (core layer), at core
layer we will do:


        pdev->dev.dma_mask = dev->dma_mask; /* this device is parent */
        dma_set_coherent_mask(&pdev->dev, dev->coherent_dma_mask);

Would you suggestion us a suitable way? Or it is ok we use just Antoine's way that
call dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)) at parent
driver no matter dt or non-dt? Thanks.
dma_coerce_mask_and_coherent is not ok, it will force a dma mask that is
unrelated to the actual requirements of the hardware.

I think the best way would be to never use the child device pointer for
DMA operations, just use a pointer to the parent device and make the
child dev->dma_mask pointer NULL to ensure all DMA operations fail.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help