linux/drivers/net/wireless/ti/wl1251/cmd.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * This file is part of wl1251
 *
 * Copyright (c) 1998-2007 Texas Instruments Incorporated
 * Copyright (C) 2008 Nokia Corporation
 */

#ifndef __WL1251_CMD_H__
#define __WL1251_CMD_H__

#include "wl1251.h"

#include <net/cfg80211.h>

struct acx_header;

int wl1251_cmd_send(struct wl1251 *wl, u16 type, void *buf, size_t buf_len);
int wl1251_cmd_test(struct wl1251 *wl, void *buf, size_t buf_len, u8 answer);
int wl1251_cmd_interrogate(struct wl1251 *wl, u16 id, void *buf, size_t len);
int wl1251_cmd_configure(struct wl1251 *wl, u16 id, void *buf, size_t len);
int wl1251_cmd_vbm(struct wl1251 *wl, u8 identity,
		   void *bitmap, u16 bitmap_len, u8 bitmap_control);
int wl1251_cmd_data_path_rx(struct wl1251 *wl, u8 channel, bool enable);
int wl1251_cmd_data_path_tx(struct wl1251 *wl, u8 channel, bool enable);
int wl1251_cmd_join(struct wl1251 *wl, u8 bss_type, u8 channel,
		    u16 beacon_interval, u8 dtim_interval);
int wl1251_cmd_ps_mode(struct wl1251 *wl, u8 ps_mode);
int wl1251_cmd_read_memory(struct wl1251 *wl, u32 addr, void *answer,
			   size_t len);
int wl1251_cmd_template_set(struct wl1251 *wl, u16 cmd_id,
			    void *buf, size_t buf_len);
int wl1251_cmd_scan(struct wl1251 *wl, u8 *ssid, size_t ssid_len,
		    struct ieee80211_channel *channels[],
		    unsigned int n_channels, unsigned int n_probes);
int wl1251_cmd_trigger_scan_to(struct wl1251 *wl, u32 timeout);

/* unit ms */
#define WL1251_COMMAND_TIMEOUT

enum wl1251_commands {};

#define MAX_CMD_PARAMS

struct wl1251_cmd_header {} __packed;

struct  wl1251_command {} __packed;

enum {};


/*
 * CMD_READ_MEMORY
 *
 * The host issues this command to read the WiLink device memory/registers.
 *
 * Note: The Base Band address has special handling (16 bits registers and
 * addresses). For more information, see the hardware specification.
 */
/*
 * CMD_WRITE_MEMORY
 *
 * The host issues this command to write the WiLink device memory/registers.
 *
 * The Base Band address has special handling (16 bits registers and
 * addresses). For more information, see the hardware specification.
 */
#define MAX_READ_SIZE

struct cmd_read_write_memory {} __packed;

#define CMDMBOX_HEADER_LEN
#define CMDMBOX_INFO_ELEM_HEADER_LEN

#define WL1251_SCAN_OPT_PASSIVE
#define WL1251_SCAN_OPT_5GHZ_BAND
#define WL1251_SCAN_OPT_TRIGGERD_SCAN
#define WL1251_SCAN_OPT_PRIORITY_HIGH

#define WL1251_SCAN_MIN_DURATION
#define WL1251_SCAN_MAX_DURATION

#define WL1251_SCAN_NUM_PROBES

struct wl1251_scan_parameters {} __packed;

struct wl1251_scan_ch_parameters {} __packed;

/* SCAN parameters */
#define SCAN_MAX_NUM_OF_CHANNELS

struct wl1251_cmd_scan {} __packed;

enum {};

#define JOIN_CMD_CTRL_TX_FLUSH
#define JOIN_CMD_CTRL_EARLY_WAKEUP_ENABLE


struct cmd_join {} __packed;

struct cmd_enabledisable_path {} __packed;

#define WL1251_MAX_TEMPLATE_SIZE

struct wl1251_cmd_packet_template {} __packed;

#define TIM_ELE_ID
#define PARTIAL_VBM_MAX

struct wl1251_tim {} __packed;

/* Virtual Bit Map update */
struct wl1251_cmd_vbm_update {} __packed;

enum wl1251_cmd_ps_mode {};

struct wl1251_cmd_ps_params {} __packed;

struct wl1251_cmd_trigger_scan_to {} __packed;

/* HW encryption keys */
#define NUM_ACCESS_CATEGORIES_COPY
#define MAX_KEY_SIZE

/* When set, disable HW encryption */
#define DF_ENCRYPTION_DISABLE
/* When set, disable HW decryption */
#define DF_SNIFF_MODE_ENABLE

enum wl1251_cmd_key_action {};

enum wl1251_cmd_key_type {};

/*
 *
 * key_type_e   key size    key format
 * ----------   ---------   ----------
 * 0x00         5, 13, 29   Key data
 * 0x01         5, 13, 29   Key data
 * 0x04         16          16 bytes of key data
 * 0x05         16          16 bytes of key data
 * 0x0a         32          16 bytes of TKIP key data
 *                          8 bytes of RX MIC key data
 *                          8 bytes of TX MIC key data
 * 0x0b         32          16 bytes of TKIP key data
 *                          8 bytes of RX MIC key data
 *                          8 bytes of TX MIC key data
 *
 */

struct wl1251_cmd_set_keys {} __packed;


#endif /* __WL1251_CMD_H__ */