|
@@ -7615,15 +7615,11 @@ static void tg3_restore_pci_state(struct tg3 *tp)
|
|
|
|
|
|
pci_write_config_word(tp->pdev, PCI_COMMAND, tp->pci_cmd);
|
|
|
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5785) {
|
|
|
- if (tg3_flag(tp, PCI_EXPRESS))
|
|
|
- pcie_set_readrq(tp->pdev, tp->pcie_readrq);
|
|
|
- else {
|
|
|
- pci_write_config_byte(tp->pdev, PCI_CACHE_LINE_SIZE,
|
|
|
- tp->pci_cacheline_sz);
|
|
|
- pci_write_config_byte(tp->pdev, PCI_LATENCY_TIMER,
|
|
|
- tp->pci_lat_timer);
|
|
|
- }
|
|
|
+ if (!tg3_flag(tp, PCI_EXPRESS)) {
|
|
|
+ pci_write_config_byte(tp->pdev, PCI_CACHE_LINE_SIZE,
|
|
|
+ tp->pci_cacheline_sz);
|
|
|
+ pci_write_config_byte(tp->pdev, PCI_LATENCY_TIMER,
|
|
|
+ tp->pci_lat_timer);
|
|
|
}
|
|
|
|
|
|
/* Make sure PCI-X relaxed ordering bit is clear. */
|
|
@@ -7808,8 +7804,6 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|
|
pci_pcie_cap(tp->pdev) + PCI_EXP_DEVCTL,
|
|
|
val16);
|
|
|
|
|
|
- pcie_set_readrq(tp->pdev, tp->pcie_readrq);
|
|
|
-
|
|
|
/* Clear error status */
|
|
|
pci_write_config_word(tp->pdev,
|
|
|
pci_pcie_cap(tp->pdev) + PCI_EXP_DEVSTA,
|
|
@@ -14053,12 +14047,11 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
|
|
|
|
|
|
tg3_flag_set(tp, PCI_EXPRESS);
|
|
|
|
|
|
- tp->pcie_readrq = 4096;
|
|
|
- if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
|
|
- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720)
|
|
|
- tp->pcie_readrq = 2048;
|
|
|
-
|
|
|
- pcie_set_readrq(tp->pdev, tp->pcie_readrq);
|
|
|
+ if (tp->pci_chip_rev_id == CHIPREV_ID_5719_A0) {
|
|
|
+ int readrq = pcie_get_readrq(tp->pdev);
|
|
|
+ if (readrq > 2048)
|
|
|
+ pcie_set_readrq(tp->pdev, 2048);
|
|
|
+ }
|
|
|
|
|
|
pci_read_config_word(tp->pdev,
|
|
|
pci_pcie_cap(tp->pdev) + PCI_EXP_LNKCTL,
|