/* SPDX-License-Identifier: GPL-2.0-only * * Copyright (c) 2021, MediaTek Inc. * Copyright (c) 2021-2022, Intel Corporation. * * Authors: * Haijun Liu * Moises Veleta * * Contributors: * Amir Hanania * Chiranjeevi Rapolu * Ricardo Martinez */ #ifndef __T7XX_NETDEV_H__ #define __T7XX_NETDEV_H__ #include #include #include #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__ */