update brcm-2.4 to 2.4.35.4, integrate new broadcom system code, update broadcom-wl to a contributed version (v4.150.10.5) - no bcm57xx support yet, will follow shortly
SVN-Revision: 10137
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
diff -urN linux.old/arch/mips/config-shared.in linux.dev/arch/mips/config-shared.in
|
||||
--- linux.old/arch/mips/config-shared.in 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/config-shared.in 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/config-shared.in
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/config-shared.in 2007-12-15 05:19:53.151449966 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/config-shared.in 2007-12-15 05:20:13.936634447 +0100
|
||||
@@ -208,6 +208,14 @@
|
||||
fi
|
||||
define_bool CONFIG_MIPS_RTC y
|
||||
@@ -54,9 +55,10 @@ diff -urN linux.old/arch/mips/config-shared.in linux.dev/arch/mips/config-shared
|
||||
dep_bool ' Console output to GDB' CONFIG_GDB_CONSOLE $CONFIG_KGDB
|
||||
if [ "$CONFIG_KGDB" = "y" ]; then
|
||||
define_bool CONFIG_DEBUG_INFO y
|
||||
diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-probe.c
|
||||
--- linux.old/arch/mips/kernel/cpu-probe.c 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/kernel/cpu-probe.c 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/kernel/cpu-probe.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/kernel/cpu-probe.c 2007-12-15 05:19:44.862977633 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/kernel/cpu-probe.c 2007-12-15 05:20:13.944634901 +0100
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
static inline void cpu_probe_legacy(struct cpuinfo_mips *c)
|
||||
@@ -176,9 +178,10 @@ diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-
|
||||
case PRID_COMP_SIBYTE:
|
||||
cpu_probe_sibyte(c);
|
||||
break;
|
||||
diff -urN linux.old/arch/mips/kernel/head.S linux.dev/arch/mips/kernel/head.S
|
||||
--- linux.old/arch/mips/kernel/head.S 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/kernel/head.S 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/kernel/head.S
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/kernel/head.S 2007-12-15 05:19:44.866977862 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/kernel/head.S 2007-12-15 05:20:13.944634901 +0100
|
||||
@@ -28,12 +28,20 @@
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/stackframe.h>
|
||||
@@ -201,9 +204,10 @@ diff -urN linux.old/arch/mips/kernel/head.S linux.dev/arch/mips/kernel/head.S
|
||||
|
||||
/* The following two symbols are used for kernel profiling. */
|
||||
EXPORT(stext)
|
||||
diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
|
||||
--- linux.old/arch/mips/kernel/proc.c 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/kernel/proc.c 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/kernel/proc.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/kernel/proc.c 2007-12-15 05:19:36.358492990 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/kernel/proc.c 2007-12-15 05:20:13.944634901 +0100
|
||||
@@ -78,9 +78,10 @@
|
||||
[CPU_AU1550] "Au1550",
|
||||
[CPU_24K] "MIPS 24K",
|
||||
@@ -216,9 +220,10 @@ diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
|
||||
static int show_cpuinfo(struct seq_file *m, void *v)
|
||||
{
|
||||
unsigned int version = current_cpu_data.processor_id;
|
||||
diff -urN linux.old/arch/mips/kernel/setup.c linux.dev/arch/mips/kernel/setup.c
|
||||
--- linux.old/arch/mips/kernel/setup.c 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/kernel/setup.c 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/kernel/setup.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/kernel/setup.c 2007-12-15 05:19:44.866977862 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/kernel/setup.c 2007-12-15 05:20:13.944634901 +0100
|
||||
@@ -493,6 +493,7 @@
|
||||
void swarm_setup(void);
|
||||
void hp_setup(void);
|
||||
@@ -239,9 +244,10 @@ diff -urN linux.old/arch/mips/kernel/setup.c linux.dev/arch/mips/kernel/setup.c
|
||||
default:
|
||||
panic("Unsupported architecture");
|
||||
}
|
||||
diff -urN linux.old/arch/mips/kernel/traps.c linux.dev/arch/mips/kernel/traps.c
|
||||
--- linux.old/arch/mips/kernel/traps.c 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/kernel/traps.c 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/kernel/traps.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/kernel/traps.c 2007-12-15 05:19:44.870978088 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/kernel/traps.c 2007-12-15 05:20:13.944634901 +0100
|
||||
@@ -920,6 +920,7 @@
|
||||
void __init trap_init(void)
|
||||
{
|
||||
@@ -271,9 +277,10 @@ diff -urN linux.old/arch/mips/kernel/traps.c linux.dev/arch/mips/kernel/traps.c
|
||||
if (cpu_has_fpu && !cpu_has_nofpuex)
|
||||
set_except_vector(15, handle_fpe);
|
||||
|
||||
diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
|
||||
--- linux.old/arch/mips/Makefile 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/Makefile 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/Makefile
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/Makefile 2007-12-15 05:19:51.215339635 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/Makefile 2007-12-15 05:20:13.948635130 +0100
|
||||
@@ -726,6 +726,19 @@
|
||||
endif
|
||||
|
||||
@@ -294,7 +301,7 @@ diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
|
||||
# Choosing incompatible machines durings configuration will result in
|
||||
# error messages during linking. Select a default linkscript if
|
||||
# none has been choosen above.
|
||||
@@ -778,6 +791,7 @@
|
||||
@@ -779,6 +792,7 @@
|
||||
$(MAKE) -C arch/$(ARCH)/tools clean
|
||||
$(MAKE) -C arch/mips/baget clean
|
||||
$(MAKE) -C arch/mips/lasat clean
|
||||
@@ -302,10 +309,11 @@ diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
|
||||
|
||||
archmrproper:
|
||||
@$(MAKEBOOT) mrproper
|
||||
diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
--- linux.old/arch/mips/mm/c-r4k.c 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/mm/c-r4k.c 2006-10-02 21:19:59.000000000 +0200
|
||||
@@ -1166,3 +1166,47 @@
|
||||
Index: linux-2.4.35.4/arch/mips/mm/c-r4k.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/mm/c-r4k.c 2007-12-15 05:19:44.874978317 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/mm/c-r4k.c 2007-12-15 05:20:13.948635130 +0100
|
||||
@@ -1118,3 +1118,47 @@
|
||||
build_clear_page();
|
||||
build_copy_page();
|
||||
}
|
||||
@@ -353,9 +361,10 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
+}
|
||||
+
|
||||
+
|
||||
diff -urN linux.old/arch/mips/pci/Makefile linux.dev/arch/mips/pci/Makefile
|
||||
--- linux.old/arch/mips/pci/Makefile 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/arch/mips/pci/Makefile 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/pci/Makefile
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/pci/Makefile 2007-12-15 05:19:36.398495270 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/pci/Makefile 2007-12-15 05:20:13.948635130 +0100
|
||||
@@ -13,7 +13,9 @@
|
||||
obj-$(CONFIG_MIPS_MSC) += ops-msc.o
|
||||
obj-$(CONFIG_MIPS_NILE4) += ops-nile4.o
|
||||
@@ -366,9 +375,10 @@ diff -urN linux.old/arch/mips/pci/Makefile linux.dev/arch/mips/pci/Makefile
|
||||
obj-$(CONFIG_PCI_AUTO) += pci_auto.o
|
||||
|
||||
include $(TOPDIR)/Rules.make
|
||||
diff -urN linux.old/drivers/char/serial.c linux.dev/drivers/char/serial.c
|
||||
--- linux.old/drivers/char/serial.c 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/drivers/char/serial.c 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/char/serial.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/char/serial.c 2007-12-15 05:20:00.539871010 +0100
|
||||
+++ linux-2.4.35.4/drivers/char/serial.c 2007-12-15 05:20:13.952635360 +0100
|
||||
@@ -444,6 +444,10 @@
|
||||
return inb(info->port+1);
|
||||
#endif
|
||||
@@ -437,9 +447,10 @@ diff -urN linux.old/drivers/char/serial.c linux.dev/drivers/char/serial.c
|
||||
cval = cflag & (CSIZE | CSTOPB);
|
||||
#if defined(__powerpc__) || defined(__alpha__)
|
||||
cval >>= 8;
|
||||
diff -urN linux.old/drivers/net/Makefile linux.dev/drivers/net/Makefile
|
||||
--- linux.old/drivers/net/Makefile 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/drivers/net/Makefile 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/net/Makefile
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/net/Makefile 2007-12-15 05:20:10.804455954 +0100
|
||||
+++ linux-2.4.35.4/drivers/net/Makefile 2007-12-15 05:20:13.952635360 +0100
|
||||
@@ -3,6 +3,8 @@
|
||||
# Makefile for the Linux network (ethercard) device drivers.
|
||||
#
|
||||
@@ -449,9 +460,10 @@ diff -urN linux.old/drivers/net/Makefile linux.dev/drivers/net/Makefile
|
||||
obj-y :=
|
||||
obj-m :=
|
||||
obj-n :=
|
||||
diff -urN linux.old/drivers/parport/Config.in linux.dev/drivers/parport/Config.in
|
||||
--- linux.old/drivers/parport/Config.in 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/drivers/parport/Config.in 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/parport/Config.in
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/parport/Config.in 2007-12-15 05:19:36.422496639 +0100
|
||||
+++ linux-2.4.35.4/drivers/parport/Config.in 2007-12-15 05:20:13.956635587 +0100
|
||||
@@ -11,6 +11,7 @@
|
||||
tristate 'Parallel port support' CONFIG_PARPORT
|
||||
if [ "$CONFIG_PARPORT" != "n" ]; then
|
||||
@@ -460,9 +472,10 @@ diff -urN linux.old/drivers/parport/Config.in linux.dev/drivers/parport/Config.i
|
||||
if [ "$CONFIG_PARPORT_PC" != "n" -a "$CONFIG_SERIAL" != "n" ]; then
|
||||
if [ "$CONFIG_SERIAL" = "m" ]; then
|
||||
define_tristate CONFIG_PARPORT_PC_CML1 m
|
||||
diff -urN linux.old/drivers/parport/Makefile linux.dev/drivers/parport/Makefile
|
||||
--- linux.old/drivers/parport/Makefile 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/drivers/parport/Makefile 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/parport/Makefile
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/parport/Makefile 2007-12-15 05:19:36.430497094 +0100
|
||||
+++ linux-2.4.35.4/drivers/parport/Makefile 2007-12-15 05:20:13.956635587 +0100
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
obj-$(CONFIG_PARPORT) += parport.o
|
||||
@@ -471,9 +484,10 @@ diff -urN linux.old/drivers/parport/Makefile linux.dev/drivers/parport/Makefile
|
||||
obj-$(CONFIG_PARPORT_PC_PCMCIA) += parport_cs.o
|
||||
obj-$(CONFIG_PARPORT_AMIGA) += parport_amiga.o
|
||||
obj-$(CONFIG_PARPORT_MFC3) += parport_mfc3.o
|
||||
diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/bootinfo.h
|
||||
--- linux.old/include/asm-mips/bootinfo.h 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/include/asm-mips/bootinfo.h 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/include/asm-mips/bootinfo.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/include/asm-mips/bootinfo.h 2007-12-15 05:19:45.026986980 +0100
|
||||
+++ linux-2.4.35.4/include/asm-mips/bootinfo.h 2007-12-15 05:20:13.956635587 +0100
|
||||
@@ -37,6 +37,7 @@
|
||||
#define MACH_GROUP_HP_LJ 20 /* Hewlett Packard LaserJet */
|
||||
#define MACH_GROUP_LASAT 21
|
||||
@@ -498,9 +512,10 @@ diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/booti
|
||||
* Valid machtype for group TITAN
|
||||
*/
|
||||
#define MACH_TITAN_YOSEMITE 1 /* PMC-Sierra Yosemite */
|
||||
diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
|
||||
--- linux.old/include/asm-mips/cpu.h 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/include/asm-mips/cpu.h 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/include/asm-mips/cpu.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/include/asm-mips/cpu.h 2007-12-15 05:19:36.442497779 +0100
|
||||
+++ linux-2.4.35.4/include/asm-mips/cpu.h 2007-12-15 05:20:13.956635587 +0100
|
||||
@@ -22,6 +22,11 @@
|
||||
spec.
|
||||
*/
|
||||
@@ -549,10 +564,11 @@ diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
|
||||
|
||||
/*
|
||||
* ISA Level encodings
|
||||
diff -urN linux.old/include/asm-mips/r4kcache.h linux.dev/include/asm-mips/r4kcache.h
|
||||
--- linux.old/include/asm-mips/r4kcache.h 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/include/asm-mips/r4kcache.h 2006-10-02 21:19:59.000000000 +0200
|
||||
@@ -658,4 +658,17 @@
|
||||
Index: linux-2.4.35.4/include/asm-mips/r4kcache.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/include/asm-mips/r4kcache.h 2007-12-15 05:19:36.450498234 +0100
|
||||
+++ linux-2.4.35.4/include/asm-mips/r4kcache.h 2007-12-15 05:20:13.960635812 +0100
|
||||
@@ -567,4 +567,17 @@
|
||||
cache128_unroll32(addr|ws,Index_Writeback_Inv_SD);
|
||||
}
|
||||
|
||||
@@ -570,9 +586,10 @@ diff -urN linux.old/include/asm-mips/r4kcache.h linux.dev/include/asm-mips/r4kca
|
||||
+}
|
||||
+
|
||||
#endif /* __ASM_R4KCACHE_H */
|
||||
diff -urN linux.old/include/asm-mips/serial.h linux.dev/include/asm-mips/serial.h
|
||||
--- linux.old/include/asm-mips/serial.h 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/include/asm-mips/serial.h 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/include/asm-mips/serial.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/include/asm-mips/serial.h 2007-12-15 05:19:36.458498689 +0100
|
||||
+++ linux-2.4.35.4/include/asm-mips/serial.h 2007-12-15 05:20:13.960635812 +0100
|
||||
@@ -223,6 +223,13 @@
|
||||
#define TXX927_SERIAL_PORT_DEFNS
|
||||
#endif
|
||||
@@ -595,9 +612,10 @@ diff -urN linux.old/include/asm-mips/serial.h linux.dev/include/asm-mips/serial.
|
||||
COBALT_SERIAL_PORT_DEFNS \
|
||||
DDB5477_SERIAL_PORT_DEFNS \
|
||||
EV96100_SERIAL_PORT_DEFNS \
|
||||
diff -urN linux.old/init/do_mounts.c linux.dev/init/do_mounts.c
|
||||
--- linux.old/init/do_mounts.c 2006-10-02 21:23:10.000000000 +0200
|
||||
+++ linux.dev/init/do_mounts.c 2006-10-02 21:19:59.000000000 +0200
|
||||
Index: linux-2.4.35.4/init/do_mounts.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/init/do_mounts.c 2007-12-15 05:19:48.667194423 +0100
|
||||
+++ linux-2.4.35.4/init/do_mounts.c 2007-12-15 05:20:13.960635812 +0100
|
||||
@@ -254,7 +254,13 @@
|
||||
{ "ftlb", 0x2c08 },
|
||||
{ "ftlc", 0x2c10 },
|
||||
|
||||
@@ -1,348 +0,0 @@
|
||||
diff -urN linux.old/include/linux/netdevice.h linux.dev/include/linux/netdevice.h
|
||||
--- linux.old/include/linux/netdevice.h 2006-03-19 06:32:22.000000000 +0100
|
||||
+++ linux.dev/include/linux/netdevice.h 2006-03-19 06:33:21.000000000 +0100
|
||||
@@ -296,10 +296,7 @@
|
||||
/* List of functions to handle Wireless Extensions (instead of ioctl).
|
||||
* See <net/iw_handler.h> for details. Jean II */
|
||||
const struct iw_handler_def * wireless_handlers;
|
||||
- /* Instance data managed by the core of Wireless Extensions. */
|
||||
- struct iw_public_data * wireless_data;
|
||||
|
||||
- struct ethtool_ops *ethtool_ops;
|
||||
|
||||
/*
|
||||
* This marks the end of the "visible" part of the structure. All
|
||||
@@ -354,8 +351,8 @@
|
||||
|
||||
struct Qdisc *qdisc;
|
||||
struct Qdisc *qdisc_sleeping;
|
||||
+ struct Qdisc *qdisc_list;
|
||||
struct Qdisc *qdisc_ingress;
|
||||
- struct list_head qdisc_list;
|
||||
unsigned long tx_queue_len; /* Max frames per queue allowed */
|
||||
|
||||
/* hard_start_xmit synchronizer */
|
||||
@@ -455,6 +452,10 @@
|
||||
/* this will get initialized at each interface type init routine */
|
||||
struct divert_blk *divert;
|
||||
#endif /* CONFIG_NET_DIVERT */
|
||||
+ struct ethtool_ops *ethtool_ops;
|
||||
+
|
||||
+ /* Instance data managed by the core of Wireless Extensions. */
|
||||
+ struct iw_public_data * wireless_data;
|
||||
};
|
||||
|
||||
/* 2.6 compatibility */
|
||||
diff -urN linux.old/include/linux/skbuff.h linux.dev/include/linux/skbuff.h
|
||||
--- linux.old/include/linux/skbuff.h 2006-03-19 06:32:22.000000000 +0100
|
||||
+++ linux.dev/include/linux/skbuff.h 2006-03-19 06:29:41.000000000 +0100
|
||||
@@ -138,10 +138,6 @@
|
||||
struct sock *sk; /* Socket we are owned by */
|
||||
struct timeval stamp; /* Time we arrived */
|
||||
struct net_device *dev; /* Device we arrived on/are leaving by */
|
||||
- struct net_device *real_dev; /* For support of point to point protocols
|
||||
- (e.g. 802.3ad) over bonding, we must save the
|
||||
- physical device that got the packet before
|
||||
- replacing skb->dev with the virtual device. */
|
||||
|
||||
/* Transport layer header */
|
||||
union
|
||||
@@ -225,6 +221,10 @@
|
||||
#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
|
||||
struct nf_info *nf_info;
|
||||
#endif
|
||||
+ struct net_device *real_dev; /* For support of point to point protocols
|
||||
+ (e.g. 802.3ad) over bonding, we must save the
|
||||
+ physical device that got the packet before
|
||||
+ replacing skb->dev with the virtual device. */
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
diff -urN linux.old/include/net/pkt_sched.h linux.dev/include/net/pkt_sched.h
|
||||
--- linux.old/include/net/pkt_sched.h 2006-03-19 06:32:22.000000000 +0100
|
||||
+++ linux.dev/include/net/pkt_sched.h 2006-03-19 06:29:41.000000000 +0100
|
||||
@@ -63,8 +63,11 @@
|
||||
int (*enqueue)(struct sk_buff *, struct Qdisc *);
|
||||
struct sk_buff * (*dequeue)(struct Qdisc *);
|
||||
int (*requeue)(struct sk_buff *, struct Qdisc *);
|
||||
- unsigned int (*drop)(struct Qdisc *);
|
||||
-
|
||||
+#ifdef CONFIG_BCM4710
|
||||
+ int (*drop)(struct Qdisc *);
|
||||
+#else
|
||||
+ unsigned int (*drop)(struct Qdisc *);
|
||||
+#endif
|
||||
int (*init)(struct Qdisc *, struct rtattr *arg);
|
||||
void (*reset)(struct Qdisc *);
|
||||
void (*destroy)(struct Qdisc *);
|
||||
@@ -84,12 +87,19 @@
|
||||
#define TCQ_F_THROTTLED 2
|
||||
#define TCQ_F_INGRESS 4
|
||||
struct Qdisc_ops *ops;
|
||||
+#ifdef CONFIG_BCM4710
|
||||
+ struct Qdisc *next;
|
||||
+#endif
|
||||
u32 handle;
|
||||
- u32 parent;
|
||||
+#ifndef CONFIG_BCM4710
|
||||
+ u32 parent;
|
||||
+#endif
|
||||
atomic_t refcnt;
|
||||
struct sk_buff_head q;
|
||||
struct net_device *dev;
|
||||
- struct list_head list;
|
||||
+#ifndef CONFIG_BCM4710
|
||||
+ struct list_head list;
|
||||
+#endif
|
||||
|
||||
struct tc_stats stats;
|
||||
int (*reshape_fail)(struct sk_buff *skb, struct Qdisc *q);
|
||||
diff -urN linux.old/net/core/Makefile linux.dev/net/core/Makefile
|
||||
--- linux.old/net/core/Makefile 2006-03-19 06:32:22.000000000 +0100
|
||||
+++ linux.dev/net/core/Makefile 2006-03-19 06:29:41.000000000 +0100
|
||||
@@ -9,7 +9,11 @@
|
||||
|
||||
O_TARGET := core.o
|
||||
|
||||
+ifeq ($(CONFIG_BCM4710),y)
|
||||
+export-objs := netfilter.o profile.o neighbour.o
|
||||
+else
|
||||
export-objs := netfilter.o profile.o ethtool.o neighbour.o
|
||||
+endif
|
||||
|
||||
obj-y := sock.o skbuff.o iovec.o datagram.o scm.o
|
||||
|
||||
@@ -21,8 +25,13 @@
|
||||
|
||||
obj-$(CONFIG_FILTER) += filter.o
|
||||
|
||||
+ifeq ($(CONFIG_BCM4710),y)
|
||||
+obj-$(CONFIG_NET) += dev.o dev_mcast.o dst.o neighbour.o \
|
||||
+ rtnetlink.o utils.o
|
||||
+else
|
||||
obj-$(CONFIG_NET) += dev.o ethtool.o dev_mcast.o dst.o neighbour.o \
|
||||
rtnetlink.o utils.o
|
||||
+endif
|
||||
|
||||
obj-$(CONFIG_NETFILTER) += netfilter.o
|
||||
obj-$(CONFIG_NET_DIVERT) += dv.o
|
||||
diff -urN linux.old/net/core/dev.c linux.dev/net/core/dev.c
|
||||
--- linux.old/net/core/dev.c 2006-03-19 06:32:22.000000000 +0100
|
||||
+++ linux.dev/net/core/dev.c 2006-03-19 06:29:41.000000000 +0100
|
||||
@@ -2232,6 +2232,7 @@
|
||||
cmd == SIOCGMIIPHY ||
|
||||
cmd == SIOCGMIIREG ||
|
||||
cmd == SIOCSMIIREG ||
|
||||
+ cmd == SIOCETHTOOL ||
|
||||
cmd == SIOCWANDEV) {
|
||||
if (dev->do_ioctl) {
|
||||
if (!netif_device_present(dev))
|
||||
@@ -2324,6 +2325,7 @@
|
||||
}
|
||||
return ret;
|
||||
|
||||
+#ifndef CONFIG_BCM4710
|
||||
case SIOCETHTOOL:
|
||||
dev_load(ifr.ifr_name);
|
||||
rtnl_lock();
|
||||
@@ -2337,6 +2339,7 @@
|
||||
ret = -EFAULT;
|
||||
}
|
||||
return ret;
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* These ioctl calls:
|
||||
@@ -2412,6 +2415,7 @@
|
||||
|
||||
default:
|
||||
if (cmd == SIOCWANDEV ||
|
||||
+ (cmd == SIOCETHTOOL) ||
|
||||
(cmd >= SIOCDEVPRIVATE &&
|
||||
cmd <= SIOCDEVPRIVATE + 15)) {
|
||||
dev_load(ifr.ifr_name);
|
||||
diff -urN linux.old/net/sched/sch_api.c linux.dev/net/sched/sch_api.c
|
||||
--- linux.old/net/sched/sch_api.c 2006-03-19 06:32:22.000000000 +0100
|
||||
+++ linux.dev/net/sched/sch_api.c 2006-03-19 06:29:41.000000000 +0100
|
||||
@@ -194,11 +194,12 @@
|
||||
{
|
||||
struct Qdisc *q;
|
||||
|
||||
- list_for_each_entry(q, &dev->qdisc_list, list) {
|
||||
+ for (q = dev->qdisc_list; q; q = q->next) {
|
||||
if (q->handle == handle)
|
||||
return q;
|
||||
}
|
||||
return NULL;
|
||||
+
|
||||
}
|
||||
|
||||
struct Qdisc *qdisc_leaf(struct Qdisc *p, u32 classid)
|
||||
@@ -371,8 +372,6 @@
|
||||
unsigned long cl = cops->get(parent, classid);
|
||||
if (cl) {
|
||||
err = cops->graft(parent, cl, new, old);
|
||||
- if (new)
|
||||
- new->parent = classid;
|
||||
cops->put(parent, cl);
|
||||
}
|
||||
}
|
||||
@@ -427,7 +426,6 @@
|
||||
|
||||
memset(sch, 0, size);
|
||||
|
||||
- INIT_LIST_HEAD(&sch->list);
|
||||
skb_queue_head_init(&sch->q);
|
||||
|
||||
if (handle == TC_H_INGRESS)
|
||||
@@ -453,7 +451,8 @@
|
||||
|
||||
if (!ops->init || (err = ops->init(sch, tca[TCA_OPTIONS-1])) == 0) {
|
||||
write_lock(&qdisc_tree_lock);
|
||||
- list_add_tail(&sch->list, &dev->qdisc_list);
|
||||
+ sch->next = dev->qdisc_list;
|
||||
+ dev->qdisc_list = sch;
|
||||
write_unlock(&qdisc_tree_lock);
|
||||
#ifdef CONFIG_NET_ESTIMATOR
|
||||
if (tca[TCA_RATE-1])
|
||||
@@ -808,19 +807,16 @@
|
||||
if (idx > s_idx)
|
||||
s_q_idx = 0;
|
||||
read_lock(&qdisc_tree_lock);
|
||||
- q_idx = 0;
|
||||
- list_for_each_entry(q, &dev->qdisc_list, list) {
|
||||
- if (q_idx < s_q_idx) {
|
||||
- q_idx++;
|
||||
- continue;
|
||||
- }
|
||||
- if (tc_fill_qdisc(skb, q, q->parent, NETLINK_CB(cb->skb).pid,
|
||||
- cb->nlh->nlmsg_seq, NLM_F_MULTI, RTM_NEWQDISC) <= 0) {
|
||||
- read_unlock(&qdisc_tree_lock);
|
||||
- goto done;
|
||||
- }
|
||||
- q_idx++;
|
||||
- }
|
||||
+ for (q = dev->qdisc_list, q_idx = 0; q;
|
||||
+ q = q->next, q_idx++) {
|
||||
+ if (q_idx < s_q_idx)
|
||||
+ continue;
|
||||
+ if (tc_fill_qdisc(skb, q, 0, NETLINK_CB(cb->skb).pid,
|
||||
+ cb->nlh->nlmsg_seq, NLM_F_MULTI, RTM_NEWQDISC) <= 0) {
|
||||
+ read_unlock(&qdisc_tree_lock);
|
||||
+ goto done;
|
||||
+ }
|
||||
+ }
|
||||
read_unlock(&qdisc_tree_lock);
|
||||
}
|
||||
|
||||
@@ -1033,27 +1029,24 @@
|
||||
t = 0;
|
||||
|
||||
read_lock(&qdisc_tree_lock);
|
||||
- list_for_each_entry(q, &dev->qdisc_list, list) {
|
||||
- if (t < s_t || !q->ops->cl_ops ||
|
||||
- (tcm->tcm_parent &&
|
||||
- TC_H_MAJ(tcm->tcm_parent) != q->handle)) {
|
||||
- t++;
|
||||
- continue;
|
||||
- }
|
||||
- if (t > s_t)
|
||||
- memset(&cb->args[1], 0, sizeof(cb->args)-sizeof(cb->args[0]));
|
||||
- arg.w.fn = qdisc_class_dump;
|
||||
- arg.skb = skb;
|
||||
- arg.cb = cb;
|
||||
- arg.w.stop = 0;
|
||||
- arg.w.skip = cb->args[1];
|
||||
- arg.w.count = 0;
|
||||
- q->ops->cl_ops->walk(q, &arg.w);
|
||||
- cb->args[1] = arg.w.count;
|
||||
- if (arg.w.stop)
|
||||
- break;
|
||||
- t++;
|
||||
- }
|
||||
+ for (q=dev->qdisc_list, t=0; q; q = q->next, t++) {
|
||||
+ if (t < s_t) continue;
|
||||
+ if (!q->ops->cl_ops) continue;
|
||||
+ if (tcm->tcm_parent && TC_H_MAJ(tcm->tcm_parent) != q->handle)
|
||||
+ continue;
|
||||
+ if (t > s_t)
|
||||
+ memset(&cb->args[1], 0, sizeof(cb->args)-sizeof(cb->args[0]));
|
||||
+ arg.w.fn = qdisc_class_dump;
|
||||
+ arg.skb = skb;
|
||||
+ arg.cb = cb;
|
||||
+ arg.w.stop = 0;
|
||||
+ arg.w.skip = cb->args[1];
|
||||
+ arg.w.count = 0;
|
||||
+ q->ops->cl_ops->walk(q, &arg.w);
|
||||
+ cb->args[1] = arg.w.count;
|
||||
+ if (arg.w.stop)
|
||||
+ break;
|
||||
+ }
|
||||
read_unlock(&qdisc_tree_lock);
|
||||
|
||||
cb->args[0] = t;
|
||||
diff -urN linux.old/net/sched/sch_generic.c linux.dev/net/sched/sch_generic.c
|
||||
--- linux.old/net/sched/sch_generic.c 2006-03-19 06:32:22.000000000 +0100
|
||||
+++ linux.dev/net/sched/sch_generic.c 2006-03-19 06:29:41.000000000 +0100
|
||||
@@ -399,7 +399,6 @@
|
||||
return NULL;
|
||||
memset(sch, 0, size);
|
||||
|
||||
- INIT_LIST_HEAD(&sch->list);
|
||||
skb_queue_head_init(&sch->q);
|
||||
sch->ops = ops;
|
||||
sch->enqueue = ops->enqueue;
|
||||
@@ -429,11 +428,22 @@
|
||||
void qdisc_destroy(struct Qdisc *qdisc)
|
||||
{
|
||||
struct Qdisc_ops *ops = qdisc->ops;
|
||||
+ struct net_device *dev;
|
||||
|
||||
if (qdisc->flags&TCQ_F_BUILTIN ||
|
||||
!atomic_dec_and_test(&qdisc->refcnt))
|
||||
return;
|
||||
- list_del(&qdisc->list);
|
||||
+
|
||||
+ dev = qdisc->dev;
|
||||
+ if (dev) {
|
||||
+ struct Qdisc *q, **qp;
|
||||
+ for (qp = &qdisc->dev->qdisc_list; (q=*qp) != NULL; qp = &q->next) {
|
||||
+ if (q == qdisc) {
|
||||
+ *qp = q->next;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
#ifdef CONFIG_NET_ESTIMATOR
|
||||
qdisc_kill_estimator(&qdisc->stats);
|
||||
#endif
|
||||
@@ -462,9 +472,9 @@
|
||||
return;
|
||||
}
|
||||
write_lock(&qdisc_tree_lock);
|
||||
- list_add_tail(&qdisc->list, &dev->qdisc_list);
|
||||
+ qdisc->next = dev->qdisc_list;
|
||||
+ dev->qdisc_list = qdisc;
|
||||
write_unlock(&qdisc_tree_lock);
|
||||
-
|
||||
} else {
|
||||
qdisc = &noqueue_qdisc;
|
||||
}
|
||||
@@ -508,7 +518,7 @@
|
||||
dev->qdisc = &noop_qdisc;
|
||||
spin_unlock_bh(&dev->queue_lock);
|
||||
dev->qdisc_sleeping = &noop_qdisc;
|
||||
- INIT_LIST_HEAD(&dev->qdisc_list);
|
||||
+ dev->qdisc_list = NULL;
|
||||
write_unlock(&qdisc_tree_lock);
|
||||
|
||||
dev_watchdog_init(dev);
|
||||
@@ -530,7 +540,7 @@
|
||||
qdisc_destroy(qdisc);
|
||||
}
|
||||
#endif
|
||||
- BUG_TRAP(list_empty(&dev->qdisc_list));
|
||||
+ BUG_TRAP(dev->qdisc_list == NULL);
|
||||
BUG_TRAP(!timer_pending(&dev->watchdog_timer));
|
||||
spin_unlock_bh(&dev->queue_lock);
|
||||
write_unlock(&qdisc_tree_lock);
|
||||
@@ -1,6 +1,7 @@
|
||||
diff -urN linux.old/arch/mips/kernel/entry.S linux.dev/arch/mips/kernel/entry.S
|
||||
--- linux.old/arch/mips/kernel/entry.S 2005-07-05 16:46:49.000000000 +0200
|
||||
+++ linux.dev/arch/mips/kernel/entry.S 2005-07-06 11:23:55.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/kernel/entry.S
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/kernel/entry.S 2007-12-15 05:19:36.266487747 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/kernel/entry.S 2007-12-15 05:20:14.372659296 +0100
|
||||
@@ -100,6 +100,10 @@
|
||||
* and R4400 SC and MC versions.
|
||||
*/
|
||||
@@ -12,9 +13,10 @@ diff -urN linux.old/arch/mips/kernel/entry.S linux.dev/arch/mips/kernel/entry.S
|
||||
#if R5432_CP0_INTERRUPT_WAR
|
||||
mfc0 k0, CP0_INDEX
|
||||
#endif
|
||||
diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
--- linux.old/arch/mips/mm/c-r4k.c 2005-07-05 16:46:49.000000000 +0200
|
||||
+++ linux.dev/arch/mips/mm/c-r4k.c 2005-07-06 11:23:55.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/mm/c-r4k.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/mm/c-r4k.c 2007-12-15 05:20:13.948635130 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/mm/c-r4k.c 2007-12-15 05:20:14.376659523 +0100
|
||||
@@ -14,6 +14,12 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/bitops.h>
|
||||
@@ -28,16 +30,15 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
#include <asm/bcache.h>
|
||||
#include <asm/bootinfo.h>
|
||||
#include <asm/cacheops.h>
|
||||
@@ -40,6 +46,8 @@
|
||||
@@ -40,6 +46,7 @@
|
||||
.bc_inv = (void *)no_sc_noop
|
||||
};
|
||||
|
||||
+int bcm4710 = 0;
|
||||
+EXPORT_SYMBOL(bcm4710);
|
||||
struct bcache_ops *bcops = &no_sc_ops;
|
||||
|
||||
#define cpu_is_r4600_v1_x() ((read_c0_prid() & 0xfffffff0) == 0x2010)
|
||||
@@ -64,8 +72,10 @@
|
||||
@@ -64,8 +71,10 @@
|
||||
static inline void r4k_blast_dcache_page_setup(void)
|
||||
{
|
||||
unsigned long dc_lsize = current_cpu_data.dcache.linesz;
|
||||
@@ -50,7 +51,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
r4k_blast_dcache_page = blast_dcache16_page;
|
||||
else if (dc_lsize == 32)
|
||||
r4k_blast_dcache_page = r4k_blast_dcache_page_dc32;
|
||||
@@ -77,7 +87,9 @@
|
||||
@@ -77,7 +86,9 @@
|
||||
{
|
||||
unsigned long dc_lsize = current_cpu_data.dcache.linesz;
|
||||
|
||||
@@ -61,7 +62,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
r4k_blast_dcache_page_indexed = blast_dcache16_page_indexed;
|
||||
else if (dc_lsize == 32)
|
||||
r4k_blast_dcache_page_indexed = blast_dcache32_page_indexed;
|
||||
@@ -89,7 +101,9 @@
|
||||
@@ -89,7 +100,9 @@
|
||||
{
|
||||
unsigned long dc_lsize = current_cpu_data.dcache.linesz;
|
||||
|
||||
@@ -72,7 +73,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
r4k_blast_dcache = blast_dcache16;
|
||||
else if (dc_lsize == 32)
|
||||
r4k_blast_dcache = blast_dcache32;
|
||||
@@ -266,6 +280,7 @@
|
||||
@@ -266,6 +279,7 @@
|
||||
r4k_blast_dcache();
|
||||
r4k_blast_icache();
|
||||
|
||||
@@ -80,7 +81,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
switch (current_cpu_data.cputype) {
|
||||
case CPU_R4000SC:
|
||||
case CPU_R4000MC:
|
||||
@@ -304,10 +319,10 @@
|
||||
@@ -304,10 +318,10 @@
|
||||
* Kludge alert. For obscure reasons R4000SC and R4400SC go nuts if we
|
||||
* only flush the primary caches but R10000 and R12000 behave sane ...
|
||||
*/
|
||||
@@ -93,7 +94,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
r4k_blast_scache();
|
||||
}
|
||||
|
||||
@@ -383,12 +398,15 @@
|
||||
@@ -383,12 +397,15 @@
|
||||
unsigned long ic_lsize = current_cpu_data.icache.linesz;
|
||||
unsigned long addr, aend;
|
||||
|
||||
@@ -111,7 +112,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
|
||||
while (1) {
|
||||
/* Hit_Writeback_Inv_D */
|
||||
@@ -403,8 +421,6 @@
|
||||
@@ -403,8 +420,6 @@
|
||||
if (end - start > icache_size)
|
||||
r4k_blast_icache();
|
||||
else {
|
||||
@@ -120,7 +121,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
while (1) {
|
||||
/* Hit_Invalidate_I */
|
||||
protected_flush_icache_line(addr);
|
||||
@@ -413,6 +429,9 @@
|
||||
@@ -413,6 +428,9 @@
|
||||
addr += ic_lsize;
|
||||
}
|
||||
}
|
||||
@@ -130,7 +131,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -443,7 +462,8 @@
|
||||
@@ -443,7 +461,8 @@
|
||||
if (cpu_has_subset_pcaches) {
|
||||
unsigned long addr = (unsigned long) page_address(page);
|
||||
|
||||
@@ -140,7 +141,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
ClearPageDcacheDirty(page);
|
||||
|
||||
return;
|
||||
@@ -451,6 +471,7 @@
|
||||
@@ -451,6 +470,7 @@
|
||||
|
||||
if (!cpu_has_ic_fills_f_dc) {
|
||||
unsigned long addr = (unsigned long) page_address(page);
|
||||
@@ -148,7 +149,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
r4k_blast_dcache_page(addr);
|
||||
ClearPageDcacheDirty(page);
|
||||
}
|
||||
@@ -477,7 +498,7 @@
|
||||
@@ -477,7 +497,7 @@
|
||||
/* Catch bad driver code */
|
||||
BUG_ON(size == 0);
|
||||
|
||||
@@ -157,7 +158,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
unsigned long sc_lsize = current_cpu_data.scache.linesz;
|
||||
|
||||
if (size >= scache_size) {
|
||||
@@ -509,6 +530,8 @@
|
||||
@@ -509,6 +529,8 @@
|
||||
R4600_HIT_CACHEOP_WAR_IMPL;
|
||||
a = addr & ~(dc_lsize - 1);
|
||||
end = (addr + size - 1) & ~(dc_lsize - 1);
|
||||
@@ -166,7 +167,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
while (1) {
|
||||
flush_dcache_line(a); /* Hit_Writeback_Inv_D */
|
||||
if (a == end)
|
||||
@@ -527,7 +550,7 @@
|
||||
@@ -527,7 +549,7 @@
|
||||
/* Catch bad driver code */
|
||||
BUG_ON(size == 0);
|
||||
|
||||
@@ -175,7 +176,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
unsigned long sc_lsize = current_cpu_data.scache.linesz;
|
||||
|
||||
if (size >= scache_size) {
|
||||
@@ -554,6 +577,8 @@
|
||||
@@ -554,6 +576,8 @@
|
||||
R4600_HIT_CACHEOP_WAR_IMPL;
|
||||
a = addr & ~(dc_lsize - 1);
|
||||
end = (addr + size - 1) & ~(dc_lsize - 1);
|
||||
@@ -184,7 +185,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
while (1) {
|
||||
flush_dcache_line(a); /* Hit_Writeback_Inv_D */
|
||||
if (a == end)
|
||||
@@ -577,6 +602,8 @@
|
||||
@@ -577,6 +601,8 @@
|
||||
unsigned long dc_lsize = current_cpu_data.dcache.linesz;
|
||||
|
||||
R4600_HIT_CACHEOP_WAR_IMPL;
|
||||
@@ -193,7 +194,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
|
||||
protected_flush_icache_line(addr & ~(ic_lsize - 1));
|
||||
if (MIPS4K_ICACHE_REFILL_WAR) {
|
||||
@@ -986,10 +1013,12 @@
|
||||
@@ -986,10 +1012,12 @@
|
||||
case CPU_R4000MC:
|
||||
case CPU_R4400SC:
|
||||
case CPU_R4400MC:
|
||||
@@ -210,7 +211,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
break;
|
||||
|
||||
case CPU_R10000:
|
||||
@@ -1041,6 +1070,19 @@
|
||||
@@ -1041,6 +1069,19 @@
|
||||
static inline void coherency_setup(void)
|
||||
{
|
||||
change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
|
||||
@@ -230,7 +231,7 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
|
||||
/*
|
||||
* c0_status.cu=0 specifies that updates by the sc instruction use
|
||||
@@ -1073,6 +1115,12 @@
|
||||
@@ -1073,6 +1114,12 @@
|
||||
memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
|
||||
memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
|
||||
|
||||
@@ -243,9 +244,10 @@ diff -urN linux.old/arch/mips/mm/c-r4k.c linux.dev/arch/mips/mm/c-r4k.c
|
||||
probe_pcache();
|
||||
setup_scache();
|
||||
|
||||
diff -urN linux.old/arch/mips/mm/tlbex-mips32.S linux.dev/arch/mips/mm/tlbex-mips32.S
|
||||
--- linux.old/arch/mips/mm/tlbex-mips32.S 2005-07-05 16:46:49.000000000 +0200
|
||||
+++ linux.dev/arch/mips/mm/tlbex-mips32.S 2005-07-06 11:23:56.000000000 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/mm/tlbex-mips32.S
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/mm/tlbex-mips32.S 2007-12-15 05:19:44.874978317 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/mm/tlbex-mips32.S 2007-12-15 05:20:14.380659748 +0100
|
||||
@@ -90,6 +90,9 @@
|
||||
.set noat
|
||||
LEAF(except_vec0_r4000)
|
||||
@@ -256,9 +258,10 @@ diff -urN linux.old/arch/mips/mm/tlbex-mips32.S linux.dev/arch/mips/mm/tlbex-mip
|
||||
#ifdef CONFIG_SMP
|
||||
mfc0 k1, CP0_CONTEXT
|
||||
la k0, pgd_current
|
||||
diff -urN linux.old/include/asm-mips/r4kcache.h linux.dev/include/asm-mips/r4kcache.h
|
||||
--- linux.old/include/asm-mips/r4kcache.h 2005-07-05 16:46:49.000000000 +0200
|
||||
+++ linux.dev/include/asm-mips/r4kcache.h 2005-07-06 12:52:57.000000000 +0200
|
||||
Index: linux-2.4.35.4/include/asm-mips/r4kcache.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/include/asm-mips/r4kcache.h 2007-12-15 05:20:13.960635812 +0100
|
||||
+++ linux-2.4.35.4/include/asm-mips/r4kcache.h 2007-12-15 05:20:14.384659977 +0100
|
||||
@@ -15,6 +15,18 @@
|
||||
#include <asm/asm.h>
|
||||
#include <asm/cacheops.h>
|
||||
@@ -461,9 +464,10 @@ diff -urN linux.old/include/asm-mips/r4kcache.h linux.dev/include/asm-mips/r4kca
|
||||
do {
|
||||
cache64_unroll32(start,Hit_Invalidate_I);
|
||||
start += 0x800;
|
||||
diff -urN linux.old/include/asm-mips/stackframe.h linux.dev/include/asm-mips/stackframe.h
|
||||
--- linux.old/include/asm-mips/stackframe.h 2005-07-05 16:46:49.000000000 +0200
|
||||
+++ linux.dev/include/asm-mips/stackframe.h 2005-07-06 11:23:56.000000000 +0200
|
||||
Index: linux-2.4.35.4/include/asm-mips/stackframe.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/include/asm-mips/stackframe.h 2007-12-15 05:19:36.298489571 +0100
|
||||
+++ linux-2.4.35.4/include/asm-mips/stackframe.h 2007-12-15 05:20:14.388660206 +0100
|
||||
@@ -209,6 +209,20 @@
|
||||
|
||||
#endif
|
||||
@@ -485,10 +489,11 @@ diff -urN linux.old/include/asm-mips/stackframe.h linux.dev/include/asm-mips/sta
|
||||
#define RESTORE_SP \
|
||||
lw sp, PT_R29(sp); \
|
||||
|
||||
diff -urN linux.old/mm/memory.c linux.dev/mm/memory.c
|
||||
--- linux.old/mm/memory.c 2005-04-04 03:42:20.000000000 +0200
|
||||
+++ linux.dev/mm/memory.c 2005-07-06 11:23:56.000000000 +0200
|
||||
@@ -925,6 +925,7 @@
|
||||
Index: linux-2.4.35.4/mm/memory.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/mm/memory.c 2007-12-15 05:19:36.306490026 +0100
|
||||
+++ linux-2.4.35.4/mm/memory.c 2007-12-15 05:20:14.388660206 +0100
|
||||
@@ -927,6 +927,7 @@
|
||||
flush_page_to_ram(new_page);
|
||||
flush_cache_page(vma, address);
|
||||
establish_pte(vma, address, page_table, pte_mkwrite(pte_mkdirty(mk_pte(new_page, vma->vm_page_prot))));
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
diff -urN linux.old/drivers/mtd/devices/Config.in linux.dev/drivers/mtd/devices/Config.in
|
||||
--- linux.old/drivers/mtd/devices/Config.in 2006-06-22 17:35:39.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/devices/Config.in 2006-06-21 21:41:24.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/mtd/devices/Config.in
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/mtd/devices/Config.in 2007-12-15 05:19:36.210484556 +0100
|
||||
+++ linux-2.4.35.4/drivers/mtd/devices/Config.in 2007-12-15 05:20:14.656675480 +0100
|
||||
@@ -5,6 +5,7 @@
|
||||
mainmenu_option next_comment
|
||||
|
||||
@@ -9,9 +10,10 @@ diff -urN linux.old/drivers/mtd/devices/Config.in linux.dev/drivers/mtd/devices/
|
||||
dep_tristate ' Ramix PMC551 PCI Mezzanine RAM card support' CONFIG_MTD_PMC551 $CONFIG_MTD $CONFIG_PCI
|
||||
if [ "$CONFIG_MTD_PMC551" = "y" -o "$CONFIG_MTD_PMC551" = "m" ]; then
|
||||
bool ' PMC551 256M DRAM Bugfix' CONFIG_MTD_PMC551_BUGFIX
|
||||
diff -urN linux.old/drivers/mtd/devices/Makefile linux.dev/drivers/mtd/devices/Makefile
|
||||
--- linux.old/drivers/mtd/devices/Makefile 2006-06-22 17:35:39.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/devices/Makefile 2006-06-21 21:41:24.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/mtd/devices/Makefile
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/mtd/devices/Makefile 2007-12-15 05:19:36.218485012 +0100
|
||||
+++ linux-2.4.35.4/drivers/mtd/devices/Makefile 2007-12-15 05:20:14.660675705 +0100
|
||||
@@ -3,6 +3,8 @@
|
||||
#
|
||||
# $Id: Makefile,v 1.4 2001/06/26 21:10:05 spse Exp $
|
||||
@@ -29,9 +31,10 @@ diff -urN linux.old/drivers/mtd/devices/Makefile linux.dev/drivers/mtd/devices/M
|
||||
obj-$(CONFIG_MTD_DOC1000) += doc1000.o
|
||||
obj-$(CONFIG_MTD_DOC2000) += doc2000.o
|
||||
obj-$(CONFIG_MTD_DOC2001) += doc2001.o
|
||||
diff -urN linux.old/drivers/mtd/maps/Config.in linux.dev/drivers/mtd/maps/Config.in
|
||||
--- linux.old/drivers/mtd/maps/Config.in 2006-06-22 17:35:39.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/maps/Config.in 2006-06-21 21:41:24.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/mtd/maps/Config.in
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/mtd/maps/Config.in 2007-12-15 05:19:44.950982647 +0100
|
||||
+++ linux-2.4.35.4/drivers/mtd/maps/Config.in 2007-12-15 05:20:14.664675934 +0100
|
||||
@@ -48,6 +48,7 @@
|
||||
fi
|
||||
|
||||
@@ -40,9 +43,10 @@ diff -urN linux.old/drivers/mtd/maps/Config.in linux.dev/drivers/mtd/maps/Config
|
||||
dep_tristate ' Pb1000 MTD support' CONFIG_MTD_PB1000 $CONFIG_MIPS_PB1000
|
||||
dep_tristate ' Pb1500 MTD support' CONFIG_MTD_PB1500 $CONFIG_MIPS_PB1500
|
||||
dep_tristate ' Pb1100 MTD support' CONFIG_MTD_PB1100 $CONFIG_MIPS_PB1100
|
||||
diff -urN linux.old/drivers/mtd/maps/Makefile linux.dev/drivers/mtd/maps/Makefile
|
||||
--- linux.old/drivers/mtd/maps/Makefile 2006-06-22 17:35:39.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/maps/Makefile 2006-06-21 21:41:24.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/mtd/maps/Makefile
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/mtd/maps/Makefile 2007-12-15 05:19:44.954982876 +0100
|
||||
+++ linux-2.4.35.4/drivers/mtd/maps/Makefile 2007-12-15 05:20:14.664675934 +0100
|
||||
@@ -3,6 +3,8 @@
|
||||
#
|
||||
# $Id: Makefile,v 1.37 2003/01/24 14:26:38 dwmw2 Exp $
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
--- linux-2.4.30/drivers/bluetooth/hci_usb.c 2004-08-08 01:26:04.000000000 +0200
|
||||
+++ linux-2.4.30/drivers/bluetooth/hci_usb.c 2005-07-25 20:12:11.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/bluetooth/hci_usb.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/bluetooth/hci_usb.c 2007-12-15 05:19:36.182482961 +0100
|
||||
+++ linux-2.4.35.4/drivers/bluetooth/hci_usb.c 2007-12-15 05:20:14.964693031 +0100
|
||||
@@ -259,6 +259,9 @@
|
||||
void *buf;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
diff -urN linux.old/arch/mips/lib/ide-std.c linux.dev/arch/mips/lib/ide-std.c
|
||||
--- linux.old/arch/mips/lib/ide-std.c 2003-08-25 13:44:40.000000000 +0200
|
||||
+++ linux.dev/arch/mips/lib/ide-std.c 2005-08-12 23:55:23.886963936 +0200
|
||||
Index: linux-2.4.35.4/arch/mips/lib/ide-std.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/arch/mips/lib/ide-std.c 2007-12-15 05:19:36.146480908 +0100
|
||||
+++ linux-2.4.35.4/arch/mips/lib/ide-std.c 2007-12-15 05:20:15.796740447 +0100
|
||||
@@ -31,12 +31,14 @@
|
||||
static ide_ioreg_t std_ide_default_io_base(int index)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
--- linux.old/drivers/net/b44.c 2006-02-12 13:49:59.000000000 +0100
|
||||
+++ linux.dev/drivers/net/b44.c 2006-03-06 22:37:14.000000000 +0100
|
||||
Index: linux-2.4.35.4/drivers/net/b44.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/net/b44.c 2007-12-15 05:19:36.094477944 +0100
|
||||
+++ linux-2.4.35.4/drivers/net/b44.c 2007-12-15 05:20:16.020753214 +0100
|
||||
@@ -1,7 +1,9 @@
|
||||
/* b44.c: Broadcom 4400 device driver.
|
||||
*
|
||||
@@ -12,15 +13,13 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
*
|
||||
* Distribute under GPL.
|
||||
*/
|
||||
@@ -25,6 +27,41 @@
|
||||
@@ -25,6 +27,39 @@
|
||||
|
||||
#include "b44.h"
|
||||
|
||||
+#include <typedefs.h>
|
||||
+#include <bcmdevs.h>
|
||||
+#include <bcmutils.h>
|
||||
+#include <osl.h>
|
||||
+#include <bcmutils.h>
|
||||
+#include <bcmnvram.h>
|
||||
+#include <sbconfig.h>
|
||||
+#include <sbchipc.h>
|
||||
@@ -400,7 +399,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
bw32(B44_MDIO_CTRL, (MDIO_CTRL_PREAMBLE |
|
||||
(0x0d & MDIO_CTRL_MAXF_MASK)));
|
||||
br32(B44_MDIO_CTRL);
|
||||
@@ -1215,6 +1357,8 @@
|
||||
@@ -1216,6 +1358,8 @@
|
||||
struct b44 *bp = dev->priv;
|
||||
int err;
|
||||
|
||||
@@ -409,7 +408,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
err = b44_alloc_consistent(bp);
|
||||
if (err)
|
||||
return err;
|
||||
@@ -1235,9 +1379,10 @@
|
||||
@@ -1236,9 +1380,10 @@
|
||||
bp->timer.expires = jiffies + HZ;
|
||||
bp->timer.data = (unsigned long) bp;
|
||||
bp->timer.function = b44_timer;
|
||||
@@ -421,7 +420,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1628,7 +1773,7 @@
|
||||
@@ -1638,7 +1783,7 @@
|
||||
u32 mii_regval;
|
||||
|
||||
spin_lock_irq(&bp->lock);
|
||||
@@ -430,7 +429,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
spin_unlock_irq(&bp->lock);
|
||||
|
||||
data->val_out = mii_regval;
|
||||
@@ -1641,7 +1786,7 @@
|
||||
@@ -1651,7 +1796,7 @@
|
||||
return -EPERM;
|
||||
|
||||
spin_lock_irq(&bp->lock);
|
||||
@@ -439,7 +438,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
spin_unlock_irq(&bp->lock);
|
||||
|
||||
return err;
|
||||
@@ -1668,21 +1813,52 @@
|
||||
@@ -1678,21 +1823,52 @@
|
||||
static int __devinit b44_get_invariants(struct b44 *bp)
|
||||
{
|
||||
u8 eeprom[128];
|
||||
@@ -505,7 +504,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
|
||||
/* With this, plus the rx_header prepended to the data by the
|
||||
* hardware, we'll land the ethernet header on a 2-byte boundary.
|
||||
@@ -1692,13 +1868,12 @@
|
||||
@@ -1702,13 +1878,12 @@
|
||||
bp->imask = IMASK_DEF;
|
||||
|
||||
bp->core_unit = ssb_core_unit(bp);
|
||||
@@ -521,7 +520,7 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
}
|
||||
|
||||
static int __devinit b44_init_one(struct pci_dev *pdev,
|
||||
@@ -1710,6 +1885,10 @@
|
||||
@@ -1720,6 +1895,10 @@
|
||||
struct b44 *bp;
|
||||
int err, i;
|
||||
|
||||
@@ -532,9 +531,9 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
if (b44_version_printed++ == 0)
|
||||
printk(KERN_INFO "%s", version);
|
||||
|
||||
@@ -1819,11 +1998,17 @@
|
||||
|
||||
pci_save_state(bp->pdev, bp->pci_cfg_state);
|
||||
@@ -1834,11 +2013,17 @@
|
||||
*/
|
||||
b44_chip_reset(bp);
|
||||
|
||||
- printk(KERN_INFO "%s: Broadcom 4400 10/100BaseT Ethernet ", dev->name);
|
||||
+ printk(KERN_INFO "%s: Broadcom %s 10/100BaseT Ethernet ", dev->name,
|
||||
@@ -551,9 +550,10 @@ diff -urN linux.old/drivers/net/b44.c linux.dev/drivers/net/b44.c
|
||||
return 0;
|
||||
|
||||
err_out_iounmap:
|
||||
diff -urN linux.old/drivers/net/b44.h linux.dev/drivers/net/b44.h
|
||||
--- linux.old/drivers/net/b44.h 2006-02-12 13:49:59.000000000 +0100
|
||||
+++ linux.dev/drivers/net/b44.h 2006-01-24 20:52:08.000000000 +0100
|
||||
Index: linux-2.4.35.4/drivers/net/b44.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/net/b44.h 2007-12-15 05:19:36.102478402 +0100
|
||||
+++ linux-2.4.35.4/drivers/net/b44.h 2007-12-15 05:20:16.028753670 +0100
|
||||
@@ -229,8 +229,6 @@
|
||||
#define SBIPSFLAG_IMASK4 0x3f000000 /* Which sbflags --> mips interrupt 4 */
|
||||
#define SBIPSFLAG_ISHIFT4 24
|
||||
@@ -572,10 +572,11 @@ diff -urN linux.old/drivers/net/b44.h linux.dev/drivers/net/b44.h
|
||||
|
||||
/* SW copy of device statistics, kept up to date by periodic timer
|
||||
* which probes HW values. Must have same relative layout as HW
|
||||
diff -urN linux.old/include/linux/pci_ids.h linux.dev/include/linux/pci_ids.h
|
||||
--- linux.old/include/linux/pci_ids.h 2006-02-12 13:49:59.000000000 +0100
|
||||
+++ linux.dev/include/linux/pci_ids.h 2006-01-24 20:52:08.000000000 +0100
|
||||
@@ -1735,6 +1735,7 @@
|
||||
Index: linux-2.4.35.4/include/linux/pci_ids.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/include/linux/pci_ids.h 2007-12-15 05:19:36.114479084 +0100
|
||||
+++ linux-2.4.35.4/include/linux/pci_ids.h 2007-12-15 05:20:16.032753896 +0100
|
||||
@@ -1756,6 +1756,7 @@
|
||||
#define PCI_DEVICE_ID_TIGON3_5901_2 0x170e
|
||||
#define PCI_DEVICE_ID_BCM4401 0x4401
|
||||
#define PCI_DEVICE_ID_BCM4401B0 0x4402
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
diff -urN linux.old/drivers/pcmcia/yenta.c linux.dev/drivers/pcmcia/yenta.c
|
||||
--- linux.old/drivers/pcmcia/yenta.c 2004-11-17 12:54:21.000000000 +0100
|
||||
+++ linux.dev/drivers/pcmcia/yenta.c 2006-04-11 17:47:45.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/pcmcia/yenta.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/pcmcia/yenta.c 2007-12-15 05:19:36.066476349 +0100
|
||||
+++ linux-2.4.35.4/drivers/pcmcia/yenta.c 2007-12-15 05:20:16.268767348 +0100
|
||||
@@ -543,6 +543,9 @@
|
||||
* Probe for usable interrupts using the force
|
||||
* register to generate bogus card status events.
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
--- linux-2.4.32.orig/drivers/net/b44.h 2006-09-19 19:56:03.000000000 +0200
|
||||
+++ linux-2.4.32/drivers/net/b44.h 2006-09-19 19:58:01.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/net/b44.h
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/net/b44.h 2007-12-15 05:20:16.028753670 +0100
|
||||
+++ linux-2.4.35.4/drivers/net/b44.h 2007-12-15 05:20:16.480779429 +0100
|
||||
@@ -122,6 +122,7 @@
|
||||
#define RXCONFIG_FLOW 0x00000020 /* Flow Control Enable */
|
||||
#define RXCONFIG_FLOW_ACCEPT 0x00000040 /* Accept Unicast Flow Control Frame */
|
||||
@@ -8,8 +10,10 @@
|
||||
#define B44_RXMAXLEN 0x0404UL /* EMAC RX Max Packet Length */
|
||||
#define B44_TXMAXLEN 0x0408UL /* EMAC TX Max Packet Length */
|
||||
#define B44_MDIO_CTRL 0x0410UL /* EMAC MDIO Control */
|
||||
--- linux-2.4.32.orig/drivers/net/b44.c 2006-09-19 19:56:03.000000000 +0200
|
||||
+++ linux-2.4.32/drivers/net/b44.c 2006-09-19 20:08:22.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/net/b44.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/net/b44.c 2007-12-15 05:20:16.020753214 +0100
|
||||
+++ linux-2.4.35.4/drivers/net/b44.c 2007-12-15 05:20:16.480779429 +0100
|
||||
@@ -1301,6 +1301,7 @@
|
||||
{
|
||||
struct b44 *bp = dev->priv;
|
||||
@@ -31,7 +35,7 @@
|
||||
spin_unlock_irq(&bp->lock);
|
||||
|
||||
return 0;
|
||||
@@ -1488,7 +1493,7 @@
|
||||
@@ -1495,7 +1500,7 @@
|
||||
|
||||
val = br32(B44_RXCONFIG);
|
||||
val &= ~(RXCONFIG_PROMISC | RXCONFIG_ALLMULTI);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
--- linux.old/net/sched/sch_generic.c 2006-11-24 02:42:23.000000000 +0100
|
||||
+++ linux.dev/net/sched/sch_generic.c 2006-11-24 02:36:58.000000000 +0100
|
||||
Index: linux-2.4.35.4/net/sched/sch_generic.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/net/sched/sch_generic.c 2007-12-15 05:20:10.816456638 +0100
|
||||
+++ linux-2.4.35.4/net/sched/sch_generic.c 2007-12-15 05:20:16.704792197 +0100
|
||||
@@ -84,6 +84,11 @@
|
||||
struct sk_buff *skb;
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
--- linux-2.4.34/drivers/ide/pci/aec62xx.c.old 2006-12-23 22:34:20.000000000 +0200
|
||||
+++ linux-2.4.34/drivers/ide/pci/aec62xx.c 2007-01-14 12:06:05.000000000 +0200
|
||||
Index: linux-2.4.35.4/drivers/ide/pci/aec62xx.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/ide/pci/aec62xx.c 2007-12-15 05:19:35.958470194 +0100
|
||||
+++ linux-2.4.35.4/drivers/ide/pci/aec62xx.c 2007-12-15 05:20:16.928804961 +0100
|
||||
@@ -3,6 +3,8 @@
|
||||
*
|
||||
* Copyright (C) 1999-2002 Andre Hedrick <andre@linux-ide.org>
|
||||
@@ -13,16 +15,15 @@
|
||||
ide_hwif_t *hwif = HWIF(drive);
|
||||
struct hd_driveid *id = drive->id;
|
||||
|
||||
- if ((id->capability & 1) && drive->autodma) {
|
||||
+#ifndef CONFIG_BCM947XX
|
||||
+ if ((id->capability & 1) && drive->autodma) {
|
||||
if ((id->capability & 1) && drive->autodma) {
|
||||
+#else
|
||||
+ if (1) {
|
||||
+#endif
|
||||
/* Consult the list of known "bad" drives */
|
||||
if (hwif->ide_dma_bad_drive(drive))
|
||||
goto fast_ata_pio;
|
||||
@@ -414,10 +416,60 @@
|
||||
@@ -414,10 +420,60 @@
|
||||
{
|
||||
int bus_speed = system_bus_clock();
|
||||
|
||||
@@ -83,7 +84,7 @@
|
||||
|
||||
#if defined(DISPLAY_AEC62XX_TIMINGS) && defined(CONFIG_PROC_FS)
|
||||
aec_devs[n_aec_devs++] = dev;
|
||||
@@ -500,6 +552,7 @@
|
||||
@@ -500,6 +556,7 @@
|
||||
|
||||
static void __init init_setup_aec6x80 (struct pci_dev *dev, ide_pci_device_t *d)
|
||||
{
|
||||
@@ -91,7 +92,7 @@
|
||||
unsigned long bar4reg = pci_resource_start(dev, 4);
|
||||
|
||||
if (inb(bar4reg+2) & 0x10) {
|
||||
@@ -512,6 +565,7 @@
|
||||
@@ -512,6 +569,7 @@
|
||||
strcpy(d->name, "AEC6280R");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
--- linux.old/drivers/ide/pci/pdc202xx_old.c 2006-12-23 21:34:20.000000000 +0100
|
||||
+++ linux.dev/drivers/ide/pci/pdc202xx_old.c 2007-01-24 18:03:28.000000000 +0100
|
||||
Index: linux-2.4.35.4/drivers/ide/pci/pdc202xx_old.c
|
||||
===================================================================
|
||||
--- linux-2.4.35.4.orig/drivers/ide/pci/pdc202xx_old.c 2007-12-15 05:19:35.922468144 +0100
|
||||
+++ linux-2.4.35.4/drivers/ide/pci/pdc202xx_old.c 2007-12-15 05:20:17.136816813 +0100
|
||||
@@ -253,23 +253,23 @@
|
||||
pci_read_config_byte(dev, (drive_pci)|0x03, &DP);
|
||||
|
||||
@@ -38,4 +40,3 @@
|
||||
switch(dev->device) {
|
||||
case PCI_DEVICE_ID_PROMISE_20267:
|
||||
case PCI_DEVICE_ID_PROMISE_20265:
|
||||
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
--- a/arch/mips/bcm947xx/include/sbchipc.h 2007-11-23 12:12:01.000000000 -0500
|
||||
+++ b/arch/mips/bcm947xx/include/sbchipc.h 2007-11-25 06:16:42.000000000 -0500
|
||||
@@ -188,6 +188,7 @@
|
||||
#define CAP_JTAGP 0x00400000 /* JTAG Master Present */
|
||||
#define CAP_ROM 0x00800000 /* Internal boot rom active */
|
||||
#define CAP_BKPLN64 0x08000000 /* 64-bit backplane */
|
||||
+#define CAP_PMU 0x10000000 /* PMU Present, rev >= 20 */
|
||||
|
||||
/* PLL type */
|
||||
#define PLL_NONE 0x00000000
|
||||
@@ -199,6 +200,9 @@
|
||||
#define PLL_TYPE6 0x00028000 /* 100/200 or 120/240 only */
|
||||
#define PLL_TYPE7 0x00038000 /* 25Mhz, 4 dividers */
|
||||
|
||||
+/* watchdog clock */
|
||||
+#define WATCHDOG_CLOCK_5354 32000 /* Hz */
|
||||
+
|
||||
/* corecontrol */
|
||||
#define CC_UARTCLKO 0x00000001 /* Drive UART with internal clock */
|
||||
#define CC_SE 0x00000002 /* sync clk out enable (corerev >= 3) */
|
||||
--- a/arch/mips/bcm947xx/include/bcmdevs.h 2007-11-23 12:12:01.000000000 -0500
|
||||
+++ b/arch/mips/bcm947xx/include/bcmdevs.h 2007-11-25 05:58:20.000000000 -0500
|
||||
@@ -121,6 +121,7 @@
|
||||
#define BCM5365_CHIP_ID 0x5365 /* 5365 chipcommon chipid */
|
||||
#define BCM5350_CHIP_ID 0x5350 /* bcm5350 chipcommon chipid */
|
||||
#define BCM5352_CHIP_ID 0x5352 /* bcm5352 chipcommon chipid */
|
||||
+#define BCM5354_CHIP_ID 0x5354 /* bcm5354 chipcommon chipid */
|
||||
|
||||
#define BCM4320_CHIP_ID 0x4320 /* bcm4320 chipcommon chipid */
|
||||
|
||||
--- a/arch/mips/bcm947xx/sbmips.c 2007-11-23 12:12:02.000000000 -0500
|
||||
+++ b/arch/mips/bcm947xx/sbmips.c 2007-11-25 05:40:40.000000000 -0500
|
||||
@@ -290,6 +290,12 @@
|
||||
n = R_REG(osh, &eir->clockcontrol_n);
|
||||
m = R_REG(osh, &eir->clockcontrol_sb);
|
||||
} else if ((cc = (chipcregs_t *) sb_setcore(sbh, SB_CC, 0))) {
|
||||
+ /* 5354 chip uses a non programmable PLL of frequency 240MHz */
|
||||
+ if (sb_chip(sbh) == BCM5354_CHIP_ID) {
|
||||
+ rate = 240000000;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
pll_type = R_REG(osh, &cc->capabilities) & CAP_PLL_MASK;
|
||||
n = R_REG(osh, &cc->clockcontrol_n);
|
||||
if ((pll_type == PLL_TYPE2) ||
|
||||
@@ -612,6 +618,15 @@
|
||||
clockcontrol_pci = &eir->clockcontrol_pci;
|
||||
clockcontrol_m2 = &cc->clockcontrol_m2;
|
||||
} else if ((cc = (chipcregs_t *) sb_setcore(sbh, SB_CC, 0))) {
|
||||
+
|
||||
+ /* 5354 chipcommon pll setting can't be changed.
|
||||
+ * The PMU on power up comes up with the default clk frequency
|
||||
+ * of 240MHz
|
||||
+ */
|
||||
+ if (sb_chip(sbh) == BCM5354_CHIP_ID) {
|
||||
+ ret = TRUE;
|
||||
+ goto done;
|
||||
+ }
|
||||
pll_type = R_REG(osh, &cc->capabilities) & CAP_PLL_MASK;
|
||||
if (pll_type == PLL_TYPE6) {
|
||||
clockcontrol_n = NULL;
|
||||
--- a/arch/mips/bcm947xx/sbutils.c 2007-11-23 12:12:02.000000000 -0500
|
||||
+++ b/arch/mips/bcm947xx/sbutils.c 2007-11-25 06:22:43.000000000 -0500
|
||||
@@ -791,8 +791,14 @@
|
||||
/* readback */
|
||||
if (regoff >= SBCONFIGOFF)
|
||||
w = R_SBREG(si, r);
|
||||
- else
|
||||
+ else {
|
||||
+ if ((si->sb.chip == BCM5354_CHIP_ID) &&
|
||||
+ (coreidx == SB_CC_IDX) &&
|
||||
+ (regoff == OFFSETOF(chipcregs_t, watchdog))) {
|
||||
+ w = val;
|
||||
+ } else
|
||||
w = R_REG(si->osh, r);
|
||||
+ }
|
||||
|
||||
if (!fast) {
|
||||
/* restore core index */
|
||||
@@ -1902,6 +1908,15 @@
|
||||
n = R_REG(si->osh, &eir->clockcontrol_n);
|
||||
m = R_REG(si->osh, &eir->clockcontrol_sb);
|
||||
} else if ((cc = (chipcregs_t *) sb_setcore(sbh, SB_CC, 0))) {
|
||||
+
|
||||
+ if (R_REG(si->osh, &cc->capabilities) & CAP_PMU) {
|
||||
+ if (sb_chip(sbh) == BCM5354_CHIP_ID) {
|
||||
+ /* 5354 has a constant sb clock of 120MHz */
|
||||
+ rate = 120000000;
|
||||
+ goto end;
|
||||
+ } else
|
||||
+ ASSERT(0);
|
||||
+ }
|
||||
pll_type = R_REG(si->osh, &cc->capabilities) & CAP_PLL_MASK;
|
||||
if (pll_type == PLL_NONE) {
|
||||
INTR_RESTORE(si, intr_val);
|
||||
@@ -1929,6 +1944,7 @@
|
||||
rate = rate / 2;
|
||||
}
|
||||
|
||||
+end:
|
||||
/* switch back to previous core */
|
||||
sb_setcoreidx(sbh, idx);
|
||||
|
||||
--- a/arch/mips/bcm947xx/hndchipc.c 2007-11-23 12:12:02.000000000 -0500
|
||||
+++ b/arch/mips/bcm947xx/hndchipc.c 2007-11-25 06:31:15.000000000 -0500
|
||||
@@ -93,6 +93,9 @@
|
||||
chipcregs_t *cc = (chipcregs_t *) regs;
|
||||
uint32 rev, cap, pll, baud_base, div;
|
||||
|
||||
+ /* Default value */
|
||||
+ div = 48;
|
||||
+
|
||||
/* Determine core revision and capabilities */
|
||||
rev = sb_corerev(sbh);
|
||||
cap = R_REG(osh, &cc->capabilities);
|
||||
@@ -108,22 +111,29 @@
|
||||
R_REG(osh, &cc->clockcontrol_m2));
|
||||
div = 1;
|
||||
} else {
|
||||
- /* Fixed ALP clock */
|
||||
- if (rev >= 11 && rev != 15) {
|
||||
- baud_base = 20000000;
|
||||
+/* 5354 chip common uart uses a constant clock
|
||||
+ * frequency of 25MHz */
|
||||
+ if (sb_corerev(sbh) == 20) {
|
||||
+ /* Set the override bit so we don't divide it */
|
||||
+ W_REG(osh, &cc->corecontrol, CC_UARTCLKO);
|
||||
+ baud_base = 25000000;
|
||||
+ } else if (rev >= 11 && rev != 15) {
|
||||
+ /* Fixed ALP clock */
|
||||
+// baud_base = sb_alp_clock(sbh);
|
||||
+ baud_base = 20000000;
|
||||
div = 1;
|
||||
/* Set the override bit so we don't divide it */
|
||||
W_REG(osh, &cc->corecontrol, CC_UARTCLKO);
|
||||
- }
|
||||
+
|
||||
/* Internal backplane clock */
|
||||
- else if (rev >= 3) {
|
||||
- baud_base = sb_clock(sbh);
|
||||
- div = 2; /* Minimum divisor */
|
||||
- W_REG(osh, &cc->clkdiv,
|
||||
+ } else if (rev >= 3) {
|
||||
+ baud_base = sb_clock(sbh);
|
||||
+ div = 2; /* Minimum divisor */
|
||||
+ W_REG(osh, &cc->clkdiv,
|
||||
((R_REG(osh, &cc->clkdiv) & ~CLKD_UART) | div));
|
||||
- }
|
||||
+
|
||||
/* Fixed internal backplane clock */
|
||||
- else {
|
||||
+ } else {
|
||||
baud_base = 88000000;
|
||||
div = 48;
|
||||
}
|
||||
Reference in New Issue
Block a user