c984f374ae
Embedding net_device into structures prohibits the usage of flexible arrays in the net_device structure. For more details, see the discussion at [1]. Un-embed the net_device from the private struct by converting it into a pointer. Then use the leverage the new alloc_netdev_dummy() helper to allocate and initialize dummy devices. [1] https://lore.kernel.org/all/20240229225910.79e224cf@kernel.org/ Signed-off-by: Breno Leitao <leitao@debian.org> Link: https://lore.kernel.org/r/20240424161108.3397057-1-leitao@debian.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
61 lines
1.5 KiB
C
61 lines
1.5 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__ */
|