@@ -1106,8 +1106,7 @@ static int tg3_phy_reset(struct tg3 *tp)
1106
1106
if (err )
1107
1107
return err ;
1108
1108
1109
- if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
1110
- tp -> pci_chip_rev_id == CHIPREV_ID_5761_A0 ) {
1109
+ if (tp -> tg3_flags3 & TG3_FLG3_5761_5784_AX_FIXES ) {
1111
1110
u32 val ;
1112
1111
1113
1112
val = tr32 (TG3_CPMU_LSPD_1000MB_CLK );
@@ -1352,8 +1351,7 @@ static void tg3_power_down_phy(struct tg3 *tp)
1352
1351
(tp -> tg3_flags2 & TG3_FLG2_MII_SERDES )))
1353
1352
return ;
1354
1353
1355
- if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
1356
- tp -> pci_chip_rev_id == CHIPREV_ID_5761_A0 ) {
1354
+ if (tp -> tg3_flags3 & TG3_FLG3_5761_5784_AX_FIXES ) {
1357
1355
val = tr32 (TG3_CPMU_LSPD_1000MB_CLK );
1358
1356
val &= ~CPMU_LSPD_1000MB_MACCLK_MASK ;
1359
1357
val |= CPMU_LSPD_1000MB_MACCLK_12_5 ;
@@ -3154,7 +3152,8 @@ static int tg3_setup_phy(struct tg3 *tp, int force_reset)
3154
3152
err = tg3_setup_copper_phy (tp , force_reset );
3155
3153
}
3156
3154
3157
- if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ) {
3155
+ if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
3156
+ tp -> pci_chip_rev_id == CHIPREV_ID_5784_A1 ) {
3158
3157
u32 val , scale ;
3159
3158
3160
3159
val = tr32 (TG3_CPMU_CLCK_STAT ) & CPMU_CLCK_STAT_MAC_CLCK_MASK ;
@@ -6390,7 +6389,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
6390
6389
6391
6390
tg3_write_sig_legacy (tp , RESET_KIND_INIT );
6392
6391
6393
- if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ) {
6392
+ if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
6393
+ tp -> pci_chip_rev_id == CHIPREV_ID_5784_A1 ) {
6394
6394
val = tr32 (TG3_CPMU_CTRL );
6395
6395
val &= ~(CPMU_CTRL_LINK_AWARE_MODE | CPMU_CTRL_LINK_IDLE_MODE );
6396
6396
tw32 (TG3_CPMU_CTRL , val );
@@ -9379,8 +9379,7 @@ static int tg3_test_loopback(struct tg3 *tp)
9379
9379
if (err )
9380
9380
return TG3_LOOPBACK_FAILED ;
9381
9381
9382
- if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
9383
- tp -> pci_chip_rev_id == CHIPREV_ID_5761_A0 ) {
9382
+ if (tp -> tg3_flags3 & TG3_FLG3_5761_5784_AX_FIXES ) {
9384
9383
int i ;
9385
9384
u32 status ;
9386
9385
@@ -9407,8 +9406,7 @@ static int tg3_test_loopback(struct tg3 *tp)
9407
9406
if (tg3_run_loopback (tp , TG3_MAC_LOOPBACK ))
9408
9407
err |= TG3_MAC_LOOPBACK_FAILED ;
9409
9408
9410
- if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
9411
- tp -> pci_chip_rev_id == CHIPREV_ID_5761_A0 ) {
9409
+ if (tp -> tg3_flags3 & TG3_FLG3_5761_5784_AX_FIXES ) {
9412
9410
tw32 (TG3_CPMU_CTRL , cpmuctrl );
9413
9411
9414
9412
/* Release the mutex */
@@ -10629,7 +10627,8 @@ static void __devinit tg3_get_eeprom_hw_cfg(struct tg3 *tp)
10629
10627
tp -> pdev -> subsystem_vendor == PCI_VENDOR_ID_DELL )
10630
10628
tp -> led_ctrl = LED_CTRL_MODE_PHY_2 ;
10631
10629
10632
- if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 )
10630
+ if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
10631
+ tp -> pci_chip_rev_id == CHIPREV_ID_5784_A1 )
10633
10632
tp -> led_ctrl = LED_CTRL_MODE_MAC ;
10634
10633
10635
10634
if (nic_cfg & NIC_SRAM_DATA_CFG_EEPROM_WP ) {
@@ -11401,9 +11400,16 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
11401
11400
}
11402
11401
11403
11402
if (GET_ASIC_REV (tp -> pci_chip_rev_id ) == ASIC_REV_5784 ||
11404
- GET_ASIC_REV (tp -> pci_chip_rev_id ) == ASIC_REV_5761 )
11403
+ GET_ASIC_REV (tp -> pci_chip_rev_id ) == ASIC_REV_5761 ) {
11405
11404
tp -> tg3_flags |= TG3_FLAG_CPMU_PRESENT ;
11406
11405
11406
+ if (tp -> pci_chip_rev_id == CHIPREV_ID_5784_A0 ||
11407
+ tp -> pci_chip_rev_id == CHIPREV_ID_5784_A1 ||
11408
+ tp -> pci_chip_rev_id == CHIPREV_ID_5761_A0 ||
11409
+ tp -> pci_chip_rev_id == CHIPREV_ID_5761_A1 )
11410
+ tp -> tg3_flags3 |= TG3_FLG3_5761_5784_AX_FIXES ;
11411
+ }
11412
+
11407
11413
/* Set up tp->grc_local_ctrl before calling tg3_set_power_state().
11408
11414
* GPIO1 driven high will bring 5700's external PHY out of reset.
11409
11415
* It is also used as eeprom write protect on LOMs.
0 commit comments