@@ -3007,11 +3007,23 @@ static void r8152b_hw_phy_cfg(struct r8152 *tp)
3007
3007
set_bit (PHY_RESET , & tp -> flags );
3008
3008
}
3009
3009
3010
- static void r8152b_exit_oob (struct r8152 * tp )
3010
+ static void wait_oob_link_list_ready (struct r8152 * tp )
3011
3011
{
3012
3012
u32 ocp_data ;
3013
3013
int i ;
3014
3014
3015
+ for (i = 0 ; i < 1000 ; i ++ ) {
3016
+ ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3017
+ if (ocp_data & LINK_LIST_READY )
3018
+ break ;
3019
+ usleep_range (1000 , 2000 );
3020
+ }
3021
+ }
3022
+
3023
+ static void r8152b_exit_oob (struct r8152 * tp )
3024
+ {
3025
+ u32 ocp_data ;
3026
+
3015
3027
ocp_data = ocp_read_dword (tp , MCU_TYPE_PLA , PLA_RCR );
3016
3028
ocp_data &= ~RCR_ACPT_ALL ;
3017
3029
ocp_write_dword (tp , MCU_TYPE_PLA , PLA_RCR , ocp_data );
@@ -3029,23 +3041,13 @@ static void r8152b_exit_oob(struct r8152 *tp)
3029
3041
ocp_data &= ~MCU_BORW_EN ;
3030
3042
ocp_write_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 , ocp_data );
3031
3043
3032
- for (i = 0 ; i < 1000 ; i ++ ) {
3033
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3034
- if (ocp_data & LINK_LIST_READY )
3035
- break ;
3036
- usleep_range (1000 , 2000 );
3037
- }
3044
+ wait_oob_link_list_ready (tp );
3038
3045
3039
3046
ocp_data = ocp_read_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 );
3040
3047
ocp_data |= RE_INIT_LL ;
3041
3048
ocp_write_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 , ocp_data );
3042
3049
3043
- for (i = 0 ; i < 1000 ; i ++ ) {
3044
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3045
- if (ocp_data & LINK_LIST_READY )
3046
- break ;
3047
- usleep_range (1000 , 2000 );
3048
- }
3050
+ wait_oob_link_list_ready (tp );
3049
3051
3050
3052
rtl8152_nic_reset (tp );
3051
3053
@@ -3087,7 +3089,6 @@ static void r8152b_exit_oob(struct r8152 *tp)
3087
3089
static void r8152b_enter_oob (struct r8152 * tp )
3088
3090
{
3089
3091
u32 ocp_data ;
3090
- int i ;
3091
3092
3092
3093
ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3093
3094
ocp_data &= ~NOW_IS_OOB ;
@@ -3099,23 +3100,13 @@ static void r8152b_enter_oob(struct r8152 *tp)
3099
3100
3100
3101
rtl_disable (tp );
3101
3102
3102
- for (i = 0 ; i < 1000 ; i ++ ) {
3103
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3104
- if (ocp_data & LINK_LIST_READY )
3105
- break ;
3106
- usleep_range (1000 , 2000 );
3107
- }
3103
+ wait_oob_link_list_ready (tp );
3108
3104
3109
3105
ocp_data = ocp_read_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 );
3110
3106
ocp_data |= RE_INIT_LL ;
3111
3107
ocp_write_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 , ocp_data );
3112
3108
3113
- for (i = 0 ; i < 1000 ; i ++ ) {
3114
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3115
- if (ocp_data & LINK_LIST_READY )
3116
- break ;
3117
- usleep_range (1000 , 2000 );
3118
- }
3109
+ wait_oob_link_list_ready (tp );
3119
3110
3120
3111
ocp_write_word (tp , MCU_TYPE_PLA , PLA_RMS , RTL8152_RMS );
3121
3112
@@ -3388,7 +3379,6 @@ static void r8153b_hw_phy_cfg(struct r8152 *tp)
3388
3379
static void r8153_first_init (struct r8152 * tp )
3389
3380
{
3390
3381
u32 ocp_data ;
3391
- int i ;
3392
3382
3393
3383
rxdy_gated_en (tp , true);
3394
3384
r8153_teredo_off (tp );
@@ -3408,23 +3398,13 @@ static void r8153_first_init(struct r8152 *tp)
3408
3398
ocp_data &= ~MCU_BORW_EN ;
3409
3399
ocp_write_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 , ocp_data );
3410
3400
3411
- for (i = 0 ; i < 1000 ; i ++ ) {
3412
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3413
- if (ocp_data & LINK_LIST_READY )
3414
- break ;
3415
- usleep_range (1000 , 2000 );
3416
- }
3401
+ wait_oob_link_list_ready (tp );
3417
3402
3418
3403
ocp_data = ocp_read_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 );
3419
3404
ocp_data |= RE_INIT_LL ;
3420
3405
ocp_write_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 , ocp_data );
3421
3406
3422
- for (i = 0 ; i < 1000 ; i ++ ) {
3423
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3424
- if (ocp_data & LINK_LIST_READY )
3425
- break ;
3426
- usleep_range (1000 , 2000 );
3427
- }
3407
+ wait_oob_link_list_ready (tp );
3428
3408
3429
3409
rtl_rx_vlan_en (tp , tp -> netdev -> features & NETIF_F_HW_VLAN_CTAG_RX );
3430
3410
@@ -3449,7 +3429,6 @@ static void r8153_first_init(struct r8152 *tp)
3449
3429
static void r8153_enter_oob (struct r8152 * tp )
3450
3430
{
3451
3431
u32 ocp_data ;
3452
- int i ;
3453
3432
3454
3433
ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3455
3434
ocp_data &= ~NOW_IS_OOB ;
@@ -3458,23 +3437,13 @@ static void r8153_enter_oob(struct r8152 *tp)
3458
3437
rtl_disable (tp );
3459
3438
rtl_reset_bmu (tp );
3460
3439
3461
- for (i = 0 ; i < 1000 ; i ++ ) {
3462
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3463
- if (ocp_data & LINK_LIST_READY )
3464
- break ;
3465
- usleep_range (1000 , 2000 );
3466
- }
3440
+ wait_oob_link_list_ready (tp );
3467
3441
3468
3442
ocp_data = ocp_read_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 );
3469
3443
ocp_data |= RE_INIT_LL ;
3470
3444
ocp_write_word (tp , MCU_TYPE_PLA , PLA_SFF_STS_7 , ocp_data );
3471
3445
3472
- for (i = 0 ; i < 1000 ; i ++ ) {
3473
- ocp_data = ocp_read_byte (tp , MCU_TYPE_PLA , PLA_OOB_CTRL );
3474
- if (ocp_data & LINK_LIST_READY )
3475
- break ;
3476
- usleep_range (1000 , 2000 );
3477
- }
3446
+ wait_oob_link_list_ready (tp );
3478
3447
3479
3448
ocp_data = tp -> netdev -> mtu + VLAN_ETH_HLEN + ETH_FCS_LEN ;
3480
3449
ocp_write_word (tp , MCU_TYPE_PLA , PLA_RMS , ocp_data );
0 commit comments