linux/drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c

// SPDX-License-Identifier: GPL-2.0+
/* Copyright (c) 2018 Quantenna Communications, Inc. All rights reserved. */

#include <linux/module.h>
#include <linux/printk.h>
#include <linux/pci.h>
#include <linux/spinlock.h>
#include <linux/mutex.h>
#include <linux/netdevice.h>
#include <linux/seq_file.h>
#include <linux/workqueue.h>
#include <linux/completion.h>

#include "pcie_priv.h"
#include "bus.h"
#include "shm_ipc.h"
#include "core.h"
#include "debug.h"
#include "util.h"
#include "qtn_hw_ids.h"

#define QTN_SYSCTL_BAR
#define QTN_SHMEM_BAR
#define QTN_DMA_BAR

#define QTN_PCIE_MAX_FW_BUFSZ

static bool use_msi =;
module_param(use_msi, bool, 0644);
MODULE_PARM_DESC();

static unsigned int tx_bd_size_param;
module_param(tx_bd_size_param, uint, 0644);
MODULE_PARM_DESC();

static unsigned int rx_bd_size_param;
module_param(rx_bd_size_param, uint, 0644);
MODULE_PARM_DESC();

static u8 flashboot =;
module_param(flashboot, byte, 0644);
MODULE_PARM_DESC();

static unsigned int fw_blksize_param =;
module_param(fw_blksize_param, uint, 0644);
MODULE_PARM_DESC();

#define DRV_NAME

int qtnf_pcie_control_tx(struct qtnf_bus *bus, struct sk_buff *skb)
{}

int qtnf_pcie_alloc_skb_array(struct qtnf_pcie_bus_priv *priv)
{}

static void qtnf_pcie_bringup_fw_async(struct qtnf_bus *bus)
{}

static int qtnf_dbg_mps_show(struct seq_file *s, void *data)
{}

static int qtnf_dbg_msi_show(struct seq_file *s, void *data)
{}

static int qtnf_dbg_shm_stats(struct seq_file *s, void *data)
{}

int qtnf_pcie_fw_boot_done(struct qtnf_bus *bus)
{}

static void qtnf_tune_pcie_mps(struct pci_dev *pdev)
{}

static void qtnf_pcie_init_irq(struct qtnf_pcie_bus_priv *priv, bool use_msi)
{}

static void __iomem *qtnf_map_bar(struct pci_dev *pdev, u8 index)
{}

static void qtnf_pcie_control_rx_callback(void *arg, const u8 __iomem *buf,
					  size_t len)
{}

void qtnf_pcie_init_shm_ipc(struct qtnf_pcie_bus_priv *priv,
			    struct qtnf_shm_ipc_region __iomem *ipc_tx_reg,
			    struct qtnf_shm_ipc_region __iomem *ipc_rx_reg,
			    const struct qtnf_shm_ipc_int *ipc_int)
{}

static int qtnf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{}

static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv)
{}

static void qtnf_pcie_remove(struct pci_dev *dev)
{}

#ifdef CONFIG_PM_SLEEP
static int qtnf_pcie_suspend(struct device *dev)
{}

static int qtnf_pcie_resume(struct device *dev)
{}

/* Power Management Hooks */
static SIMPLE_DEV_PM_OPS(qtnf_pcie_pm_ops, qtnf_pcie_suspend,
			 qtnf_pcie_resume);
#endif

static const struct pci_device_id qtnf_pcie_devid_table[] =;

MODULE_DEVICE_TABLE(pci, qtnf_pcie_devid_table);

static struct pci_driver qtnf_pcie_drv_data =;

module_pci_driver()

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();