mirror of https://gitee.com/openkylin/linux.git
tg3: Improve PCI function number detection.
Simplify the code to detect PCI function number on 5717, 5719, and 5720. If shared memory does not have proper signature, read the function number from register directly. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c86a8560e2
commit
857001f06f
|
@ -15441,21 +15441,18 @@ static int tg3_get_invariants(struct tg3 *tp, const struct pci_device_id *ent)
|
|||
&val);
|
||||
tp->pci_fn = val & 0x7;
|
||||
}
|
||||
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) {
|
||||
tg3_read_mem(tp, NIC_SRAM_CPMU_STATUS, &val);
|
||||
if ((val & NIC_SRAM_CPMUSTAT_SIG_MSK) ==
|
||||
NIC_SRAM_CPMUSTAT_SIG) {
|
||||
tp->pci_fn = val & TG3_CPMU_STATUS_FMSK_5717;
|
||||
tp->pci_fn = tp->pci_fn ? 1 : 0;
|
||||
}
|
||||
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
||||
} else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
|
||||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
|
||||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5720) {
|
||||
tg3_read_mem(tp, NIC_SRAM_CPMU_STATUS, &val);
|
||||
if ((val & NIC_SRAM_CPMUSTAT_SIG_MSK) ==
|
||||
NIC_SRAM_CPMUSTAT_SIG) {
|
||||
if ((val & NIC_SRAM_CPMUSTAT_SIG_MSK) != NIC_SRAM_CPMUSTAT_SIG)
|
||||
val = tr32(TG3_CPMU_STATUS);
|
||||
|
||||
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717)
|
||||
tp->pci_fn = (val & TG3_CPMU_STATUS_FMSK_5717) ? 1 : 0;
|
||||
else
|
||||
tp->pci_fn = (val & TG3_CPMU_STATUS_FMSK_5719) >>
|
||||
TG3_CPMU_STATUS_FSHFT_5719;
|
||||
}
|
||||
}
|
||||
|
||||
/* Get eeprom hw config before calling tg3_set_power_state().
|
||||
|
|
Loading…
Reference in New Issue