Re: [OPW kernel] dma_set_coherent_mask

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 15, 2013 at 10:37:00AM -0400, Alan Stern wrote:
> On Tue, 14 May 2013, Sarah Sharp wrote:
> > We do allocate memory using DMA pools, and we do want 64-bit context
> > addresses if the xHCI host controller can handle it.
> > 
> > The xHCI driver calls dma_set_mask, but not dma_set_coherent_mask():
> > 
> >                 temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params);
> >                 if (HCC_64BIT_ADDR(temp)) {
> >                         xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n");
> >                         dma_set_mask(hcd->self.controller, DMA_BIT_MASK(64));
> >                 } else {
> >                         dma_set_mask(hcd->self.controller, DMA_BIT_MASK(32));
> >                 }
> > 
> > Alan, should it be calling dma_set_coherent_mask()?  I think I may have
> > noticed the context addresses were never 64-bit addresses, but I didn't
> > think to look whether the host supported 64-bit addresses.  I just
> > assumed it could only handle 32-bit addresses.
> 
> If you're using 64-bit DMA then you almost certainly do want to call
> dma_set_coherent_mask().  On the plus side, it is guaranteed that if
> dma_set_mask() succeeds with a particular mask value then
> dma_set_coherent_mask() for the same mask value will also succeed.

So we need to call both dma_set_coherent_mask() and dma_set_mask()?  Or
just dma_set_coherent_mask()?

Ksenia, thanks for catching this!  You should send a patch to fix it
once Alan clarifies this.

Sarah Sharp
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux