diff options
-rw-r--r-- | drivers/net/wireless/b43/phy_n.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/b43/phy_n.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/b43/tables_nphy.c | 80 |
3 files changed, 44 insertions, 48 deletions
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c index 41dab89a2942..98ff8060f526 100644 --- a/drivers/net/wireless/b43/phy_n.c +++ b/drivers/net/wireless/b43/phy_n.c | |||
@@ -700,13 +700,11 @@ static void b43_radio_2057_init_post(struct b43_wldev *dev) | |||
700 | b43_radio_mask(dev, R2057_RFPLL_MISC_CAL_RESETN, ~0x78); | 700 | b43_radio_mask(dev, R2057_RFPLL_MISC_CAL_RESETN, ~0x78); |
701 | b43_radio_mask(dev, R2057_XTAL_CONFIG2, ~0x80); | 701 | b43_radio_mask(dev, R2057_XTAL_CONFIG2, ~0x80); |
702 | 702 | ||
703 | if (dev->phy.n->init_por) { | 703 | if (dev->phy.do_full_init) { |
704 | b43_radio_2057_rcal(dev); | 704 | b43_radio_2057_rcal(dev); |
705 | b43_radio_2057_rccal(dev); | 705 | b43_radio_2057_rccal(dev); |
706 | } | 706 | } |
707 | b43_radio_mask(dev, R2057_RFPLL_MASTER, ~0x8); | 707 | b43_radio_mask(dev, R2057_RFPLL_MASTER, ~0x8); |
708 | |||
709 | dev->phy.n->init_por = false; | ||
710 | } | 708 | } |
711 | 709 | ||
712 | /* http://bcm-v4.sipsolutions.net/802.11/Radio/2057/Init */ | 710 | /* http://bcm-v4.sipsolutions.net/802.11/Radio/2057/Init */ |
@@ -1028,7 +1026,7 @@ static void b43_radio_init2056_post(struct b43_wldev *dev) | |||
1028 | b43_radio_mask(dev, B2056_SYN_COM_RESET, ~0x2); | 1026 | b43_radio_mask(dev, B2056_SYN_COM_RESET, ~0x2); |
1029 | b43_radio_mask(dev, B2056_SYN_PLL_MAST2, ~0xFC); | 1027 | b43_radio_mask(dev, B2056_SYN_PLL_MAST2, ~0xFC); |
1030 | b43_radio_mask(dev, B2056_SYN_RCCAL_CTRL0, ~0x1); | 1028 | b43_radio_mask(dev, B2056_SYN_RCCAL_CTRL0, ~0x1); |
1031 | if (dev->phy.n->init_por) | 1029 | if (dev->phy.do_full_init) |
1032 | b43_radio_2056_rcal(dev); | 1030 | b43_radio_2056_rcal(dev); |
1033 | } | 1031 | } |
1034 | 1032 | ||
@@ -1041,8 +1039,6 @@ static void b43_radio_init2056(struct b43_wldev *dev) | |||
1041 | b43_radio_init2056_pre(dev); | 1039 | b43_radio_init2056_pre(dev); |
1042 | b2056_upload_inittabs(dev, 0, 0); | 1040 | b2056_upload_inittabs(dev, 0, 0); |
1043 | b43_radio_init2056_post(dev); | 1041 | b43_radio_init2056_post(dev); |
1044 | |||
1045 | dev->phy.n->init_por = false; | ||
1046 | } | 1042 | } |
1047 | 1043 | ||
1048 | /************************************************** | 1044 | /************************************************** |
@@ -5561,7 +5557,6 @@ static void b43_nphy_op_prepare_structs(struct b43_wldev *dev) | |||
5561 | nphy->hang_avoid = (phy->rev == 3 || phy->rev == 4); | 5557 | nphy->hang_avoid = (phy->rev == 3 || phy->rev == 4); |
5562 | nphy->spur_avoid = (phy->rev >= 3) ? | 5558 | nphy->spur_avoid = (phy->rev >= 3) ? |
5563 | B43_SPUR_AVOID_AUTO : B43_SPUR_AVOID_DISABLE; | 5559 | B43_SPUR_AVOID_AUTO : B43_SPUR_AVOID_DISABLE; |
5564 | nphy->init_por = true; | ||
5565 | nphy->gain_boost = true; /* this way we follow wl, assume it is true */ | 5560 | nphy->gain_boost = true; /* this way we follow wl, assume it is true */ |
5566 | nphy->txrx_chain = 2; /* sth different than 0 and 1 for now */ | 5561 | nphy->txrx_chain = 2; /* sth different than 0 and 1 for now */ |
5567 | nphy->phyrxchain = 3; /* to avoid b43_nphy_set_rx_core_state like wl */ | 5562 | nphy->phyrxchain = 3; /* to avoid b43_nphy_set_rx_core_state like wl */ |
@@ -5602,8 +5597,6 @@ static void b43_nphy_op_prepare_structs(struct b43_wldev *dev) | |||
5602 | nphy->ipa2g_on = sprom->fem.ghz2.extpa_gain == 2; | 5597 | nphy->ipa2g_on = sprom->fem.ghz2.extpa_gain == 2; |
5603 | nphy->ipa5g_on = sprom->fem.ghz5.extpa_gain == 2; | 5598 | nphy->ipa5g_on = sprom->fem.ghz5.extpa_gain == 2; |
5604 | } | 5599 | } |
5605 | |||
5606 | nphy->init_por = true; | ||
5607 | } | 5600 | } |
5608 | 5601 | ||
5609 | static void b43_nphy_op_free(struct b43_wldev *dev) | 5602 | static void b43_nphy_op_free(struct b43_wldev *dev) |
diff --git a/drivers/net/wireless/b43/phy_n.h b/drivers/net/wireless/b43/phy_n.h index 9a5b6bc27d24..ecfbf66dbc3b 100644 --- a/drivers/net/wireless/b43/phy_n.h +++ b/drivers/net/wireless/b43/phy_n.h | |||
@@ -931,7 +931,6 @@ struct b43_phy_n { | |||
931 | u16 papd_epsilon_offset[2]; | 931 | u16 papd_epsilon_offset[2]; |
932 | s32 preamble_override; | 932 | s32 preamble_override; |
933 | u32 bb_mult_save; | 933 | u32 bb_mult_save; |
934 | bool init_por; | ||
935 | 934 | ||
936 | bool gain_boost; | 935 | bool gain_boost; |
937 | bool elna_gain_config; | 936 | bool elna_gain_config; |
diff --git a/drivers/net/wireless/b43/tables_nphy.c b/drivers/net/wireless/b43/tables_nphy.c index 50d03ffeac8c..4047c05e3807 100644 --- a/drivers/net/wireless/b43/tables_nphy.c +++ b/drivers/net/wireless/b43/tables_nphy.c | |||
@@ -3042,30 +3042,32 @@ static void b43_nphy_tables_init_rev3(struct b43_wldev *dev) | |||
3042 | antswlut = sprom->fem.ghz2.antswlut; | 3042 | antswlut = sprom->fem.ghz2.antswlut; |
3043 | 3043 | ||
3044 | /* Static tables */ | 3044 | /* Static tables */ |
3045 | ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3); | 3045 | if (dev->phy.do_full_init) { |
3046 | ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3); | 3046 | ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3); |
3047 | ntab_upload(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3); | 3047 | ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3); |
3048 | ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3); | 3048 | ntab_upload(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3); |
3049 | ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3); | 3049 | ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3); |
3050 | ntab_upload(dev, B43_NTAB_NOISEVAR_R3, b43_ntab_noisevar_r3); | 3050 | ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3); |
3051 | ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3); | 3051 | ntab_upload(dev, B43_NTAB_NOISEVAR_R3, b43_ntab_noisevar_r3); |
3052 | ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3); | 3052 | ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3); |
3053 | ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3); | 3053 | ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3); |
3054 | ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3); | 3054 | ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3); |
3055 | ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3); | 3055 | ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3); |
3056 | ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3); | 3056 | ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3); |
3057 | ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3); | 3057 | ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3); |
3058 | ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3); | 3058 | ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3); |
3059 | ntab_upload(dev, B43_NTAB_C0_ESTPLT_R3, b43_ntab_estimatepowerlt0_r3); | 3059 | ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3); |
3060 | ntab_upload(dev, B43_NTAB_C1_ESTPLT_R3, b43_ntab_estimatepowerlt1_r3); | 3060 | ntab_upload(dev, B43_NTAB_C0_ESTPLT_R3, b43_ntab_estimatepowerlt0_r3); |
3061 | ntab_upload(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3); | 3061 | ntab_upload(dev, B43_NTAB_C1_ESTPLT_R3, b43_ntab_estimatepowerlt1_r3); |
3062 | ntab_upload(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3); | 3062 | ntab_upload(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3); |
3063 | ntab_upload(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3); | 3063 | ntab_upload(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3); |
3064 | ntab_upload(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3); | 3064 | ntab_upload(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3); |
3065 | ntab_upload(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3); | 3065 | ntab_upload(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3); |
3066 | ntab_upload(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3); | 3066 | ntab_upload(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3); |
3067 | ntab_upload(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3); | 3067 | ntab_upload(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3); |
3068 | ntab_upload(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3); | 3068 | ntab_upload(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3); |
3069 | ntab_upload(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3); | ||
3070 | } | ||
3069 | 3071 | ||
3070 | /* Volatile tables */ | 3072 | /* Volatile tables */ |
3071 | if (antswlut < ARRAY_SIZE(b43_ntab_antswctl_r3)) | 3073 | if (antswlut < ARRAY_SIZE(b43_ntab_antswctl_r3)) |
@@ -3078,20 +3080,22 @@ static void b43_nphy_tables_init_rev3(struct b43_wldev *dev) | |||
3078 | static void b43_nphy_tables_init_rev0(struct b43_wldev *dev) | 3080 | static void b43_nphy_tables_init_rev0(struct b43_wldev *dev) |
3079 | { | 3081 | { |
3080 | /* Static tables */ | 3082 | /* Static tables */ |
3081 | ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct); | 3083 | if (dev->phy.do_full_init) { |
3082 | ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup); | 3084 | ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct); |
3083 | ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap); | 3085 | ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup); |
3084 | ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn); | 3086 | ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap); |
3085 | ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel); | 3087 | ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn); |
3086 | ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot); | 3088 | ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel); |
3087 | ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0); | 3089 | ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot); |
3088 | ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1); | 3090 | ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0); |
3089 | ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0); | 3091 | ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1); |
3090 | ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1); | 3092 | ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0); |
3091 | ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest); | 3093 | ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1); |
3092 | ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs); | 3094 | ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest); |
3093 | ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10); | 3095 | ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs); |
3094 | ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11); | 3096 | ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10); |
3097 | ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11); | ||
3098 | } | ||
3095 | 3099 | ||
3096 | /* Volatile tables */ | 3100 | /* Volatile tables */ |
3097 | ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi); | 3101 | ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi); |