#include <linux/atomic.h>
#include <linux/device.h>
#include <linux/gfp.h>
#include <linux/if_arp.h>
#include <linux/if_ether.h>
#include <linux/ip.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/netdev_features.h>
#include <linux/netdevice.h>
#include <linux/pm_runtime.h>
#include <linux/skbuff.h>
#include <linux/types.h>
#include <linux/wwan.h>
#include <net/ipv6.h>
#include <net/pkt_sched.h>
#include "t7xx_hif_dpmaif_rx.h"
#include "t7xx_hif_dpmaif_tx.h"
#include "t7xx_netdev.h"
#include "t7xx_pci.h"
#include "t7xx_port_proxy.h"
#include "t7xx_state_monitor.h"
#define IP_MUX_SESSION_DEFAULT …
#define SBD_PACKET_TYPE_MASK …
static void t7xx_ccmni_enable_napi(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static void t7xx_ccmni_disable_napi(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static int t7xx_ccmni_open(struct net_device *dev)
{ … }
static int t7xx_ccmni_close(struct net_device *dev)
{ … }
static int t7xx_ccmni_send_packet(struct t7xx_ccmni *ccmni, struct sk_buff *skb,
unsigned int txq_number)
{ … }
static netdev_tx_t t7xx_ccmni_start_xmit(struct sk_buff *skb, struct net_device *dev)
{ … }
static void t7xx_ccmni_tx_timeout(struct net_device *dev, unsigned int __always_unused txqueue)
{ … }
static const struct net_device_ops ccmni_netdev_ops = …;
static void t7xx_ccmni_start(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static void t7xx_ccmni_pre_stop(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static void t7xx_ccmni_post_stop(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static void t7xx_ccmni_wwan_setup(struct net_device *dev)
{ … }
static int t7xx_init_netdev_napi(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static void t7xx_uninit_netdev_napi(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static int t7xx_ccmni_wwan_newlink(void *ctxt, struct net_device *dev, u32 if_id,
struct netlink_ext_ack *extack)
{ … }
static void t7xx_ccmni_wwan_dellink(void *ctxt, struct net_device *dev, struct list_head *head)
{ … }
static const struct wwan_ops ccmni_wwan_ops = …;
static int t7xx_ccmni_register_wwan(struct t7xx_ccmni_ctrl *ctlb)
{ … }
static int t7xx_ccmni_md_state_callback(enum md_state state, void *para)
{ … }
static void init_md_status_notifier(struct t7xx_pci_dev *t7xx_dev)
{ … }
static void t7xx_ccmni_recv_skb(struct t7xx_ccmni_ctrl *ccmni_ctlb, struct sk_buff *skb,
struct napi_struct *napi)
{ … }
static void t7xx_ccmni_queue_tx_irq_notify(struct t7xx_ccmni_ctrl *ctlb, int qno)
{ … }
static void t7xx_ccmni_queue_tx_full_notify(struct t7xx_ccmni_ctrl *ctlb, int qno)
{ … }
static void t7xx_ccmni_queue_state_notify(struct t7xx_pci_dev *t7xx_dev,
enum dpmaif_txq_state state, int qno)
{ … }
int t7xx_ccmni_init(struct t7xx_pci_dev *t7xx_dev)
{ … }
void t7xx_ccmni_exit(struct t7xx_pci_dev *t7xx_dev)
{ … }