lkml.org 
[lkml]   [2002]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: DAC960 in 2.5.38, with new changes
>>>>> On Tue, 24 Sep 2002 11:25:19 -0700, Dave Olien <dmo@osdl.org> said:

Dave> Ok, thanks for explaining!

Dave> On Tue, Sep 24, 2002 at 11:21:45AM -0700, David Mosberger wrote:
>> >>>>> On Tue, 24 Sep 2002 10:28:43 -0700, Dave Olien <dmo@osdl.org> said:
>>
>> The idea is to do something along these lines:
>>
>> o Use PCA DMA interface for managing all DMA buffers.
>>
>> o If sizeof(dma_addr_t) > 4, turn on DAC mode and call
>> pci_set_dma_mask(dev, MAX_ADDR), where MAX_ADDR is the maximum
>> address that can be reached by the controller (i.e.,
>> 0xffffffffffffffff for a truly 64-bit-capable PCI controller).
>>
>> This way, everything should work out correctly and with good
>> performance on all imaginable platforms (ia64 with and without
>> hardware I/O TLB, plain x86, x86 with >4GB RAM, SPARC64 with 32-bit
>> dma_addr_t, etc.).

Come to think of it, the following refinement may be preferable:

o Use PCA DMA interface for managing all DMA buffers.

o limit = min(~(dma_addr_t) 0, MAX_ADDR), where MAX_ADDR is the maximum
address that can be reached by the controller (i.e.,
0xffffffffffffffff for a truly 64-bit-capable PCI controller).

o Call pci_set_dma_mask(dev, limit).

o If limit > 0xffffffff, turn on DAC mode.

This "algorithm" should be correct for all PCI controllers.

--david
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:29    [W:0.063 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site