On 06/13/2013 01:29 AM, Sarah Sharp wrote:
On Fri, Jun 07, 2013 at 11:37:53PM +0300, Felipe Balbi wrote:
Hi,
On Fri, Jun 07, 2013 at 10:19:23AM -0700, Sarah Sharp wrote:
Adding Felipe.
Xenia, Felipe is the USB "gadget" maintainer, and also added code for
non-PCI xHCI hosts. Felipe, Xenia is my summer intern through the FOSS
Outreach Program for Women: http://kernelnewbies.org/OPWIntro
Hey, cool Sarah :-)
Welcome Xenia :-)
Ah, slight correction, my intern wants to be called Ksenia. Xenia is
her legal name, but everyone calls her Ksenia. :)
On Fri, Jun 07, 2013 at 03:00:47PM +0300, Mathias Nyman wrote:
Andy explained his concern in more detail to me irl.
The beef is that the dma_mask is a pointer while dma_coherent_mask
is a u64 value in struct device, and dma_set_mask() fails if
dev->dma_mask doesn't point anywhere.
This is not a problem for PCI enumerated devices because PCI probe
sets a default 32bit mask and makes the dma_mask of all new PCI
devices point to this value.
For non-pci enumerated devices the device dma_mask may be NULL and
dma_set_mask() may fail even if dma is supported on the host
machine.
for example ehci-platform.c solves this by adding:
if (!dev->dev.dma_mask)
dev->dev.dma_mask =&dev->dev.coherent_dma_mask;
if (!dev->dev.coherent_dma_mask)
dev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
So it sounds like xhci_plat_setup() in xhci-plat.c needs to do something
similar before it calls xhci_gen_setup(). Felipe, do you agree?
(now, after reading the whole thing...)
I'll agree with that :)
It's funny that the code worked before. Perhaps setting the dma_mask
pointer should be a separate patch for stable?
sounds like a good plan to me :-)
Great! Ok, Ksenia, can you create those two patches? The first patch
in the series should add setting the dma_mask pointer to
xhci_plat_setup(). The second patch will be the same as this patch.
Let me know via IRC if you have any questions.
Sarah Sharp
Yes, of course.
Ksenia
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html