]>
Commit | Line | Data |
---|---|---|
658d439b TI |
1 | /* |
2 | * FUJITSU Extended Socket Network Device driver | |
3 | * Copyright (c) 2015 FUJITSU LIMITED | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify it | |
6 | * under the terms and conditions of the GNU General Public License, | |
7 | * version 2, as published by the Free Software Foundation. | |
8 | * | |
9 | * This program is distributed in the hope it will be useful, but WITHOUT | |
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
12 | * more details. | |
13 | * | |
14 | * You should have received a copy of the GNU General Public License along with | |
15 | * this program; if not, see <http://www.gnu.org/licenses/>. | |
16 | * | |
17 | * The full GNU General Public License is included in this distribution in | |
18 | * the file called "COPYING". | |
19 | * | |
20 | */ | |
21 | ||
22 | #ifndef FJES_H_ | |
23 | #define FJES_H_ | |
24 | ||
25 | #include <linux/acpi.h> | |
26 | ||
2fcbca68 TI |
27 | #include "fjes_hw.h" |
28 | ||
658d439b | 29 | #define FJES_ACPI_SYMBOL "Extended Socket" |
2fcbca68 TI |
30 | #define FJES_MAX_QUEUES 1 |
31 | #define FJES_TX_RETRY_INTERVAL (20 * HZ) | |
9acf51cb | 32 | #define FJES_TX_RETRY_TIMEOUT (100) |
ac63b947 | 33 | #define FJES_TX_TX_STALL_TIMEOUT (FJES_TX_RETRY_INTERVAL / 2) |
e5d486dc | 34 | #define FJES_OPEN_ZONE_UPDATE_WAIT (300) /* msec */ |
8edb62a8 | 35 | #define FJES_IRQ_WATCH_DELAY (HZ) |
2fcbca68 TI |
36 | |
37 | /* board specific private data structure */ | |
38 | struct fjes_adapter { | |
39 | struct net_device *netdev; | |
40 | struct platform_device *plat_dev; | |
41 | ||
42 | struct napi_struct napi; | |
43 | struct rtnl_link_stats64 stats64; | |
44 | ||
45 | unsigned int tx_retry_count; | |
46 | unsigned long tx_start_jiffies; | |
47 | unsigned long rx_last_jiffies; | |
48 | bool unset_rx_last; | |
49 | ||
ff5b4210 | 50 | struct work_struct force_close_task; |
2fcbca68 TI |
51 | bool force_reset; |
52 | bool open_guard; | |
53 | ||
54 | bool irq_registered; | |
55 | ||
b772b9dc | 56 | struct workqueue_struct *txrx_wq; |
8edb62a8 | 57 | struct workqueue_struct *control_wq; |
b772b9dc | 58 | |
ac63b947 | 59 | struct work_struct tx_stall_task; |
b772b9dc TI |
60 | struct work_struct raise_intr_rxdata_task; |
61 | ||
8fc4cadb TI |
62 | struct work_struct unshare_watch_task; |
63 | unsigned long unshare_watch_bitmask; | |
64 | ||
8edb62a8 TI |
65 | struct delayed_work interrupt_watch_task; |
66 | bool interrupt_watch_enable; | |
67 | ||
2fcbca68 TI |
68 | struct fjes_hw hw; |
69 | }; | |
658d439b TI |
70 | |
71 | extern char fjes_driver_name[]; | |
72 | extern char fjes_driver_version[]; | |
8cdc3f6c | 73 | extern const u32 fjes_support_mtu[]; |
658d439b | 74 | |
786eec27 TI |
75 | void fjes_set_ethtool_ops(struct net_device *); |
76 | ||
658d439b | 77 | #endif /* FJES_H_ */ |