1250008Sadrian#ifndef __AR9300_FREEBSD_H__ 2250008Sadrian#define __AR9300_FREEBSD_H__ 3250008Sadrian 4250008Sadrianextern void ar9300_attach_freebsd_ops(struct ath_hal *ah); 5250008Sadrianextern HAL_BOOL ar9300_reset_freebsd(struct ath_hal *ah, HAL_OPMODE opmode, 6250008Sadrian struct ieee80211_channel *chan, HAL_BOOL bChannelChange, 7250008Sadrian HAL_STATUS *status); 8250008Sadrianextern void ar9300_config_pcie_freebsd(struct ath_hal *, HAL_BOOL, HAL_BOOL); 9250008Sadrianextern HAL_STATUS ar9300_eeprom_get_freebsd(struct ath_hal *, int param, 10250008Sadrian void *val); 11250008Sadrianextern HAL_BOOL ar9300_stop_tx_dma_freebsd(struct ath_hal *ah, u_int q); 12250008Sadrianextern void ar9300_ani_poll_freebsd(struct ath_hal *ah, 13250008Sadrian const struct ieee80211_channel *chan); 14250008Sadrianextern void ar9300_config_defaults_freebsd(struct ath_hal *ah); 15250008Sadrianextern HAL_BOOL ar9300_stop_dma_receive_freebsd(struct ath_hal *ah); 16250008Sadrianextern HAL_BOOL ar9300_get_pending_interrupts_freebsd(struct ath_hal *ah, 17250008Sadrian HAL_INT *masked); 18250008Sadrianextern HAL_INT ar9300_set_interrupts_freebsd(struct ath_hal *ah, 19250008Sadrian HAL_INT mask); 20250008Sadrianextern HAL_BOOL ar9300_per_calibration_freebsd(struct ath_hal *ah, 21250008Sadrian struct ieee80211_channel *chan, u_int rxchainmask, 22250008Sadrian HAL_BOOL longCal, HAL_BOOL *isCalDone); 23250008Sadrianextern HAL_BOOL ar9300_reset_cal_valid_freebsd(struct ath_hal *ah, 24250008Sadrian const struct ieee80211_channel *chan); 25250008Sadrianextern void ar9300_start_pcu_receive_freebsd(struct ath_hal *ah); 26250008Sadrianextern HAL_STATUS ar9300_proc_rx_desc_freebsd(struct ath_hal *ah, 27250008Sadrian struct ath_desc *ds, uint32_t pa, struct ath_desc *ds_next, 28250008Sadrian uint64_t tsf, struct ath_rx_status *rxs); 29250008Sadrianextern void ar9300_ani_rxmonitor_freebsd(struct ath_hal *ah, 30250008Sadrian const HAL_NODE_STATS *stats, const struct ieee80211_channel *chan); 31250008Sadrianextern void ar9300_freebsd_get_desc_link(struct ath_hal *, void *ds, 32250008Sadrian uint32_t *); 33250008Sadrian 34250008Sadrianextern HAL_BOOL ar9300_freebsd_setup_tx_desc(struct ath_hal *ah, 35250008Sadrian struct ath_desc *ds, u_int pktLen, u_int hdrLen, HAL_PKT_TYPE type, 36250008Sadrian u_int txPower, u_int txRate0, u_int txTries0, u_int keyIx, 37250008Sadrian u_int antMode, u_int flags, u_int rtsctsRate, u_int rtsCtsDuration, 38250008Sadrian u_int compicvLen, u_int compivLen, u_int comp); 39250008Sadrianextern HAL_BOOL ar9300_freebsd_setup_x_tx_desc(struct ath_hal *ah, 40250008Sadrian struct ath_desc *ds, u_int txRate1, u_int txTries1, 41250008Sadrian u_int txRate2, u_int txTries2, u_int txRate3, u_int txTries3); 42250008Sadrianextern HAL_BOOL ar9300_freebsd_fill_tx_desc(struct ath_hal *ah, 43250008Sadrian struct ath_desc *ds, HAL_DMA_ADDR *bufAddrList, 44250008Sadrian uint32_t *segLenList, u_int descId, u_int qId, HAL_BOOL firstSeg, 45250008Sadrian HAL_BOOL lastSeg, const struct ath_desc *ds0); 46250008Sadrianextern HAL_BOOL ar9300_freebsd_get_tx_completion_rates(struct ath_hal *ah, 47250008Sadrian const struct ath_desc *ds0, int *rates, int *tries); 48250008Sadrianextern void ar9300_freebsd_set_11n_rate_scenario(struct ath_hal *, 49250008Sadrian struct ath_desc *, u_int, u_int, HAL_11N_RATE_SERIES series[], 50250008Sadrian u_int, u_int); 51250008Sadrian 52250008Sadrianextern HAL_BOOL ar9300_freebsd_chain_tx_desc(struct ath_hal *ah, 53250008Sadrian struct ath_desc *ds, 54250008Sadrian HAL_DMA_ADDR *bufAddrList, 55250008Sadrian uint32_t *segLenList, 56250008Sadrian u_int pktLen, u_int hdrLen, HAL_PKT_TYPE type, 57250008Sadrian u_int keyIx, HAL_CIPHER cipher, uint8_t numDelims, 58250008Sadrian HAL_BOOL firstSeg, HAL_BOOL lastSeg, HAL_BOOL lastAggr); 59250008Sadrianextern HAL_BOOL ar9300_freebsd_setup_first_tx_desc(struct ath_hal *ah, 60250008Sadrian struct ath_desc *ds, u_int aggrLen, u_int flags, u_int txPower, 61250008Sadrian u_int txRate0, u_int txTries0, u_int antMode, u_int rtsctsRate, 62250008Sadrian u_int rtsctsDuration); 63250008Sadrianextern HAL_BOOL ar9300_freebsd_setup_last_tx_desc(struct ath_hal *ah, 64250008Sadrian struct ath_desc *ds, const struct ath_desc *ds0); 65250008Sadrian 66250008Sadrianextern void ar9300_freebsd_setup_11n_desc(struct ath_hal *ah, 67250008Sadrian void *ds, u_int pktLen, HAL_PKT_TYPE type, u_int txPower, 68250008Sadrian u_int keyIx, u_int flags); 69250008Sadrian 70250008Sadrianextern HAL_STATUS ar9300_freebsd_proc_tx_desc(struct ath_hal *ah, 71250008Sadrian struct ath_desc *ds, struct ath_tx_status *ts); 72250008Sadrian 73250008Sadrianextern void ar9300_freebsd_beacon_init(struct ath_hal *ah, 74250008Sadrian uint32_t next_beacon, uint32_t beacon_period); 75250008Sadrian 76250008Sadrianextern HAL_BOOL ar9300_freebsd_get_mib_cycle_counts(struct ath_hal *ah, 77250008Sadrian HAL_SURVEY_SAMPLE *); 78250008Sadrian 79250008Sadrianextern HAL_BOOL ar9300_freebsd_get_dfs_default_thresh(struct ath_hal *ah, 80250008Sadrian HAL_PHYERR_PARAM *pe); 81250008Sadrian 82250008Sadrian#endif /* __AR9300_FREEBSD_H__ */ 83