From david-b@pacbell.net Fri Sep 2 19:02:20 2005 From: David Brownell Subject: USB: EHCI workaround for NForce and mem > 2GB Date: Fri, 2 Sep 2005 18:58:09 -0700 Cc: Greg KH , moverby@amd.com Message-Id: <200509021858.09499.david-b@pacbell.net> NVidia reports (via Mark Overby) that some of their EHCI controllers don't like certain data structure addresses beyond the 2GB mark. He provided an earlier version of this patch. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/ehci-hcd.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) --- gregkh-2.6.orig/drivers/usb/host/ehci-hcd.c 2005-09-12 11:01:56.000000000 -0700 +++ gregkh-2.6/drivers/usb/host/ehci-hcd.c 2005-09-12 11:01:56.000000000 -0700 @@ -400,6 +400,23 @@ static int ehci_hc_reset (struct usb_hcd return -EIO; } break; + case PCI_VENDOR_ID_NVIDIA: + /* NVidia reports that certain chips don't handle + * QH, ITD, or SITD addresses above 2GB. (But TD, + * data buffer, and periodic schedule are normal.) + */ + switch (pdev->device) { + case 0x003c: /* MCP04 */ + case 0x005b: /* CK804 */ + case 0x00d8: /* CK8 */ + case 0x00e8: /* CK8S */ + if (pci_set_consistent_dma_mask(pdev, + DMA_31BIT_MASK) < 0) + ehci_warn (ehci, "can't enable NVidia " + "workaround for >2GB RAM\n"); + break; + } + break; } /* optional debug port, normally in the first BAR */