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

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

From: Peter Chen <hidden>
Date: 2014-09-30 12:39:50
Also in: linux-devicetree, lkml

On Tue, Sep 30, 2014 at 12:03:42PM +0200, Arnd Bergmann wrote:
On Tuesday 30 September 2014 08:12:07 Peter Chen wrote:
quoted
quoted
+
+     if (dev->of_node) {
+             ret = ci_hdrc_usb2_dt_probe(dev, ci_pdata);
+             if (ret)
+                     goto clk_err;
+     } else {
+             ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+             if (ret)
+                     goto clk_err;
+     }
My suggestion:

- call dma_coerce_mask_and_coherent(&dev->dev, DMA_BIT_MASK(32)) for both 
dt and non-dt
No, as I explained before, hardcoding the dma mask is always wrong, don't
do that. Call dma_set_mask_and_coherent and check the return value.
It's not wrong to do that for both DT and ATAGS.
Thanks, Arnd. I had not thought setting dma mask is so complicated, yes, it
should check the return value, two things to confirm:

- dma_coerce_mask_and_coherent or dma_set_mask_and_coherent, the only difference
of these two API is the first one do "dev->dma_mask = &dev->coherent_dma_mask;"
The reason you suggest choosing dma_set_mask_and_coherent is you do not want
assign dev->dma_mask?
- The second parameter for dma_set_mask_and_coherent is DMA_BIT_MASK(32), is it
ok?

I just a little confused of what's the operation is "hardcoding the dma mask"?

-- 
Best Regards,
Peter Chen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help