SOURCES: linux-nvidia.patch - up to 1.23
marcus
marcus at pld-linux.org
Mon Nov 3 09:46:19 CET 2008
Author: marcus Date: Mon Nov 3 08:46:19 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- up to 1.23
---- Files affected:
SOURCES:
linux-nvidia.patch (1.1 -> 1.2)
---- Diffs:
================================================================
Index: SOURCES/linux-nvidia.patch
diff -u SOURCES/linux-nvidia.patch:1.1 SOURCES/linux-nvidia.patch:1.2
--- SOURCES/linux-nvidia.patch:1.1 Sat Jun 23 20:28:34 2007
+++ SOURCES/linux-nvidia.patch Mon Nov 3 09:46:13 2008
@@ -1,7 +1,7 @@
diff -uNr linux-2.6.16.orig/drivers/net/forcedeth.c linux-2.6.16/drivers/net/forcedeth.c
---- linux-2.6.16.orig/drivers/net/forcedeth.c 2007-06-23 20:16:01.572248000 +0200
-+++ linux-2.6.16/drivers/net/forcedeth.c 2006-10-21 14:44:00.000000000 +0200
-@@ -102,6 +102,17 @@
+--- linux-2.6.16.orig/drivers/net/forcedeth.c 2006-03-20 06:53:29.000000000 +0100
++++ linux-2.6.16/drivers/net/forcedeth.c 2008-11-02 20:40:40.000000000 +0100
+@@ -102,6 +102,19 @@
* 0.47: 26 Oct 2005: Add phyaddr 0 in phy scan.
* 0.48: 24 Dec 2005: Disable TSO, bugfix for pci_map_single
* 0.49: 10 Dec 2005: Fix tso for large buffers.
@@ -16,23 +16,28 @@
+ * 0.58: 20 May 2006: Optimized rx and tx data paths.
+ * 0.59: 31 May 2006: Added support for sideband management unit.
+ * 0.60: 31 May 2006: Added support for recoverable error.
++ * 0.61: 18 Jul 2006: Added support for suspend/resume.
++ * 0.62: 16 Jan 2007: Fixed statistics, mgmt communication, and low phy speed on S5.
*
* Known bugs:
* We suspect that on some hardware no TX done interrupts are generated.
-@@ -113,7 +124,7 @@
+@@ -113,8 +126,9 @@
* DEV_NEED_TIMERIRQ will not harm you on sane hardware, only generating a few
* superfluous timer interrupts from the nic.
*/
-#define FORCEDETH_VERSION "0.49"
-+#define FORCEDETH_VERSION "0.60-Driver Package V1.21"
++#define FORCEDETH_VERSION "0.62-Driver Package V1.23"
#define DRV_NAME "forcedeth"
++#define DRV_DATE "2007/04/06"
#include <linux/module.h>
-@@ -131,34 +142,189 @@
+ #include <linux/types.h>
+@@ -131,18 +145,240 @@
#include <linux/random.h>
#include <linux/init.h>
#include <linux/if_vlan.h>
+#include <linux/rtnetlink.h>
++#include <linux/reboot.h>
+#include <linux/version.h>
+
+#define RHES3 0
@@ -40,9 +45,11 @@
+#define RHES4 2
+#define SUSE10 3
+#define FEDORA5 4
++#define FEDORA6 5
+
-+
-+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17)
++#define NVVER FEDORA6
++#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
+#define NVVER FEDORA5
+#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9)
+#define NVVER SUSE10
@@ -72,6 +79,8 @@
#define dprintk(x...) do { } while (0)
#endif
++#define DPRINTK(nlevel,klevel,args...) (void)((debug & NETIF_MSG_##nlevel) && printk(klevel args))
++
+/* it should add in pci_ids.h */
+#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_12
+#define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268
@@ -109,6 +118,42 @@
+#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_23
+#define PCI_DEVICE_ID_NVIDIA_NVENET_23 0x0453
+#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_24
++#define PCI_DEVICE_ID_NVIDIA_NVENET_24 0x054c
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_25
++#define PCI_DEVICE_ID_NVIDIA_NVENET_25 0x054d
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_26
++#define PCI_DEVICE_ID_NVIDIA_NVENET_26 0x054e
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_27
++#define PCI_DEVICE_ID_NVIDIA_NVENET_27 0x054f
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_28
++#define PCI_DEVICE_ID_NVIDIA_NVENET_28 0x07DC
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_29
++#define PCI_DEVICE_ID_NVIDIA_NVENET_29 0x07DD
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_30
++#define PCI_DEVICE_ID_NVIDIA_NVENET_30 0x07DE
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_31
++#define PCI_DEVICE_ID_NVIDIA_NVENET_31 0x07DF
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_32
++#define PCI_DEVICE_ID_NVIDIA_NVENET_32 0x0760
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_33
++#define PCI_DEVICE_ID_NVIDIA_NVENET_33 0x0761
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_34
++#define PCI_DEVICE_ID_NVIDIA_NVENET_34 0x0762
++#endif
++#ifndef PCI_DEVICE_ID_NVIDIA_NVENET_35
++#define PCI_DEVICE_ID_NVIDIA_NVENET_35 0x0763
++#endif
+
+/* it should add in mii.h */
+#ifndef ADVERTISE_1000HALF
@@ -161,6 +206,26 @@
+#define __iomem
+#endif
+
++#ifndef __bitwise
++#define __bitwise
++#endif
++
++#ifndef __force
++#define __force
++#endif
++
++#ifndef PCI_D0
++#define PCI_D0 ((int __bitwise __force) 0)
++#endif
++
++#ifndef PM_EVENT_SUSPEND
++#define PM_EVENT_SUSPEND 2
++#endif
++
++#if NVVER < SUSE10
++#define pm_message_t u32
++#endif
++
+/* rx/tx mac addr + type + vlan + align + slack*/
+#ifndef RX_NIC_BUFSIZE
+#define RX_NIC_BUFSIZE (ETH_DATA_LEN + 64)
@@ -182,15 +247,34 @@
+ u16 entry; /* driver uses to specify entry, OS writes */
+};
+#endif
++
++#ifndef PCI_MSIX_ENTRY_LOWER_ADDR_OFFSET
++#define PCI_MSIX_ENTRY_LOWER_ADDR_OFFSET 0x00
++#endif
++
++#ifndef PCI_MSIX_ENTRY_UPPER_ADDR_OFFSET
++#define PCI_MSIX_ENTRY_UPPER_ADDR_OFFSET 0x04
++#endif
++
++#ifndef PCI_MSIX_ENTRY_DATA_OFFSET
++#define PCI_MSIX_ENTRY_DATA_OFFSET 0x08
++#endif
++
++#ifndef PCI_MSIX_ENTRY_SIZE
++#define PCI_MSIX_ENTRY_SIZE 16
++#endif
++
++#ifndef PCI_MSIX_FLAGS_BIRMASK
++#define PCI_MSIX_FLAGS_BIRMASK (7 << 0)
++#endif
++
++#ifndef PCI_CAP_ID_MSIX
++#define PCI_CAP_ID_MSIX 0x11
++#endif
/*
* Hardware access:
- */
-
--#define DEV_NEED_TIMERIRQ 0x0000 /* work-around for Wake-On-Lan */
--#define DEV_NEED_TIMERIRQ_ORIG 0x0001 /* set the timer irq flag in the irq mask */
-+#define DEV_NEED_TIMERIRQ 0x0001 /* set the timer irq flag in the irq mask */
- #define DEV_NEED_LINKTIMER 0x0002 /* poll link settings. Relies on the timer irq */
+@@ -153,11 +389,40 @@
#define DEV_HAS_LARGEDESC 0x0004 /* device supports jumbo frames and needs packet format 2 */
#define DEV_HAS_HIGH_DMA 0x0008 /* device supports 64bit dma */
#define DEV_HAS_CHECKSUM 0x0010 /* device supports tx and rx checksum offloads */
@@ -199,9 +283,11 @@
+#define DEV_HAS_MSI_X 0x0080 /* device supports MSI-X */
+#define DEV_HAS_POWER_CNTRL 0x0100 /* device supports power savings */
+#define DEV_HAS_PAUSEFRAME_TX 0x0200 /* device supports tx pause frames */
-+#define DEV_HAS_STATISTICS 0x0400 /* device supports hw statistics */
-+#define DEV_HAS_TEST_EXTENDED 0x0800 /* device supports extended diagnostic test */
-+#define DEV_HAS_MGMT_UNIT 0x1000 /* device supports management unit */
++#define DEV_HAS_STATISTICS_V1 0x0400 /* device supports hw statistics version 1 */
++#define DEV_HAS_STATISTICS_V2 0x0800 /* device supports hw statistics version 2 */
++#define DEV_HAS_TEST_EXTENDED 0x1000 /* device supports extended diagnostic test */
++#define DEV_HAS_MGMT_UNIT 0x2000 /* device supports management unit */
++#define DEV_HAS_CORRECT_MACADDR 0x4000 /* device supports correct mac address */
+
+#define NVIDIA_ETHERNET_ID(deviceid,nv_driver_data) {\
+ .vendor = PCI_VENDOR_ID_NVIDIA, \
@@ -213,6 +299,14 @@
+
+#define Mv_LED_Control 16
+#define Mv_Page_Address 22
++#define Mv_LED_FORCE_OFF 0x88
++#define Mv_LED_DUAL_MODE3 0x40
++
++struct nvmsi_msg{
++ u32 address_lo;
++ u32 address_hi;
++ u32 data;
++};
enum {
NvRegIrqStatus = 0x000,
@@ -222,7 +316,7 @@
NvRegIrqMask = 0x004,
#define NVREG_IRQ_RX_ERROR 0x0001
#define NVREG_IRQ_RX 0x0002
-@@ -167,14 +333,18 @@
+@@ -166,14 +431,18 @@
#define NVREG_IRQ_TX_OK 0x0010
#define NVREG_IRQ_TIMER 0x0020
#define NVREG_IRQ_LINK 0x0040
@@ -245,7 +339,7 @@
NvRegUnknownSetupReg6 = 0x008,
#define NVREG_UNKSETUP6_VAL 3
-@@ -186,25 +356,45 @@
+@@ -185,25 +454,45 @@
NvRegPollingInterval = 0x00c,
#define NVREG_POLL_DEFAULT_THROUGHPUT 970
#define NVREG_POLL_DEFAULT_CPU 13
@@ -292,7 +386,7 @@
NvRegReceiverStatus = 0x98,
#define NVREG_RCVSTAT_BUSY 0x01
-@@ -214,10 +404,12 @@
+@@ -213,10 +502,12 @@
#define NVREG_RNDSEED_FORCE2 0x2d00
#define NVREG_RNDSEED_FORCE3 0x7400
@@ -309,7 +403,7 @@
NvRegMacAddrA = 0xA8,
NvRegMacAddrB = 0xAC,
NvRegMulticastAddrA = 0xB0,
-@@ -234,7 +426,8 @@
+@@ -233,7 +524,8 @@
NvRegRingSizes = 0x108,
#define NVREG_RINGSZ_TXSHIFT 0
#define NVREG_RINGSZ_RXSHIFT 16
@@ -319,7 +413,7 @@
NvRegLinkSpeed = 0x110,
#define NVREG_LINKSPEED_FORCE 0x10000
#define NVREG_LINKSPEED_10 1000
-@@ -243,8 +436,10 @@
+@@ -242,8 +534,10 @@
#define NVREG_LINKSPEED_MASK (0xFFF)
NvRegUnknownSetupReg5 = 0x130,
#define NVREG_UNKSETUP5_BIT31 (1<<31)
@@ -332,7 +426,7 @@
NvRegTxRxControl = 0x144,
#define NVREG_TXRXCTL_KICK 0x0001
#define NVREG_TXRXCTL_BIT1 0x0002
-@@ -253,15 +448,22 @@
+@@ -252,15 +546,22 @@
#define NVREG_TXRXCTL_RESET 0x0010
#define NVREG_TXRXCTL_RXCHECK 0x0400
#define NVREG_TXRXCTL_DESC_1 0
@@ -359,7 +453,7 @@
NvRegAdapterControl = 0x188,
#define NVREG_ADAPTCTL_START 0x02
-@@ -291,6 +493,7 @@
+@@ -290,6 +591,7 @@
#define NVREG_WAKEUPFLAGS_ENABLE 0x1111
NvRegPatternCRC = 0x204,
@@ -367,7 +461,7 @@
NvRegPatternMask = 0x208,
NvRegPowerCap = 0x268,
#define NVREG_POWERCAP_D3SUPP (1<<30)
-@@ -304,6 +507,43 @@
+@@ -303,6 +605,43 @@
#define NVREG_POWERSTATE_D1 0x0001
#define NVREG_POWERSTATE_D2 0x0002
#define NVREG_POWERSTATE_D3 0x0003
@@ -411,7 +505,7 @@
};
/* Big endian: should work, but is untested */
-@@ -315,7 +555,7 @@
+@@ -314,7 +653,7 @@
struct ring_desc_ex {
u32 PacketBufferHigh;
u32 PacketBufferLow;
@@ -420,7 +514,7 @@
u32 FlagLen;
};
-@@ -336,7 +576,7 @@
+@@ -335,7 +674,7 @@
#define NV_TX_CARRIERLOST (1<<27)
#define NV_TX_LATECOLLISION (1<<28)
#define NV_TX_UNDERFLOW (1<<29)
@@ -429,7 +523,7 @@
#define NV_TX_VALID (1<<31)
#define NV_TX2_LASTPACKET (1<<29)
-@@ -347,7 +587,7 @@
+@@ -346,7 +685,7 @@
#define NV_TX2_LATECOLLISION (1<<27)
#define NV_TX2_UNDERFLOW (1<<28)
/* error and valid are the same for both */
@@ -438,7 +532,7 @@
#define NV_TX2_VALID (1<<31)
#define NV_TX2_TSO (1<<28)
#define NV_TX2_TSO_SHIFT 14
-@@ -356,6 +596,8 @@
+@@ -355,6 +694,8 @@
#define NV_TX2_CHECKSUM_L3 (1<<27)
#define NV_TX2_CHECKSUM_L4 (1<<26)
@@ -447,7 +541,7 @@
#define NV_RX_DESCRIPTORVALID (1<<16)
#define NV_RX_MISSEDFRAME (1<<17)
#define NV_RX_SUBSTRACT1 (1<<18)
-@@ -366,7 +608,7 @@
+@@ -365,7 +706,7 @@
#define NV_RX_CRCERR (1<<27)
#define NV_RX_OVERFLOW (1<<28)
#define NV_RX_FRAMINGERR (1<<29)
@@ -456,7 +550,7 @@
#define NV_RX_AVAIL (1<<31)
#define NV_RX2_CHECKSUMMASK (0x1C000000)
-@@ -383,11 +625,15 @@
+@@ -382,11 +723,16 @@
#define NV_RX2_OVERFLOW (1<<23)
#define NV_RX2_FRAMINGERR (1<<24)
/* error and avail are the same for both */
@@ -470,11 +564,12 @@
/* Miscelaneous hardware related defines: */
-#define NV_PCI_REGSZ 0x270
+#define NV_PCI_REGSZ_VER1 0x270
-+#define NV_PCI_REGSZ_VER2 0x604
++#define NV_PCI_REGSZ_VER2 0x2d4
++#define NV_PCI_REGSZ_VER3 0x604
/* various timeout delays: all in usec */
#define NV_TXRX_RESET_DELAY 4
-@@ -404,6 +650,7 @@
+@@ -403,6 +749,7 @@
#define NV_MIIBUSY_DELAY 50
#define NV_MIIPHY_DELAY 10
#define NV_MIIPHY_DELAYMAX 10000
@@ -482,7 +577,7 @@
#define NV_WAKEUPPATTERNS 5
#define NV_WAKEUPMASKENTRIES 4
-@@ -411,16 +658,18 @@
+@@ -410,16 +757,18 @@
/* General driver defaults */
#define NV_WATCHDOG_TIMEO (5*HZ)
@@ -509,7 +604,7 @@
/* rx/tx mac addr + type + vlan + align + slack*/
#define NV_RX_HEADERS (64)
-@@ -434,6 +683,7 @@
+@@ -433,6 +782,7 @@
#define OOM_REFILL (1+HZ/20)
#define POLL_WAIT (1+HZ/100)
#define LINK_TIMEOUT (3*HZ)
@@ -517,7 +612,7 @@
/*
* desc_ver values:
-@@ -449,16 +699,37 @@
+@@ -448,16 +798,38 @@
/* PHY defines */
#define PHY_OUI_MARVELL 0x5043
#define PHY_OUI_CICADA 0x03f1
@@ -534,6 +629,7 @@
-#define PHY_INIT6 0x02000
+#define PHYID2_MODEL_MASK 0x03f0
+#define PHY_MODEL_MARVELL_E3016 0x220
++#define PHY_MODEL_MARVELL_E1011 0xb0
+#define PHY_MARVELL_E3016_INITMASK 0x0300
+#define PHY_CICADA_INIT1 0x0f000
+#define PHY_CICADA_INIT2 0x0e00
@@ -561,7 +657,7 @@
#define PHY_GIGABIT 0x0100
#define PHY_TIMEOUT 0x1
-@@ -468,14 +739,148 @@
+@@ -467,14 +839,148 @@
#define PHY_1000 0x2
#define PHY_HALF 0x100
@@ -593,9 +689,6 @@
+#define NV_MSI_X_VECTOR_TX 0x1
+#define NV_MSI_X_VECTOR_OTHER 0x2
+
-+/* statistics */
-+#define NV_STATS_COUNT_SW 10
-+
+#define NVLAN_DISABLE_ALL_FEATURES do { \
+ msi = NV_MSI_INT_DISABLED; \
+ msix = NV_MSIX_INT_DISABLED; \
@@ -682,6 +775,9 @@
+ u64 rx_pause;
+ u64 rx_drop_frame;
+};
++#define NV_DEV_STATISTICS_V2_COUNT (sizeof(struct nv_ethtool_stats)/sizeof(u64))
++#define NV_DEV_STATISTICS_V1_COUNT (NV_DEV_STATISTICS_V2_COUNT - 4)
++#define NV_DEV_STATISTICS_SW_COUNT 10
+
+/* diagnostics */
+#define NV_TEST_COUNT_BASE 3
@@ -693,7 +789,7 @@
+ { "interrupt (offline) " },
+ { "loopback (offline) " }
+};
-+
+
+struct register_test {
+ u32 reg;
+ u32 mask;
@@ -708,7 +804,7 @@
+ { NvRegWakeUpFlags, 0x07777 },
+ { 0,0 }
+};
-
++
+struct nv_skb_map {
+ struct sk_buff *skb;
+ dma_addr_t dma;
@@ -717,7 +813,7 @@
/*
* SMP locking:
-@@ -490,11 +895,48 @@
+@@ -489,57 +995,105 @@
/* in dev: base, irq */
struct fe_priv {
@@ -766,7 +862,9 @@
int in_shutdown;
u32 linkspeed;
int duplex;
-@@ -503,44 +945,46 @@
++ int speed_duplex;
+ int autoneg;
+ int fixed_mode;
int phyaddr;
int wolenabled;
unsigned int phy_oui;
@@ -829,10 +927,18 @@
+ /* flow control */
+ u32 pause_flags;
+ u32 led_stats[3];
++ u32 saved_config_space[64];
++ u32 saved_nvregphyinterface;
++#if NVVER < SUSE10
++ u32 pci_state[16];
++#endif
++ /* msix table */
++ struct nvmsi_msg nvmsg[NV_MSI_X_MAX_VECTORS];
++ unsigned long msix_pa_addr;
};
/*
-@@ -555,8 +999,10 @@
+@@ -554,8 +1108,10 @@
* Throughput Mode: Every tx and rx packet will generate an interrupt.
* CPU Mode: Interrupts are controlled by a timer.
*/
@@ -845,7 +951,7 @@
static int optimization_mode = NV_OPTIMIZATION_MODE_THROUGHPUT;
/*
-@@ -568,14 +1014,213 @@
+@@ -567,14 +1123,221 @@
*/
static int poll_interval = -1;
@@ -990,6 +1096,14 @@
+};
+static int tagging_8021pq = NV_8021PQ_ENABLED;
+
++enum {
++ NV_LOW_POWER_DISABLED,
++ NV_LOW_POWER_ENABLED
++};
++static int lowpowerspeed = NV_LOW_POWER_ENABLED;
++
++static int debug = 0;
++
+#if NVVER < RHES4
+static inline unsigned long nv_msecs_to_jiffies(const unsigned int m)
+{
@@ -1060,7 +1174,7 @@
}
static inline void pci_push(u8 __iomem *base)
-@@ -613,78 +1258,247 @@
+@@ -612,22 +1375,137 @@
return 0;
}
@@ -1085,7 +1199,6 @@
- reg = readl(base + NvRegMIIControl);
- if (reg & NVREG_MIICTL_INUSE) {
- writel(NVREG_MIICTL_INUSE, base + NvRegMIIControl);
-- udelay(NV_MIIBUSY_DELAY);
+ if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) {
+ if (rxtx_flags & NV_SETUP_RX_RING) {
+ writel((u32) cpu_to_le64(np->ring_addr), base + NvRegRxRingPhysAddr);
@@ -1102,59 +1215,30 @@
+ writel((u32) cpu_to_le64(np->ring_addr + np->rx_ring_size*sizeof(struct ring_desc_ex)), base + NvRegTxRingPhysAddr);
+ writel((u32) (cpu_to_le64(np->ring_addr + np->rx_ring_size*sizeof(struct ring_desc_ex)) >> 32), base + NvRegTxRingPhysAddrHigh);
+ }
- }
++ }
+}
-
-- reg = (addr << NVREG_MIICTL_ADDRSHIFT) | miireg;
-- if (value != MII_READ) {
-- writel(value, base + NvRegMIIData);
-- reg |= NVREG_MIICTL_WRITE;
-- }
-- writel(reg, base + NvRegMIIControl);
++
+static void free_rings(struct net_device *dev)
+{
+ struct fe_priv *np = get_nvpriv(dev);
-
-- if (reg_delay(dev, NvRegMIIControl, NVREG_MIICTL_INUSE, 0,
-- NV_MIIPHY_DELAY, NV_MIIPHY_DELAYMAX, NULL)) {
-- dprintk(KERN_DEBUG "%s: mii_rw of reg %d at PHY %d timed out.\n",
-- dev->name, miireg, addr);
-- retval = -1;
-- } else if (value != MII_READ) {
-- /* it was a write operation - fewer failures are detectable */
-- dprintk(KERN_DEBUG "%s: mii_rw wrote 0x%x to reg %d at PHY %d\n",
-- dev->name, value, miireg, addr);
-- retval = 0;
-- } else if (readl(base + NvRegMIIStatus) & NVREG_MIISTAT_ERROR) {
-- dprintk(KERN_DEBUG "%s: mii_rw of reg %d at PHY %d failed.\n",
-- dev->name, miireg, addr);
-- retval = -1;
++
+ if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) {
+ if(np->rx_ring.orig)
+ pci_free_consistent(np->pci_dev, sizeof(struct ring_desc) * (np->rx_ring_size + np->tx_ring_size),
+ np->rx_ring.orig, np->ring_addr);
- } else {
-- retval = readl(base + NvRegMIIData);
-- dprintk(KERN_DEBUG "%s: mii_rw read from reg %d at PHY %d: 0x%x.\n",
-- dev->name, miireg, addr, retval);
++ } else {
+ if (np->rx_ring.ex)
+ pci_free_consistent(np->pci_dev, sizeof(struct ring_desc_ex) * (np->rx_ring_size + np->tx_ring_size),
+ np->rx_ring.ex, np->ring_addr);
- }
--
-- return retval;
++ }
+ if (np->rx_skb)
+ kfree(np->rx_skb);
+ if (np->tx_skb)
+ kfree(np->tx_skb);
- }
-
--static int phy_reset(struct net_device *dev)
++}
++
+static int using_multi_irqs(struct net_device *dev)
- {
-- struct fe_priv *np = netdev_priv(dev);
-- u32 miicontrol;
-- unsigned int tries = 0;
++{
+ struct fe_priv *np = get_nvpriv(dev);
+
+ if (!(np->msi_flags & NV_MSI_X_ENABLED) ||
@@ -1169,7 +1253,7 @@
+{
+ struct fe_priv *np = get_nvpriv(dev);
+
-+ dprintk(KERN_DEBUG "%s: nv_enable_irq: begin\n",dev->name);
++ dprintk(KERN_DEBUG "%s:%s\n",dev->name,__FUNCTION__);
+ /* modify network device class id */
+ if (!using_multi_irqs(dev)) {
+ if (np->msi_flags & NV_MSI_X_ENABLED)
@@ -1187,7 +1271,7 @@
+{
+ struct fe_priv *np = get_nvpriv(dev);
+
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/linux-nvidia.patch?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list