Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
csr_wifi_hip_unifi.h File Reference
#include "csr_wifi_router_ctrl_prim.h"
#include "csr_wifi_router_prim.h"
#include "csr_framework_ext.h"
#include "csr_sdio.h"
#include "csr_macro.h"
#include "csr_wifi_result.h"
#include "unifi_os.h"
#include "unifi_config.h"
#include "csr_wifi_hip_signals.h"

Go to the source code of this file.

Data Structures

struct  _bulk_data_desc
 
struct  _symbol
 
struct  _bulk_data_param
 
struct  _card_info
 
struct  unifi_coredump_req
 
struct  unifi_HipQosInfo
 

Macros

#define SDIO_MANF_ID_CSR   0x032a
 
#define SDIO_CARD_ID_UNIFI_1   0x0001
 
#define SDIO_CARD_ID_UNIFI_2   0x0002
 
#define SDIO_CARD_ID_UNIFI_3   0x0007
 
#define SDIO_CARD_ID_UNIFI_4   0x0008
 
#define SDIO_WLAN_FUNC_ID_UNIFI_1   0x0001
 
#define SDIO_WLAN_FUNC_ID_UNIFI_2   0x0001
 
#define SDIO_WLAN_FUNC_ID_UNIFI_3   0x0001
 
#define SDIO_WLAN_FUNC_ID_UNIFI_4   0x0002
 
#define UNIFI_SDIO_CLOCK_MAX_HZ   50000000 /* Hz */
 
#define UNIFI_SDIO_CLOCK_INIT_HZ   12500000 /* Hz */
 
#define UNIFI_SDIO_CLOCK_SAFE_HZ   1000000 /* Hz */
 
#define UNIFI_IO_BLOCK_SIZE   64
 
#define UNIFI_WOL_OFF   0
 
#define UNIFI_WOL_SDIO   1
 
#define UNIFI_WOL_PIO   2
 
#define UNIFI_NO_OF_TX_QS   4
 
#define CSR_WIFI_HIP_RESERVED_HOST_TAG   0xFFFFFFFF
 
#define UNIFI_SOFT_TRAFFIC_Q_LENGTH   (20 + 1)
 
#define UNIFI_SOFT_COMMAND_Q_LENGTH   (16 + 1)
 
#define UNIFI_MAC_ADDRESS_COPY(dst, src)
 
#define UNIFI_MAC_ADDRESS_CMP(addr1, addr2)
 
#define UNIFI_FW_STA   1 /* Identify STA firmware file */
 
#define CSR_WIFI_INTMODE_DEFAULT   0
 
#define CSR_WIFI_INTMODE_RUN_BH_ONCE   1 /* Run BH once per interrupt */
 

Typedefs

typedef struct _bulk_data_desc bulk_data_desc_t
 
typedef struct _symbol symbol_t
 
typedef struct card card_t
 
typedef struct _bulk_data_param bulk_data_param_t
 
typedef struct _card_info card_info_t
 
typedef enum unifi_coredump_space unifi_coredump_space_t
 
typedef struct unifi_coredump_req unifi_coredump_req_t
 

Enumerations

enum  unifi_TrafficQueue {
  UNIFI_TRAFFIC_Q_BK = 0, UNIFI_TRAFFIC_Q_BE, UNIFI_TRAFFIC_Q_VI, UNIFI_TRAFFIC_Q_VO,
  UNIFI_TRAFFIC_Q_EAPOL, UNIFI_TRAFFIC_Q_MAX, UNIFI_TRAFFIC_Q_MLME
}
 
enum  unifi_coredump_space {
  UNIFI_COREDUMP_MAC_REG, UNIFI_COREDUMP_PHY_REG, UNIFI_COREDUMP_SH_DMEM, UNIFI_COREDUMP_MAC_DMEM,
  UNIFI_COREDUMP_PHY_DMEM, UNIFI_COREDUMP_TRIGGER_MAGIC = 0xFEED
}
 
