Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.17.
 1/*******************************************************************************
 2  Copyright (C) 2007-2009  STMicroelectronics Ltd
 3
 4  This program is free software; you can redistribute it and/or modify it
 5  under the terms and conditions of the GNU General Public License,
 6  version 2, as published by the Free Software Foundation.
 7
 8  This program is distributed in the hope it will be useful, but WITHOUT
 9  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  more details.
12
13  You should have received a copy of the GNU General Public License along with
14  this program; if not, write to the Free Software Foundation, Inc.,
15  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
16
17  The full GNU General Public License is included in this distribution in
18  the file called "COPYING".
19
20  Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
21*******************************************************************************/
22
23#define DRV_MODULE_VERSION	"July_2011"
24#include <linux/stmmac.h>
25
26#include "common.h"
27#ifdef CONFIG_STMMAC_TIMER
28#include "stmmac_timer.h"
29#endif
30
31struct stmmac_priv {
32	/* Frequently used values are kept adjacent for cache effect */
33	struct dma_desc *dma_tx ____cacheline_aligned;
34	dma_addr_t dma_tx_phy;
35	struct sk_buff **tx_skbuff;
36	unsigned int cur_tx;
37	unsigned int dirty_tx;
38	unsigned int dma_tx_size;
39	int tx_coalesce;
40
41	struct dma_desc *dma_rx ;
42	unsigned int cur_rx;
43	unsigned int dirty_rx;
44	struct sk_buff **rx_skbuff;
45	dma_addr_t *rx_skbuff_dma;
46	struct sk_buff_head rx_recycle;
47
48	struct net_device *dev;
49	dma_addr_t dma_rx_phy;
50	unsigned int dma_rx_size;
51	unsigned int dma_buf_sz;
52	struct device *device;
53	struct mac_device_info *hw;
54	void __iomem *ioaddr;
55
56	struct stmmac_extra_stats xstats;
57	struct napi_struct napi;
58
59	int rx_coe;
60	int no_csum_insertion;
61
62	struct phy_device *phydev;
63	int oldlink;
64	int speed;
65	int oldduplex;
66	unsigned int flow_ctrl;
67	unsigned int pause;
68	struct mii_bus *mii;
69	int mii_irq[PHY_MAX_ADDR];
70
71	u32 msg_enable;
72	spinlock_t lock;
73	int wolopts;
74	int wolenabled;
75#ifdef CONFIG_STMMAC_TIMER
76	struct stmmac_timer *tm;
77#endif
78	struct plat_stmmacenet_data *plat;
79};
80
81extern int stmmac_mdio_unregister(struct net_device *ndev);
82extern int stmmac_mdio_register(struct net_device *ndev);
83extern void stmmac_set_ethtool_ops(struct net_device *netdev);
84extern const struct stmmac_desc_ops enh_desc_ops;
85extern const struct stmmac_desc_ops ndesc_ops;