Commit:     cdcc520d7b73445c3552a70786afed9a2b22c010
Parent:     01faccbf866195831af202de59f37e29467a3d74
Author:     Chris Snook <[EMAIL PROTECTED]>
AuthorDate: Thu Sep 20 15:57:15 2007 -0400
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 10 16:53:49 2007 -0700

    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 
    Signed-off-by: Chris Snook <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
 drivers/net/atl1/atl1_main.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index e1a9223..4c728f1 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,
                return err;
-        * 64-bit DMA currently has data corruption problems, so let's just
-        * use 32-bit DMA for now.  This is a big hack that is probably wrong.
+        * The atl1 chip can DMA to 64-bit addresses, but it uses a single
+        * shared register for the high 32 bits, so only a single, aligned,
+        * 4 GB physical address range can be used at a time.
+        *
+        * Supporting 64-bit DMA on this hardware is more trouble than it's
+        * worth.  It is far easier to limit to 32-bit DMA than update
+        * various kernel subsystems to support the mechanics required by a
+        * fixed-high-32-bit system.
        err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
        if (err) {
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to