#define DRV_MODULE_VERSION "Nov_2010" #include #include "common.h" #ifdef CONFIG_GSC3280MAC_TIMER #include "gsc3280mac_timer.h" #endif struct gsc3280mac_priv { /* Frequently used values are kept adjacent for cache effect */ struct dma_desc *dma_tx ____cacheline_aligned; dma_addr_t dma_tx_phy; struct sk_buff **tx_skbuff; unsigned int cur_tx; unsigned int dirty_tx; unsigned int dma_tx_size; int tx_coalesce; struct dma_desc *dma_rx ; unsigned int cur_rx; unsigned int dirty_rx; struct sk_buff **rx_skbuff; dma_addr_t *rx_skbuff_dma; struct sk_buff_head rx_recycle; struct net_device *dev; dma_addr_t dma_rx_phy; unsigned int dma_rx_size; unsigned int dma_buf_sz; struct device *device; struct mac_device_info *hw; void __iomem *ioaddr; struct gsc3280mac_extra_stats xstats; struct napi_struct napi; phy_interface_t phy_interface; int phy_addr; int phy_mask; int (*phy_reset) (void *priv); int rx_coe; int no_csum_insertion; int phy_irq; struct phy_device *phydev; int oldlink; int speed; int oldduplex; unsigned int flow_ctrl; unsigned int pause; struct mii_bus *mii; u32 msg_enable; spinlock_t lock; int wolopts; int wolenabled; #ifdef CONFIG_GSC3280MAC_TIMER struct gsc3280mac_timer *tm; #endif #ifdef GSC3280MAC_VLAN_TAG_USED struct vlan_group *vlgrp; #endif struct plat_gsc3280macenet_data *plat; }; extern int gsc3280mac_mdio_unregister(struct net_device *ndev); extern int gsc3280mac_mdio_register(struct net_device *ndev); extern void gsc3280mac_set_ethtool_ops(struct net_device *netdev); extern const struct gsc3280mac_desc_ops enh_desc_ops; extern const struct gsc3280mac_desc_ops ndesc_ops;