enum  unifi_low_power_mode { UNIFI_LOW_POWER_DISABLED, UNIFI_LOW_POWER_ENABLED }
 
enum  unifi_periodic_wake_mode { UNIFI_PERIODIC_WAKE_HOST_DISABLED, UNIFI_PERIODIC_WAKE_HOST_ENABLED }
 
enum  unifi_dbg_processors_select {
  UNIFI_PROC_MAC, UNIFI_PROC_PHY, UNIFI_PROC_BT, UNIFI_PROC_BOTH,
  UNIFI_PROC_INVALID
}
 

Functions

card_tunifi_alloc_card (CsrSdioFunction *sdiopriv, void *ospriv)
 
CsrResult unifi_init_card (card_t *card, s32 led_mask)
 
void unifi_free_card (card_t *card)
 
void unifi_cancel_pending_signals (card_t *card)
 
CsrResult unifi_send_signal (card_t *card, const u8 *sigptr, u32 siglen, const bulk_data_param_t *bulkdata)
 
CsrResult unifi_send_resources_available (card_t *card, const u8 *sigptr)
 
void unifi_card_info (card_t *card, card_info_t *card_info)
 
CsrResult unifi_check_io_status (card_t *card, s32 *status)
 
CsrResult unifi_bh (card_t *card, u32 *remaining)
 
CsrResult unifi_configure_low_power_mode (card_t *card, enum unifi_low_power_mode low_power_mode, enum unifi_periodic_wake_mode periodic_wake_mode)
 
CsrResult unifi_force_low_power_mode (card_t *card)
 
CsrResult unifi_ta_configure (card_t *card, CsrWifiRouterCtrlTrafficConfigType config_type, const CsrWifiRouterCtrlTrafficConfig *config)
 
void unifi_ta_sample (card_t *card, CsrWifiRouterCtrlProtocolDirection direction, const bulk_data_desc_t *data, const u8 *saddr, const u8 *sta_macaddr, u32 timestamp, u16 rate)
 
void unifi_ta_classification (card_t *card, CsrWifiRouterCtrlTrafficType traffic_type, u16 period)
 
CsrResult unifi_card_hard_reset (card_t *card)
 
CsrResult unifi_card_readn (card_t *card, u32 unifi_addr, void *pdata, u16 len)
 
CsrResult unifi_card_read16 (card_t *card, u32 unifi_addr, u16 *pdata)
 
CsrResult unifi_card_write16 (card_t *card, u32 unifi_addr, u16 data)
 
CsrResult unifi_card_stop_processor (card_t *card, enum unifi_dbg_processors_select which)
 
unifi_TrafficQueue unifi_frame_priority_to_queue (CSR_PRIORITY priority)
 
CSR_PRIORITY unifi_get_default_downgrade_priority (unifi_TrafficQueue queue)
 
void unifi_pause_xmit (void *ospriv, unifi_TrafficQueue queue)
 
void unifi_restart_xmit (void *ospriv, unifi_TrafficQueue queue)
 
CsrResult unifi_run_bh (void *ospriv)
 
void unifi_receive_event (void *ospriv, u8 *sigdata, u32 siglen, const bulk_data_param_t *bulkdata)
 
void unifi_get_hip_qos_info (card_t *card, unifi_HipQosInfo *hipqosinfo)
 
voidunifi_fw_read_start (void *ospriv, s8 is_fw, const card_info_t *info)
 
s32 unifi_fw_read (void *ospriv, void *arg, u32 offset, void *buf, u32 len)
 
void unifi_fw_read_stop (void *ospriv, void *dlpriv)
 
voidunifi_fw_open_buffer (void *ospriv, void *fwbuf, u32 len)
 
void unifi_fw_close_buffer (void *ospriv, void *fwbuf)
 
