61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only
|
|
*
|
|
* Copyright (c) 2021, MediaTek Inc.
|
|
* Copyright (c) 2021-2022, Intel Corporation.
|
|
*
|
|
* Authors:
|
|
* Haijun Liu <haijun.liu@mediatek.com>
|
|
* Moises Veleta <moises.veleta@intel.com>
|
|
*
|
|
* Contributors:
|
|
* Amir Hanania <amir.hanania@intel.com>
|
|
* Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>
|
|
* Ricardo Martinez <ricardo.martinez@linux.intel.com>
|
|
*/
|
|
|
|
#ifndef __T7XX_NETDEV_H__
|
|
#define __T7XX_NETDEV_H__
|
|
|
|
#include <linux/bits.h>
|
|
#include <linux/netdevice.h>
|
|
#include <linux/types.h>
|
|
|
|
#include "t7xx_hif_dpmaif.h"
|
|
#include "t7xx_pci.h"
|
|
#include "t7xx_state_monitor.h"
|
|
|
|
#define RXQ_NUM DPMAIF_RXQ_NUM
|
|
#define NIC_DEV_MAX 21
|
|
#define NIC_DEV_DEFAULT 2
|
|
|
|
#define CCMNI_NETDEV_WDT_TO (1 * HZ)
|
|
#define CCMNI_MTU_MAX 3000
|
|
#define NIC_NAPI_POLL_BUDGET 128
|
|
|
|
struct t7xx_ccmni {
|
|
u8 index;
|
|
atomic_t usage;
|
|
struct net_device *dev;
|
|
struct t7xx_ccmni_ctrl *ctlb;
|
|
};
|
|
|
|
struct t7xx_ccmni_ctrl {
|
|
struct t7xx_pci_dev *t7xx_dev;
|
|
struct dpmaif_ctrl *hif_ctrl;
|
|
struct t7xx_ccmni *ccmni_inst[NIC_DEV_MAX];
|
|
struct dpmaif_callbacks callbacks;
|
|
unsigned int nic_dev_num;
|
|
unsigned int md_sta;
|
|
struct t7xx_fsm_notifier md_status_notify;
|
|
bool wwan_is_registered;
|
|
struct net_device dummy_dev;
|
|
struct napi_struct *napi[RXQ_NUM];
|
|
atomic_t napi_usr_refcnt;
|
|
bool is_napi_en;
|
|
};
|
|
|
|
int t7xx_ccmni_init(struct t7xx_pci_dev *t7xx_dev);
|
|
void t7xx_ccmni_exit(struct t7xx_pci_dev *t7xx_dev);
|
|
|
|
#endif /* __T7XX_NETDEV_H__ */
|