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

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

#include "wifi.h"
#include "core.h"
#include "pci.h"
#include "base.h"
#include "ps.h"
#include "efuse.h"
#include <linux/interrupt.h>
#include <linux/export.h>
#include <linux/module.h>

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

static const u16 pcibridge_vendors[PCI_BRIDGE_VENDOR_MAX] =;

static const u8 ac_to_hwq[] =;

static u8 _rtl_mac_to_hwqueue(struct ieee80211_hw *hw, struct sk_buff *skb)
{}

/* Update PCI dependent default settings*/
static void _rtl_pci_update_default_setting(struct ieee80211_hw *hw)
{}

static bool _rtl_pci_platform_switch_device_pci_aspm(
			struct ieee80211_hw *hw,
			u8 value)
{}

/* @value is PCI_EXP_LNKCTL_CLKREQ_EN or 0 to enable/disable clk request. */
static void _rtl_pci_switch_clk_req(struct ieee80211_hw *hw, u16 value)
{}

/*Disable RTL8192SE ASPM & Disable Pci Bridge ASPM*/
static void rtl_pci_disable_aspm(struct ieee80211_hw *hw)
{}

/*Enable RTL8192SE ASPM & Enable Pci Bridge ASPM for
 *power saving We should follow the sequence to enable
 *RTL8192SE first then enable Pci Bridge ASPM
 *or the system will show bluescreen.
 */
static void rtl_pci_enable_aspm(struct ieee80211_hw *hw)
{}

static bool rtl_pci_get_amd_l1_patch(struct ieee80211_hw *hw)
{}

static bool rtl_pci_check_buddy_priv(struct ieee80211_hw *hw,
				     struct rtl_priv **buddy_priv)
{}

static void rtl_pci_parse_configuration(struct pci_dev *pdev,
					struct ieee80211_hw *hw)
{}

static void rtl_pci_init_aspm(struct ieee80211_hw *hw)
{}

static void _rtl_pci_io_handler_init(struct device *dev,
				     struct ieee80211_hw *hw)
{}

static bool _rtl_update_earlymode_info(struct ieee80211_hw *hw,
				       struct sk_buff *skb,
				       struct rtl_tcb_desc *tcb_desc, u8 tid)
{}

/* just for early mode now */
static void _rtl_pci_tx_chk_waitq(struct ieee80211_hw *hw)
{}

static void _rtl_pci_tx_isr(struct ieee80211_hw *hw, int prio)
{}

static int _rtl_pci_init_one_rxdesc(struct ieee80211_hw *hw,
				    struct sk_buff *new_skb, u8 *entry,
				    int rxring_idx, int desc_idx)
{}

/* inorder to receive 8K AMSDU we have set skb to
 * 9100bytes in init rx ring, but if this packet is
 * not a AMSDU, this large packet will be sent to
 * TCP/IP directly, this cause big packet ping fail
 * like: "ping -s 65507", so here we will realloc skb
 * based on the true size of packet, Mac80211
 * Probably will do it better, but does not yet.
 *
 * Some platform will fail when alloc skb sometimes.
 * in this condition, we will send the old skb to
 * mac80211 directly, this will not cause any other
 * issues, but only this packet will be lost by TCP/IP
 */
static void _rtl_pci_rx_to_mac80211(struct ieee80211_hw *hw,
				    struct sk_buff *skb,
				    struct ieee80211_rx_status rx_status)
{}

/*hsisr interrupt handler*/
static void _rtl_pci_hs_interrupt(struct ieee80211_hw *hw)
{}

static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
{}

static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
{}

static void _rtl_pci_irq_tasklet(struct tasklet_struct *t)
{}

static void _rtl_pci_prepare_bcn_tasklet(struct tasklet_struct *t)
{}

static void _rtl_pci_init_trx_var(struct ieee80211_hw *hw)
{}

static void _rtl_pci_init_struct(struct ieee80211_hw *hw,
				 struct pci_dev *pdev)
{}

static int _rtl_pci_init_tx_ring(struct ieee80211_hw *hw,
				 unsigned int prio, unsigned int entries)
{}

static int _rtl_pci_init_rx_ring(struct ieee80211_hw *hw, int rxring_idx)
{}

static void _rtl_pci_free_tx_ring(struct ieee80211_hw *hw,
				  unsigned int prio)
{}

static void _rtl_pci_free_rx_ring(struct ieee80211_hw *hw, int rxring_idx)
{}

static int _rtl_pci_init_trx_ring(struct ieee80211_hw *hw)
{}

static int _rtl_pci_deinit_trx_ring(struct ieee80211_hw *hw)
{}

int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw)
{}

static bool rtl_pci_tx_chk_waitq_insert(struct ieee80211_hw *hw,
					struct ieee80211_sta *sta,
					struct sk_buff *skb)
{}

static int rtl_pci_tx(struct ieee80211_hw *hw,
		      struct ieee80211_sta *sta,
		      struct sk_buff *skb,
		      struct rtl_tcb_desc *ptcb_desc)
{}

static void rtl_pci_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
{}

static void rtl_pci_deinit(struct ieee80211_hw *hw)
{}

static int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev)
{}

static int rtl_pci_start(struct ieee80211_hw *hw)
{}

static void rtl_pci_stop(struct ieee80211_hw *hw)
{}

static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
				  struct ieee80211_hw *hw)
{}

static int rtl_pci_intr_mode_msi(struct ieee80211_hw *hw)
{}

static int rtl_pci_intr_mode_legacy(struct ieee80211_hw *hw)
{}

static int rtl_pci_intr_mode_decide(struct ieee80211_hw *hw)
{}

static void platform_enable_dma64(struct pci_dev *pdev, bool dma64)
{}

int rtl_pci_probe(struct pci_dev *pdev,
		  const struct pci_device_id *id)
{}
EXPORT_SYMBOL();

void rtl_pci_disconnect(struct pci_dev *pdev)
{}
EXPORT_SYMBOL();

#ifdef CONFIG_PM_SLEEP
/***************************************
 * kernel pci power state define:
 * PCI_D0         ((pci_power_t __force) 0)
 * PCI_D1         ((pci_power_t __force) 1)
 * PCI_D2         ((pci_power_t __force) 2)
 * PCI_D3hot      ((pci_power_t __force) 3)
 * PCI_D3cold     ((pci_power_t __force) 4)
 * PCI_UNKNOWN    ((pci_power_t __force) 5)

 * This function is called when system
 * goes into suspend state mac80211 will
 * call rtl_mac_stop() from the mac80211
 * suspend function first, So there is
 * no need to call hw_disable here.
 ****************************************/
int rtl_pci_suspend(struct device *dev)
{}
EXPORT_SYMBOL();

int rtl_pci_resume(struct device *dev)
{}
EXPORT_SYMBOL();
#endif /* CONFIG_PM_SLEEP */

const struct rtl_intf_ops rtl_pci_ops =;