Hi, Grygorii Strashko <grygorii.strashko@xxxxxx> writes: > On 04/05/2016 01:29 PM, Felipe Balbi wrote: >> Grygorii Strashko <grygorii.strashko@xxxxxx> writes: >>> On 04/05/2016 08:51 AM, Felipe Balbi wrote: >>>> Grygorii Strashko <grygorii.strashko@xxxxxx> writes: >>>>> On 04/02/2016 11:28 AM, Felipe Balbi wrote: >>>>>> Instead of having a static global just for >>>>>> initializing dma_mask directly, let's use >>>>>> dma_coerce_mask_and_coherent() for that. >>>>>> >>>>>> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> >>>>>> --- >>>>>> drivers/usb/dwc3/dwc3-omap.c | 4 +--- >>>>>> 1 file changed, 1 insertion(+), 3 deletions(-) >>>>>> >>>>>> diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c >>>>>> index 22e9606d8e08..c219118bfda0 100644 >>>>>> --- a/drivers/usb/dwc3/dwc3-omap.c >>>>>> +++ b/drivers/usb/dwc3/dwc3-omap.c >>>>>> @@ -331,8 +331,6 @@ static void dwc3_omap_disable_irqs(struct dwc3_omap *omap) >>>>>> dwc3_omap_write_irqmisc_clr(omap, reg); >>>>>> } >>>>>> >>>>>> -static u64 dwc3_omap_dma_mask = DMA_BIT_MASK(32); >>>>>> - >>>>>> static int dwc3_omap_id_notifier(struct notifier_block *nb, >>>>>> unsigned long event, void *ptr) >>>>>> { >>>>>> @@ -490,7 +488,7 @@ static int dwc3_omap_probe(struct platform_device *pdev) >>>>>> omap->irq = irq; >>>>>> omap->base = base; >>>>>> omap->vbus_reg = vbus_reg; >>>>>> - dev->dma_mask = &dwc3_omap_dma_mask; >>>>>> + dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(32)); >>>>> >>>>> I think, It'll be better to just remove DMA configuration code >>>>> from this driver and other drivers which support DT-boot mode only. >>>> >>>> I don't have HW, can you test that on AM57x and/or AM437x ? >>>> >>> >>> Yes. I can. With below change I see no issues with USB in Host mode >>> on my AM57x board: >> >> what about peripheral side ? Host mode worked fine on K2 devices, only >> peripheral suffered from the bad DMA API usage. >> > > As I've mentioned before (and we verified that) on newer kernels > peripheral mode has been fixed by commit: > > 7ace8fc usb: gadget: udc: core: Fix argument of dma_map_single for IOMMU > > Also, on OMAP devices dwc3 core device is created from DT now (dwc3-omap calls > of_platform_populate()), so it's safe to drop manual DMA configuration code > from this driver (and if statement should be kept unchanged in dwc3/core.c > - as per my comment on your patch 5). fair enough, all I'm missing now is a proper patch ;-) -- balbi
Attachment:
signature.asc
Description: PGP signature