On Fri, 05 Feb 2021 13:53:21 +0100, Andrew Lunn wrote: > > On Fri, Feb 05, 2021 at 01:36:43PM +0100, Hans Verkuil wrote: > > Hi Takashi, > > > > Thank you for this patch, but it clashes with another patch trying to do the same thing > > that has already been merged in our tree: > > > > https://patchwork.linuxtv.org/project/linux-media/patch/20210104170007.20625-1-matwey@xxxxxxxxxx/ > > > > I do prefer your patch over the one already merged since it is a bit simpler, but > > shouldn't the calls to dma_sync_single_for_cpu() and dma_sync_single_for_device() > > in pwc-if.c also use urb->dev->bus->controller? > > > > Also, Matwey's patch uses urb->dev->bus->sysdev instead of urb->dev->bus->controller. > > How does 'sysdev' relate to 'controller'? I think 'controller' is the right device to > > use, but either seems to work when I test it with my pwc webcam. > > Hi Hans > > A quick grep in driver/usb show that all but one dma mapping operation > use sysdev. The one other case uses controller. So the numbers suggest > controller is wrong, sysdev is correct. Indeed, looks so. In most cases, this doesn't matter since both point to the same device object. In some cases like xhci-plat HCD, they differ. And sysdev might be a better choice from the consistency POV. But this brought an interesting question, too. eg. USB chipidea HCD uses platform devices for both controller and sysdev, and I couldn't find any DMA mask setup. So, no matter what to use, the uwc driver would be broken on this... Maybe it's just not covered. > But maybe ask GregKH? To be certain, better to involve with USB people, yeah. thanks, Takashi