linux/drivers/net/wireless/realtek/rtlwifi/core.c

// SPDX-License-Identifier: GPL-2.0
/* Copyright(c) 2009-2012  Realtek Corporation.*/

#include "wifi.h"
#include "core.h"
#include "cam.h"
#include "base.h"
#include "ps.h"
#include "pwrseqcmd.h"

#include "btcoexist/rtl_btc.h"
#include <linux/firmware.h>
#include <linux/export.h>
#include <net/cfg80211.h>

u8 channel5g[CHANNEL_MAX_NUMBER_5G] =;
EXPORT_SYMBOL();

u8 channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M] =;
EXPORT_SYMBOL();

void rtl_addr_delay(u32 addr)
{}
EXPORT_SYMBOL();

void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
		     u32 mask, u32 data)
{}
EXPORT_SYMBOL();

void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data)
{}
EXPORT_SYMBOL();

static void rtl_fw_do_work(const struct firmware *firmware, void *context,
			   bool is_wow)
{}

void rtl_fw_cb(const struct firmware *firmware, void *context)
{}
EXPORT_SYMBOL();

void rtl_wowlan_fw_cb(const struct firmware *firmware, void *context)
{}
EXPORT_SYMBOL();

/*mutex for start & stop is must here. */
static int rtl_op_start(struct ieee80211_hw *hw)
{}

static void rtl_op_stop(struct ieee80211_hw *hw, bool suspend)
{}

static void rtl_op_tx(struct ieee80211_hw *hw,
		      struct ieee80211_tx_control *control,
		      struct sk_buff *skb)
{}

static int rtl_op_add_interface(struct ieee80211_hw *hw,
		struct ieee80211_vif *vif)
{}

static void rtl_op_remove_interface(struct ieee80211_hw *hw,
		struct ieee80211_vif *vif)
{}

static int rtl_op_change_interface(struct ieee80211_hw *hw,
				   struct ieee80211_vif *vif,
				   enum nl80211_iftype new_type, bool p2p)
{}

#ifdef CONFIG_PM
static u16 crc16_ccitt(u8 data, u16 crc)
{}

static u16 _calculate_wol_pattern_crc(u8 *pattern, u16 len)
{}

static void _rtl_add_wowlan_patterns(struct ieee80211_hw *hw,
				     struct cfg80211_wowlan *wow)
{}

static int rtl_op_suspend(struct ieee80211_hw *hw,
			  struct cfg80211_wowlan *wow)
{}

static int rtl_op_resume(struct ieee80211_hw *hw)
{}
#endif

static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
{}

static void rtl_op_configure_filter(struct ieee80211_hw *hw,
				    unsigned int changed_flags,
				    unsigned int *new_flags, u64 multicast)
{}

static int rtl_op_sta_add(struct ieee80211_hw *hw,
			 struct ieee80211_vif *vif,
			 struct ieee80211_sta *sta)
{}

static int rtl_op_sta_remove(struct ieee80211_hw *hw,
				struct ieee80211_vif *vif,
				struct ieee80211_sta *sta)
{}

static int _rtl_get_hal_qnum(u16 queue)
{}

/*
 *for mac80211 VO = 0, VI = 1, BE = 2, BK = 3
 *for rtl819x  BE = 0, BK = 1, VI = 2, VO = 3
 */
static int rtl_op_conf_tx(struct ieee80211_hw *hw,
			  struct ieee80211_vif *vif,
			  unsigned int link_id, u16 queue,
			  const struct ieee80211_tx_queue_params *param)
{}

static void send_beacon_frame(struct ieee80211_hw *hw,
			      struct ieee80211_vif *vif)
{}

void rtl_update_beacon_work_callback(struct work_struct *work)
{}
EXPORT_SYMBOL_GPL();

static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
				    struct ieee80211_vif *vif,
				    struct ieee80211_bss_conf *bss_conf,
				    u64 changed)
{}

static u64 rtl_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
{}

static void rtl_op_set_tsf(struct ieee80211_hw *hw,
			   struct ieee80211_vif *vif, u64 tsf)
{}

static void rtl_op_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
{}

static void rtl_op_sta_notify(struct ieee80211_hw *hw,
			      struct ieee80211_vif *vif,
			      enum sta_notify_cmd cmd,
			      struct ieee80211_sta *sta)
{}

static int rtl_op_ampdu_action(struct ieee80211_hw *hw,
			       struct ieee80211_vif *vif,
			       struct ieee80211_ampdu_params *params)
{}

static void rtl_op_sw_scan_start(struct ieee80211_hw *hw,
				 struct ieee80211_vif *vif,
				 const u8 *mac_addr)
{}

static void rtl_op_sw_scan_complete(struct ieee80211_hw *hw,
				    struct ieee80211_vif *vif)
{}

static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
			  struct ieee80211_vif *vif, struct ieee80211_sta *sta,
			  struct ieee80211_key_conf *key)
{}

static void rtl_op_rfkill_poll(struct ieee80211_hw *hw)
{}

/* this function is called by mac80211 to flush tx buffer
 * before switch channle or power save, or tx buffer packet
 * maybe send after offchannel or rf sleep, this may cause
 * dis-association by AP */
static void rtl_op_flush(struct ieee80211_hw *hw,
			 struct ieee80211_vif *vif,
			 u32 queues,
			 bool drop)
{}

static int rtl_op_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
			  bool set)
{}

/*	Description:
 *		This routine deals with the Power Configuration CMD
 *		 parsing for RTL8723/RTL8188E Series IC.
 *	Assumption:
 *		We should follow specific format that was released from HW SD.
 */
bool rtl_hal_pwrseqcmdparsing(struct rtl_priv *rtlpriv, u8 cut_version,
			      u8 faversion, u8 interface_type,
			      struct wlan_pwr_cfg pwrcfgcmd[])
{}
EXPORT_SYMBOL();

bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb)
{}
EXPORT_SYMBOL();

void rtl_init_sw_leds(struct ieee80211_hw *hw)
{}
EXPORT_SYMBOL();

const struct ieee80211_ops rtl_ops =;
EXPORT_SYMBOL_GPL();

bool rtl_btc_status_false(void)
{}
EXPORT_SYMBOL_GPL();

void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igvalue)
{}
EXPORT_SYMBOL();