void unifi_ta_indicate_protocol (void *ospriv, CsrWifiRouterCtrlTrafficPacketType packet_type, CsrWifiRouterCtrlProtocolDirection direction, const CsrWifiMacAddress *src_addr)
 
void unifi_ta_indicate_sampling (void *ospriv, CsrWifiRouterCtrlTrafficStats *stats)
 
void unifi_ta_indicate_l4stats (void *ospriv, u32 rxTcpThroughput, u32 txTcpThroughput, u32 rxUdpThroughput, u32 txUdpThroughput)
 
void unifi_rx_queue_flush (void *ospriv)
 
void unifi_sdio_interrupt_handler (card_t *card)
 
CsrResult unifi_init (card_t *card)
 
CsrResult unifi_download (card_t *card, s32 led_mask)
 
CsrResult unifi_start_processors (card_t *card)
 
CsrResult unifi_capture_panic (card_t *card)
 
void unifi_set_interrupt_mode (card_t *card, u32 mode)
 
void unifi_request_max_sdio_clock (card_t *card)
 
const charlookup_bulkcmd_name (u16 id)
 
CsrResult unifi_coredump_get_value (card_t *card, struct unifi_coredump_req *req)
 
CsrResult unifi_coredump_capture (card_t *card, struct unifi_coredump_req *req)
 
CsrResult unifi_coredump_request_at_next_reset (card_t *card, s8 enable)
 
CsrResult unifi_coredump_init (card_t *card, u16 num_dump_buffers)
 
void unifi_coredump_free (card_t *card)
 

Macro Definition Documentation

#define CSR_WIFI_HIP_RESERVED_HOST_TAG   0xFFFFFFFF

Definition at line 81 of file csr_wifi_hip_unifi.h.

#define CSR_WIFI_INTMODE_DEFAULT   0

Definition at line 846 of file csr_wifi_hip_unifi.h.

#define CSR_WIFI_INTMODE_RUN_BH_ONCE   1 /* Run BH once per interrupt */

Definition at line 847 of file csr_wifi_hip_unifi.h.

#define SDIO_CARD_ID_UNIFI_1   0x0001

Definition at line 40 of file csr_wifi_hip_unifi.h.

#define SDIO_CARD_ID_UNIFI_2   0x0002

Definition at line 41 of file csr_wifi_hip_unifi.h.

#define SDIO_CARD_ID_UNIFI_3   0x0007

Definition at line 42 of file csr_wifi_hip_unifi.h.

#define SDIO_CARD_ID_UNIFI_4   0x0008

Definition at line 43 of file csr_wifi_hip_unifi.h.

#define SDIO_MANF_ID_CSR   0x032a

Definition at line 37 of file csr_wifi_hip_unifi.h.

#define SDIO_WLAN_FUNC_ID_UNIFI_1   0x0001

Definition at line 46 of file csr_wifi_hip_unifi.h.

#define SDIO_WLAN_FUNC_ID_UNIFI_2   0x0001

Definition at line 47 of file csr_wifi_hip_unifi.h.

#define SDIO_WLAN_FUNC_ID_UNIFI_3   0x0001

Definition at line 48 of file csr_wifi_hip_unifi.h.

#define SDIO_WLAN_FUNC_ID_UNIFI_4   0x0002

Definition at line 49 of file csr_wifi_hip_unifi.h.

#define UNIFI_FW_STA   1 /* Identify STA firmware file */

Functions that read a portion of a firmware file.

Note: If the UniFi chip runs the f/w from ROM, the HIP core may never call these functions. Also, the HIP core may call these functions even if a f/w file is not available. In this case, it is safe to fail the request.

Definition at line 681 of file csr_wifi_hip_unifi.h.

#define UNIFI_IO_BLOCK_SIZE   64

Definition at line 72 of file csr_wifi_hip_unifi.h.

