aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/atl1
diff options
context:
space:
mode:
authorChris Snook <csnook@redhat.com>2007-09-20 15:57:15 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:53:49 -0400
commitcdcc520d7b73445c3552a70786afed9a2b22c010 (patch)
tree948eb73c7ca53c27736151739d99655e909e5b63 /drivers/net/atl1
parent01faccbf866195831af202de59f37e29467a3d74 (diff)
atl1: explain 32-bit DMA restriction
Document the fact that atl1 uses a single shared register for the high 32 bits of 64-bit DMA addresses, making 64-bit DMA more trouble than it's worth. Signed-off-by: Chris Snook <csnook@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/atl1')
-rw-r--r--drivers/net/atl1/atl1_main.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index e1a9223d0c18..4c728f1169c4 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -2209,8 +2209,14 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
2209 return err; 2209 return err;
2210 2210
2211 /* 2211 /*
2212 * 64-bit DMA currently has data corruption problems, so let's just 2212 * The atl1 chip can DMA to 64-bit addresses, but it uses a single
2213 * use 32-bit DMA for now. This is a big hack that is probably wrong. 2213 * shared register for the high 32 bits, so only a single, aligned,
2214 * 4 GB physical address range can be used at a time.
2215 *
2216 * Supporting 64-bit DMA on this hardware is more trouble than it's
2217 * worth. It is far easier to limit to 32-bit DMA than update
2218 * various kernel subsystems to support the mechanics required by a
2219 * fixed-high-32-bit system.
2214 */ 2220 */
2215 err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); 2221 err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
2216 if (err) { 2222 if (err) {