#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/firmware.h>
#include <linux/etherdevice.h>
#include <linux/delay.h>
#include <linux/completion.h>
#include <linux/module.h>
#include <net/mac80211.h>
#include "p54.h"
#include "lmac.h"
#include "p54pci.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;
MODULE_FIRMWARE(…) …;
static const struct pci_device_id p54p_table[] = …;
MODULE_DEVICE_TABLE(pci, p54p_table);
static int p54p_upload_firmware(struct ieee80211_hw *dev)
{ … }
static void p54p_refill_rx_ring(struct ieee80211_hw *dev,
int ring_index, struct p54p_desc *ring, u32 ring_limit,
struct sk_buff **rx_buf, u32 index)
{ … }
static void p54p_check_rx_ring(struct ieee80211_hw *dev, u32 *index,
int ring_index, struct p54p_desc *ring, u32 ring_limit,
struct sk_buff **rx_buf)
{ … }
static void p54p_check_tx_ring(struct ieee80211_hw *dev, u32 *index,
int ring_index, struct p54p_desc *ring, u32 ring_limit,
struct sk_buff **tx_buf)
{ … }
static void p54p_tasklet(struct tasklet_struct *t)
{ … }
static irqreturn_t p54p_interrupt(int irq, void *dev_id)
{ … }
static void p54p_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
{ … }
static void p54p_stop(struct ieee80211_hw *dev)
{ … }
static int p54p_open(struct ieee80211_hw *dev)
{ … }
static void p54p_firmware_step2(const struct firmware *fw,
void *context)
{ … }
static int p54p_probe(struct pci_dev *pdev,
const struct pci_device_id *id)
{ … }
static void p54p_remove(struct pci_dev *pdev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int p54p_suspend(struct device *device)
{ … }
static int p54p_resume(struct device *device)
{ … }
static SIMPLE_DEV_PM_OPS(p54pci_pm_ops, p54p_suspend, p54p_resume);
#define P54P_PM_OPS …
#else
#define P54P_PM_OPS …
#endif
static struct pci_driver p54p_driver = …;
module_pci_driver(…) …;