Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/tg3-2.6
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 8 Jun 2005 23:22:16 +0000 (16:22 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 8 Jun 2005 23:22:16 +0000 (16:22 -0700)
drivers/net/tg3.c
include/linux/pci_ids.h

index e944aac258e3090c63b2c483bab9e28dd5cc872f..a0b8848049c9ede346a9160c370d0b1df49c2798 100644 (file)
@@ -66,8 +66,8 @@
 
 #define DRV_MODULE_NAME                "tg3"
 #define PFX DRV_MODULE_NAME    ": "
-#define DRV_MODULE_VERSION     "3.30"
-#define DRV_MODULE_RELDATE     "June 6, 2005"
+#define DRV_MODULE_VERSION     "3.31"
+#define DRV_MODULE_RELDATE     "June 8, 2005"
 
 #define TG3_DEF_MAC_MODE       0
 #define TG3_DEF_RX_MODE                0
@@ -9695,10 +9695,24 @@ static int __devinit tg3_test_dma(struct tg3 *tp)
        }
        if ((tp->dma_rwctrl & DMA_RWCTRL_WRITE_BNDRY_MASK) !=
            DMA_RWCTRL_WRITE_BNDRY_16) {
+               static struct pci_device_id dma_wait_state_chipsets[] = {
+                       { PCI_DEVICE(PCI_VENDOR_ID_APPLE,
+                                    PCI_DEVICE_ID_APPLE_UNI_N_PCI15) },
+                       { },
+               };
+
                /* DMA test passed without adjusting DMA boundary,
-                * just restore the calculated DMA boundary
+                * now look for chipsets that are known to expose the
+                * DMA bug without failing the test.
                 */
-               tp->dma_rwctrl = saved_dma_rwctrl;
+               if (pci_dev_present(dma_wait_state_chipsets)) {
+                       tp->dma_rwctrl &= ~DMA_RWCTRL_WRITE_BNDRY_MASK;
+                       tp->dma_rwctrl |= DMA_RWCTRL_WRITE_BNDRY_16;
+               }
+               else
+                       /* Safe to use the calculated DMA boundary. */
+                       tp->dma_rwctrl = saved_dma_rwctrl;
+
                tw32(TG3PCI_DMA_RW_CTRL, tp->dma_rwctrl);
        }
 
index 18f734ec9181f9b30c0358a89284a0d5fa8e277e..b8b4ebf9abf1f3b28089030edcb067f4f08a080f 100644 (file)
 #define PCI_DEVICE_ID_APPLE_KL_USB_P   0x0026
 #define PCI_DEVICE_ID_APPLE_UNI_N_AGP_P        0x0027
 #define PCI_DEVICE_ID_APPLE_UNI_N_AGP15        0x002d
+#define PCI_DEVICE_ID_APPLE_UNI_N_PCI15        0x002e
 #define PCI_DEVICE_ID_APPLE_UNI_N_FW2  0x0030
 #define PCI_DEVICE_ID_APPLE_UNI_N_GMAC2        0x0032
 #define PCI_DEVIEC_ID_APPLE_UNI_N_ATA  0x0033
This page took 0.033317 seconds and 5 git commands to generate.