#include <linux/etherdevice.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <net/mac80211.h>
#include "iwl-io.h"
#include "iwl-agn-hw.h"
#include "iwl-trans.h"
#include "iwl-modparams.h"
#include "dev.h"
#include "agn.h"
int iwlagn_hw_valid_rtc_data_addr(u32 addr)
{ … }
int iwlagn_send_tx_power(struct iwl_priv *priv)
{ … }
void iwlagn_temperature(struct iwl_priv *priv)
{ … }
int iwlagn_hwrate_to_mac80211_idx(u32 rate_n_flags, enum nl80211_band band)
{ … }
int iwlagn_manage_ibss_station(struct iwl_priv *priv,
struct ieee80211_vif *vif, bool add)
{ … }
int iwlagn_txfifo_flush(struct iwl_priv *priv, u32 scd_q_msk)
{ … }
void iwlagn_dev_txfifo_flush(struct iwl_priv *priv)
{ … }
static const __le32 iwlagn_def_3w_lookup[IWLAGN_BT_DECISION_LUT_SIZE] = …;
static const __le32 iwlagn_concurrent_lookup[IWLAGN_BT_DECISION_LUT_SIZE] = …;
void iwlagn_send_advance_bt_config(struct iwl_priv *priv)
{ … }
void iwlagn_bt_adjust_rssi_monitor(struct iwl_priv *priv, bool rssi_ena)
{ … }
static bool iwlagn_bt_traffic_is_sco(struct iwl_bt_uart_msg *uart_msg)
{ … }
static void iwlagn_bt_traffic_change_work(struct work_struct *work)
{ … }
void iwlagn_bt_coex_rssi_monitor(struct iwl_priv *priv)
{ … }
static void iwlagn_print_uartmsg(struct iwl_priv *priv,
struct iwl_bt_uart_msg *uart_msg)
{ … }
static bool iwlagn_set_kill_msk(struct iwl_priv *priv,
struct iwl_bt_uart_msg *uart_msg)
{ … }
static bool iwlagn_fill_txpower_mode(struct iwl_priv *priv,
struct iwl_bt_uart_msg *uart_msg)
{ … }
static void iwlagn_bt_coex_profile_notif(struct iwl_priv *priv,
struct iwl_rx_cmd_buffer *rxb)
{ … }
void iwlagn_bt_rx_handler_setup(struct iwl_priv *priv)
{ … }
void iwlagn_bt_setup_deferred_work(struct iwl_priv *priv)
{ … }
void iwlagn_bt_cancel_deferred_work(struct iwl_priv *priv)
{ … }
static bool is_single_rx_stream(struct iwl_priv *priv)
{ … }
#define IWL_NUM_RX_CHAINS_MULTIPLE …
#define IWL_NUM_RX_CHAINS_SINGLE …
#define IWL_NUM_IDLE_CHAINS_DUAL …
#define IWL_NUM_IDLE_CHAINS_SINGLE …
static int iwl_get_active_rx_chain_count(struct iwl_priv *priv)
{ … }
static int iwl_get_idle_rx_chain_count(struct iwl_priv *priv, int active_cnt)
{ … }
static u8 iwl_count_chain_bitmap(u32 chain_bitmap)
{ … }
void iwlagn_set_rxon_chain(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
{ … }
u8 iwl_toggle_tx_ant(struct iwl_priv *priv, u8 ant, u8 valid)
{ … }
#ifdef CONFIG_PM_SLEEP
static void iwlagn_convert_p1k(u16 *p1k, __le16 *out)
{ … }
struct wowlan_key_data { … };
static void iwlagn_wowlan_program_keys(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key,
void *_data)
{ … }
int iwlagn_send_patterns(struct iwl_priv *priv,
struct cfg80211_wowlan *wowlan)
{ … }
int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
{ … }
#endif
int iwl_dvm_send_cmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
{ … }
int iwl_dvm_send_cmd_pdu(struct iwl_priv *priv, u8 id,
u32 flags, u16 len, const void *data)
{ … }