blob: 4641be38a37e18fa546da1c1cbcc9876c2e3a4d7 [file] [log] [blame]
/*HEADER**********************************************************************
******************************************************************************
***
***
*** Copyright (c) 2011, 2012, Imagination Technologies Ltd.
***
*** This program is free software; you can redistribute it and/or
*** modify it under the terms of the GNU General Public License
*** as published by the Free Software Foundation; either version 2
*** of the License, or (at your option) any later version.
***
*** This program is distributed in the hope that it will be useful,
*** but WITHOUT ANY WARRANTY; without even the implied warranty of
*** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*** GNU General Public License for more details.
***
*** You should have received a copy of the GNU General Public License
*** along with this program; if not, write to the Free Software
*** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
*** USA.
***
*** File Name : lmac_if.h
***
*** File Description:
*** This file contains the helper functions exported by LMAC interface module for
*** sending commands and receiving events from the LMAC
*****************************************************************************
*END**************************************************************************/
#ifndef _UCCP310WLAN_LMAC_IF_H_
#define _UCCP310WLAN_LMAC_IF_H_
#include <linux/skbuff.h>
#include "hal.h"
#include "umac_lmac_if.h"
struct umac_key {
unsigned char *peer_mac;
unsigned char *tx_mic;
unsigned char *rx_mic;
unsigned char *key;
};
/* Commands */
extern int uccp310wlan_prog_reset(unsigned int reset_type);
extern int uccp310wlan_prog_scan_ind(unsigned int scan_ind);
extern int uccp310wlan_prog_vif_ctrl(int index,
unsigned char *vif_addr,
unsigned int vif_type,
unsigned int add_vif);
extern int uccp310wlan_prog_vif_basic_rates(int index,
unsigned char *vif_addr,
unsigned int basic_rate_set);
extern int uccp310wlan_prog_vif_short_slot(int index,
unsigned char *vif_addr,
unsigned int use_short_slot);
extern int uccp310wlan_prog_vif_powersave_mode(int index,
unsigned char *vif_addr,
unsigned int powersave_mode);
extern int uccp310wlan_prog_vif_atim_window(int index,
unsigned char *vif_addr,
unsigned int atim_window);
extern int uccp310wlan_prog_vif_aid(int index,
unsigned char *vif_addr,
unsigned int aid);
extern int uccp310wlan_prog_vif_assoc_cap(int index,
unsigned char *vif_addr,
unsigned int caps);
extern int uccp310wlan_prog_vif_apsd_type(int index,
unsigned char *vif_addr,
unsigned int uapsd_type);
extern int uccp310wlan_prog_vif_long_retry(int index,
unsigned char *vif_addr,
unsigned int long_retry);
extern int uccp310wlan_prog_vif_short_retry(int index,
unsigned char *vif_addr,
unsigned int short_retry);
extern int uccp310wlan_prog_vif_bssid(int index,
unsigned char *vif_addr,
unsigned char *bssid);
extern int uccp310wlan_prog_powersave_state(int index,
unsigned char *vif_addr,
unsigned int powersave_state);
extern int uccp310wlan_prog_global_cfg(unsigned int rx_msdu_lifetime,
unsigned int tx_msdu_lifetime,
unsigned int sensitivity,
unsigned int dyn_ed_enabled,
unsigned int dyn_ed_ceiling,
unsigned char *rf_params);
extern int uccp310wlan_prog_txpower(unsigned int txpower);
extern int uccp310wlan_prog_mcast_addr_cfg(unsigned char *mcast_addr,
unsigned int add_filter);
extern int uccp310wlan_prog_mcast_filter_control(unsigned int enable_mcast_filtering);
extern int uccp310wlan_prog_rcv_bcn_mode(unsigned int bcn_rcv_mode);
extern int uccp310wlan_prog_txq_params(int index,
unsigned char *vif_addr,
unsigned int queue,
unsigned int aifs,
unsigned int txop,
unsigned int cwmin,
unsigned int cwmax);
extern int uccp310wlan_prog_channel(unsigned int ch);
extern int uccp310wlan_prog_peer_key(int index,
unsigned char *vif_addr,
unsigned int op,
unsigned int key_id,
unsigned int key_type,
unsigned int cipher_type,
struct umac_key *key);
extern int uccp310wlan_prog_if_key(int index,
unsigned char *vif_addr,
unsigned int op,
unsigned int key_id,
unsigned int cipher_type,
struct umac_key *key);
extern int uccp310wlan_prog_mib_stats(void);
extern int uccp310wlan_prog_phy_stats(void);
extern int uccp310wlan_prog_tx(struct sk_buff *skb);
/* Events */
extern void uccp310wlan_reset_complete(char *lmac_version, void *context);
extern void uccp310wlan_tx_complete(struct umac_event_tx_done *txdone, void *context);
extern void uccp310wlan_rx_frame(struct sk_buff *skb, void *context);
extern void uccp310wlan_mib_stats(struct umac_event_mib_stats *mib_stats, void *context);
extern void uccp310wlan_noa_event(int event, void *msg, void *context, struct sk_buff *skb);
/* Init/Deinit */
extern int uccp310wlan_lmac_if_init(void *context, const char *name);
extern void uccp310wlan_lmac_if_deinit(void);
#endif /* _UCCP310WLAN_LMAC_IF_H_ */
/* EOF */