[PATCH 1/2] [usb] make xhci platform driver use 64 bit or 32 bit DMA

Mark Langsdorf
2014-10-31T17:32:47Z

On 10/31/2014 10:49 AM, Arnd Bergmann wrote:
> On Friday 31 October 2014 09:22:26 Mark Langsdorf wrote:
>> On 10/30/2014 04:05 PM, Arnd Bergmann wrote:
>>> On Thursday 30 October 2014 15:09:33 Mark Langsdorf wrote:
>>>
>>> You should not access pdev->dev.dma_mask here, that gets set
>>> by the platform code. You should be able to just use
>>> dma_set_mask_and_coherent to set both.
>>
>> So:
>>
>> if (sizeof(dma_addr_t) < 8 ||
>> dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
>> ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
>> if (ret)
>> return ret;
>> }
>>
>> This doesn't actually work for me. I experimented a bit on the
>> hardware and I always fail if I don't set the coherent mask
>> first.
>
> Very strange, the code looks right to me. What is the initial value
> of dev->dma_mask?

Did you mean &pdev->dev.dma_mask? It's 0xdc759df8.

--Mark Langsdorf