#include "wifi.h"
#include "efuse.h"
#include "pci.h"
#include <linux/export.h>
static const u8 PGPKT_DATA_SIZE = …;
static const int EFUSE_MAX_SIZE = …;
#define START_ADDRESS …
#define REG_MCUFWDL …
static const struct rtl_efuse_ops efuse_ops = …;
static void efuse_shadow_read_1byte(struct ieee80211_hw *hw, u16 offset,
u8 *value);
static void efuse_shadow_read_2byte(struct ieee80211_hw *hw, u16 offset,
u16 *value);
static void efuse_shadow_read_4byte(struct ieee80211_hw *hw, u16 offset,
u32 *value);
static void efuse_shadow_write_1byte(struct ieee80211_hw *hw, u16 offset,
u8 value);
static void efuse_shadow_write_2byte(struct ieee80211_hw *hw, u16 offset,
u16 value);
static void efuse_shadow_write_4byte(struct ieee80211_hw *hw, u16 offset,
u32 value);
static int efuse_one_byte_write(struct ieee80211_hw *hw, u16 addr,
u8 data);
static void efuse_read_all_map(struct ieee80211_hw *hw, u8 *efuse);
static int efuse_pg_packet_read(struct ieee80211_hw *hw, u8 offset,
u8 *data);
static int efuse_pg_packet_write(struct ieee80211_hw *hw, u8 offset,
u8 word_en, u8 *data);
static void efuse_word_enable_data_read(u8 word_en, u8 *sourdata,
u8 *targetdata);
static u8 enable_efuse_data_write(struct ieee80211_hw *hw,
u16 efuse_addr, u8 word_en, u8 *data);
static u16 efuse_get_current_size(struct ieee80211_hw *hw);
static u8 efuse_calculate_word_cnts(u8 word_en);
void efuse_initialize(struct ieee80211_hw *hw)
{ … }
u8 efuse_read_1byte(struct ieee80211_hw *hw, u16 address)
{ … }
EXPORT_SYMBOL(…);
void efuse_write_1byte(struct ieee80211_hw *hw, u16 address, u8 value)
{ … }
void read_efuse_byte(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf)
{ … }
EXPORT_SYMBOL_GPL(…);
void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
{ … }
bool efuse_shadow_update_chk(struct ieee80211_hw *hw)
{ … }
void efuse_shadow_read(struct ieee80211_hw *hw, u8 type,
u16 offset, u32 *value)
{ … }
EXPORT_SYMBOL(…);
void efuse_shadow_write(struct ieee80211_hw *hw, u8 type, u16 offset,
u32 value)
{ … }
bool efuse_shadow_update(struct ieee80211_hw *hw)
{ … }
void rtl_efuse_shadow_map_update(struct ieee80211_hw *hw)
{ … }
EXPORT_SYMBOL(…);
void efuse_force_write_vendor_id(struct ieee80211_hw *hw)
{ … }
void efuse_re_pg_section(struct ieee80211_hw *hw, u8 section_idx)
{ … }
static void efuse_shadow_read_1byte(struct ieee80211_hw *hw,
u16 offset, u8 *value)
{ … }
static void efuse_shadow_read_2byte(struct ieee80211_hw *hw,
u16 offset, u16 *value)
{ … }
static void efuse_shadow_read_4byte(struct ieee80211_hw *hw,
u16 offset, u32 *value)
{ … }
static void efuse_shadow_write_1byte(struct ieee80211_hw *hw,
u16 offset, u8 value)
{ … }
static void efuse_shadow_write_2byte(struct ieee80211_hw *hw,
u16 offset, u16 value)
{ … }
static void efuse_shadow_write_4byte(struct ieee80211_hw *hw,
u16 offset, u32 value)
{ … }
int efuse_one_byte_read(struct ieee80211_hw *hw, u16 addr, u8 *data)
{ … }
EXPORT_SYMBOL(…);
static int efuse_one_byte_write(struct ieee80211_hw *hw, u16 addr, u8 data)
{ … }
static void efuse_read_all_map(struct ieee80211_hw *hw, u8 *efuse)
{ … }
static void efuse_read_data_case1(struct ieee80211_hw *hw, u16 *efuse_addr,
u8 efuse_data, u8 offset, u8 *tmpdata,
u8 *readstate)
{ … }
static int efuse_pg_packet_read(struct ieee80211_hw *hw, u8 offset, u8 *data)
{ … }
static void efuse_write_data_case1(struct ieee80211_hw *hw, u16 *efuse_addr,
u8 efuse_data, u8 offset,
int *continual, u8 *write_state,
struct pgpkt_struct *target_pkt,
int *repeat_times, int *result, u8 word_en)
{ … }
static void efuse_write_data_case2(struct ieee80211_hw *hw, u16 *efuse_addr,
int *continual, u8 *write_state,
struct pgpkt_struct target_pkt,
int *repeat_times, int *result)
{ … }
static int efuse_pg_packet_write(struct ieee80211_hw *hw,
u8 offset, u8 word_en, u8 *data)
{ … }
static void efuse_word_enable_data_read(u8 word_en, u8 *sourdata,
u8 *targetdata)
{ … }
static u8 enable_efuse_data_write(struct ieee80211_hw *hw,
u16 efuse_addr, u8 word_en, u8 *data)
{ … }
void efuse_power_switch(struct ieee80211_hw *hw, u8 write, u8 pwrstate)
{ … }
EXPORT_SYMBOL(…);
static u16 efuse_get_current_size(struct ieee80211_hw *hw)
{ … }
static u8 efuse_calculate_word_cnts(u8 word_en)
{ … }
int rtl_get_hwinfo(struct ieee80211_hw *hw, struct rtl_priv *rtlpriv,
int max_size, u8 *hwinfo, const int *params)
{ … }
EXPORT_SYMBOL_GPL(…);
static void _rtl_fw_block_write_usb(struct ieee80211_hw *hw, u8 *buffer, u32 size)
{ … }
void rtl_fw_block_write(struct ieee80211_hw *hw, u8 *buffer, u32 size)
{ … }
EXPORT_SYMBOL_GPL(…);
void rtl_fw_page_write(struct ieee80211_hw *hw, u32 page, u8 *buffer,
u32 size)
{ … }
EXPORT_SYMBOL_GPL(…);
void rtl_fill_dummy(u8 *pfwbuf, u32 *pfwlen)
{ … }
EXPORT_SYMBOL_GPL(…);
void rtl_efuse_ops_init(struct ieee80211_hw *hw)
{ … }
EXPORT_SYMBOL_GPL(…);