aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/brcm80211/brcmsmac/phy/phy_hal.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/brcm80211/brcmsmac/phy/phy_hal.h')
-rw-r--r--drivers/staging/brcm80211/brcmsmac/phy/phy_hal.h155
1 files changed, 83 insertions, 72 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/phy/phy_hal.h b/drivers/staging/brcm80211/brcmsmac/phy/phy_hal.h
index d1d03a624ef..a2df6b42afe 100644
--- a/drivers/staging/brcm80211/brcmsmac/phy/phy_hal.h
+++ b/drivers/staging/brcm80211/brcmsmac/phy/phy_hal.h
@@ -177,107 +177,118 @@ struct shared_phy_params {
177 177
178 178
179extern struct shared_phy *wlc_phy_shared_attach(struct shared_phy_params *shp); 179extern struct shared_phy *wlc_phy_shared_attach(struct shared_phy_params *shp);
180extern wlc_phy_t *wlc_phy_attach(struct shared_phy *sh, void *regs, 180extern struct brcms_phy_pub *wlc_phy_attach(struct shared_phy *sh, void *regs,
181 int bandtype, char *vars, struct wiphy *wiphy); 181 int bandtype, char *vars, struct wiphy *wiphy);
182extern void wlc_phy_detach(wlc_phy_t *ppi); 182extern void wlc_phy_detach(struct brcms_phy_pub *ppi);
183 183
184extern bool wlc_phy_get_phyversion(wlc_phy_t *pih, u16 *phytype, 184extern bool wlc_phy_get_phyversion(struct brcms_phy_pub *pih, u16 *phytype,
185 u16 *phyrev, u16 *radioid, 185 u16 *phyrev, u16 *radioid,
186 u16 *radiover); 186 u16 *radiover);
187extern bool wlc_phy_get_encore(wlc_phy_t *pih); 187extern bool wlc_phy_get_encore(struct brcms_phy_pub *pih);
188extern u32 wlc_phy_get_coreflags(wlc_phy_t *pih); 188extern u32 wlc_phy_get_coreflags(struct brcms_phy_pub *pih);
189 189
190extern void wlc_phy_hw_clk_state_upd(wlc_phy_t *ppi, bool newstate); 190extern void wlc_phy_hw_clk_state_upd(struct brcms_phy_pub *ppi, bool newstate);
191extern void wlc_phy_hw_state_upd(wlc_phy_t *ppi, bool newstate); 191extern void wlc_phy_hw_state_upd(struct brcms_phy_pub *ppi, bool newstate);
192extern void wlc_phy_init(wlc_phy_t *ppi, chanspec_t chanspec); 192extern void wlc_phy_init(struct brcms_phy_pub *ppi, chanspec_t chanspec);
193extern void wlc_phy_watchdog(wlc_phy_t *ppi); 193extern void wlc_phy_watchdog(struct brcms_phy_pub *ppi);
194extern int wlc_phy_down(wlc_phy_t *ppi); 194extern int wlc_phy_down(struct brcms_phy_pub *ppi);
195extern u32 wlc_phy_clk_bwbits(wlc_phy_t *pih); 195extern u32 wlc_phy_clk_bwbits(struct brcms_phy_pub *pih);
196extern void wlc_phy_cal_init(wlc_phy_t *ppi); 196extern void wlc_phy_cal_init(struct brcms_phy_pub *ppi);
197extern void wlc_phy_antsel_init(wlc_phy_t *ppi, bool lut_init); 197extern void wlc_phy_antsel_init(struct brcms_phy_pub *ppi, bool lut_init);
198 198
199extern void wlc_phy_chanspec_set(wlc_phy_t *ppi, chanspec_t chanspec); 199extern void wlc_phy_chanspec_set(struct brcms_phy_pub *ppi,
200extern chanspec_t wlc_phy_chanspec_get(wlc_phy_t *ppi); 200 chanspec_t chanspec);
201extern void wlc_phy_chanspec_radio_set(wlc_phy_t *ppi, chanspec_t newch); 201extern chanspec_t wlc_phy_chanspec_get(struct brcms_phy_pub *ppi);
202extern u16 wlc_phy_bw_state_get(wlc_phy_t *ppi); 202extern void wlc_phy_chanspec_radio_set(struct brcms_phy_pub *ppi,
203extern void wlc_phy_bw_state_set(wlc_phy_t *ppi, u16 bw); 203 chanspec_t newch);
204extern u16 wlc_phy_bw_state_get(struct brcms_phy_pub *ppi);
205extern void wlc_phy_bw_state_set(struct brcms_phy_pub *ppi, u16 bw);
204 206
205extern void wlc_phy_rssi_compute(wlc_phy_t *pih, void *ctx); 207extern void wlc_phy_rssi_compute(struct brcms_phy_pub *pih, void *ctx);
206extern void wlc_phy_por_inform(wlc_phy_t *ppi); 208extern void wlc_phy_por_inform(struct brcms_phy_pub *ppi);
207extern void wlc_phy_noise_sample_intr(wlc_phy_t *ppi); 209extern void wlc_phy_noise_sample_intr(struct brcms_phy_pub *ppi);
208extern bool wlc_phy_bist_check_phy(wlc_phy_t *ppi); 210extern bool wlc_phy_bist_check_phy(struct brcms_phy_pub *ppi);
209 211
210extern void wlc_phy_set_deaf(wlc_phy_t *ppi, bool user_flag); 212extern void wlc_phy_set_deaf(struct brcms_phy_pub *ppi, bool user_flag);
211 213
212extern void wlc_phy_switch_radio(wlc_phy_t *ppi, bool on); 214extern void wlc_phy_switch_radio(struct brcms_phy_pub *ppi, bool on);
213extern void wlc_phy_anacore(wlc_phy_t *ppi, bool on); 215extern void wlc_phy_anacore(struct brcms_phy_pub *ppi, bool on);
214 216
215 217
216extern void wlc_phy_BSSinit(wlc_phy_t *ppi, bool bonlyap, int rssi); 218extern void wlc_phy_BSSinit(struct brcms_phy_pub *ppi, bool bonlyap, int rssi);
217 219
218extern void wlc_phy_chanspec_ch14_widefilter_set(wlc_phy_t *ppi, 220extern void wlc_phy_chanspec_ch14_widefilter_set(struct brcms_phy_pub *ppi,
219 bool wide_filter); 221 bool wide_filter);
220extern void wlc_phy_chanspec_band_validch(wlc_phy_t *ppi, uint band, 222extern void wlc_phy_chanspec_band_validch(struct brcms_phy_pub *ppi, uint band,
221 chanvec_t *channels); 223 chanvec_t *channels);
222extern chanspec_t wlc_phy_chanspec_band_firstch(wlc_phy_t *ppi, uint band); 224extern chanspec_t wlc_phy_chanspec_band_firstch(struct brcms_phy_pub *ppi,
225 uint band);
223 226
224extern void wlc_phy_txpower_sromlimit(wlc_phy_t *ppi, uint chan, 227extern void wlc_phy_txpower_sromlimit(struct brcms_phy_pub *ppi, uint chan,
225 u8 *_min_, u8 *_max_, int rate); 228 u8 *_min_, u8 *_max_, int rate);
226extern void wlc_phy_txpower_sromlimit_max_get(wlc_phy_t *ppi, uint chan, 229extern void wlc_phy_txpower_sromlimit_max_get(struct brcms_phy_pub *ppi,
227 u8 *_max_, u8 *_min_); 230 uint chan, u8 *_max_, u8 *_min_);
228extern void wlc_phy_txpower_boardlimit_band(wlc_phy_t *ppi, uint band, s32 *, 231extern void wlc_phy_txpower_boardlimit_band(struct brcms_phy_pub *ppi,
229 s32 *, u32 *); 232 uint band, s32 *, s32 *, u32 *);
230extern void wlc_phy_txpower_limit_set(wlc_phy_t *ppi, struct txpwr_limits *, 233extern void wlc_phy_txpower_limit_set(struct brcms_phy_pub *ppi,
234 struct txpwr_limits *,
231 chanspec_t chanspec); 235 chanspec_t chanspec);
232extern int wlc_phy_txpower_get(wlc_phy_t *ppi, uint *qdbm, bool *override); 236extern int wlc_phy_txpower_get(struct brcms_phy_pub *ppi, uint *qdbm,
233extern int wlc_phy_txpower_set(wlc_phy_t *ppi, uint qdbm, bool override); 237 bool *override);
234extern void wlc_phy_txpower_target_set(wlc_phy_t *ppi, struct txpwr_limits *); 238extern int wlc_phy_txpower_set(struct brcms_phy_pub *ppi, uint qdbm,
235extern bool wlc_phy_txpower_hw_ctrl_get(wlc_phy_t *ppi); 239 bool override);
236extern void wlc_phy_txpower_hw_ctrl_set(wlc_phy_t *ppi, bool hwpwrctrl); 240extern void wlc_phy_txpower_target_set(struct brcms_phy_pub *ppi,
237extern u8 wlc_phy_txpower_get_target_min(wlc_phy_t *ppi); 241 struct txpwr_limits *);
238extern u8 wlc_phy_txpower_get_target_max(wlc_phy_t *ppi); 242extern bool wlc_phy_txpower_hw_ctrl_get(struct brcms_phy_pub *ppi);
239extern bool wlc_phy_txpower_ipa_ison(wlc_phy_t *pih); 243extern void wlc_phy_txpower_hw_ctrl_set(struct brcms_phy_pub *ppi,
240 244 bool hwpwrctrl);
241extern void wlc_phy_stf_chain_init(wlc_phy_t *pih, u8 txchain, 245extern u8 wlc_phy_txpower_get_target_min(struct brcms_phy_pub *ppi);
246extern u8 wlc_phy_txpower_get_target_max(struct brcms_phy_pub *ppi);
247extern bool wlc_phy_txpower_ipa_ison(struct brcms_phy_pub *pih);
248
249extern void wlc_phy_stf_chain_init(struct brcms_phy_pub *pih, u8 txchain,
242 u8 rxchain); 250 u8 rxchain);
243extern void wlc_phy_stf_chain_set(wlc_phy_t *pih, u8 txchain, 251extern void wlc_phy_stf_chain_set(struct brcms_phy_pub *pih, u8 txchain,
244 u8 rxchain); 252 u8 rxchain);
245extern void wlc_phy_stf_chain_get(wlc_phy_t *pih, u8 *txchain, 253extern void wlc_phy_stf_chain_get(struct brcms_phy_pub *pih, u8 *txchain,
246 u8 *rxchain); 254 u8 *rxchain);
247extern u8 wlc_phy_stf_chain_active_get(wlc_phy_t *pih); 255extern u8 wlc_phy_stf_chain_active_get(struct brcms_phy_pub *pih);
248extern s8 wlc_phy_stf_ssmode_get(wlc_phy_t *pih, chanspec_t chanspec); 256extern s8 wlc_phy_stf_ssmode_get(struct brcms_phy_pub *pih,
249extern void wlc_phy_ldpc_override_set(wlc_phy_t *ppi, bool val); 257 chanspec_t chanspec);
258extern void wlc_phy_ldpc_override_set(struct brcms_phy_pub *ppi, bool val);
250 259
251extern void wlc_phy_cal_perical(wlc_phy_t *ppi, u8 reason); 260extern void wlc_phy_cal_perical(struct brcms_phy_pub *ppi, u8 reason);
252extern void wlc_phy_noise_sample_request_external(wlc_phy_t *ppi); 261extern void wlc_phy_noise_sample_request_external(struct brcms_phy_pub *ppi);
253extern void wlc_phy_edcrs_lock(wlc_phy_t *pih, bool lock); 262extern void wlc_phy_edcrs_lock(struct brcms_phy_pub *pih, bool lock);
254extern void wlc_phy_cal_papd_recal(wlc_phy_t *ppi); 263extern void wlc_phy_cal_papd_recal(struct brcms_phy_pub *ppi);
255 264
256extern void wlc_phy_ant_rxdiv_set(wlc_phy_t *ppi, u8 val); 265extern void wlc_phy_ant_rxdiv_set(struct brcms_phy_pub *ppi, u8 val);
257extern void wlc_phy_clear_tssi(wlc_phy_t *ppi); 266extern void wlc_phy_clear_tssi(struct brcms_phy_pub *ppi);
258extern void wlc_phy_hold_upd(wlc_phy_t *ppi, mbool id, bool val); 267extern void wlc_phy_hold_upd(struct brcms_phy_pub *ppi, mbool id, bool val);
259extern void wlc_phy_mute_upd(wlc_phy_t *ppi, bool val, mbool flags); 268extern void wlc_phy_mute_upd(struct brcms_phy_pub *ppi, bool val, mbool flags);
260 269
261extern void wlc_phy_antsel_type_set(wlc_phy_t *ppi, u8 antsel_type); 270extern void wlc_phy_antsel_type_set(struct brcms_phy_pub *ppi, u8 antsel_type);
262 271
263extern void wlc_phy_txpower_get_current(wlc_phy_t *ppi, tx_power_t *power, 272extern void wlc_phy_txpower_get_current(struct brcms_phy_pub *ppi,
264 uint channel); 273 tx_power_t *power, uint channel);
265 274
266extern void wlc_phy_initcal_enable(wlc_phy_t *pih, bool initcal); 275extern void wlc_phy_initcal_enable(struct brcms_phy_pub *pih, bool initcal);
267extern bool wlc_phy_test_ison(wlc_phy_t *ppi); 276extern bool wlc_phy_test_ison(struct brcms_phy_pub *ppi);
268extern void wlc_phy_txpwr_percent_set(wlc_phy_t *ppi, u8 txpwr_percent); 277extern void wlc_phy_txpwr_percent_set(struct brcms_phy_pub *ppi,
269extern void wlc_phy_ofdm_rateset_war(wlc_phy_t *pih, bool war); 278 u8 txpwr_percent);
270extern void wlc_phy_bf_preempt_enable(wlc_phy_t *pih, bool bf_preempt); 279extern void wlc_phy_ofdm_rateset_war(struct brcms_phy_pub *pih, bool war);
271extern void wlc_phy_machwcap_set(wlc_phy_t *ppi, u32 machwcap); 280extern void wlc_phy_bf_preempt_enable(struct brcms_phy_pub *pih,
281 bool bf_preempt);
282extern void wlc_phy_machwcap_set(struct brcms_phy_pub *ppi, u32 machwcap);
272 283
273extern void wlc_phy_runbist_config(wlc_phy_t *ppi, bool start_end); 284extern void wlc_phy_runbist_config(struct brcms_phy_pub *ppi, bool start_end);
274 285
275extern void wlc_phy_freqtrack_start(wlc_phy_t *ppi); 286extern void wlc_phy_freqtrack_start(struct brcms_phy_pub *ppi);
276extern void wlc_phy_freqtrack_end(wlc_phy_t *ppi); 287extern void wlc_phy_freqtrack_end(struct brcms_phy_pub *ppi);
277 288
278extern const u8 *wlc_phy_get_ofdm_rate_lookup(void); 289extern const u8 *wlc_phy_get_ofdm_rate_lookup(void);
279 290
280extern s8 wlc_phy_get_tx_power_offset_by_mcs(wlc_phy_t *ppi, 291extern s8 wlc_phy_get_tx_power_offset_by_mcs(struct brcms_phy_pub *ppi,
281 u8 mcs_offset); 292 u8 mcs_offset);
282extern s8 wlc_phy_get_tx_power_offset(wlc_phy_t *ppi, u8 tbl_offset); 293extern s8 wlc_phy_get_tx_power_offset(struct brcms_phy_pub *ppi, u8 tbl_offset);
283#endif /* _BRCM_PHY_HAL_H_ */ 294#endif /* _BRCM_PHY_HAL_H_ */