1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * FUJITSU Extended Socket Network Device driver |
4 | * Copyright (c) 2015 FUJITSU LIMITED |
5 | */ |
6 | |
7 | #ifndef FJES_H_ |
8 | #define FJES_H_ |
9 | |
10 | #include <linux/acpi.h> |
11 | |
12 | #include "fjes_hw.h" |
13 | |
14 | #define FJES_ACPI_SYMBOL "Extended Socket" |
15 | #define FJES_MAX_QUEUES 1 |
16 | #define FJES_TX_RETRY_INTERVAL (20 * HZ) |
17 | #define FJES_TX_RETRY_TIMEOUT (100) |
18 | #define FJES_TX_TX_STALL_TIMEOUT (FJES_TX_RETRY_INTERVAL / 2) |
19 | #define FJES_OPEN_ZONE_UPDATE_WAIT (300) /* msec */ |
20 | #define FJES_IRQ_WATCH_DELAY (HZ) |
21 | |
22 | /* board specific private data structure */ |
23 | struct fjes_adapter { |
24 | struct net_device *netdev; |
25 | struct platform_device *plat_dev; |
26 | |
27 | struct napi_struct napi; |
28 | struct rtnl_link_stats64 stats64; |
29 | |
30 | unsigned int tx_retry_count; |
31 | unsigned long tx_start_jiffies; |
32 | unsigned long rx_last_jiffies; |
33 | bool unset_rx_last; |
34 | |
35 | struct work_struct force_close_task; |
36 | bool force_reset; |
37 | bool open_guard; |
38 | |
39 | bool irq_registered; |
40 | |
41 | struct workqueue_struct *txrx_wq; |
42 | struct workqueue_struct *control_wq; |
43 | |
44 | struct work_struct tx_stall_task; |
45 | struct work_struct raise_intr_rxdata_task; |
46 | |
47 | struct work_struct unshare_watch_task; |
48 | unsigned long unshare_watch_bitmask; |
49 | |
50 | struct delayed_work interrupt_watch_task; |
51 | bool interrupt_watch_enable; |
52 | |
53 | struct fjes_hw hw; |
54 | |
55 | #ifdef CONFIG_DEBUG_FS |
56 | struct dentry *dbg_adapter; |
57 | #endif |
58 | }; |
59 | |
60 | extern char fjes_driver_name[]; |
61 | extern char fjes_driver_version[]; |
62 | extern const u32 fjes_support_mtu[]; |
63 | |
64 | void fjes_set_ethtool_ops(struct net_device *); |
65 | |
66 | #ifdef CONFIG_DEBUG_FS |
67 | void fjes_dbg_adapter_init(struct fjes_adapter *adapter); |
68 | void fjes_dbg_adapter_exit(struct fjes_adapter *adapter); |
69 | void fjes_dbg_init(void); |
70 | void fjes_dbg_exit(void); |
71 | #else |
72 | static inline void fjes_dbg_adapter_init(struct fjes_adapter *adapter) {} |
73 | static inline void fjes_dbg_adapter_exit(struct fjes_adapter *adapter) {} |
74 | static inline void fjes_dbg_init(void) {} |
75 | static inline void fjes_dbg_exit(void) {} |
76 | #endif /* CONFIG_DEBUG_FS */ |
77 | |
78 | #endif /* FJES_H_ */ |
79 | |