#define UNIFI_MAC_ADDRESS_CMP (   addr1,
  addr2 
)
Value:
(((addr1)[0] == (addr2)[0]) && ((addr1)[1] == (addr2)[1]) && \
((addr1)[2] == (addr2)[2]) && ((addr1)[3] == (addr2)[3]) && \
((addr1)[4] == (addr2)[4]) && ((addr1)[5] == (addr2)[5]))

Definition at line 110 of file csr_wifi_hip_unifi.h.

#define UNIFI_MAC_ADDRESS_COPY (   dst,
  src 
)
Value:
do { (dst)[0] = (src)[0]; (dst)[1] = (src)[1]; \
(dst)[2] = (src)[2]; (dst)[3] = (src)[3]; \
(dst)[4] = (src)[4]; (dst)[5] = (src)[5]; \
} while (0)

Definition at line 104 of file csr_wifi_hip_unifi.h.

#define UNIFI_NO_OF_TX_QS   4

Definition at line 79 of file csr_wifi_hip_unifi.h.

#define UNIFI_SDIO_CLOCK_INIT_HZ   12500000 /* Hz */

Definition at line 61 of file csr_wifi_hip_unifi.h.

#define UNIFI_SDIO_CLOCK_MAX_HZ   50000000 /* Hz */

Definition at line 52 of file csr_wifi_hip_unifi.h.

#define UNIFI_SDIO_CLOCK_SAFE_HZ   1000000 /* Hz */

Definition at line 69 of file csr_wifi_hip_unifi.h.

#define UNIFI_SOFT_COMMAND_Q_LENGTH   (16 + 1)

Definition at line 96 of file csr_wifi_hip_unifi.h.

#define UNIFI_SOFT_TRAFFIC_Q_LENGTH   (20 + 1)

Definition at line 95 of file csr_wifi_hip_unifi.h.

#define UNIFI_WOL_OFF   0

Definition at line 74 of file csr_wifi_hip_unifi.h.

#define UNIFI_WOL_PIO   2

Definition at line 76 of file csr_wifi_hip_unifi.h.

#define UNIFI_WOL_SDIO   1

Definition at line 75 of file csr_wifi_hip_unifi.h.

Typedef Documentation

typedef struct card card_t

Definition at line 175 of file csr_wifi_hip_unifi.h.

Enumeration Type Documentation

Enumerator:
UNIFI_COREDUMP_MAC_REG 
UNIFI_COREDUMP_PHY_REG 
UNIFI_COREDUMP_SH_DMEM 
UNIFI_COREDUMP_MAC_DMEM 
UNIFI_COREDUMP_PHY_DMEM 
UNIFI_COREDUMP_TRIGGER_MAGIC 

Definition at line 209 of file csr_wifi_hip_unifi.h.

Enumerator:
UNIFI_PROC_MAC 
UNIFI_PROC_PHY 
UNIFI_PROC_BT 
UNIFI_PROC_BOTH 
UNIFI_PROC_INVALID 

Definition at line 550 of file csr_wifi_hip_unifi.h.

UniFi Low Power Mode (Deep Sleep Signaling)

unifi_low_power_mode defines the UniFi Deep Sleep Signaling status. Use with unifi_configure_low_power_mode() to enable/disable the Deep Sleep Signaling.

Enumerator:
UNIFI_LOW_POWER_DISABLED 
UNIFI_LOW_POWER_ENABLED 

Definition at line 408 of file csr_wifi_hip_unifi.h.

Periodic Wake Host Mode

unifi_periodic_wake_mode defines the Periodic Wake Host Mode. It can only be set to UNIFI_PERIODIC_WAKE_HOST_ENABLED if low_power_mode == UNIFI_LOW_POWER_ENABLED.

Enumerator:
UNIFI_PERIODIC_WAKE_HOST_DISABLED 
UNIFI_PERIODIC_WAKE_HOST_ENABLED 

Definition at line 421 of file csr_wifi_hip_unifi.h.

