#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/etherdevice.h>
#include <linux/eeprom_93cx6.h>
#include <linux/module.h>
#include <net/mac80211.h>
#include "rtl8180.h"
#include "rtl8225.h"
#include "sa2400.h"
#include "max2820.h"
#include "grf5101.h"
#include "rtl8225se.h"
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static const struct pci_device_id rtl8180_table[] = …;
MODULE_DEVICE_TABLE(pci, rtl8180_table);
static const struct ieee80211_rate rtl818x_rates[] = …;
static const struct ieee80211_channel rtl818x_channels[] = …;
static const int rtl8187se_queues_map[RTL8187SE_NR_TX_QUEUES] = …;
static const int rtl8180_queues_map[RTL8180_NR_TX_QUEUES] = …;
static const u8 rtl8187se_lna_gain[4] = …;
void rtl8180_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data)
{ … }
static void rtl8180_handle_rx(struct ieee80211_hw *dev)
{ … }
static void rtl8180_handle_tx(struct ieee80211_hw *dev, unsigned int prio)
{ … }
static irqreturn_t rtl8187se_interrupt(int irq, void *dev_id)
{ … }
static irqreturn_t rtl8180_interrupt(int irq, void *dev_id)
{ … }
static void rtl8180_tx(struct ieee80211_hw *dev,
struct ieee80211_tx_control *control,
struct sk_buff *skb)
{ … }
static void rtl8180_set_anaparam3(struct rtl8180_priv *priv, u16 anaparam3)
{ … }
void rtl8180_set_anaparam2(struct rtl8180_priv *priv, u32 anaparam2)
{ … }
void rtl8180_set_anaparam(struct rtl8180_priv *priv, u32 anaparam)
{ … }
static void rtl8187se_mac_config(struct ieee80211_hw *dev)
{ … }
static void rtl8187se_set_antenna_config(struct ieee80211_hw *dev, u8 def_ant,
bool diversity)
{ … }
static void rtl8180_int_enable(struct ieee80211_hw *dev)
{ … }
static void rtl8180_int_disable(struct ieee80211_hw *dev)
{ … }
static void rtl8180_conf_basic_rates(struct ieee80211_hw *dev,
u32 basic_mask)
{ … }
static void rtl8180_config_cardbus(struct ieee80211_hw *dev)
{ … }
static int rtl8180_init_hw(struct ieee80211_hw *dev)
{ … }
static int rtl8180_init_rx_ring(struct ieee80211_hw *dev)
{ … }
static void rtl8180_free_rx_ring(struct ieee80211_hw *dev)
{ … }
static int rtl8180_init_tx_ring(struct ieee80211_hw *dev,
unsigned int prio, unsigned int entries)
{ … }
static void rtl8180_free_tx_ring(struct ieee80211_hw *dev, unsigned int prio)
{ … }
static int rtl8180_start(struct ieee80211_hw *dev)
{ … }
static void rtl8180_stop(struct ieee80211_hw *dev, bool suspend)
{ … }
static u64 rtl8180_get_tsf(struct ieee80211_hw *dev,
struct ieee80211_vif *vif)
{ … }
static void rtl8180_beacon_work(struct work_struct *work)
{ … }
static int rtl8180_add_interface(struct ieee80211_hw *dev,
struct ieee80211_vif *vif)
{ … }
static void rtl8180_remove_interface(struct ieee80211_hw *dev,
struct ieee80211_vif *vif)
{ … }
static int rtl8180_config(struct ieee80211_hw *dev, u32 changed)
{ … }
static void rtl8187se_conf_ac_parm(struct ieee80211_hw *dev, u8 queue)
{ … }
static int rtl8180_conf_tx(struct ieee80211_hw *dev,
struct ieee80211_vif *vif,
unsigned int link_id, u16 queue,
const struct ieee80211_tx_queue_params *params)
{ … }
static void rtl8180_conf_erp(struct ieee80211_hw *dev,
struct ieee80211_bss_conf *info)
{ … }
static void rtl8180_bss_info_changed(struct ieee80211_hw *dev,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
u64 changed)
{ … }
static u64 rtl8180_prepare_multicast(struct ieee80211_hw *dev,
struct netdev_hw_addr_list *mc_list)
{ … }
static void rtl8180_configure_filter(struct ieee80211_hw *dev,
unsigned int changed_flags,
unsigned int *total_flags,
u64 multicast)
{ … }
static const struct ieee80211_ops rtl8180_ops = …;
static void rtl8180_eeprom_register_read(struct eeprom_93cx6 *eeprom)
{ … }
static void rtl8180_eeprom_register_write(struct eeprom_93cx6 *eeprom)
{ … }
static void rtl8180_eeprom_read(struct rtl8180_priv *priv)
{ … }
static int rtl8180_probe(struct pci_dev *pdev,
const struct pci_device_id *id)
{ … }
static void rtl8180_remove(struct pci_dev *pdev)
{ … }
#define rtl8180_suspend …
#define rtl8180_resume …
static SIMPLE_DEV_PM_OPS(rtl8180_pm_ops, rtl8180_suspend, rtl8180_resume);
static struct pci_driver rtl8180_driver = …;
module_pci_driver(…) …;