diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:49:45 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:49:45 +0000 |
commit | 2c3c1048746a4622d8c89a29670120dc8fab93c4 (patch) | |
tree | 848558de17fb3008cdf4d861b01ac7781903ce39 /drivers/staging/gdm724x/gdm_lte.h | |
parent | Initial commit. (diff) | |
download | linux-2c3c1048746a4622d8c89a29670120dc8fab93c4.tar.xz linux-2c3c1048746a4622d8c89a29670120dc8fab93c4.zip |
Adding upstream version 6.1.76.upstream/6.1.76upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | drivers/staging/gdm724x/gdm_lte.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/drivers/staging/gdm724x/gdm_lte.h b/drivers/staging/gdm724x/gdm_lte.h new file mode 100644 index 000000000..f2143a6e0 --- /dev/null +++ b/drivers/staging/gdm724x/gdm_lte.h @@ -0,0 +1,71 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved. */ + +#ifndef _GDM_LTE_H_ +#define _GDM_LTE_H_ + +#include <linux/netdevice.h> +#include <linux/types.h> + +#include "gdm_endian.h" + +#define MAX_NIC_TYPE 4 +#define MAX_RX_SUBMIT_COUNT 3 +#define DRIVER_VERSION "3.7.17.0" + +enum TX_ERROR_CODE { + TX_NO_ERROR = 0, + TX_NO_DEV, + TX_NO_SPC, + TX_NO_BUFFER, +}; + +enum CALLBACK_CONTEXT { + KERNEL_THREAD = 0, + USB_COMPLETE, +}; + +struct pdn_table { + u8 activate; + u32 dft_eps_id; + u32 nic_type; +} __packed; + +struct nic; + +struct phy_dev { + void *priv_dev; + struct net_device *dev[MAX_NIC_TYPE]; + int (*send_hci_func)(void *priv_dev, void *data, int len, + void (*cb)(void *cb_data), void *cb_data); + int (*send_sdu_func)(void *priv_dev, void *data, int len, + unsigned int dft_eps_id, unsigned int eps_id, + void (*cb)(void *cb_data), void *cb_data, + int dev_idx, int nic_type); + int (*rcv_func)(void *priv_dev, + int (*cb)(void *cb_data, void *data, int len, + int context), + void *cb_data, int context); + u8 (*get_endian)(void *priv_dev); +}; + +struct nic { + struct net_device *netdev; + struct phy_dev *phy_dev; + struct net_device_stats stats; + struct pdn_table pdn_table; + u8 dest_mac_addr[ETH_ALEN]; + u8 src_mac_addr[ETH_ALEN]; + u32 nic_id; + u16 vlan_id; +}; + +int gdm_lte_event_init(void); +void gdm_lte_event_exit(void); + +void start_rx_proc(struct phy_dev *phy_dev); +int register_lte_device(struct phy_dev *phy_dev, struct device *dev, + u8 *mac_address); +void unregister_lte_device(struct phy_dev *phy_dev); + +#endif /* _GDM_LTE_H_ */ |