X-Git-Url: http://bbs.cooldavid.org/git/?p=jme.git;a=blobdiff_plain;f=jme.h;h=7eed87058496f0b9b580098ee54115d101daf5c8;hp=7eb2d978349d50306eddba63298b4badc443726a;hb=a82e368cd73298926df536929339cfbdb802878c;hpb=3b70a6fa8a0860c52fc4cdc74c5006dba2eac82c diff --git a/jme.h b/jme.h index 7eb2d97..7eed870 100644 --- a/jme.h +++ b/jme.h @@ -3,6 +3,7 @@ * * Copyright 2008 JMicron Technology Corporation * http://www.jmicron.com/ + * Copyright (c) 2009 - 2010 Guo-Fu Tseng * * Author: Guo-Fu Tseng * @@ -25,7 +26,7 @@ #define __JME_H_INCLUDED__ #define DRV_NAME "jme" -#define DRV_VERSION "1.0.4" +#define DRV_VERSION "1.0.7-jmmod" #define PFX DRV_NAME ": " #define PCI_DEVICE_ID_JMICRON_JMC250 0x0250 @@ -41,16 +42,27 @@ NETIF_MSG_TX_ERR | \ NETIF_MSG_HW) -#define jeprintk(pdev, fmt, args...) \ - printk(KERN_ERR PFX fmt, ## args) +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) +#define pr_err(fmt, arg...) \ + printk(KERN_ERR fmt, ##arg) +#endif +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,33) +#define netdev_err(netdev, fmt, arg...) \ + pr_err(fmt, ##arg) +#endif #ifdef TX_DEBUG -#define tx_dbg(priv, fmt, args...) \ - printk(KERN_DEBUG "%s: " fmt, (priv)->dev->name, ## args) +#define tx_dbg(priv, fmt, args...) \ + printk(KERN_DEBUG "%s: " fmt, (priv)->dev->name, ##args) #else -#define tx_dbg(priv, fmt, args...) +#define tx_dbg(priv, fmt, args...) \ +do { \ + if (0) \ + printk(KERN_DEBUG "%s: " fmt, (priv)->dev->name, ##args); \ +} while (0) #endif +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,33) #define jme_msg(msglvl, type, priv, fmt, args...) \ if (netif_msg_##type(priv)) \ printk(msglvl "%s: " fmt, (priv)->dev->name, ## args) @@ -82,6 +94,12 @@ #define msg_hw(priv, fmt, args...) \ jme_msg(KERN_ERR, hw, priv, fmt, ## args) +#define netif_info(priv, type, dev, fmt, args...) \ + msg_ ## type(priv, fmt, ## args) +#define netif_err(priv, type, dev, fmt, args...) \ + msg_ ## type(priv, fmt, ## args) +#endif + /* * Extra PCI Configuration space interface */ @@ -247,7 +265,7 @@ enum jme_txdesc_flags_bits { }; #define TXDESC_MSS_SHIFT 2 -enum jme_rxdescwb_flags_bits { +enum jme_txwbdesc_flags_bits { TXWBFLAG_OWN = 0x80, TXWBFLAG_INT = 0x40, TXWBFLAG_TMOUT = 0x20, @@ -372,13 +390,6 @@ struct jme_buffer_info { /* * The structure holding buffer information and ring descriptors all together. */ -#include -#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,21) -#define MAX_RING_DESC_NR 512 -#else -#define MAX_RING_DESC_NR 1024 -#endif - struct jme_ring { void *alloc; /* pointer to allocated memory */ void *desc; /* pointer to ring memory */ @@ -386,7 +397,7 @@ struct jme_ring { dma_addr_t dma; /* phys address for ring dma */ /* Buffer information corresponding to each descriptor */ - struct jme_buffer_info bufinf[MAX_RING_DESC_NR]; + struct jme_buffer_info *bufinf; int next_to_use; atomic_t next_to_clean; @@ -411,6 +422,23 @@ struct jme_ring { #define NETDEV_GET_STATS(netdev, fun_ptr) \ netdev->get_stats = fun_ptr #define DECLARE_NET_DEVICE_STATS struct net_device_stats stats; +/* + * CentOS 5.5 have *_hdr helpers back-ported + */ +#ifdef RHEL_RELEASE_CODE +#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5,5) +#define __DEFINE_IPHDR_HELPERS__ +#endif +#else +#define __DEFINE_IPHDR_HELPERS__ +#endif +#else +#define NET_STAT(priv) (priv->dev->stats) +#define NETDEV_GET_STATS(netdev, fun_ptr) +#define DECLARE_NET_DEVICE_STATS +#endif + +#ifdef __DEFINE_IPHDR_HELPERS__ static inline struct iphdr *ip_hdr(const struct sk_buff *skb) { return skb->nh.iph; @@ -425,10 +453,6 @@ static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb) { return skb->h.th; } -#else -#define NET_STAT(priv) priv->dev->stats -#define NETDEV_GET_STATS(netdev, fun_ptr) -#define DECLARE_NET_DEVICE_STATS #endif #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) @@ -448,7 +472,7 @@ static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb) netif_rx_schedule_prep(priv->dev) #define JME_RX_SCHEDULE(priv) \ __netif_rx_schedule(priv->dev); -#elif LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,28) +#else #define DECLARE_NAPI_STRUCT struct napi_struct napi; #define NETIF_NAPI_SET(dev, napis, pollfn, q) \ netif_napi_add(dev, napis, pollfn, q); @@ -466,36 +490,15 @@ static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb) napi_schedule_prep(&priv->napi) #define JME_RX_SCHEDULE(priv) \ __napi_schedule(&priv->napi); -#else -#define DECLARE_NAPI_STRUCT struct napi_struct napi; -#define NETIF_NAPI_SET(dev, napis, pollfn, q) \ - netif_napi_add(dev, napis, pollfn, q); -#define JME_NAPI_HOLDER(holder) struct napi_struct *holder -#define JME_NAPI_WEIGHT(w) int w -#define JME_NAPI_WEIGHT_VAL(w) w -#define JME_NAPI_WEIGHT_SET(w, r) -#define DECLARE_NETDEV struct net_device *netdev = jme->dev; -#define JME_RX_COMPLETE(dev, napis) netif_rx_complete(dev, napis) -#define JME_NAPI_ENABLE(priv) napi_enable(&priv->napi); -#define JME_NAPI_DISABLE(priv) \ - if (!napi_disable_pending(&priv->napi)) \ - napi_disable(&priv->napi); -#define JME_RX_SCHEDULE_PREP(priv) \ - netif_rx_schedule_prep(priv->dev, &priv->napi) -#define JME_RX_SCHEDULE(priv) \ - __netif_rx_schedule(priv->dev, &priv->napi); #endif /* * Jmac Adapter Private data */ -#define SHADOW_REG_NR 8 struct jme_adapter { struct pci_dev *pdev; struct net_device *dev; void __iomem *regs; - dma_addr_t shadow_dma; - u32 *shadow_regs; struct mii_if_info mii_if; struct jme_ring rxring[RX_RING_NR]; struct jme_ring txring[TX_RING_NR]; @@ -551,10 +554,6 @@ jme_get_stats(struct net_device *netdev) } #endif -enum shadow_reg_val { - SHADOW_IEVE = 0, -}; - enum jme_flags_bits { JME_FLAG_MSI = 1, JME_FLAG_SSET = 2, @@ -1200,13 +1199,6 @@ enum jme_chipmode_shifts { CM_CHIPREV_SHIFT = 8, }; -/* - * Shadow base address register bits - */ -enum jme_shadow_base_address_bits { - SHBA_POSTEN = 0x1, -}; - /* * Aggressive Power Mode Control */ @@ -1338,3 +1330,4 @@ static int jme_set_settings(struct net_device *netdev, static void jme_set_multi(struct net_device *netdev); #endif +