xref: /linux/drivers/net/fjes/fjes.h (revision b772b9dc63df0ca8a750ceac9ab356376022f0b6)
1658d439bSTaku Izumi /*
2658d439bSTaku Izumi  *  FUJITSU Extended Socket Network Device driver
3658d439bSTaku Izumi  *  Copyright (c) 2015 FUJITSU LIMITED
4658d439bSTaku Izumi  *
5658d439bSTaku Izumi  * This program is free software; you can redistribute it and/or modify it
6658d439bSTaku Izumi  * under the terms and conditions of the GNU General Public License,
7658d439bSTaku Izumi  * version 2, as published by the Free Software Foundation.
8658d439bSTaku Izumi  *
9658d439bSTaku Izumi  * This program is distributed in the hope it will be useful, but WITHOUT
10658d439bSTaku Izumi  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11658d439bSTaku Izumi  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12658d439bSTaku Izumi  * more details.
13658d439bSTaku Izumi  *
14658d439bSTaku Izumi  * You should have received a copy of the GNU General Public License along with
15658d439bSTaku Izumi  * this program; if not, see <http://www.gnu.org/licenses/>.
16658d439bSTaku Izumi  *
17658d439bSTaku Izumi  * The full GNU General Public License is included in this distribution in
18658d439bSTaku Izumi  * the file called "COPYING".
19658d439bSTaku Izumi  *
20658d439bSTaku Izumi  */
21658d439bSTaku Izumi 
22658d439bSTaku Izumi #ifndef FJES_H_
23658d439bSTaku Izumi #define FJES_H_
24658d439bSTaku Izumi 
25658d439bSTaku Izumi #include <linux/acpi.h>
26658d439bSTaku Izumi 
272fcbca68STaku Izumi #include "fjes_hw.h"
282fcbca68STaku Izumi 
29658d439bSTaku Izumi #define FJES_ACPI_SYMBOL	"Extended Socket"
302fcbca68STaku Izumi #define FJES_MAX_QUEUES		1
312fcbca68STaku Izumi #define FJES_TX_RETRY_INTERVAL	(20 * HZ)
329acf51cbSTaku Izumi #define FJES_TX_RETRY_TIMEOUT	(100)
33e5d486dcSTaku Izumi #define FJES_OPEN_ZONE_UPDATE_WAIT	(300) /* msec */
342fcbca68STaku Izumi 
352fcbca68STaku Izumi /* board specific private data structure */
362fcbca68STaku Izumi struct fjes_adapter {
372fcbca68STaku Izumi 	struct net_device *netdev;
382fcbca68STaku Izumi 	struct platform_device *plat_dev;
392fcbca68STaku Izumi 
402fcbca68STaku Izumi 	struct napi_struct napi;
412fcbca68STaku Izumi 	struct rtnl_link_stats64 stats64;
422fcbca68STaku Izumi 
432fcbca68STaku Izumi 	unsigned int tx_retry_count;
442fcbca68STaku Izumi 	unsigned long tx_start_jiffies;
452fcbca68STaku Izumi 	unsigned long rx_last_jiffies;
462fcbca68STaku Izumi 	bool unset_rx_last;
472fcbca68STaku Izumi 
482fcbca68STaku Izumi 	bool force_reset;
492fcbca68STaku Izumi 	bool open_guard;
502fcbca68STaku Izumi 
512fcbca68STaku Izumi 	bool irq_registered;
522fcbca68STaku Izumi 
53*b772b9dcSTaku Izumi 	struct workqueue_struct *txrx_wq;
54*b772b9dcSTaku Izumi 
55*b772b9dcSTaku Izumi 	struct work_struct raise_intr_rxdata_task;
56*b772b9dcSTaku Izumi 
572fcbca68STaku Izumi 	struct fjes_hw hw;
582fcbca68STaku Izumi };
59658d439bSTaku Izumi 
60658d439bSTaku Izumi extern char fjes_driver_name[];
61658d439bSTaku Izumi extern char fjes_driver_version[];
628cdc3f6cSTaku Izumi extern const u32 fjes_support_mtu[];
63658d439bSTaku Izumi 
64658d439bSTaku Izumi #endif /* FJES_H_ */
65