r2109 - in trunk/kernel/source: . kernel-source-2.6.10-2.6.10 kernel-source-2.6.10-2.6.10/debian kernel-source-2.6.10-2.6.10/debian/patches kernel-source-2.6.10-2.6.10/debian/patches/series
Joshua Kwan
joshk@haydn.debian.org
Thu, 30 Dec 2004 15:18:18 -0700
Author: joshk
Date: 2004-12-30 15:18:02 -0700 (Thu, 30 Dec 2004)
New Revision: 2109
Added:
trunk/kernel/source/kernel-source-2.6.10-2.6.10/
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-1
Removed:
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-1
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-2
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-3
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-4
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-5
Modified:
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/control
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/ia64-generic-no-smp.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/modular-ide.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/modular-vesafb.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/remove-references-to-removed-drivers.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/tg3-update.dpatch
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/prune-non-free
trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/rules
Log:
initial work on 2.6.10 - NOT COMPLETED, patches don't even apply all the way yet
Property changes on: trunk/kernel/source/kernel-source-2.6.10-2.6.10
___________________________________________________________________
Name: svn:ignore
+ kernel
crypto
include
net
scripts
sound
CREDITS
README
init
lib
REPORTING-BUGS
security
fs
COPYING
mm
Documentation
usr
MAINTAINERS
ipc
arch
Makefile
drivers
Copied: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian (from rev 2107, trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian)
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/changelog 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,20 +1,9 @@
-kernel-source-2.6.9 (2.6.9-5) UNRELEASED; urgency=low
+kernel-source-2.6.10 (2.6.10-1) UNRELEASED; urgency=low
- * [powerpc] Added a couple of powermac patches from Benjamin Herrenschmidt :
- - 970FX cpu support
- - G5 thermal management update
- - Misc powermac fixes backports
- (Bug #287030) (Sven Luther)
+ * New upstream release.
- * [powerpc] Moved from powerpc kernel-patch package :
- - powermac legacy serial fix.
- - pegasos via-ide dual interrupt fix.
- (Sven Luther)
+ -- Joshua Kwan <joshk@triplehelix.org> Thu, 30 Dec 2004 12:53:40 -0800
- * [powerpc] Added _chrp_type support though pegasos patch (Sven Luther)
-
- -- Sven Luther <luther@debian.org> Sun, 26 Dec 2004 14:03:42 +0100
-
kernel-source-2.6.9 (2.6.9-4) unstable; urgency=low
* Add bw2/cyber2000fb fixes from BK to fix compilation problems.
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/control
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/control 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/control 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,4 +1,4 @@
-Source: kernel-source-2.6.9
+Source: kernel-source-2.6.10
Section: devel
Priority: optional
Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
@@ -6,7 +6,7 @@
Standards-Version: 3.6.1
Build-Depends-Indep: bzip2, debhelper (>= 4), docbook-utils, gs, kernel-package (>= 7.48), transfig
-Package: kernel-source-2.6.9
+Package: kernel-source-2.6.10
Architecture: all
Section: devel
Priority: optional
@@ -14,8 +14,8 @@
Depends: binutils, bzip2, coreutils | fileutils (>= 4.0)
Recommends: libc6-dev | libc-dev, gcc, make
Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-mt-dev
-Description: Linux kernel source for version 2.6.9 with Debian patches
- This package provides the source code for the Linux kernel version 2.6.9.
+Description: Linux kernel source for version 2.6.10 with Debian patches
+ This package provides the source code for the Linux kernel version 2.6.10.
.
You may configure the kernel to your setup by typing "make config"
and following instructions, but you could get ncursesX.X-dev and try
@@ -23,21 +23,21 @@
are options to use QT or GNOME based configuration interfaces, but they
need additional packages to be installed. Also, please read the detailed
documentation in the file
- /usr/share/doc/kernel-source-2.6.9/README.headers.gz.
+ /usr/share/doc/kernel-source-2.6.10/README.headers.gz.
.
If you wish to use this package to create a custom Linux kernel, then
it is suggested that you investigate the package kernel-package,
which has been designed to ease the task of creating kernel image
packages.
-Package: kernel-doc-2.6.9
+Package: kernel-doc-2.6.10
Architecture: all
Section: doc
Priority: optional
Provides: kernel-doc-2.6
Depends: coreutils | fileutils (>= 4.0)
-Description: Linux kernel specific documentation for version 2.6.9
- This package provides the various readme's in the 2.6.9 kernel
+Description: Linux kernel specific documentation for version 2.6.10
+ This package provides the various readme's in the 2.6.10 kernel
Documentation/ subdirectory: these typically contain kernel-specific
installation notes for some drivers for example. See
/usr/share/doc/kernel-doc-X.X.XX/Documentation/00-INDEX for a list of what
@@ -45,23 +45,23 @@
contains information about the problems, which may result by
upgrading your kernel.
-Package: kernel-patch-debian-2.6.9
+Package: kernel-patch-debian-2.6.10
Architecture: all
Section: devel
Priority: optional
Depends: bzip2
-Suggests: kernel-source-2.6.9
-Description: Debian patches to Linux 2.6.9
+Suggests: kernel-source-2.6.10
+Description: Debian patches to Linux 2.6.10
This package includes the patches used to produce the prepackaged
- kernel-source-2.6.9 package. Note that these patches do NOT apply
- against a pristine Linux 2.6.9 kernel but only against
- kernel-source-2.6.9_2.6.9.orig.tar.gz from the Debian archive.
+ kernel-source-2.6.10 package. Note that these patches do NOT apply
+ against a pristine Linux 2.6.10 kernel but only against
+ kernel-source-2.6.10_2.6.10.orig.tar.gz from the Debian archive.
-Package: kernel-tree-2.6.9
+Package: kernel-tree-2.6.10
Architecture: all
Section: devel
Priority: optional
-Depends: kernel-patch-debian-2.6.9 (= ${Source-Version}), ${kt-depends}
+Depends: kernel-patch-debian-2.6.10 (= ${Source-Version}), ${kt-depends}
Provides: ${kt-provides}
Description: Linux kernel tree for building prepackaged Debian kernel images
This meta package is used as a build-time dependency of prepackaged
@@ -72,5 +72,5 @@
For those intending to use this package as a build-time dependency, this
package provides a list of virtual packages that guarantees the availability
of a particular Debian revision of the kernel tree. The
- kernel-image-2.6.9-i386 package is an example of this.
+ kernel-image-2.6.10-i386 package is an example of this.
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/ia64-generic-no-smp.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/ia64-generic-no-smp.dpatch 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/ia64-generic-no-smp.dpatch 2004-12-30 22:18:02 UTC (rev 2109)
@@ -15,7 +15,7 @@
@@ -15,6 +15,7 @@
obj-$(CONFIG_IOSAPIC) += iosapic.o
obj-$(CONFIG_MODULES) += module.o
- obj-$(CONFIG_SMP) += smp.o smpboot.o
+ obj-$(CONFIG_SMP) += smp.o smpboot.o domain.o
+obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_PERFMON) += perfmon_default_smpl.o
obj-$(CONFIG_IA64_CYCLONE) += cyclone.o
@@ -205,6 +205,19 @@
/**
* show_mem - give short summary of memory stats
+@@ -80,12 +80,6 @@
+ *
+ */
+
+-#ifndef CONFIG_SMP
+-#define cpu_logical_id(cpu) 0
+-#define cpu_physical_id(cpuid) ((ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff)
+-#endif
+-
+-
+ #define get_node_number(addr) (((unsigned long)(addr)>>38) & 0x7ff)
+
+ /*
diff -Nru a/include/asm-ia64/smp.h b/include/asm-ia64/smp.h
--- a/include/asm-ia64/smp.h 2004-08-12 18:28:06 -07:00
+++ b/include/asm-ia64/smp.h 2004-08-12 18:28:06 -07:00
@@ -216,17 +229,3 @@
#endif /* CONFIG_SMP */
#endif /* _ASM_IA64_SMP_H */
-diff -Nru a/include/asm-ia64/sn/sn_cpuid.h b/include/asm-ia64/sn/sn_cpuid.h
---- a/include/asm-ia64/sn/sn_cpuid.h 2004-08-12 18:28:06 -07:00
-+++ b/include/asm-ia64/sn/sn_cpuid.h 2004-08-12 18:28:06 -07:00
-@@ -83,10 +83,6 @@
- *
- */
-
--#ifndef CONFIG_SMP
--#define cpu_physical_id(cpuid) ((ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff)
--#endif
--
- /*
- * macros for some of these exist in sn/addrs.h & sn/arch.h, etc. However,
- * trying #include these files here causes circular dependencies.
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/modular-ide.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/modular-ide.dpatch 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/modular-ide.dpatch 2004-12-30 22:18:02 UTC (rev 2109)
@@ -119,62 +119,24 @@
}
+
+EXPORT_SYMBOL_GPL(ide_scan_pcibus);
---- 1.16/drivers/ide/arm/icside.c 2004-02-28 12:38:08 +01:00
-+++ edited/drivers/ide/arm/icside.c 2004-06-16 15:44:16 +02:00
-@@ -861,10 +861,19 @@
- break;
- }
-
-- if (ret == 0)
-+ if (ret == 0) {
- ecard_set_drvdata(ec, state);
-- else
-+
+--- 1.6/drivers/ide/arm/rapide.c 2004-02-07 20:44:16 +01:00
++++ edited/drivers/ide/arm/rapide.c 2004-06-16 15:44:16 +02:00
+@@ -33,6 +33,15 @@
+ probe_hwif_init(hwif);
+ create_proc_ide_interfaces();
+ ecard_set_drvdata(ec, hwif);
+ /*
+ * this locks the driver in-core - remove this
-+ * comment and the line below when we can
++ * comment and the two lines below when we can
+ * safely remove interfaces.
+ */
++
+ if (!try_module_get(THIS_MODULE))
+ ret = -ENODEV;
-+ } else {
- kfree(state);
-+ }
- out:
- return ret;
- }
-@@ -947,8 +956,14 @@
- return ecard_register_driver(&icside_driver);
- }
-
-+static void __exit icside_exit(void)
-+{
-+ ecard_remove_driver(&icside_driver);
-+}
+
- MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
- MODULE_LICENSE("GPL");
- MODULE_DESCRIPTION("ICS IDE driver");
+ goto out;
+ }
- module_init(icside_init);
-+module_exit(icside_exit);
---- 1.6/drivers/ide/arm/rapide.c 2004-02-07 20:44:16 +01:00
-+++ edited/drivers/ide/arm/rapide.c 2004-06-16 15:44:16 +02:00
-@@ -33,6 +33,14 @@
-
- if (ret)
- ecard_release(ec);
-+ /*
-+ * this locks the driver in-core - remove this
-+ * comment and the two lines below when we can
-+ * safely remove interfaces.
-+ */
-+ else if (!try_module_get(THIS_MODULE))
-+ ret = -ENODEV;
-+
- return ret;
- }
-
@@ -60,7 +68,13 @@
return ecard_register_driver(&rapide_driver);
}
@@ -600,21 +562,6 @@
MODULE_DESCRIPTION("PCI driver module for the Cypress CY82C693 IDE");
--- 1.16/drivers/ide/pci/generic.c 2004-06-01 21:04:38 +02:00
+++ edited/drivers/ide/pci/generic.c 2004-06-16 15:44:17 +02:00
-@@ -41,12 +41,12 @@
-
- #include "generic.h"
-
--static unsigned int __init init_chipset_generic (struct pci_dev *dev, const char *name)
-+static unsigned int __devinit init_chipset_generic (struct pci_dev *dev, const char *name)
- {
- return 0;
- }
-
--static void __init init_hwif_generic (ide_hwif_t *hwif)
-+static void __devinit init_hwif_generic (ide_hwif_t *hwif)
- {
- switch(hwif->pci_dev->device) {
- case PCI_DEVICE_ID_UMC_UM8673F:
@@ -113,6 +113,8 @@
printk(KERN_INFO "Skipping disabled %s IDE controller.\n", d->name);
return 1;
@@ -885,15 +832,6 @@
MODULE_DESCRIPTION("PCI driver module for Intel PIIX IDE");
--- 1.15/drivers/ide/pci/rz1000.c 2004-06-15 18:29:40 +02:00
+++ edited/drivers/ide/pci/rz1000.c 2004-06-16 15:47:44 +02:00
-@@ -33,7 +33,7 @@
-
- #include <asm/io.h>
-
--static void __init init_hwif_rz1000 (ide_hwif_t *hwif)
-+static void __devinit init_hwif_rz1000 (ide_hwif_t *hwif)
- {
- u16 reg;
- struct pci_dev *dev = hwif->pci_dev;
@@ -62,6 +62,8 @@
static int __devinit rz1000_init_one(struct pci_dev *dev, const struct pci_device_id *id)
@@ -919,15 +857,6 @@
MODULE_DESCRIPTION("PCI driver module for RZ1000 IDE");
--- 1.19/drivers/ide/pci/sc1200.c 2004-06-15 18:29:40 +02:00
+++ edited/drivers/ide/pci/sc1200.c 2004-06-16 15:47:38 +02:00
-@@ -507,7 +507,7 @@
- /*
- * Initialize the sc1200 bridge for reliable IDE DMA operation.
- */
--static unsigned int __init init_chipset_sc1200 (struct pci_dev *dev, const char *name)
-+static unsigned int __devinit init_chipset_sc1200 (struct pci_dev *dev, const char *name)
- {
- #if defined(DISPLAY_SC1200_TIMINGS) && defined(CONFIG_PROC_FS)
- if (!bmide_dev) {
@@ -523,7 +523,7 @@
* This gets invoked by the IDE driver once for each channel,
* and performs channel-specific pre-initialization before drive probing.
@@ -1065,46 +994,9 @@
MODULE_DESCRIPTION("PCI driver module for Serverworks OSB4/CSB5/CSB6 IDE");
--- 1.9/drivers/ide/pci/sgiioc4.c 2004-06-01 21:04:38 +02:00
+++ edited/drivers/ide/pci/sgiioc4.c 2004-06-16 15:49:46 +02:00
-@@ -382,7 +382,7 @@
- }
-
- /* Creates a dma map for the scatter-gather list entries */
--static void __init
-+static void __devinit
- ide_dma_sgiioc4(ide_hwif_t * hwif, unsigned long dma_base)
- {
- int num_ports = sizeof (ioc4_dma_regs_t);
-@@ -608,7 +608,7 @@
- return 0;
- }
-
--static void __init
-+static void __devinit
- ide_init_sgiioc4(ide_hwif_t * hwif)
- {
- hwif->mmio = 2;
-@@ -646,7 +646,7 @@
- hwif->INB = &sgiioc4_INB;
- }
-
--static int __init
-+static int __devinit
- sgiioc4_ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t * d)
- {
- unsigned long base, ctl, dma_base, irqport;
-@@ -716,7 +716,7 @@
- *pci_dev, pciio_endian_t device_end,
- pciio_endian_t desired_end);
-
--static unsigned int __init
-+static unsigned int __devinit
- pci_init_sgiioc4(struct pci_dev *dev, ide_pci_device_t * d)
- {
- unsigned int class_rev;
-@@ -751,6 +751,9 @@
+@@ -751,5 +751,8 @@
return -ENODEV;
}
-
+ if (!try_module_get(THIS_MODULE))
+ return -ENODEV;
+
@@ -1257,15 +1149,6 @@
MODULE_LICENSE("GPL");
--- 1.22/drivers/ide/pci/slc90e66.c 2004-06-15 18:29:40 +02:00
+++ edited/drivers/ide/pci/slc90e66.c 2004-06-16 15:47:02 +02:00
-@@ -313,7 +313,7 @@
- }
- #endif /* CONFIG_BLK_DEV_IDEDMA */
-
--static unsigned int __init init_chipset_slc90e66 (struct pci_dev *dev, const char *name)
-+static unsigned int __devinit init_chipset_slc90e66 (struct pci_dev *dev, const char *name)
- {
- #if defined(DISPLAY_SLC90E66_TIMINGS) && defined(CONFIG_PROC_FS)
- if (!slc90e66_proc) {
@@ -325,7 +325,7 @@
return 0;
}
@@ -1419,3 +1302,34 @@
extern int ide_pci_register_driver(struct pci_driver *driver);
extern void ide_pci_unregister_driver(struct pci_driver *driver);
extern void ide_pci_setup_ports(struct pci_dev *dev, struct ide_pci_device_s *d, int autodma, int pciirq, ata_index_t *index);
+--- a/drivers/ide/arm/icside.c 2004-12-30 13:45:43.000000000 -0800
++++ b/drivers/ide/arm/icside.c 2004-12-30 13:47:27.000000000 -0800
+@@ -800,6 +800,13 @@
+
+ if (ret == 0) {
+ ecard_set_drvdata(ec, state);
++ /*
++ * this locks the driver in-core - remove this
++ * comment and the line below when we can
++ * safely remove interfaces.
++ */
++ if (!try_module_get(THIS_MODULE))
++ ret = -ENODEV;
+ goto out;
+ }
+
+@@ -892,8 +899,14 @@
+ return ecard_register_driver(&icside_driver);
+ }
+
++static void __exit icside_exit(void)
++{
++ ecard_remove_driver(&icside_driver);
++}
++
+ MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
+ MODULE_LICENSE("GPL");
+ MODULE_DESCRIPTION("ICS IDE driver");
+
+ module_init(icside_init);
++module_exit(icside_exit);
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/modular-vesafb.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/modular-vesafb.dpatch 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/modular-vesafb.dpatch 2004-12-30 22:18:02 UTC (rev 2109)
@@ -36,9 +36,9 @@
static int inverse = 0;
static int mtrr = 1;
+static int mtrr_hdl;
- static int vram __initdata = 0; /* Set amount of memory to be used */
+ static int vram_remap __initdata = 0; /* Set amount of memory to be used */
+ static int vram_total __initdata = 0; /* Set total amount of memory */
static int pmi_setpal = 0; /* pmi for palette changes ??? */
- static int ypan = 0; /* 0..nothing, 1..ypan, 2..ywrap */
@@ -56,6 +58,9 @@
static void (*pmi_start)(void);
static void (*pmi_pal)(void);
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/remove-references-to-removed-drivers.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/remove-references-to-removed-drivers.dpatch 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/remove-references-to-removed-drivers.dpatch 2004-12-30 22:18:02 UTC (rev 2109)
@@ -20,25 +20,6 @@
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_LNE390 is not set
-diff -urN kernel-source-2.6.6/arch/arm/defconfig kernel-source-2.6.6-1/arch/arm/defconfig
---- kernel-source-2.6.6/arch/arm/defconfig 2004-03-11 13:55:24.000000000 +1100
-+++ kernel-source-2.6.6-1/arch/arm/defconfig 2003-09-21 08:41:56.000000000 +1000
-@@ -239,7 +239,6 @@
- # CONFIG_CS89x0 is not set
- CONFIG_TULIP=y
- # CONFIG_DE4X5 is not set
--# CONFIG_DGRS is not set
- # CONFIG_DM9102 is not set
- CONFIG_EEPRO100=y
- CONFIG_EEPRO100_PM=y
-@@ -262,7 +261,6 @@
- #
- # Ethernet (1000 Mbit)
- #
--# CONFIG_ACENIC is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_SK98LIN is not set
diff -urN kernel-source-2.6.6/arch/i386/defconfig kernel-source-2.6.6-1/arch/i386/defconfig
--- kernel-source-2.6.6/arch/i386/defconfig 2004-04-05 19:49:22.000000000 +1000
+++ kernel-source-2.6.6-1/arch/i386/defconfig 2004-04-05 20:54:17.000000000 +1000
@@ -74,9 +55,9 @@
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
- CONFIG_EEPRO100=y
+ CONFIG_EEPRO100=m
# CONFIG_EEPRO100_PIO is not set
- # CONFIG_E100 is not set
+ CONFIG_E100=m
@@ -456,7 +455,6 @@
#
# Ethernet (1000 Mbit)
Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-1
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.10-1 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-1 2004-12-30 22:18:02 UTC (rev 2109)
@@ -0,0 +1,115 @@
++ doc-post_halloween.dpatch
++ drivers-ide-dma-blacklist-toshiba.dpatch
++ drivers-input-psaux-hacks.dpatch
++ drivers-net-8139too-locking.dpatch
+X drivers/net/acenic_firmware.h
+X drivers/net/dgrs_firmware.c
+X drivers/net/tg3.c
+X drivers/net/tokenring/smctr_firmware.h
+X drivers/scsi/qla2xxx/ql2100_fw.c
+X drivers/scsi/qla2xxx/ql2200_fw.c
+X drivers/scsi/qla2xxx/ql2300_fw.c
+X drivers/scsi/qla2xxx/ql2322_fw.c
+X drivers/scsi/qla2xxx/ql6312_fw.c
+X drivers/scsi/qla2xxx/ql6322_fw.c
+X drivers/usb/media/dabfirmware.h
+X drivers/usb/misc/emi62_fw_m.h
+X drivers/usb/misc/emi62_fw_s.h
+X drivers/usb/serial/keyspan_mpr_fw.h
+X drivers/usb/serial/keyspan_usa18x_fw.h
+X drivers/usb/serial/keyspan_usa19_fw.h
+X drivers/usb/serial/keyspan_usa19qi_fw.h
+X drivers/usb/serial/keyspan_usa19qw_fw.h
+X drivers/usb/serial/keyspan_usa19w_fw.h
+X drivers/usb/serial/keyspan_usa28_fw.h
+X drivers/usb/serial/keyspan_usa28x_fw.h
+X drivers/usb/serial/keyspan_usa28xa_fw.h
+X drivers/usb/serial/keyspan_usa28xb_fw.h
+X drivers/usb/serial/keyspan_usa49w_fw.h
+X drivers/usb/serial/keyspan_usa49wlc_fw.h
++ drivers-net-tg3-readd.dpatch
++ drivers-scsi_changer.dpatch
++ drivers-scsi-generic_proc_info.dpatch
++ fs-asfs.dpatch
++ ipsec-missing_wakeup.dpatch
++ modular-ide.dpatch
++ modular-ide-pnp.dpatch
++ modular-vesafb.dpatch
++ remove-references-to-removed-drivers.dpatch
++ x86-i486_emu.dpatch
++ powerpc-pegasos.dpatch
++ ia64-generic-no-smp.dpatch
++ marvell-pegasos.dpatch
++ powerpc-g4-l2-flush-errata.dpatch
++ ia64-generic-no-smp-1-to-2.dpatch
++ ia64_cyclone_nosmp.dpatch
++ scsi-blacklist.dpatch
++ aic79xx-nohw.dpatch
++ ata_piix-combinde-mode-fix.dpatch
++ tg3-update.dpatch
++ alsa-module-load-fix.dpatch
++ sparc64-hme-lockup.dpatch
++ ia64-mem-max_addr-cmdline-fix.dpatch
++ ppc64-iSeries-build-fix.dpatch
++ drivers-video-fm2fb-build-fix.dpatch
++ fs-ext3-directio-leak-fix.dpatch
++ smbfs-overrun.dpatch
++ drivers-pci-quirks-via8233a.dpatch
++ parport_pc-via8231.dpatch
++ ia64-hp-sba_iommu-fix.dpatch
++ drivers-serial-sn_console-up-buildfix.dpatch
++ SG_IO-safe-commands-1.dpatch
++ alpha-writeq-fix.dpatch
++ mm-vmscan.dpatch
++ drivers-usb-storage-transport-1.dpatch
++ drivers-usb-storage-transport-2.dpatch
++ ia64-sn-move-irq-noop.dpatch
++ mm-shmem-nomount-fix.dpatch
++ elf-loader-fixes.dpatch
++ sparc-cg14-init.dpatch
++ sparc-sunzilog-timeout.dpatch
++ dm_io-ENOMEM-goof.dpatch
++ elf-loader-fixes-the-return.dpatch
++ aout-loader-fixes.dpatch
++ s390-sacf-fix.dpatch
+- smbfs-overrun.dpatch
++ smbfs-overflow-fixes.dpatch
++ tty-locking-fixes9.dpatch
++ drivers-serial-8250-ioremap-fix.dpatch
+- ata_piix-combinde-mode-fix.dpatch
++ ata_piix-combinde-mode-fix-2.dpatch
++ vlan-update-1.dpatch
++ drivers-ide-dma-ricoh.dpatch
++ fs-tmpfs-free_inode-leak.dpatch
++ sparc32-initrd-memcpy.dpatch
++ sparc64-sunsab-break-fix.dpatch
++ fb_get_option-fix.dpatch
++ drm-locking-fixes.dpatch
++ selinux-seqpacket-fix.dpatch
++ mark-vmio.dpatch
++ unix-serialize-dgram.dpatch
++ drivers-firmware-pcdp-register.dpatch
++ arch-x86_64-sys32_ni-overflow.dpatch
++ fs-partitions-check.dpatch
++ scm_send-dos-fix.dpatch
++ igmp-src-list-fix.dpatch
++ scm_send-dos-fix2.dpatch
++ binfmt-huge-vma-dos.dpatch
++ binfmt-huge-vma-dos2.dpatch
++ arch-x86_64-sys32_quotactl-overflow.dpatch
++ ip-conntrack-ftp-leak.dpatch
++ reiserfs-sucks-0.dpatch
++ reiserfs-sucks-1.dpatch
++ reiserfs-sucks-2.dpatch
++ reiserfs-sucks-3.dpatch
++ fix-ip-options-leak.dpatch
++ vt-of-death.dpatch
++ drivers-usb-storage-revoltec.dpatch
++ arch-x86_64-signal-bug.dpatch
+- powerpc-pegasos.dpatch
++ powerpc-pegasos-2.dpatch
++ powerpc-pegasos-via82cxxx.dpatch
++ powerpc-serial.dpatch
++ powerpc-970fx-support.dpatch
++ powerpc-g5-thermal-management-update.dpatch
++ powerpc-misc-powermac-fixes.dpatch
Deleted: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-1
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-1 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-1 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,56 +0,0 @@
-+ doc-post_halloween.dpatch
-+ drivers-ide-dma-blacklist-toshiba.dpatch
-+ drivers-input-psaux-hacks.dpatch
-+ drivers-net-8139too-locking.dpatch
-X drivers/net/acenic_firmware.h
-X drivers/net/dgrs_firmware.c
-X drivers/net/tg3.c
-X drivers/net/tokenring/smctr_firmware.h
-X drivers/scsi/qla2xxx/ql2100_fw.c
-X drivers/scsi/qla2xxx/ql2200_fw.c
-X drivers/scsi/qla2xxx/ql2300_fw.c
-X drivers/scsi/qla2xxx/ql2322_fw.c
-X drivers/scsi/qla2xxx/ql6312_fw.c
-X drivers/scsi/qla2xxx/ql6322_fw.c
-X drivers/usb/media/dabfirmware.h
-X drivers/usb/misc/emi62_fw_m.h
-X drivers/usb/misc/emi62_fw_s.h
-X drivers/usb/serial/keyspan_mpr_fw.h
-X drivers/usb/serial/keyspan_usa18x_fw.h
-X drivers/usb/serial/keyspan_usa19_fw.h
-X drivers/usb/serial/keyspan_usa19qi_fw.h
-X drivers/usb/serial/keyspan_usa19qw_fw.h
-X drivers/usb/serial/keyspan_usa19w_fw.h
-X drivers/usb/serial/keyspan_usa28_fw.h
-X drivers/usb/serial/keyspan_usa28x_fw.h
-X drivers/usb/serial/keyspan_usa28xa_fw.h
-X drivers/usb/serial/keyspan_usa28xb_fw.h
-X drivers/usb/serial/keyspan_usa49w_fw.h
-X drivers/usb/serial/keyspan_usa49wlc_fw.h
-+ drivers-net-tg3-readd.dpatch
-+ drivers-scsi_changer.dpatch
-+ drivers-scsi-generic_proc_info.dpatch
-+ fs-asfs.dpatch
-+ ipsec-missing_wakeup.dpatch
-+ modular-ide.dpatch
-+ modular-ide-pnp.dpatch
-+ modular-vesafb.dpatch
-+ remove-references-to-removed-drivers.dpatch
-+ x86-i486_emu.dpatch
-+ powerpc-pegasos.dpatch
-+ ia64-generic-no-smp.dpatch
-+ marvell-pegasos.dpatch
-+ powerpc-g4-l2-flush-errata.dpatch
-+ ia64-generic-no-smp-1-to-2.dpatch
-+ ia64_cyclone_nosmp.dpatch
-+ scsi-blacklist.dpatch
-+ aic79xx-nohw.dpatch
-+ ata_piix-combinde-mode-fix.dpatch
-+ tg3-update.dpatch
-+ alsa-module-load-fix.dpatch
-+ sparc64-hme-lockup.dpatch
-+ ia64-mem-max_addr-cmdline-fix.dpatch
-+ ppc64-iSeries-build-fix.dpatch
-+ drivers-video-fm2fb-build-fix.dpatch
-+ fs-ext3-directio-leak-fix.dpatch
-+ smbfs-overrun.dpatch
Deleted: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-2
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-2 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-2 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,14 +0,0 @@
-+ drivers-pci-quirks-via8233a.dpatch
-+ parport_pc-via8231.dpatch
-+ ia64-hp-sba_iommu-fix.dpatch
-+ drivers-serial-sn_console-up-buildfix.dpatch
-+ SG_IO-safe-commands-1.dpatch
-+ alpha-writeq-fix.dpatch
-+ mm-vmscan.dpatch
-+ drivers-usb-storage-transport-1.dpatch
-+ drivers-usb-storage-transport-2.dpatch
-+ ia64-sn-move-irq-noop.dpatch
-+ mm-shmem-nomount-fix.dpatch
-+ elf-loader-fixes.dpatch
-+ sparc-cg14-init.dpatch
-+ sparc-sunzilog-timeout.dpatch
Deleted: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-3
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-3 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-3 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,15 +0,0 @@
-+ dm_io-ENOMEM-goof.dpatch
-+ elf-loader-fixes-the-return.dpatch
-+ aout-loader-fixes.dpatch
-+ s390-sacf-fix.dpatch
-- smbfs-overrun.dpatch
-+ smbfs-overflow-fixes.dpatch
-+ tty-locking-fixes9.dpatch
-+ drivers-serial-8250-ioremap-fix.dpatch
-- ata_piix-combinde-mode-fix.dpatch
-+ ata_piix-combinde-mode-fix-2.dpatch
-+ vlan-update-1.dpatch
-+ drivers-ide-dma-ricoh.dpatch
-+ fs-tmpfs-free_inode-leak.dpatch
-+ sparc32-initrd-memcpy.dpatch
-+ sparc64-sunsab-break-fix.dpatch
Deleted: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-4
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-4 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-4 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,23 +0,0 @@
-+ fb_get_option-fix.dpatch
-+ drm-locking-fixes.dpatch
-+ selinux-seqpacket-fix.dpatch
-+ mark-vmio.dpatch
-+ unix-serialize-dgram.dpatch
-+ drivers-firmware-pcdp-register.dpatch
-+ arch-x86_64-sys32_ni-overflow.dpatch
-+ fs-partitions-check.dpatch
-+ scm_send-dos-fix.dpatch
-+ igmp-src-list-fix.dpatch
-+ scm_send-dos-fix2.dpatch
-+ binfmt-huge-vma-dos.dpatch
-+ binfmt-huge-vma-dos2.dpatch
-+ arch-x86_64-sys32_quotactl-overflow.dpatch
-+ ip-conntrack-ftp-leak.dpatch
-+ reiserfs-sucks-0.dpatch
-+ reiserfs-sucks-1.dpatch
-+ reiserfs-sucks-2.dpatch
-+ reiserfs-sucks-3.dpatch
-+ fix-ip-options-leak.dpatch
-+ vt-of-death.dpatch
-+ drivers-usb-storage-revoltec.dpatch
-+ arch-x86_64-signal-bug.dpatch
Deleted: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-5
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/series/2.6.9-5 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.9-5 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,7 +0,0 @@
-- powerpc-pegasos.dpatch
-+ powerpc-pegasos-2.dpatch
-+ powerpc-pegasos-via82cxxx.dpatch
-+ powerpc-serial.dpatch
-+ powerpc-970fx-support.dpatch
-+ powerpc-g5-thermal-management-update.dpatch
-+ powerpc-misc-powermac-fixes.dpatch
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/tg3-update.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/patches/tg3-update.dpatch 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/tg3-update.dpatch 2004-12-30 22:18:02 UTC (rev 2109)
@@ -1,28 +1,128 @@
-#! /bin/sh -e
-## <PATCHNAME>.dpatch by <PATCH_AUTHOR@EMAI>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Description: Update tg3 driver to upstream BK as of 2004/09/21 (modulo firmware)
-## DP: Patch author: David Miller <davem@redhat.com> (+ addition contributors)
-## DP: Upstream status: backport
+# origin: Debian (joshk)
+# cset: n/a
+# description: update tg3.c to 2.6.10 code, modulo firmware
+# inclusion: rejected
+# revision date
-. $(dirname $0)/DPATCH
-
-@DPATCH@
---- kernel-source-2.6.8/drivers/net/tg3.c 2004-09-13 05:28:07.000000000 +0200
-+++ linux-2.5/drivers/net/tg3.c 2004-09-18 13:46:34.949986280 +0200
-@@ -60,8 +60,8 @@
+--- drivers/net/tg3.c 2004-12-30 13:04:55.000000000 -0800
++++ tg3.c 2004-12-30 13:35:38.000000000 -0800
+@@ -5,12 +5,15 @@
+ * Copyright (C) 2001, 2002, 2003 Jeff Garzik (jgarzik@pobox.com)
+ * Copyright (C) 2004 Sun Microsystems Inc.
+ * Portions copyright 2004 Nathanael Nerode <neroden@gcc.gnu.org>
++ *
++ * Firmware is:
++ * Copyright (C) 2000-2003 Broadcom Corporation.
+ */
+ #include <linux/config.h>
+
+ #include <linux/module.h>
+-
++#include <linux/moduleparam.h>
+ #include <linux/kernel.h>
+ #include <linux/types.h>
+ #include <linux/compiler.h>
+@@ -60,8 +63,8 @@
+
#define DRV_MODULE_NAME "tg3"
#define PFX DRV_MODULE_NAME ": "
-#define DRV_MODULE_VERSION "3.8"
-#define DRV_MODULE_RELDATE "July 14, 2004"
-+#define DRV_MODULE_VERSION "3.10"
-+#define DRV_MODULE_RELDATE "September 14, 2004"
++#define DRV_MODULE_VERSION "3.14"
++#define DRV_MODULE_RELDATE "November 15, 2004"
#define TG3_DEF_MAC_MODE 0
#define TG3_DEF_RX_MODE 0
-@@ -445,9 +445,14 @@
+@@ -141,10 +144,11 @@
+ MODULE_AUTHOR("David S. Miller (davem@redhat.com) and Jeff Garzik (jgarzik@pobox.com)");
+ MODULE_DESCRIPTION("Broadcom Tigon3 ethernet driver");
+ MODULE_LICENSE("GPL");
+-MODULE_PARM(tg3_debug, "i");
+-MODULE_PARM_DESC(tg3_debug, "Tigon3 bitmapped debugging message enable value");
++MODULE_VERSION(DRV_MODULE_VERSION);
+
+ static int tg3_debug = -1; /* -1 == use TG3_DEF_MSG_ENABLE as value */
++module_param(tg3_debug, int, 0);
++MODULE_PARM_DESC(tg3_debug, "Tigon3 bitmapped debugging message enable value");
+
+ static struct pci_device_id tg3_pci_tbl[] = {
+ { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5700,
+@@ -205,6 +209,14 @@
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+ { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751F,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
++ { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
++ { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753M,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
++ { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753F,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
++ { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5781,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+ { PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9DXX,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+ { PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9MXX,
+@@ -224,8 +236,8 @@
+
+ MODULE_DEVICE_TABLE(pci, tg3_pci_tbl);
+
+-struct {
+- char string[ETH_GSTRING_LEN];
++static struct {
++ const char string[ETH_GSTRING_LEN];
+ } ethtool_stats_keys[TG3_NUM_STATS] = {
+ { "rx_octets" },
+ { "rx_fragments" },
+@@ -331,7 +343,7 @@
+ pci_write_config_dword(tp->pdev, TG3PCI_REG_DATA, val);
+ spin_unlock_irqrestore(&tp->indirect_lock, flags);
+ } else {
+- unsigned long dest = tp->regs + off;
++ void __iomem *dest = tp->regs + off;
+ writel(val, dest);
+ readl(dest); /* always flush PCI write */
+ }
+@@ -339,7 +351,7 @@
+
+ static inline void _tw32_rx_mbox(struct tg3 *tp, u32 off, u32 val)
+ {
+- unsigned long mbox = tp->regs + off;
++ void __iomem *mbox = tp->regs + off;
+ writel(val, mbox);
+ if (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)
+ readl(mbox);
+@@ -347,7 +359,7 @@
+
+ static inline void _tw32_tx_mbox(struct tg3 *tp, u32 off, u32 val)
+ {
+- unsigned long mbox = tp->regs + off;
++ void __iomem *mbox = tp->regs + off;
+ writel(val, mbox);
+ if (tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG)
+ writel(val, mbox);
+@@ -417,6 +429,20 @@
+ tg3_cond_int(tp);
+ }
+
++/* tg3_restart_ints
++ * similar to tg3_enable_ints, but it can return without flushing the
++ * PIO write which reenables interrupts
++ */
++static void tg3_restart_ints(struct tg3 *tp)
++{
++ tw32(TG3PCI_MISC_HOST_CTRL,
++ (tp->misc_host_ctrl & ~MISC_HOST_CTRL_MASK_PCI_INT));
++ tw32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000000);
++ mmiowb();
++
++ tg3_cond_int(tp);
++}
++
+ static inline void tg3_netif_stop(struct tg3 *tp)
+ {
+ netif_poll_disable(tp->dev);
+@@ -445,9 +471,14 @@
0x1f);
tp->pci_clock_ctrl = clock_ctrl;
@@ -40,7 +140,80 @@
tw32_f(TG3PCI_CLOCK_CTRL,
clock_ctrl |
(CLOCK_CTRL_44MHZ_CORE | CLOCK_CTRL_ALTCLK));
-@@ -983,7 +988,7 @@
+@@ -861,34 +892,54 @@
+ GRC_LCLCTRL_GPIO_OUTPUT1));
+ udelay(100);
+ } else {
++ int no_gpio2;
++ u32 grc_local_ctrl;
++
+ if (tp_peer != tp &&
+ (tp_peer->tg3_flags & TG3_FLAG_INIT_COMPLETE) != 0)
+ return;
+
++ /* On 5753 and variants, GPIO2 cannot be used. */
++ no_gpio2 = (tp->nic_sram_data_cfg &
++ NIC_SRAM_DATA_CFG_NO_GPIO2) != 0;
++
++ grc_local_ctrl = GRC_LCLCTRL_GPIO_OE0 |
++ GRC_LCLCTRL_GPIO_OE1 |
++ GRC_LCLCTRL_GPIO_OE2 |
++ GRC_LCLCTRL_GPIO_OUTPUT1 |
++ GRC_LCLCTRL_GPIO_OUTPUT2;
++ if (no_gpio2) {
++ grc_local_ctrl &= ~(GRC_LCLCTRL_GPIO_OE2 |
++ GRC_LCLCTRL_GPIO_OUTPUT2);
++ }
+ tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
+- (GRC_LCLCTRL_GPIO_OE0 |
+- GRC_LCLCTRL_GPIO_OE1 |
+- GRC_LCLCTRL_GPIO_OE2 |
+- GRC_LCLCTRL_GPIO_OUTPUT1 |
+- GRC_LCLCTRL_GPIO_OUTPUT2));
++ grc_local_ctrl);
+ udelay(100);
+
++ grc_local_ctrl = GRC_LCLCTRL_GPIO_OE0 |
++ GRC_LCLCTRL_GPIO_OE1 |
++ GRC_LCLCTRL_GPIO_OE2 |
++ GRC_LCLCTRL_GPIO_OUTPUT0 |
++ GRC_LCLCTRL_GPIO_OUTPUT1 |
++ GRC_LCLCTRL_GPIO_OUTPUT2;
++ if (no_gpio2) {
++ grc_local_ctrl &= ~(GRC_LCLCTRL_GPIO_OE2 |
++ GRC_LCLCTRL_GPIO_OUTPUT2);
++ }
+ tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
+- (GRC_LCLCTRL_GPIO_OE0 |
+- GRC_LCLCTRL_GPIO_OE1 |
+- GRC_LCLCTRL_GPIO_OE2 |
+- GRC_LCLCTRL_GPIO_OUTPUT0 |
+- GRC_LCLCTRL_GPIO_OUTPUT1 |
+- GRC_LCLCTRL_GPIO_OUTPUT2));
++ grc_local_ctrl);
+ udelay(100);
+
+- tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
+- (GRC_LCLCTRL_GPIO_OE0 |
+- GRC_LCLCTRL_GPIO_OE1 |
+- GRC_LCLCTRL_GPIO_OE2 |
+- GRC_LCLCTRL_GPIO_OUTPUT0 |
+- GRC_LCLCTRL_GPIO_OUTPUT1));
+- udelay(100);
++ grc_local_ctrl = GRC_LCLCTRL_GPIO_OE0 |
++ GRC_LCLCTRL_GPIO_OE1 |
++ GRC_LCLCTRL_GPIO_OE2 |
++ GRC_LCLCTRL_GPIO_OUTPUT0 |
++ GRC_LCLCTRL_GPIO_OUTPUT1;
++ if (!no_gpio2) {
++ tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl |
++ grc_local_ctrl);
++ udelay(100);
++ }
+ }
+ } else {
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 &&
+@@ -983,7 +1034,7 @@
tp->link_config.orig_autoneg = tp->link_config.autoneg;
}
@@ -49,7 +222,7 @@
tp->link_config.speed = SPEED_10;
tp->link_config.duplex = DUPLEX_HALF;
tp->link_config.autoneg = AUTONEG_ENABLE;
-@@ -995,7 +1000,7 @@
+@@ -995,7 +1046,7 @@
if (tp->tg3_flags & TG3_FLAG_WOL_ENABLE) {
u32 mac_mode;
@@ -58,7 +231,7 @@
tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x5a);
udelay(40);
-@@ -1117,29 +1122,33 @@
+@@ -1117,29 +1168,33 @@
u32 old_rx_mode = tp->rx_mode;
u32 old_tx_mode = tp->tx_mode;
@@ -113,7 +286,7 @@
if (new_tg3_flags & TG3_FLAG_RX_PAUSE)
tp->rx_mode |= RX_MODE_FLOW_CTRL_ENABLE;
-@@ -1490,6 +1499,18 @@
+@@ -1490,6 +1545,18 @@
current_speed = SPEED_INVALID;
current_duplex = DUPLEX_INVALID;
@@ -132,7 +305,7 @@
bmsr = 0;
for (i = 0; i < 100; i++) {
tg3_readphy(tp, MII_BMSR, &bmsr);
-@@ -1569,7 +1590,7 @@
+@@ -1569,7 +1636,7 @@
tg3_setup_flow_control(tp, local_adv, remote_adv);
}
}
@@ -141,7 +314,7 @@
if (current_link_up == 0) {
u32 tmp;
-@@ -1619,7 +1640,7 @@
+@@ -1619,7 +1686,7 @@
tw32_f(MAC_MODE, tp->mac_mode);
udelay(40);
@@ -150,7 +323,7 @@
/* Polled via timer. */
tw32_f(MAC_EVENT, 0);
} else {
-@@ -1968,62 +1989,264 @@
+@@ -1968,62 +2035,273 @@
static int fiber_autoneg(struct tg3 *tp, u32 *flags)
{
int res = 0;
@@ -204,21 +377,11 @@
- udelay(40);
+ udelay(1);
+ }
-
-- memset(&aninfo, 0, sizeof(aninfo));
-- aninfo.flags |= MR_AN_ENABLE;
-- aninfo.state = ANEG_STATE_UNKNOWN;
-- aninfo.cur_time = 0;
-- tick = 0;
-- while (++tick < 195000) {
-- status = tg3_fiber_aneg_smachine(tp, &aninfo);
-- if (status == ANEG_DONE || status == ANEG_FAILED)
-- break;
++
+ tp->mac_mode &= ~MAC_MODE_SEND_CONFIGS;
+ tw32_f(MAC_MODE, tp->mac_mode);
+ udelay(40);
-
-- udelay(1);
++
+ *flags = aninfo.flags;
+
+ if (status == ANEG_DONE &&
@@ -249,7 +412,15 @@
+ /* XXX schedule_timeout() ... */
+ for (i = 0; i < 500; i++)
+ udelay(10);
-+
+
+- memset(&aninfo, 0, sizeof(aninfo));
+- aninfo.flags |= MR_AN_ENABLE;
+- aninfo.state = ANEG_STATE_UNKNOWN;
+- aninfo.cur_time = 0;
+- tick = 0;
+- while (++tick < 195000) {
+- status = tg3_fiber_aneg_smachine(tp, &aninfo);
+- if (status == ANEG_DONE || status == ANEG_FAILED)
+ /* Config mode; select PMA/Ch 1 regs. */
+ tg3_writephy(tp, 0x10, 0x8411);
+
@@ -320,13 +491,10 @@
+ if (mac_status & MAC_STATUS_PCS_SYNCED) {
+ tg3_setup_flow_control(tp, 0, 0);
+ current_link_up = 1;
- }
++ }
+ goto out;
+ }
-
-- tp->mac_mode &= ~MAC_MODE_SEND_CONFIGS;
-- tw32_f(MAC_MODE, tp->mac_mode);
-- udelay(40);
++
+ /* Want auto-negotiation. */
+ expected_sg_dig_ctrl = 0x81388400;
+
@@ -346,8 +514,18 @@
+ tp->tg3_flags2 |= TG3_FLG2_PHY_JUST_INITTED;
+ } else if (mac_status & (MAC_STATUS_PCS_SYNCED |
+ MAC_STATUS_SIGNAL_DET)) {
-+ sg_dig_status = tr32(SG_DIG_STATUS);
++ int i;
+
++ /* Giver time to negotiate (~200ms) */
++ for (i = 0; i < 40000; i++) {
++ sg_dig_status = tr32(SG_DIG_STATUS);
++ if (sg_dig_status & (0x3))
+ break;
++ udelay(5);
++ }
++ mac_status = tr32(MAC_STATUS);
+
+- udelay(1);
+ if ((sg_dig_status & (1 << 1)) &&
+ (mac_status & MAC_STATUS_PCS_SYNCED)) {
+ u32 local_adv, remote_adv;
@@ -376,38 +554,41 @@
+
+ tw32_f(MAC_SERDES_CFG, val);
+ }
-
-- *flags = aninfo.flags;
++
+ tw32_f(SG_DIG_CTRL, 0x01388400);
+ udelay(40);
-
-- if (status == ANEG_DONE &&
-- (aninfo.flags & (MR_AN_COMPLETE | MR_LINK_OK |
-- MR_LP_ADV_FULL_DUPLEX)))
-- res = 1;
++
+ mac_status = tr32(MAC_STATUS);
+ if (mac_status & MAC_STATUS_PCS_SYNCED) {
+ tg3_setup_flow_control(tp, 0, 0);
+ current_link_up = 1;
+ }
+ }
-+ }
- }
+ }
++ }
-- return res;
+- tp->mac_mode &= ~MAC_MODE_SEND_CONFIGS;
+- tw32_f(MAC_MODE, tp->mac_mode);
+- udelay(40);
+out:
+ return current_link_up;
+}
-+
+
+- *flags = aninfo.flags;
+static int tg3_setup_fiber_by_hand(struct tg3 *tp, u32 mac_status)
+{
+ int current_link_up = 0;
-+
+
+- if (status == ANEG_DONE &&
+- (aninfo.flags & (MR_AN_COMPLETE | MR_LINK_OK |
+- MR_LP_ADV_FULL_DUPLEX)))
+- res = 1;
+ if (!(mac_status & MAC_STATUS_PCS_SYNCED)) {
+ tp->tg3_flags &= ~TG3_FLAG_GOT_SERDES_FLOWCTL;
+ goto out;
-+ }
-+
+ }
+
+- return res;
+ if (tp->link_config.autoneg == AUTONEG_ENABLE) {
+ u32 flags;
+ int i;
@@ -458,7 +639,7 @@
}
static int tg3_setup_fiber_phy(struct tg3 *tp, int force_reset)
-@@ -2031,6 +2254,7 @@
+@@ -2031,6 +2309,7 @@
u32 orig_pause_cfg;
u16 orig_active_speed;
u8 orig_active_duplex;
@@ -466,7 +647,7 @@
int current_link_up;
int i;
-@@ -2040,118 +2264,43 @@
+@@ -2040,118 +2319,43 @@
orig_active_speed = tp->link_config.active_speed;
orig_active_duplex = tp->link_config.active_duplex;
@@ -534,24 +715,24 @@
- tg3_writephy(tp, 0x11, 0x0a50);
- udelay(40);
- tg3_writephy(tp, 0x11, 0x0a10);
+-
+- /* Wait for signal to stabilize */
+- /* XXX schedule_timeout() ... */
+- for (i = 0; i < 15000; i++)
+- udelay(10);
+ tp->mac_mode &= ~(MAC_MODE_PORT_MODE_MASK | MAC_MODE_HALF_DUPLEX);
+ tp->mac_mode |= MAC_MODE_PORT_MODE_TBI;
+ tw32_f(MAC_MODE, tp->mac_mode);
+ udelay(40);
-- /* Wait for signal to stabilize */
-- /* XXX schedule_timeout() ... */
-- for (i = 0; i < 15000; i++)
-- udelay(10);
-+ if (tp->phy_id == PHY_ID_BCM8002)
-+ tg3_init_bcm8002(tp);
-
- /* Deselect the channel register so we can read the PHYID
- * later.
- */
- tg3_writephy(tp, 0x10, 0x8011);
- }
--
++ if (tp->phy_id == PHY_ID_BCM8002)
++ tg3_init_bcm8002(tp);
+
- /* Enable link change interrupt unless serdes polling. */
- if (!(tp->tg3_flags & TG3_FLAG_POLL_SERDES))
- tw32_f(MAC_EVENT, MAC_EVENT_LNKSTATE_CHANGED);
@@ -568,15 +749,15 @@
-
- if (fiber_autoneg(tp, &flags)) {
- u32 local_adv, remote_adv;
--
++ mac_status = tr32(MAC_STATUS);
+
- local_adv = ADVERTISE_PAUSE_CAP;
- remote_adv = 0;
- if (flags & MR_LP_ADV_SYM_PAUSE)
- remote_adv |= LPA_PAUSE_CAP;
- if (flags & MR_LP_ADV_ASYM_PAUSE)
- remote_adv |= LPA_PAUSE_ASYM;
-+ mac_status = tr32(MAC_STATUS);
-
+-
- tg3_setup_flow_control(tp, local_adv, remote_adv);
-
- tp->tg3_flags |=
@@ -612,7 +793,7 @@
tp->mac_mode &= ~MAC_MODE_LINK_POLARITY;
tw32_f(MAC_MODE, tp->mac_mode);
-@@ -2162,19 +2311,24 @@
+@@ -2162,19 +2366,24 @@
(tp->hw_status->status & ~SD_STATUS_LINK_CHG));
for (i = 0; i < 100; i++) {
@@ -646,7 +827,7 @@
if (current_link_up == 1) {
tp->link_config.active_speed = SPEED_1000;
-@@ -2206,15 +2360,6 @@
+@@ -2206,15 +2415,6 @@
tg3_link_report(tp);
}
@@ -662,7 +843,7 @@
return 0;
}
-@@ -2222,7 +2367,7 @@
+@@ -2222,7 +2422,7 @@
{
int err;
@@ -671,7 +852,24 @@
err = tg3_setup_fiber_phy(tp, force_reset);
} else {
err = tg3_setup_copper_phy(tp, force_reset);
-@@ -2741,11 +2886,11 @@
+@@ -2584,6 +2784,7 @@
+ tw32_rx_mbox(MAILBOX_RCV_JUMBO_PROD_IDX + TG3_64BIT_REG_LOW,
+ sw_idx);
+ }
++ mmiowb();
+
+ return received;
+ }
+@@ -2642,7 +2843,7 @@
+ if (done) {
+ spin_lock_irqsave(&tp->lock, flags);
+ __netif_rx_complete(netdev);
+- tg3_enable_ints(tp);
++ tg3_restart_ints(tp);
+ spin_unlock_irqrestore(&tp->lock, flags);
+ }
+
+@@ -2741,11 +2942,11 @@
tg3_halt(tp);
tg3_init_hw(tp);
@@ -685,7 +883,7 @@
if (restart_timer)
mod_timer(&tp->timer, jiffies + 1);
}
-@@ -2815,6 +2960,7 @@
+@@ -2815,6 +3016,7 @@
dma_addr_t mapping, int len, u32 flags,
u32 mss_and_is_end)
{
@@ -693,13 +891,13 @@
int is_end = (mss_and_is_end & 0x1);
u32 mss = (mss_and_is_end >> 1);
u32 vlan_tag = 0;
-@@ -2826,35 +2972,11 @@
+@@ -2826,35 +3028,11 @@
flags &= 0xffff;
}
vlan_tag |= (mss << TXD_MSS_SHIFT);
- if (tp->tg3_flags & TG3_FLAG_HOST_TXDS) {
- struct tg3_tx_buffer_desc *txd = &tp->tx_ring[entry];
-
+-
- txd->addr_hi = ((u64) mapping >> 32);
- txd->addr_lo = ((u64) mapping & 0xffffffff);
- txd->len_flags = (len << TXD_LEN_SHIFT) | flags;
@@ -707,7 +905,7 @@
- } else {
- struct tx_ring_info *txr = &tp->tx_buffers[entry];
- unsigned long txd;
--
+
- txd = (tp->regs +
- NIC_SRAM_WIN_BASE +
- NIC_SRAM_TX_BUFFER_DESC);
@@ -733,9 +931,31 @@
}
static inline int tg3_4g_overflow_test(dma_addr_t mapping, int len)
-@@ -3043,19 +3169,7 @@
+@@ -2895,7 +3073,11 @@
+ * So we really do need to disable interrupts when taking
+ * tx_lock here.
+ */
+- spin_lock_irqsave(&tp->tx_lock, flags);
++ local_irq_save(flags);
++ if (!spin_trylock(&tp->tx_lock)) {
++ local_irq_restore(flags);
++ return NETDEV_TX_LOCKED;
++ }
+
+ /* This is a hard error, log it. */
+ if (unlikely(TX_BUFFS_AVAIL(tp) <= (skb_shinfo(skb)->nr_frags + 1))) {
+@@ -2903,7 +3085,7 @@
+ spin_unlock_irqrestore(&tp->tx_lock, flags);
+ printk(KERN_ERR PFX "%s: BUG! Tx Ring full when queue awake!\n",
+ dev->name);
+- return 1;
++ return NETDEV_TX_BUSY;
}
+ entry = tp->tx_prod;
+@@ -3043,30 +3225,19 @@
+ }
+
/* Packets are ready, update Tx producer idx local and on card. */
- if (tp->tg3_flags & TG3_FLAG_HOST_TXDS) {
- tw32_tx_mbox((MAILBOX_SNDHOST_PROD_IDX_0 +
@@ -754,8 +974,21 @@
tp->tx_prod = entry;
if (TX_BUFFS_AVAIL(tp) <= (MAX_SKB_FRAGS + 1))
-@@ -3105,9 +3219,10 @@
+ netif_stop_queue(dev);
+ out_unlock:
++ mmiowb();
+ spin_unlock_irqrestore(&tp->tx_lock, flags);
+
+ dev->trans_start = jiffies;
+
+- return 0;
++ return NETDEV_TX_OK;
+ }
+
+ static inline void tg3_set_mtu(struct net_device *dev, struct tg3 *tp,
+@@ -3105,9 +3276,10 @@
+
tg3_init_hw(tp);
+ tg3_netif_start(tp);
@@ -766,7 +999,7 @@
return 0;
}
-@@ -3193,7 +3308,6 @@
+@@ -3193,7 +3365,6 @@
*/
static void tg3_init_rings(struct tg3 *tp)
{
@@ -774,7 +1007,7 @@
u32 i;
/* Free up all the SKBs. */
-@@ -3203,21 +3317,7 @@
+@@ -3203,21 +3374,7 @@
memset(tp->rx_std, 0, TG3_RX_RING_BYTES);
memset(tp->rx_jumbo, 0, TG3_RX_JUMBO_RING_BYTES);
memset(tp->rx_rcb, 0, TG3_RX_RCB_RING_BYTES(tp));
@@ -797,7 +1030,7 @@
/* Initialize invariants of the rings, we only set this
* stuff once. This works because the card does not
-@@ -3348,15 +3448,10 @@
+@@ -3348,15 +3505,10 @@
if (!tp->rx_rcb)
goto err_out;
@@ -817,7 +1050,7 @@
tp->hw_status = pci_alloc_consistent(tp->pdev,
TG3_HW_STATUS_SIZE,
-@@ -3598,6 +3693,8 @@
+@@ -3598,6 +3750,8 @@
}
}
@@ -826,7 +1059,7 @@
/* tp->lock is held. */
static int tg3_chip_reset(struct tg3 *tp)
{
-@@ -3605,7 +3702,7 @@
+@@ -3605,7 +3759,7 @@
u32 flags_save;
int i;
@@ -835,8 +1068,17 @@
tg3_nvram_lock(tp);
/*
-@@ -3700,6 +3797,11 @@
+@@ -3691,7 +3845,7 @@
+ val |= PCISTATE_RETRY_SAME_DMA;
+ pci_write_config_dword(tp->pdev, TG3PCI_PCISTATE, val);
+- pci_restore_state(tp->pdev, tp->pci_cfg_state);
++ pci_restore_state(tp->pdev);
+
+ /* Make sure PCI-X relaxed ordering bit is clear. */
+ pci_read_config_dword(tp->pdev, TG3PCI_X_CAPS, &val);
+@@ -3700,6 +3854,11 @@
+
tw32(MEMARB_MODE, MEMARB_MODE_ENABLE);
+ if (tp->pci_chip_rev_id == CHIPREV_ID_5750_A3) {
@@ -847,7 +1089,7 @@
tw32(GRC_MODE, tp->grc_mode);
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
-@@ -3716,7 +3818,7 @@
+@@ -3716,7 +3875,7 @@
tw32(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl);
}
@@ -856,7 +1098,7 @@
tp->mac_mode = MAC_MODE_PORT_MODE_TBI;
tw32_f(MAC_MODE, tp->mac_mode);
} else
-@@ -3731,7 +3833,7 @@
+@@ -3731,7 +3890,7 @@
udelay(10);
}
if (i >= 100000 &&
@@ -865,7 +1107,16 @@
printk(KERN_ERR PFX "tg3_reset_hw timed out for %s, "
"firmware will not restart magic=%08x\n",
tp->dev->name, val);
-@@ -4314,10 +4915,7 @@
+@@ -4123,7 +4282,7 @@
+ /* tp->lock is held. */
+ static int tg3_load_tso_firmware(struct tg3 *tp)
+ {
+- struct fw_info *info;
++ struct fw_info info;
+ unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
+ int err, i;
+
+@@ -4314,10 +4473,7 @@
GRC_MODE_4X_NIC_SEND_RINGS |
GRC_MODE_NO_TX_PHDR_CSUM |
GRC_MODE_NO_RX_PHDR_CSUM);
@@ -877,7 +1128,7 @@
if (tp->tg3_flags & TG3_FLAG_NO_TX_PSEUDO_CSUM)
tp->grc_mode |= GRC_MODE_NO_TX_PHDR_CSUM;
if (tp->tg3_flags & TG3_FLAG_NO_RX_PSEUDO_CSUM)
-@@ -4470,18 +5068,11 @@
+@@ -4470,18 +4626,11 @@
tw32_mailbox(MAILBOX_SNDHOST_PROD_IDX_0 + TG3_64BIT_REG_LOW, 0);
tw32_tx_mbox(MAILBOX_SNDNIC_PROD_IDX_0 + TG3_64BIT_REG_LOW, 0);
@@ -901,7 +1152,7 @@
/* There is only one receive return ring on 5705/5750, no need
* to explicitly disable the others.
-@@ -4747,14 +5338,14 @@
+@@ -4747,14 +4896,14 @@
tw32(MAC_LED_CTRL, tp->led_ctrl);
tw32(MAC_MI_STAT, MAC_MI_STAT_LNKSTAT_ATTN_ENAB);
@@ -918,7 +1169,7 @@
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704) {
/* Set drive transmission level to 1.2V */
val = tr32(MAC_SERDES_CFG);
-@@ -4772,22 +5363,8 @@
+@@ -4772,22 +4921,8 @@
tw32_f(MAC_LOW_WMARK_MAX_RX_FRAME, 2);
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 &&
@@ -943,7 +1194,7 @@
tp->tg3_flags2 |= TG3_FLG2_HW_AUTONEG;
}
-@@ -4795,7 +5372,7 @@
+@@ -4795,7 +4930,7 @@
if (err)
return err;
@@ -952,7 +1203,7 @@
u32 tmp;
/* Clear CRC stats. */
-@@ -4987,7 +5564,8 @@
+@@ -4987,7 +5122,8 @@
need_setup = 1;
}
if (! netif_carrier_ok(tp->dev) &&
@@ -962,7 +1213,7 @@
need_setup = 1;
}
if (need_setup) {
-@@ -5040,8 +5618,8 @@
+@@ -5040,8 +5176,8 @@
spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock);
@@ -973,7 +1224,7 @@
*/
err = tg3_alloc_consistent(tp);
if (err)
-@@ -5383,7 +5961,7 @@
+@@ -5383,7 +5519,7 @@
{
struct tg3_hw_stats *hw_stats = tp->hw_stats;
@@ -982,7 +1233,32 @@
(GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)) {
unsigned long flags;
-@@ -5814,7 +6394,7 @@
+@@ -5656,7 +5792,9 @@
+ struct tg3 *tp = netdev_priv(dev);
+
+ spin_lock_irq(&tp->lock);
++ spin_lock(&tp->tx_lock);
+ __tg3_set_rx_mode(dev);
++ spin_unlock(&tp->tx_lock);
+ spin_unlock_irq(&tp->lock);
+ }
+
+@@ -5739,11 +5877,11 @@
+ return EEPROM_CHIP_SIZE;
+ }
+
+-static int __devinit tg3_nvram_read_using_eeprom(struct tg3 *tp,
+- u32 offset, u32 *val);
++static int tg3_nvram_read_using_eeprom(struct tg3 *tp,
++ u32 offset, u32 *val);
+ static int tg3_get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom, u8 *data)
+ {
+- struct tg3 *tp = dev->priv;
++ struct tg3 *tp = netdev_priv(dev);
+ int ret;
+ u8 *pd;
+ u32 i, offset, len, val, b_offset, b_count;
+@@ -5814,7 +5952,7 @@
cmd->supported |= (SUPPORTED_1000baseT_Half |
SUPPORTED_1000baseT_Full);
@@ -991,7 +1267,7 @@
cmd->supported |= (SUPPORTED_100baseT_Half |
SUPPORTED_100baseT_Full |
SUPPORTED_10baseT_Half |
-@@ -5843,7 +6423,7 @@
+@@ -5843,7 +5981,7 @@
tp->link_config.phy_is_low_power)
return -EAGAIN;
@@ -1000,7 +1276,7 @@
/* These are the only valid advertisement bits allowed. */
if (cmd->autoneg == AUTONEG_ENABLE &&
(cmd->advertising & ~(ADVERTISED_1000baseT_Half |
-@@ -5901,7 +6481,7 @@
+@@ -5901,7 +6039,7 @@
if (wol->wolopts & ~WAKE_MAGIC)
return -EINVAL;
if ((wol->wolopts & WAKE_MAGIC) &&
@@ -1009,7 +1285,7 @@
!(tp->tg3_flags & TG3_FLAG_SERDES_WOL_CAP))
return -EINVAL;
-@@ -5997,10 +6577,9 @@
+@@ -5997,10 +6135,9 @@
tg3_halt(tp);
tg3_init_hw(tp);
@@ -1021,7 +1297,7 @@
return 0;
}
-@@ -6010,8 +6589,8 @@
+@@ -6010,8 +6147,8 @@
struct tg3 *tp = netdev_priv(dev);
epause->autoneg = (tp->tg3_flags & TG3_FLAG_PAUSE_AUTONEG) != 0;
@@ -1032,7 +1308,7 @@
}
static int tg3_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam *epause)
-@@ -6026,18 +6605,18 @@
+@@ -6026,18 +6163,18 @@
else
tp->tg3_flags &= ~TG3_FLAG_PAUSE_AUTONEG;
if (epause->rx_pause)
@@ -1056,7 +1332,16 @@
return 0;
}
-@@ -6124,7 +6703,7 @@
+@@ -6106,7 +6243,7 @@
+ static void tg3_get_ethtool_stats (struct net_device *dev,
+ struct ethtool_stats *estats, u64 *tmp_stats)
+ {
+- struct tg3 *tp = dev->priv;
++ struct tg3 *tp = netdev_priv(dev);
+ memcpy(tmp_stats, tg3_get_estats(tp), sizeof(tp->estats));
+ }
+
+@@ -6124,7 +6261,7 @@
case SIOCGMIIREG: {
u32 mii_regval;
@@ -1065,7 +1350,7 @@
break; /* We have no PHY */
spin_lock_irq(&tp->lock);
-@@ -6137,7 +6716,7 @@
+@@ -6137,7 +6274,7 @@
}
case SIOCSMIIREG:
@@ -1074,7 +1359,7 @@
break; /* We have no PHY */
if (!capable(CAP_NET_ADMIN))
-@@ -6224,7 +6803,7 @@
+@@ -6224,7 +6361,7 @@
{
int j;
@@ -1083,9 +1368,20 @@
return;
tw32_f(GRC_EEPROM_ADDR,
-@@ -6311,8 +6890,8 @@
+@@ -6272,8 +6409,8 @@
+ }
+ }
+
+-static int __devinit tg3_nvram_read_using_eeprom(struct tg3 *tp,
+- u32 offset, u32 *val)
++static int tg3_nvram_read_using_eeprom(struct tg3 *tp,
++ u32 offset, u32 *val)
{
+ u32 tmp;
int i;
+@@ -6311,8 +6448,8 @@
+ {
+ int i;
- if (tp->tg3_flags2 & TG3_FLG2_SUN_5704) {
- printk(KERN_ERR PFX "Attempt to do nvram_read on Sun 5704\n");
@@ -1094,7 +1390,7 @@
return -EINVAL;
}
-@@ -6374,10 +6953,10 @@
+@@ -6374,10 +6511,10 @@
{ PCI_VENDOR_ID_BROADCOM, 0x1644, PHY_ID_BCM5401 }, /* BCM95700A6 */
{ PCI_VENDOR_ID_BROADCOM, 0x0001, PHY_ID_BCM5701 }, /* BCM95701A5 */
{ PCI_VENDOR_ID_BROADCOM, 0x0002, PHY_ID_BCM8002 }, /* BCM95700T6 */
@@ -1107,7 +1403,7 @@
{ PCI_VENDOR_ID_BROADCOM, 0x0008, PHY_ID_BCM5701 }, /* BCM95701A10 */
{ PCI_VENDOR_ID_BROADCOM, 0x8008, PHY_ID_BCM5701 }, /* BCM95701A12 */
{ PCI_VENDOR_ID_BROADCOM, 0x0009, PHY_ID_BCM5703 }, /* BCM95703Ax1 */
-@@ -6386,7 +6965,7 @@
+@@ -6386,7 +6523,7 @@
/* 3com boards. */
{ PCI_VENDOR_ID_3COM, 0x1000, PHY_ID_BCM5401 }, /* 3C996T */
{ PCI_VENDOR_ID_3COM, 0x1006, PHY_ID_BCM5701 }, /* 3C996BT */
@@ -1116,7 +1412,7 @@
{ PCI_VENDOR_ID_3COM, 0x1007, PHY_ID_BCM5701 }, /* 3C1000T */
{ PCI_VENDOR_ID_3COM, 0x1008, PHY_ID_BCM5701 }, /* 3C940BR01 */
-@@ -6399,37 +6978,43 @@
+@@ -6399,37 +6536,43 @@
/* Compaq boards. */
{ PCI_VENDOR_ID_COMPAQ, 0x007c, PHY_ID_BCM5701 }, /* BANSHEE */
{ PCI_VENDOR_ID_COMPAQ, 0x009a, PHY_ID_BCM5701 }, /* BANSHEE_2 */
@@ -1153,14 +1449,14 @@
}
+ return NULL;
+}
-
++
+static int __devinit tg3_phy_probe(struct tg3 *tp)
+{
+ u32 eeprom_phy_id, hw_phy_id_1, hw_phy_id_2;
+ u32 hw_phy_id, hw_phy_id_masked;
+ u32 val;
+ int eeprom_signature_found, eeprom_phy_serdes, err;
-+
+
+ tp->phy_id = PHY_ID_INVALID;
eeprom_phy_id = PHY_ID_INVALID;
+ eeprom_phy_serdes = 0;
@@ -1172,7 +1468,7 @@
tg3_read_mem(tp, NIC_SRAM_DATA_CFG, &nic_cfg);
tp->nic_sram_data_cfg = nic_cfg;
-@@ -6437,21 +7022,19 @@
+@@ -6437,21 +6580,19 @@
eeprom_signature_found = 1;
if ((nic_cfg & NIC_SRAM_DATA_CFG_PHY_TYPE_MASK) ==
@@ -1206,7 +1502,7 @@
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750) {
tg3_read_mem(tp, NIC_SRAM_DATA_CFG_2, &led_cfg);
-@@ -6513,6 +7096,10 @@
+@@ -6513,6 +6654,10 @@
}
if (nic_cfg & NIC_SRAM_DATA_CFG_FIBER_WOL)
tp->tg3_flags |= TG3_FLAG_SERDES_WOL_CAP;
@@ -1217,7 +1513,7 @@
}
/* Reading the PHY ID register can conflict with ASF
-@@ -6539,20 +7126,31 @@
+@@ -6539,20 +6684,31 @@
if (!err && KNOWN_PHY_ID(hw_phy_id_masked)) {
tp->phy_id = hw_phy_id;
@@ -1258,7 +1554,7 @@
!(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) {
u32 bmsr, adv_reg, tg3_ctrl;
-@@ -6609,7 +7207,7 @@
+@@ -6609,7 +6765,7 @@
if (!eeprom_signature_found)
tp->led_ctrl = LED_CTRL_MODE_PHY_1;
@@ -1267,7 +1563,7 @@
tp->link_config.advertising =
(ADVERTISED_1000baseT_Half |
ADVERTISED_1000baseT_Full |
-@@ -6628,11 +7226,11 @@
+@@ -6628,11 +6784,11 @@
unsigned char vpd_data[256];
int i;
@@ -1281,7 +1577,7 @@
return;
}
-@@ -6693,27 +7291,21 @@
+@@ -6693,27 +6849,21 @@
}
#ifdef CONFIG_SPARC64
@@ -1312,7 +1608,7 @@
return 1;
}
return 0;
-@@ -6730,8 +7322,8 @@
+@@ -6730,8 +6880,8 @@
int err;
#ifdef CONFIG_SPARC64
@@ -1323,7 +1619,16 @@
#endif
/* If we have an AMD 762 or Intel ICH/ICH0/ICH2 chipset, write
-@@ -6976,32 +7568,17 @@
+@@ -6957,7 +7107,7 @@
+ chiprevid == CHIPREV_ID_5701_B0 ||
+ chiprevid == CHIPREV_ID_5701_B2 ||
+ chiprevid == CHIPREV_ID_5701_B5) {
+- unsigned long sram_base;
++ void __iomem *sram_base;
+
+ /* Write some dummy words into the SRAM status block
+ * area, see if it reads back correctly. If the return
+@@ -6976,32 +7126,17 @@
udelay(50);
tg3_nvram_init(tp);
@@ -1359,8 +1664,18 @@
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 &&
(grc_misc_cfg == GRC_MISC_CFG_BOARD_ID_5788 ||
grc_misc_cfg == GRC_MISC_CFG_BOARD_ID_5788M))
-@@ -7028,7 +7605,7 @@
+@@ -7016,7 +7151,8 @@
+ tp->pdev->device == PCI_DEVICE_ID_TIGON3_5901_2 ||
+ tp->pdev->device == PCI_DEVICE_ID_TIGON3_5705F)) ||
+ (tp->pdev->vendor == PCI_VENDOR_ID_BROADCOM &&
+- tp->pdev->device == PCI_DEVICE_ID_TIGON3_5751F))
++ (tp->pdev->device == PCI_DEVICE_ID_TIGON3_5751F ||
++ tp->pdev->device == PCI_DEVICE_ID_TIGON3_5753F)))
+ tp->tg3_flags |= TG3_FLAG_10_100_ONLY;
+ err = tg3_phy_probe(tp);
+@@ -7028,7 +7164,7 @@
+
tg3_read_partno(tp);
- if (tp->phy_id == PHY_ID_SERDES) {
@@ -1368,7 +1683,7 @@
tp->tg3_flags &= ~TG3_FLAG_USE_MI_INTERRUPT;
} else {
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700)
-@@ -7051,13 +7628,13 @@
+@@ -7051,13 +7187,13 @@
* upon subsystem IDs.
*/
if (tp->pdev->subsystem_vendor == PCI_VENDOR_ID_DELL &&
@@ -1384,7 +1699,7 @@
tp->tg3_flags |= TG3_FLAG_POLL_SERDES;
else
tp->tg3_flags &= ~TG3_FLAG_POLL_SERDES;
-@@ -7128,7 +7705,7 @@
+@@ -7128,7 +7264,7 @@
mac_offset = 0x7c;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 &&
@@ -1393,7 +1708,7 @@
if (tr32(TG3PCI_DUAL_MAC_CTRL) & DUAL_MAC_CTRL_ID)
mac_offset = 0xcc;
if (tg3_nvram_lock(tp))
-@@ -7150,7 +7727,7 @@
+@@ -7150,7 +7286,7 @@
dev->dev_addr[5] = (lo >> 0) & 0xff;
}
/* Next, try NVRAM. */
@@ -1402,7 +1717,17 @@
!tg3_nvram_read(tp, mac_offset + 0, &hi) &&
!tg3_nvram_read(tp, mac_offset + 4, &lo)) {
dev->dev_addr[0] = ((hi >> 16) & 0xff);
-@@ -7492,8 +8069,8 @@
+@@ -7323,7 +7459,8 @@
+ #endif
+
+ if (tp->tg3_flags2 & TG3_FLG2_PCI_EXPRESS) {
+- tp->dma_rwctrl |= 0x001f0000;
++ /* DMA read watermark not used on PCIE */
++ tp->dma_rwctrl |= 0x00180000;
+ } else if (!(tp->tg3_flags & TG3_FLAG_PCIX_MODE)) {
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705 ||
+ GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750)
+@@ -7492,8 +7629,8 @@
case PHY_ID_BCM5704: return "5704";
case PHY_ID_BCM5705: return "5705";
case PHY_ID_BCM5750: return "5750";
@@ -1413,7 +1738,33 @@
default: return "unknown";
};
}
-@@ -7785,6 +8339,9 @@
+@@ -7600,6 +7737,7 @@
+
+ if (pci_using_dac)
+ dev->features |= NETIF_F_HIGHDMA;
++ dev->features |= NETIF_F_LLTX;
+ #if TG3_VLAN_TAG_USED
+ dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
+ dev->vlan_rx_register = tg3_vlan_rx_register;
+@@ -7645,7 +7783,7 @@
+ spin_lock_init(&tp->indirect_lock);
+ INIT_WORK(&tp->reset_task, tg3_reset_task, tp);
+
+- tp->regs = (unsigned long) ioremap(tg3reg_base, tg3reg_len);
++ tp->regs = ioremap_nocache(tg3reg_base, tg3reg_len);
+ if (tp->regs == 0UL) {
+ printk(KERN_ERR PFX "Cannot map device registers, "
+ "aborting.\n");
+@@ -7762,7 +7900,7 @@
+ */
+ if ((tr32(HOSTCC_MODE) & HOSTCC_MODE_ENABLE) ||
+ (tr32(WDMAC_MODE) & WDMAC_MODE_ENABLE)) {
+- pci_save_state(tp->pdev, tp->pci_cfg_state);
++ pci_save_state(tp->pdev);
+ tw32(MEMARB_MODE, MEMARB_MODE_ENABLE);
+ tg3_halt(tp);
+ }
+@@ -7785,6 +7923,9 @@
if (tp->tg3_flags2 & TG3_FLG2_IS_5788)
dev->features &= ~NETIF_F_HIGHDMA;
@@ -1423,7 +1774,16 @@
err = register_netdev(dev);
if (err) {
printk(KERN_ERR PFX "Cannot register net device, "
-@@ -7816,11 +8373,10 @@
+@@ -7798,7 +7939,7 @@
+ * of the PCI config space. We need to restore this after
+ * GRC_MISC_CFG core clock resets and some resume events.
+ */
+- pci_save_state(tp->pdev, tp->pci_cfg_state);
++ pci_save_state(tp->pdev);
+
+ printk(KERN_INFO "%s: Tigon3 [partno(%s) rev %04x PHY(%s)] (PCI%s:%s:%s) %sBaseT Ethernet ",
+ dev->name,
+@@ -7816,11 +7957,10 @@
printk("%2.2x%c", dev->dev_addr[i],
i == 5 ? '\n' : ':');
@@ -1436,7 +1796,25 @@
(tp->tg3_flags & TG3_FLAG_RX_CHECKSUMS) != 0,
(tp->tg3_flags & TG3_FLAG_USE_LINKCHG_REG) != 0,
(tp->tg3_flags & TG3_FLAG_USE_MI_INTERRUPT) != 0,
-@@ -7899,11 +8455,11 @@
+@@ -7832,7 +7972,7 @@
+ return 0;
+
+ err_out_iounmap:
+- iounmap((void *) tp->regs);
++ iounmap(tp->regs);
+
+ err_out_free_dev:
+ free_netdev(dev);
+@@ -7854,7 +7994,7 @@
+ struct tg3 *tp = netdev_priv(dev);
+
+ unregister_netdev(dev);
+- iounmap((void *)tp->regs);
++ iounmap(tp->regs);
+ free_netdev(dev);
+ pci_release_regions(pdev);
+ pci_disable_device(pdev);
+@@ -7899,11 +8039,11 @@
tp->timer.expires = jiffies + tp->timer_offset;
add_timer(&tp->timer);
@@ -1451,8 +1829,17 @@
}
return err;
-@@ -7936,11 +8492,11 @@
+@@ -7918,7 +8058,7 @@
+ if (!netif_running(dev))
+ return 0;
+- pci_restore_state(tp->pdev, tp->pci_cfg_state);
++ pci_restore_state(tp->pdev);
+
+ err = tg3_set_power_state(tp, 0);
+ if (err)
+@@ -7936,11 +8076,11 @@
+
tg3_enable_ints(tp);
+ tg3_netif_start(tp);
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/prune-non-free
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/prune-non-free 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/prune-non-free 2004-12-30 22:18:02 UTC (rev 2109)
@@ -11,6 +11,7 @@
fi
grep -h '^X' debian/patches/series/2.6.* | while read x file; do
+ echo "Deleting $file"
rm -f $file
done
Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/rules
===================================================================
--- trunk/kernel/source/kernel-source-2.6.9-2.6.9/debian/rules 2004-12-30 17:33:52 UTC (rev 2107)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/rules 2004-12-30 22:18:02 UTC (rev 2109)
@@ -19,12 +19,13 @@
override_version=$(release) home=debian/patches sh debian/apply $(upstream)
../orig/kernel-source-$(upstream)-$(upstream):
-ifneq (,$(wildcard ../kernel-source-$(upstream)_$(upstream).orig.tar.gz))
- mkdir -p ../orig
- tar -C ../orig -xzf ../kernel-source-$(upstream)_$(upstream).orig.tar.gz
-else
-$(error "Can't find orig tarball.")
-endif
+ if [ -e "../kernel-source-$(upstream)_$(upstream).orig.tar.gz" ]; then \
+ mkdir -p ../orig; \
+ tar -C ../orig -xzf ../kernel-source-$(upstream)_$(upstream).orig.tar.gz; \
+ else \
+ echo "Can't find orig tarball." >&2; \
+ exit 1; \
+ fi
orig: ../orig/kernel-source-$(upstream)-$(upstream)
rsync -av --delete --exclude .svn --exclude debian ../orig/kernel-source-$(upstream)-$(upstream)/ .
@@ -129,7 +130,7 @@
chmod u+x debian/prune-non-free
debian/prune-non-free
test $(notdir $(CURDIR)) = kernel-source-$(upstream)-$(upstream)
- tar czCf .. $@ --exclude debian kernel-source-$(upstream)-$(upstream)
+ tar czCf .. $@ --exclude .svn --exclude debian kernel-source-$(upstream)-$(upstream)
# unpack the vanilla kernel from a tarball, move stuff over, and create a stamp file
debian/official: ../linux-$(upstream).tar.bz2