2015-08-21 17:29:17 +09:00
/*
* FUJITSU Extended Socket Network Device driver
* Copyright ( c ) 2015 FUJITSU LIMITED
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms and conditions of the GNU General Public License ,
* version 2 , as published by the Free Software Foundation .
*
* This program is distributed in the hope it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License for
* more details .
*
* You should have received a copy of the GNU General Public License along with
* this program ; if not , see < http : //www.gnu.org/licenses/>.
*
* The full GNU General Public License is included in this distribution in
* the file called " COPYING " .
*
*/
# ifndef FJES_H_
# define FJES_H_
# include <linux/acpi.h>
2015-08-21 17:29:20 +09:00
# include "fjes_hw.h"
2015-08-21 17:29:17 +09:00
# define FJES_ACPI_SYMBOL "Extended Socket"
2015-08-21 17:29:20 +09:00
# define FJES_MAX_QUEUES 1
# define FJES_TX_RETRY_INTERVAL (20 * HZ)
2015-08-21 17:29:24 +09:00
# define FJES_TX_RETRY_TIMEOUT (100)
2015-08-21 17:29:26 +09:00
# define FJES_TX_TX_STALL_TIMEOUT (FJES_TX_RETRY_INTERVAL / 2)
2015-08-21 17:29:23 +09:00
# define FJES_OPEN_ZONE_UPDATE_WAIT (300) /* msec */
2015-08-21 17:29:32 +09:00
# define FJES_IRQ_WATCH_DELAY (HZ)
2015-08-21 17:29:20 +09:00
/* board specific private data structure */
struct fjes_adapter {
struct net_device * netdev ;
struct platform_device * plat_dev ;
struct napi_struct napi ;
struct rtnl_link_stats64 stats64 ;
unsigned int tx_retry_count ;
unsigned long tx_start_jiffies ;
unsigned long rx_last_jiffies ;
bool unset_rx_last ;
2015-08-21 17:29:33 +09:00
struct work_struct force_close_task ;
2015-08-21 17:29:20 +09:00
bool force_reset ;
bool open_guard ;
bool irq_registered ;
2015-08-21 17:29:25 +09:00
struct workqueue_struct * txrx_wq ;
2015-08-21 17:29:32 +09:00
struct workqueue_struct * control_wq ;
2015-08-21 17:29:25 +09:00
2015-08-21 17:29:26 +09:00
struct work_struct tx_stall_task ;
2015-08-21 17:29:25 +09:00
struct work_struct raise_intr_rxdata_task ;
2015-08-21 17:29:34 +09:00
struct work_struct unshare_watch_task ;
unsigned long unshare_watch_bitmask ;
2015-08-21 17:29:32 +09:00
struct delayed_work interrupt_watch_task ;
bool interrupt_watch_enable ;
2015-08-21 17:29:20 +09:00
struct fjes_hw hw ;
} ;
2015-08-21 17:29:17 +09:00
extern char fjes_driver_name [ ] ;
extern char fjes_driver_version [ ] ;
2015-08-21 17:29:18 +09:00
extern const u32 fjes_support_mtu [ ] ;
2015-08-21 17:29:17 +09:00
2015-08-21 17:29:38 +09:00
void fjes_set_ethtool_ops ( struct net_device * ) ;
2015-08-21 17:29:17 +09:00
# endif /* FJES_H_ */