diff options
Diffstat (limited to 'target/linux/ifxmips/patches')
-rw-r--r-- | target/linux/ifxmips/patches/000-mips-bad-intctl.patch | 35 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/010-mips_clocksource_init_war.patch | 33 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/020-genirq_fix.patch | 12 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/100-board.patch | 62 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/110-drivers.patch | 141 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/170-crypto.patch | 81 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/200-cfi-swap.patch | 55 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/210-atm_hack.patch | 48 | ||||
-rw-r--r-- | target/linux/ifxmips/patches/320-tapi_hack.patch | 24 |
9 files changed, 491 insertions, 0 deletions
diff --git a/target/linux/ifxmips/patches/000-mips-bad-intctl.patch b/target/linux/ifxmips/patches/000-mips-bad-intctl.patch new file mode 100644 index 000000000..7c0f52db0 --- /dev/null +++ b/target/linux/ifxmips/patches/000-mips-bad-intctl.patch @@ -0,0 +1,35 @@ +--- a/arch/mips/kernel/traps.c ++++ b/arch/mips/kernel/traps.c +@@ -1496,7 +1496,18 @@ void __cpuinit per_cpu_trap_init(void) + if (cpu_has_mips_r2) { + cp0_compare_irq_shift = CAUSEB_TI - CAUSEB_IP; + cp0_compare_irq = (read_c0_intctl() >> INTCTLB_IPTI) & 7; ++ ++ if (!cp0_compare_irq) ++ cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; ++ + cp0_perfcount_irq = (read_c0_intctl() >> INTCTLB_IPPCI) & 7; ++ ++ if (!cp0_perfcount_irq) ++ cp0_perfcount_irq = CP0_LEGACY_PERFCNT_IRQ; ++ ++ if (arch_fixup_c0_irqs) ++ arch_fixup_c0_irqs(); ++ + if (cp0_perfcount_irq == cp0_compare_irq) + cp0_perfcount_irq = -1; + } else { +--- a/arch/mips/include/asm/irq.h ++++ b/arch/mips/include/asm/irq.h +@@ -133,9 +133,11 @@ extern void free_irqno(unsigned int irq) + * IE7. Since R2 their number has to be read from the c0_intctl register. + */ + #define CP0_LEGACY_COMPARE_IRQ 7 ++#define CP0_LEGACY_PERFCNT_IRQ 7 + + extern int cp0_compare_irq; + extern int cp0_compare_irq_shift; + extern int cp0_perfcount_irq; ++extern void __weak arch_fixup_c0_irqs(void); + + #endif /* _ASM_IRQ_H */ diff --git a/target/linux/ifxmips/patches/010-mips_clocksource_init_war.patch b/target/linux/ifxmips/patches/010-mips_clocksource_init_war.patch new file mode 100644 index 000000000..81eabc6dc --- /dev/null +++ b/target/linux/ifxmips/patches/010-mips_clocksource_init_war.patch @@ -0,0 +1,33 @@ +--- a/arch/mips/kernel/cevt-r4k.c ++++ b/arch/mips/kernel/cevt-r4k.c +@@ -22,6 +22,22 @@ + + #ifndef CONFIG_MIPS_MT_SMTC + ++/* ++ * Compare interrupt can be routed and latched outside the core, ++ * so a single execution hazard barrier may not be enough to give ++ * it time to clear as seen in the Cause register. 4 time the ++ * pipeline depth seems reasonably conservative, and empirically ++ * works better in configurations with high CPU/bus clock ratios. ++ */ ++ ++#define compare_change_hazard() \ ++ do { \ ++ irq_disable_hazard(); \ ++ irq_disable_hazard(); \ ++ irq_disable_hazard(); \ ++ irq_disable_hazard(); \ ++ } while (0) ++ + static int mips_next_event(unsigned long delta, + struct clock_event_device *evt) + { +@@ -31,6 +47,7 @@ static int mips_next_event(unsigned long + cnt = read_c0_count(); + cnt += delta; + write_c0_compare(cnt); ++ compare_change_hazard(); + res = ((int)(read_c0_count() - cnt) > 0) ? -ETIME : 0; + return res; + } diff --git a/target/linux/ifxmips/patches/020-genirq_fix.patch b/target/linux/ifxmips/patches/020-genirq_fix.patch new file mode 100644 index 000000000..0503d0d2a --- /dev/null +++ b/target/linux/ifxmips/patches/020-genirq_fix.patch @@ -0,0 +1,12 @@ +--- a/kernel/irq/chip.c ++++ b/kernel/irq/chip.c +@@ -650,6 +650,9 @@ handle_percpu_irq(unsigned int irq, stru + + kstat_incr_irqs_this_cpu(irq, desc); + ++ if (unlikely(!desc->action || (desc->status & IRQ_DISABLED))) ++ return; ++ + if (desc->chip->ack) + desc->chip->ack(irq); + diff --git a/target/linux/ifxmips/patches/100-board.patch b/target/linux/ifxmips/patches/100-board.patch new file mode 100644 index 000000000..2a5d79cc9 --- /dev/null +++ b/target/linux/ifxmips/patches/100-board.patch @@ -0,0 +1,62 @@ +Index: linux-2.6.35.4/arch/mips/Kconfig +=================================================================== +--- linux-2.6.35.4.orig/arch/mips/Kconfig 2010-09-23 20:41:50.000000000 +0200 ++++ linux-2.6.35.4/arch/mips/Kconfig 2010-09-23 20:41:52.000000000 +0200 +@@ -139,6 +139,9 @@ + + otherwise choose R3000. + ++config IFXMIPS ++ bool "Infineon MIPS" ++ + config MACH_JAZZ + bool "Jazz family of machines" + select ARC +@@ -695,6 +698,7 @@ + source "arch/mips/vr41xx/Kconfig" + source "arch/mips/cavium-octeon/Kconfig" + source "arch/mips/loongson/Kconfig" ++source "arch/mips/ifxmips/Kconfig" + + endmenu + +Index: linux-2.6.35.4/arch/mips/Makefile +=================================================================== +--- linux-2.6.35.4.orig/arch/mips/Makefile 2010-09-23 20:41:50.000000000 +0200 ++++ linux-2.6.35.4/arch/mips/Makefile 2010-09-23 22:41:58.000000000 +0200 +@@ -339,6 +339,22 @@ + load-$(CONFIG_MIPS_COBALT) += 0xffffffff80080000 + + # ++# Infineon IFXMIPS ++# ++core-$(CONFIG_IFXMIPS) += arch/mips/ifxmips/common/ ++cflags-$(CONFIG_IFXMIPS) += -I$(srctree)/arch/mips/include/asm/mach-ifxmips ++ ++core-$(CONFIG_IFXMIPS_DANUBE) += arch/mips/ifxmips/danube/ ++cflags-$(CONFIG_IFXMIPS_DANUBE) += -I$(srctree)/arch/mips/include/asm/mach-ifxmips/danube/ ++load-$(CONFIG_IFXMIPS_DANUBE) += 0xffffffff80002000 ++ ++core-$(CONFIG_IFXMIPS_AR9) += arch/mips/ifxmips/ar9/ ++cflags-$(CONFIG_IFXMIPS_AR9) += -I$(srctree)/arch/mips/include/asm/mach-ifxmips/ar9/ ++load-$(CONFIG_IFXMIPS_AR9) += 0xffffffff80002000 ++ ++core-$(CONFIG_IFXMIPS_COMPAT) += arch/mips/ifxmips/compat/ ++ ++# + # DECstation family + # + core-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/ +Index: linux-2.6.35.4/arch/mips/pci/Makefile +=================================================================== +--- linux-2.6.35.4.orig/arch/mips/pci/Makefile 2010-08-27 01:47:12.000000000 +0200 ++++ linux-2.6.35.4/arch/mips/pci/Makefile 2010-09-23 20:41:52.000000000 +0200 +@@ -55,7 +55,7 @@ + obj-$(CONFIG_WR_PPMC) += fixup-wrppmc.o + obj-$(CONFIG_MIKROTIK_RB532) += pci-rc32434.o ops-rc32434.o fixup-rc32434.o + obj-$(CONFIG_CPU_CAVIUM_OCTEON) += pci-octeon.o pcie-octeon.o +- ++obj-$(CONFIG_IFXMIPS) += pci-ifxmips.o ops-ifxmips.o + ifdef CONFIG_PCI_MSI + obj-$(CONFIG_CPU_CAVIUM_OCTEON) += msi-octeon.o + endif diff --git a/target/linux/ifxmips/patches/110-drivers.patch b/target/linux/ifxmips/patches/110-drivers.patch new file mode 100644 index 000000000..317b81562 --- /dev/null +++ b/target/linux/ifxmips/patches/110-drivers.patch @@ -0,0 +1,141 @@ +Index: linux-2.6.35.8/drivers/serial/Kconfig +=================================================================== +--- linux-2.6.35.8.orig/drivers/serial/Kconfig 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/serial/Kconfig 2010-11-01 11:34:31.000000000 +0100 +@@ -1397,6 +1397,14 @@ + help + Support for Console on the NWP serial ports. + ++config SERIAL_IFXMIPS ++ bool "IFXMips serial driver" ++ depends on IFXMIPS ++ select SERIAL_CORE ++ select SERIAL_CORE_CONSOLE ++ help ++ Driver for the ifxmipss built in ASC hardware ++ + config SERIAL_QE + tristate "Freescale QUICC Engine serial port support" + depends on QUICC_ENGINE +Index: linux-2.6.35.8/drivers/serial/Makefile +=================================================================== +--- linux-2.6.35.8.orig/drivers/serial/Makefile 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/serial/Makefile 2010-11-01 11:34:55.000000000 +0100 +@@ -84,3 +84,4 @@ + obj-$(CONFIG_SERIAL_GRLIB_GAISLER_APBUART) += apbuart.o + obj-$(CONFIG_SERIAL_ALTERA_JTAGUART) += altera_jtaguart.o + obj-$(CONFIG_SERIAL_ALTERA_UART) += altera_uart.o ++obj-$(CONFIG_SERIAL_IFXMIPS) += ifxmips.o +Index: linux-2.6.35.8/drivers/net/Kconfig +=================================================================== +--- linux-2.6.35.8.orig/drivers/net/Kconfig 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/net/Kconfig 2010-11-01 11:34:31.000000000 +0100 +@@ -232,6 +232,12 @@ + + source "drivers/net/arm/Kconfig" + ++config IFXMIPS_MII0 ++ tristate "Infineon IFXMips eth0 driver" ++ depends on IFXMIPS ++ help ++ Support for the MII0 inside the IFXMips SOC ++ + config AX88796 + tristate "ASIX AX88796 NE2000 clone support" + depends on ARM || MIPS || SUPERH +Index: linux-2.6.35.8/drivers/net/Makefile +=================================================================== +--- linux-2.6.35.8.orig/drivers/net/Makefile 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/net/Makefile 2010-11-01 11:35:13.000000000 +0100 +@@ -252,6 +252,7 @@ + obj-$(CONFIG_ENC28J60) += enc28j60.o + obj-$(CONFIG_ETHOC) += ethoc.o + obj-$(CONFIG_GRETH) += greth.o ++obj-$(CONFIG_IFXMIPS_MII0) += ifxmips.o + + obj-$(CONFIG_XTENSA_XT2000_SONIC) += xtsonic.o + +Index: linux-2.6.35.8/drivers/mtd/maps/Kconfig +=================================================================== +--- linux-2.6.35.8.orig/drivers/mtd/maps/Kconfig 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/mtd/maps/Kconfig 2010-11-01 11:34:31.000000000 +0100 +@@ -251,6 +251,12 @@ + help + Support for flash chips on NETtel/SecureEdge/SnapGear boards. + ++config MTD_IFXMIPS ++ tristate "IFXMIPS MTD support" ++ depends on IFXMIPS ++ help ++ Flash memory access on AMD Alchemy Pb/Db/RDK Reference Boards ++ + config MTD_DILNETPC + tristate "CFI Flash device mapped on DIL/Net PC" + depends on X86 && MTD_CONCAT && MTD_PARTITIONS && MTD_CFI_INTELEXT && BROKEN +Index: linux-2.6.35.8/drivers/mtd/maps/Makefile +=================================================================== +--- linux-2.6.35.8.orig/drivers/mtd/maps/Makefile 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/mtd/maps/Makefile 2010-11-01 11:34:31.000000000 +0100 +@@ -59,3 +59,4 @@ + obj-$(CONFIG_MTD_RBTX4939) += rbtx4939-flash.o + obj-$(CONFIG_MTD_VMU) += vmu-flash.o + obj-$(CONFIG_MTD_GPIO_ADDR) += gpio-addr-flash.o ++obj-$(CONFIG_MTD_IFXMIPS) += ifxmips.o +Index: linux-2.6.35.8/drivers/watchdog/Kconfig +=================================================================== +--- linux-2.6.35.8.orig/drivers/watchdog/Kconfig 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/watchdog/Kconfig 2010-11-01 11:34:31.000000000 +0100 +@@ -875,6 +875,12 @@ + help + Hardware driver for the built-in watchdog timer on TXx9 MIPS SoCs. + ++config IFXMIPS_WDT ++ bool "IFXMips watchdog" ++ depends on IFXMIPS ++ help ++ Hardware driver for the IFXMIPS Watchdog Timer. ++ + # PARISC Architecture + + # POWERPC Architecture +Index: linux-2.6.35.8/drivers/watchdog/Makefile +=================================================================== +--- linux-2.6.35.8.orig/drivers/watchdog/Makefile 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/watchdog/Makefile 2010-11-01 11:34:31.000000000 +0100 +@@ -114,6 +114,7 @@ + obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o + obj-$(CONFIG_AR7_WDT) += ar7_wdt.o + obj-$(CONFIG_TXX9_WDT) += txx9wdt.o ++obj-$(CONFIG_IFXMIPS_WDT) += ifxmips.o + + # PARISC Architecture + +Index: linux-2.6.35.8/drivers/leds/Kconfig +=================================================================== +--- linux-2.6.35.8.orig/drivers/leds/Kconfig 2010-11-01 11:19:33.000000000 +0100 ++++ linux-2.6.35.8/drivers/leds/Kconfig 2010-11-01 11:34:31.000000000 +0100 +@@ -311,6 +311,12 @@ + + if LEDS_TRIGGERS + ++config LEDS_IFXMIPS ++ tristate "LED Support for IFXMIPS LEDs" ++ depends on LEDS_CLASS && IFXMIPS ++ help ++ This option enables support for the CM-X270 LEDs. ++ + comment "LED Triggers" + + config LEDS_TRIGGER_TIMER +Index: linux-2.6.35.8/drivers/leds/Makefile +=================================================================== +--- linux-2.6.35.8.orig/drivers/leds/Makefile 2010-11-01 11:19:33.000000000 +0100 ++++ linux-2.6.35.8/drivers/leds/Makefile 2010-11-01 11:35:43.000000000 +0100 +@@ -37,6 +37,7 @@ + obj-$(CONFIG_LEDS_ADP5520) += leds-adp5520.o + obj-$(CONFIG_LEDS_DELL_NETBOOKS) += dell-led.o + obj-$(CONFIG_LEDS_MC13783) += leds-mc13783.o ++obj-$(CONFIG_LEDS_IFXMIPS) += leds-ifxmips.o + + # LED SPI Drivers + obj-$(CONFIG_LEDS_DAC124S085) += leds-dac124s085.o diff --git a/target/linux/ifxmips/patches/170-crypto.patch b/target/linux/ifxmips/patches/170-crypto.patch new file mode 100644 index 000000000..e68da898e --- /dev/null +++ b/target/linux/ifxmips/patches/170-crypto.patch @@ -0,0 +1,81 @@ +Index: linux-2.6.35.8/drivers/crypto/Kconfig +=================================================================== +--- linux-2.6.35.8.orig/drivers/crypto/Kconfig 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/crypto/Kconfig 2010-11-01 11:36:03.000000000 +0100 +@@ -243,4 +243,66 @@ + OMAP processors have SHA1/MD5 hw accelerator. Select this if you + want to use the OMAP module for SHA1/MD5 algorithms. + ++config CRYPTO_DEV_IFXMIPS ++ bool "Support for IFXMIPS crypto engine" ++ select CRYPTO_ALGAPI ++ default y ++ help ++ Will support IFXMIPS crypto hardware ++ If you are unsure, say M. ++ ++menuconfig CRYPTO_DEV_IFXMIPS_DES ++ bool "IFXMIPS crypto hardware for DES algorithm" ++ depends on CRYPTO_DEV_IFXMIPS ++ select CRYPTO_BLKCIPHER ++ default y ++ help ++ Use crypto hardware for DES/3DES algorithm. ++ If unsure say N. ++ ++menuconfig CRYPTO_DEV_IFXMIPS_AES ++ bool "IFXMIPS crypto hardware for AES algorithm" ++ depends on CRYPTO_DEV_IFXMIPS ++ select CRYPTO_BLKCIPHER ++ default y ++ help ++ Use crypto hardware for AES algorithm. ++ If unsure say N. ++ ++menuconfig CRYPTO_DEV_IFXMIPS_ARC4 ++ bool "IFXMIPS crypto hardware for ARC4 algorithm" ++ depends on (CRYPTO_DEV_IFXMIPS && !DANUBE) ++ select CRYPTO_BLKCIPHER ++ default y ++ help ++ Use crypto hardware for ARC4 algorithm. ++ If unsure say N. ++ ++menuconfig CRYPTO_DEV_IFXMIPS_SHA1 ++ bool "IFXMIPS crypto hardware for SHA1 algorithm" ++ depends on CRYPTO_DEV_IFXMIPS ++ select CRYPTO_BLKCIPHER ++ default y ++ help ++ Use crypto hardware for SHA1 algorithm. ++ If unsure say N. ++ ++menuconfig CRYPTO_DEV_IFXMIPS_SHA1_HMAC ++ bool "IFXMIPS crypto hardware for SHA1_HMAC algorithm" ++ depends on (CRYPTO_DEV_IFXMIPS && !DANUBE) ++ select CRYPTO_BLKCIPHER ++ default y ++ help ++ Use crypto hardware for SHA1_HMAC algorithm. ++ If unsure say N. ++ ++menuconfig CRYPTO_DEV_IFXMIPS_MD5_HMAC ++ bool "IFXMIPS crypto hardware for MD5_HMAC algorithms" ++ depends on (CRYPTO_DEV_IFXMIPS && !DANUBE) ++ select CRYPTO_BLKCIPHER ++ default y ++ help ++ Use crypto hardware for MD5_HMAC algorithm. ++ If unsure say N. ++ + endif # CRYPTO_HW +Index: linux-2.6.35.8/drivers/crypto/Makefile +=================================================================== +--- linux-2.6.35.8.orig/drivers/crypto/Makefile 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/crypto/Makefile 2010-11-01 11:36:23.000000000 +0100 +@@ -9,4 +9,4 @@ + obj-$(CONFIG_CRYPTO_DEV_IXP4XX) += ixp4xx_crypto.o + obj-$(CONFIG_CRYPTO_DEV_PPC4XX) += amcc/ + obj-$(CONFIG_CRYPTO_DEV_OMAP_SHAM) += omap-sham.o +- ++obj-$(CONFIG_CRYPTO_DEV_IFXMIPS) += ifxmips/ diff --git a/target/linux/ifxmips/patches/200-cfi-swap.patch b/target/linux/ifxmips/patches/200-cfi-swap.patch new file mode 100644 index 000000000..6e62f9bd3 --- /dev/null +++ b/target/linux/ifxmips/patches/200-cfi-swap.patch @@ -0,0 +1,55 @@ +Index: linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0001.c +=================================================================== +--- linux-2.6.35.8.orig/drivers/mtd/chips/cfi_cmdset_0001.c 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0001.c 2010-11-01 13:01:30.000000000 +0100 +@@ -41,7 +41,11 @@ + /* #define CMDSET0001_DISABLE_WRITE_SUSPEND */ + + // debugging, turns off buffer write mode if set to 1 +-#define FORCE_WORD_WRITE 0 ++#ifdef CONFIG_IFXMIPS ++# define FORCE_WORD_WRITE 1 ++#else ++# define FORCE_WORD_WRITE 0 ++#endif + + /* Intel chips */ + #define I82802AB 0x00ad +@@ -1491,6 +1495,9 @@ + int ret=0; + + adr += chip->start; ++#ifdef CONFIG_IFXMIPS ++ adr ^= 2; ++#endif + + switch (mode) { + case FL_WRITING: +Index: linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0002.c +=================================================================== +--- linux-2.6.35.8.orig/drivers/mtd/chips/cfi_cmdset_0002.c 2010-11-01 13:01:29.000000000 +0100 ++++ linux-2.6.35.8/drivers/mtd/chips/cfi_cmdset_0002.c 2010-11-01 15:14:17.000000000 +0100 +@@ -40,7 +40,11 @@ + #include <linux/mtd/xip.h> + + #define AMD_BOOTLOC_BUG +-#define FORCE_WORD_WRITE 0 ++#ifdef CONFIG_IFXMIPS ++# define FORCE_WORD_WRITE 1 ++#else ++# define FORCE_WORD_WRITE 0 ++#endif + + #define MAX_WORD_RETRIES 3 + +@@ -1156,6 +1160,10 @@ + + adr += chip->start; + ++#ifdef CONFIG_IFXMIPS ++ adr ^= 2; ++#endif ++ + mutex_lock(&chip->mutex); + ret = get_chip(map, chip, adr, FL_WRITING); + if (ret) { diff --git a/target/linux/ifxmips/patches/210-atm_hack.patch b/target/linux/ifxmips/patches/210-atm_hack.patch new file mode 100644 index 000000000..43decb050 --- /dev/null +++ b/target/linux/ifxmips/patches/210-atm_hack.patch @@ -0,0 +1,48 @@ +Index: linux-2.6.35.8/arch/mips/mm/cache.c +=================================================================== +--- linux-2.6.35.8.orig/arch/mips/mm/cache.c 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/arch/mips/mm/cache.c 2010-11-01 11:38:06.000000000 +0100 +@@ -52,6 +52,8 @@ + void (*_dma_cache_inv)(unsigned long start, unsigned long size); + + EXPORT_SYMBOL(_dma_cache_wback_inv); ++EXPORT_SYMBOL(_dma_cache_wback); ++EXPORT_SYMBOL(_dma_cache_inv); + + #endif /* CONFIG_DMA_NONCOHERENT */ + +Index: linux-2.6.35.8/net/atm/proc.c +=================================================================== +--- linux-2.6.35.8.orig/net/atm/proc.c 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/net/atm/proc.c 2010-11-01 11:38:36.000000000 +0100 +@@ -153,7 +153,7 @@ + static void pvc_info(struct seq_file *seq, struct atm_vcc *vcc) + { + static const char *const class_name[] = { +- "off", "UBR", "CBR", "VBR", "ABR"}; ++ "off","UBR","CBR","NTR-VBR","ABR","ANY","RT-VBR","UBR+","GFR" }; + static const char *const aal_name[] = { + "---", "1", "2", "3/4", /* 0- 3 */ + "???", "5", "???", "???", /* 4- 7 */ +Index: linux-2.6.35.8/net/atm/common.c +=================================================================== +--- linux-2.6.35.8.orig/net/atm/common.c 2010-10-29 06:52:43.000000000 +0200 ++++ linux-2.6.35.8/net/atm/common.c 2010-11-01 11:39:17.000000000 +0100 +@@ -60,11 +60,17 @@ + write_unlock_irq(&vcc_sklist_lock); + } + ++struct sk_buff* (*ifx_atm_alloc_tx)(struct atm_vcc *, unsigned int) = NULL; ++EXPORT_SYMBOL(ifx_atm_alloc_tx); ++ + static struct sk_buff *alloc_tx(struct atm_vcc *vcc, unsigned int size) + { + struct sk_buff *skb; + struct sock *sk = sk_atm(vcc); + ++ if (ifx_atm_alloc_tx != NULL) ++ return ifx_atm_alloc_tx(vcc, size); ++ + if (sk_wmem_alloc_get(sk) && !atm_may_send(vcc, size)) { + pr_debug("Sorry: wmem_alloc = %d, size = %d, sndbuf = %d\n", + sk_wmem_alloc_get(sk), size, sk->sk_sndbuf); diff --git a/target/linux/ifxmips/patches/320-tapi_hack.patch b/target/linux/ifxmips/patches/320-tapi_hack.patch new file mode 100644 index 000000000..aaf5a145d --- /dev/null +++ b/target/linux/ifxmips/patches/320-tapi_hack.patch @@ -0,0 +1,24 @@ +Index: linux-2.6.35.7/kernel/irq/chip.c +=================================================================== +--- linux-2.6.35.7.orig/kernel/irq/chip.c 2010-10-15 18:40:33.000000000 +0200 ++++ linux-2.6.35.7/kernel/irq/chip.c 2010-10-15 18:44:19.000000000 +0200 +@@ -723,6 +723,7 @@ + set_irq_chip(irq, chip); + __set_irq_handler(irq, handle, 0, NULL); + } ++EXPORT_SYMBOL_GPL(set_irq_chip_and_handler); + + void + set_irq_chip_and_handler_name(unsigned int irq, struct irq_chip *chip, +Index: linux-2.6.35.7/kernel/irq/handle.c +=================================================================== +--- linux-2.6.35.7.orig/kernel/irq/handle.c 2010-10-15 18:40:33.000000000 +0200 ++++ linux-2.6.35.7/kernel/irq/handle.c 2010-10-15 18:44:19.000000000 +0200 +@@ -276,6 +276,7 @@ + { + return (irq < NR_IRQS) ? irq_desc + irq : NULL; + } ++EXPORT_SYMBOL_GPL(irq_to_desc); + + struct irq_desc *irq_to_desc_alloc_node(unsigned int irq, int node) + { |