|
@@ -17800,23 +17800,6 @@ static int tg3_init_one(struct pci_dev *pdev,
|
|
|
goto err_out_apeunmap;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * Reset chip in case UNDI or EFI driver did not shutdown
|
|
|
- * DMA self test will enable WDMAC and we'll see (spurious)
|
|
|
- * pending DMA on the PCI bus at that point.
|
|
|
- */
|
|
|
- if ((tr32(HOSTCC_MODE) & HOSTCC_MODE_ENABLE) ||
|
|
|
- (tr32(WDMAC_MODE) & WDMAC_MODE_ENABLE)) {
|
|
|
- tw32(MEMARB_MODE, MEMARB_MODE_ENABLE);
|
|
|
- tg3_halt(tp, RESET_KIND_SHUTDOWN, 1);
|
|
|
- }
|
|
|
-
|
|
|
- err = tg3_test_dma(tp);
|
|
|
- if (err) {
|
|
|
- dev_err(&pdev->dev, "DMA engine test failed, aborting\n");
|
|
|
- goto err_out_apeunmap;
|
|
|
- }
|
|
|
-
|
|
|
intmbx = MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW;
|
|
|
rcvmbx = MAILBOX_RCVRET_CON_IDX_0 + TG3_64BIT_REG_LOW;
|
|
|
sndmbx = MAILBOX_SNDHOST_PROD_IDX_0 + TG3_64BIT_REG_LOW;
|
|
@@ -17861,6 +17844,23 @@ static int tg3_init_one(struct pci_dev *pdev,
|
|
|
sndmbx += 0xc;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * Reset chip in case UNDI or EFI driver did not shutdown
|
|
|
+ * DMA self test will enable WDMAC and we'll see (spurious)
|
|
|
+ * pending DMA on the PCI bus at that point.
|
|
|
+ */
|
|
|
+ if ((tr32(HOSTCC_MODE) & HOSTCC_MODE_ENABLE) ||
|
|
|
+ (tr32(WDMAC_MODE) & WDMAC_MODE_ENABLE)) {
|
|
|
+ tw32(MEMARB_MODE, MEMARB_MODE_ENABLE);
|
|
|
+ tg3_halt(tp, RESET_KIND_SHUTDOWN, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ err = tg3_test_dma(tp);
|
|
|
+ if (err) {
|
|
|
+ dev_err(&pdev->dev, "DMA engine test failed, aborting\n");
|
|
|
+ goto err_out_apeunmap;
|
|
|
+ }
|
|
|
+
|
|
|
tg3_init_coal(tp);
|
|
|
|
|
|
pci_set_drvdata(pdev, dev);
|