Enumerator:
UNIFI_TRAFFIC_Q_BK 
UNIFI_TRAFFIC_Q_BE 
UNIFI_TRAFFIC_Q_VI 
UNIFI_TRAFFIC_Q_VO 
UNIFI_TRAFFIC_Q_EAPOL 
UNIFI_TRAFFIC_Q_MAX 
UNIFI_TRAFFIC_Q_MLME 

Definition at line 118 of file csr_wifi_hip_unifi.h.

Function Documentation

const char* lookup_bulkcmd_name ( u16  id)

Definition at line 32 of file csr_wifi_hip_unifi_signal_names.c.

CsrResult unifi_capture_panic ( card_t card)

Definition at line 1359 of file csr_wifi_hip_card_sdio.c.

CsrResult unifi_card_read16 ( card_t card,
u32  unifi_addr,
u16 pdata 
)

Definition at line 1165 of file csr_wifi_hip_card_sdio_mem.c.

CsrResult unifi_card_readn ( card_t card,
u32  unifi_addr,
void pdata,
u16  len 
)

Definition at line 1298 of file csr_wifi_hip_card_sdio_mem.c.

CsrResult unifi_card_stop_processor ( card_t card,
enum unifi_dbg_processors_select  which 
)

Definition at line 3685 of file csr_wifi_hip_card_sdio.c.

CsrResult unifi_card_write16 ( card_t card,
u32  unifi_addr,
u16  data 
)

Definition at line 1202 of file csr_wifi_hip_card_sdio_mem.c.

CsrResult unifi_coredump_capture ( card_t card,
struct unifi_coredump_req req 
)

Definition at line 191 of file csr_wifi_hip_dump.c.

void unifi_coredump_free ( card_t card)

Definition at line 822 of file csr_wifi_hip_dump.c.

CsrResult unifi_coredump_get_value ( card_t card,
struct unifi_coredump_req req 
)

Definition at line 355 of file csr_wifi_hip_dump.c.

CsrResult unifi_coredump_init ( card_t card,
u16  num_dump_buffers 
)

Definition at line 737 of file csr_wifi_hip_dump.c.

CsrResult unifi_coredump_request_at_next_reset ( card_t card,
s8  enable 
)

Definition at line 103 of file csr_wifi_hip_dump.c.

CsrResult unifi_download ( card_t card,
s32  led_mask 
)

Definition at line 361 of file csr_wifi_hip_card_sdio.c.

void unifi_get_hip_qos_info ( card_t card,
unifi_HipQosInfo hipqosinfo 
)

Definition at line 4084 of file csr_wifi_hip_card_sdio.c.

CsrResult unifi_init ( card_t card)

Definition at line 221 of file csr_wifi_hip_card_sdio.c.

void unifi_request_max_sdio_clock ( card_t card)

Definition at line 3844 of file csr_wifi_hip_card_sdio.c.

void unifi_restart_xmit ( void ospriv,
unifi_TrafficQueue  queue 
)

Definition at line 1905 of file netdev.c.

void unifi_rx_queue_flush ( void ospriv)
void unifi_sdio_interrupt_handler ( card_t card)

Call-out from the SDIO glue layer.

The glue layer needs to call unifi_sdio_interrupt_handler() every time an interrupts occurs.

Parameters
cardthe HIP core context.

Definition at line 289 of file csr_wifi_hip_card_sdio_intr.c.

void unifi_set_interrupt_mode ( card_t card,
u32  mode 
)

Definition at line 3800 of file csr_wifi_hip_card_sdio.c.

CsrResult unifi_start_processors ( card_t card)

Definition at line 3823 of file csr_wifi_hip_card_sdio.c.

void unifi_ta_indicate_l4stats ( void ospriv,
u32  rxTcpThroughput,
u32  txTcpThroughput,
u32  rxUdpThroughput,
u32  txUdpThroughput 
)

Definition at line 393 of file sme_native.c.