linux/drivers/net/wireless/realtek/rtw88/pci.h

/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* Copyright(c) 2018-2019  Realtek Corporation
 */

#ifndef __RTK_PCI_H_
#define __RTK_PCI_H_

#include "main.h"

#define RTK_DEFAULT_TX_DESC_NUM
#define RTK_BEQ_TX_DESC_NUM

#define RTK_MAX_RX_DESC_NUM
/* 11K + rx desc size */
#define RTK_PCI_RX_BUF_SIZE

#define RTK_PCI_CTRL
#define BIT_RST_TRXDMA_INTF
#define BIT_RX_TAG_EN
#define REG_DBI_WDATA_V1
#define REG_DBI_RDATA_V1
#define REG_DBI_FLAG_V1
#define BIT_DBI_RFLAG
#define BIT_DBI_WFLAG
#define BITS_DBI_WREN
#define BITS_DBI_ADDR_MASK

#define REG_MDIO_V1
#define REG_PCIE_MIX_CFG
#define BITS_MDIO_ADDR_MASK
#define BIT_MDIO_WFLAG_V1
#define RTW_PCI_MDIO_PG_SZ
#define RTW_PCI_MDIO_PG_OFFS_G1
#define RTW_PCI_MDIO_PG_OFFS_G2
#define RTW_PCI_WR_RETRY_CNT

#define RTK_PCIE_LINK_CFG
#define BIT_CLKREQ_SW_EN
#define BIT_L1_SW_EN
#define BIT_CLKREQ_N_PAD
#define RTK_PCIE_CLKDLY_CTRL

#define BIT_PCI_BCNQ_FLAG
#define RTK_PCI_TXBD_DESA_BCNQ
#define RTK_PCI_TXBD_DESA_H2CQ
#define RTK_PCI_TXBD_DESA_MGMTQ
#define RTK_PCI_TXBD_DESA_BKQ
#define RTK_PCI_TXBD_DESA_BEQ
#define RTK_PCI_TXBD_DESA_VIQ
#define RTK_PCI_TXBD_DESA_VOQ
#define RTK_PCI_TXBD_DESA_HI0Q
#define RTK_PCI_RXBD_DESA_MPDUQ

#define TRX_BD_IDX_MASK
#define TRX_BD_HW_IDX_MASK

/* BCNQ is specialized for rsvd page, does not need to specify a number */
#define RTK_PCI_TXBD_NUM_H2CQ
#define RTK_PCI_TXBD_NUM_MGMTQ
#define RTK_PCI_TXBD_NUM_BKQ
#define RTK_PCI_TXBD_NUM_BEQ
#define RTK_PCI_TXBD_NUM_VIQ
#define RTK_PCI_TXBD_NUM_VOQ
#define RTK_PCI_TXBD_NUM_HI0Q
#define RTK_PCI_RXBD_NUM_MPDUQ
#define RTK_PCI_TXBD_IDX_H2CQ
#define RTK_PCI_TXBD_IDX_MGMTQ
#define RTK_PCI_TXBD_IDX_BKQ
#define RTK_PCI_TXBD_IDX_BEQ
#define RTK_PCI_TXBD_IDX_VIQ
#define RTK_PCI_TXBD_IDX_VOQ
#define RTK_PCI_TXBD_IDX_HI0Q
#define RTK_PCI_RXBD_IDX_MPDUQ

#define RTK_PCI_TXBD_RWPTR_CLR
#define RTK_PCI_TXBD_H2CQ_CSR

#define BIT_CLR_H2CQ_HOST_IDX
#define BIT_CLR_H2CQ_HW_IDX

#define RTK_PCI_HIMR0
#define RTK_PCI_HISR0
#define RTK_PCI_HIMR1
#define RTK_PCI_HISR1
#define RTK_PCI_HIMR2
#define RTK_PCI_HISR2
#define RTK_PCI_HIMR3
#define RTK_PCI_HISR3
/* IMR 0 */
#define IMR_TIMER2
#define IMR_TIMER1
#define IMR_PSTIMEOUT
#define IMR_GTINT4
#define IMR_GTINT3
#define IMR_TBDER
#define IMR_TBDOK
#define IMR_TSF_BIT32_TOGGLE
#define IMR_BCNDMAINT0
#define IMR_BCNDOK0
#define IMR_HSISR_IND_ON_INT
#define IMR_BCNDMAINT_E
#define IMR_ATIMEND
#define IMR_HISR1_IND_INT
#define IMR_C2HCMD
#define IMR_CPWM2
#define IMR_CPWM
#define IMR_HIGHDOK
#define IMR_MGNTDOK
#define IMR_BKDOK
#define IMR_BEDOK
#define IMR_VIDOK
#define IMR_VODOK
#define IMR_RDU
#define IMR_ROK
/* IMR 1 */
#define IMR_TXFIFO_TH_INT
#define IMR_BTON_STS_UPDATE
#define IMR_MCUERR
#define IMR_BCNDMAINT7
#define IMR_BCNDMAINT6
#define IMR_BCNDMAINT5
#define IMR_BCNDMAINT4
#define IMR_BCNDMAINT3
#define IMR_BCNDMAINT2
#define IMR_BCNDMAINT1
#define IMR_BCNDOK7
#define IMR_BCNDOK6
#define IMR_BCNDOK5
#define IMR_BCNDOK4
#define IMR_BCNDOK3
#define IMR_BCNDOK2
#define IMR_BCNDOK1
#define IMR_ATIMEND_E
#define IMR_ATIMEND
#define IMR_TXERR
#define IMR_RXERR
#define IMR_TXFOVW
#define IMR_RXFOVW
#define IMR_CPU_MGQ_TXDONE
#define IMR_PS_TIMER_C
#define IMR_PS_TIMER_B
#define IMR_PS_TIMER_A
#define IMR_CPUMGQ_TX_TIMER
/* IMR 3 */
#define IMR_H2CDOK

enum rtw_pci_flags {};

/* one element is reserved to know if the ring is closed */
static inline int avail_desc(u32 wp, u32 rp, u32 len)
{}

#define RTK_PCI_TXBD_OWN_OFFSET
#define RTK_PCI_TXBD_BCN_WORK

struct rtw_pci_tx_buffer_desc {};

struct rtw_pci_tx_data {};

struct rtw_pci_ring {};

struct rtw_pci_tx_ring {};

struct rtw_pci_rx_buffer_desc {};

struct rtw_pci_rx_ring {};

#define RX_TAG_MAX

struct rtw_pci {};

extern const struct dev_pm_ops rtw_pm_ops;

int rtw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id);
void rtw_pci_remove(struct pci_dev *pdev);
void rtw_pci_shutdown(struct pci_dev *pdev);

static inline u32 max_num_of_tx_queue(u8 queue)
{}

static inline struct
rtw_pci_tx_data *rtw_pci_get_tx_data(struct sk_buff *skb)
{}

static inline
struct rtw_pci_tx_buffer_desc *get_tx_buffer_desc(struct rtw_pci_tx_ring *ring,
						  u32 size)
{}

#endif