2.4.6-ac5 kernel, i486.
Well, I have tracked down my problem. We see a comparison
like this to determine whether to use a bounce buffer:
if ( virt_to_bus(addr+buflen) >= MAX_DMA_ADDRESS) {
...(use a bounce buffer 'cause that addr is not dma-able)...
This is not working, because MAX_DMA_ADDRESS is defined
so:
./include/asm-i386/dma.h:
#define MAX_DMA_ADDRESS (PAGE_OFFSET+0x1000000)
This looks to come out to 0xc1000000. This does not seem
to be comparable to a bus address. eg. 0x100000 == 16M, the DMA
limit on ISA bus.
This driver doesnt work on ISA machine with > 16M, as the
bounce buffer never gets used. (forcing its unconditional use
makes it work fine)
So, what is wrong here? Macro, or conditional? Clue me in
so I can fix it correctly.
Paul
set@pobox.com
-
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/