162306a36Sopenharmony_ci/* Encapsulate basic setting changes on Hermes hardware 262306a36Sopenharmony_ci * 362306a36Sopenharmony_ci * See copyright notice in main.c 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci#ifndef _ORINOCO_HW_H_ 662306a36Sopenharmony_ci#define _ORINOCO_HW_H_ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <linux/types.h> 962306a36Sopenharmony_ci#include <linux/wireless.h> 1062306a36Sopenharmony_ci#include <net/cfg80211.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* Hardware BAPs */ 1362306a36Sopenharmony_ci#define USER_BAP 0 1462306a36Sopenharmony_ci#define IRQ_BAP 1 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/* WEP key sizes */ 1762306a36Sopenharmony_ci#define SMALL_KEY_SIZE 5 1862306a36Sopenharmony_ci#define LARGE_KEY_SIZE 13 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci/* Number of supported channels */ 2162306a36Sopenharmony_ci#define NUM_CHANNELS 14 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci/* Forward declarations */ 2462306a36Sopenharmony_cistruct orinoco_private; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciint determine_fw_capabilities(struct orinoco_private *priv, char *fw_name, 2762306a36Sopenharmony_ci size_t fw_name_len, u32 *hw_ver); 2862306a36Sopenharmony_ciint orinoco_hw_read_card_settings(struct orinoco_private *priv, u8 *dev_addr); 2962306a36Sopenharmony_ciint orinoco_hw_allocate_fid(struct orinoco_private *priv); 3062306a36Sopenharmony_ciint orinoco_get_bitratemode(int bitrate, int automatic); 3162306a36Sopenharmony_civoid orinoco_get_ratemode_cfg(int ratemode, int *bitrate, int *automatic); 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciint orinoco_hw_program_rids(struct orinoco_private *priv); 3462306a36Sopenharmony_ciint orinoco_hw_get_tkip_iv(struct orinoco_private *priv, int key, u8 *tsc); 3562306a36Sopenharmony_ciint __orinoco_hw_set_bitrate(struct orinoco_private *priv); 3662306a36Sopenharmony_ciint orinoco_hw_get_act_bitrate(struct orinoco_private *priv, int *bitrate); 3762306a36Sopenharmony_ciint __orinoco_hw_set_wap(struct orinoco_private *priv); 3862306a36Sopenharmony_ciint __orinoco_hw_setup_wepkeys(struct orinoco_private *priv); 3962306a36Sopenharmony_ciint __orinoco_hw_setup_enc(struct orinoco_private *priv); 4062306a36Sopenharmony_ciint __orinoco_hw_set_tkip_key(struct orinoco_private *priv, int key_idx, 4162306a36Sopenharmony_ci int set_tx, const u8 *key, size_t key_len, 4262306a36Sopenharmony_ci const u8 *rsc, size_t rsc_len, 4362306a36Sopenharmony_ci const u8 *tsc, size_t tsc_len); 4462306a36Sopenharmony_ciint orinoco_clear_tkip_key(struct orinoco_private *priv, int key_idx); 4562306a36Sopenharmony_ciint __orinoco_hw_set_multicast_list(struct orinoco_private *priv, 4662306a36Sopenharmony_ci struct net_device *dev, 4762306a36Sopenharmony_ci int mc_count, int promisc); 4862306a36Sopenharmony_ciint orinoco_hw_get_essid(struct orinoco_private *priv, int *active, 4962306a36Sopenharmony_ci char buf[IW_ESSID_MAX_SIZE + 1]); 5062306a36Sopenharmony_ciint orinoco_hw_get_freq(struct orinoco_private *priv); 5162306a36Sopenharmony_ciint orinoco_hw_get_bitratelist(struct orinoco_private *priv, 5262306a36Sopenharmony_ci int *numrates, s32 *rates, int max); 5362306a36Sopenharmony_ciint orinoco_hw_trigger_scan(struct orinoco_private *priv, 5462306a36Sopenharmony_ci const struct cfg80211_ssid *ssid); 5562306a36Sopenharmony_ciint orinoco_hw_disassociate(struct orinoco_private *priv, 5662306a36Sopenharmony_ci u8 *addr, u16 reason_code); 5762306a36Sopenharmony_ciint orinoco_hw_get_current_bssid(struct orinoco_private *priv, 5862306a36Sopenharmony_ci u8 *addr); 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci#endif /* _ORINOCO_HW_H_ */ 61