Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36162master
parent
d4db00205d
commit
4f86ea43ca
@ -1,29 +0,0 @@ |
||||
--- a/arch/mips/kernel/traps.c
|
||||
+++ b/arch/mips/kernel/traps.c
|
||||
@@ -55,6 +55,7 @@
|
||||
#include <asm/types.h>
|
||||
#include <asm/stacktrace.h>
|
||||
#include <asm/uasm.h>
|
||||
+#include <asm/time.h>
|
||||
|
||||
extern void check_wait(void);
|
||||
extern asmlinkage void r4k_wait(void);
|
||||
@@ -1617,6 +1618,8 @@ void __cpuinit per_cpu_trap_init(bool is
|
||||
if (cpu_has_mips_r2) {
|
||||
cp0_compare_irq_shift = CAUSEB_TI - CAUSEB_IP;
|
||||
cp0_compare_irq = (read_c0_intctl() >> INTCTLB_IPTI) & 7;
|
||||
+ if (get_c0_compare_irq)
|
||||
+ cp0_compare_irq = get_c0_compare_irq();
|
||||
cp0_perfcount_irq = (read_c0_intctl() >> INTCTLB_IPPCI) & 7;
|
||||
if (cp0_perfcount_irq == cp0_compare_irq)
|
||||
cp0_perfcount_irq = -1;
|
||||
--- a/arch/mips/include/asm/time.h
|
||||
+++ b/arch/mips/include/asm/time.h
|
||||
@@ -51,6 +51,7 @@ extern int (*perf_irq)(void);
|
||||
* Initialize the calling CPU's compare interrupt as clockevent device
|
||||
*/
|
||||
extern unsigned int __weak get_c0_compare_int(void);
|
||||
+extern unsigned int __weak get_c0_compare_irq(void);
|
||||
extern int r4k_clockevent_init(void);
|
||||
|
||||
static inline int mips_clockevent_init(void)
|
@ -1,20 +0,0 @@ |
||||
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||
@@ -1939,7 +1939,7 @@ static int __xipram do_erase_chip(struct
|
||||
chip->erase_suspended = 0;
|
||||
}
|
||||
|
||||
- if (chip_ready(map, adr))
|
||||
+ if (chip_good(map, adr, map_word_ff(map)))
|
||||
break;
|
||||
|
||||
if (time_after(jiffies, timeo)) {
|
||||
@@ -2028,7 +2028,7 @@ static int __xipram do_erase_oneblock(st
|
||||
chip->erase_suspended = 0;
|
||||
}
|
||||
|
||||
- if (chip_ready(map, adr)) {
|
||||
+ if (chip_good(map, adr, map_word_ff(map))) {
|
||||
xip_enable(map, chip, adr);
|
||||
break;
|
||||
}
|
@ -1,61 +0,0 @@ |
||||
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||
@@ -39,7 +39,7 @@
|
||||
#include <linux/mtd/xip.h>
|
||||
|
||||
#define AMD_BOOTLOC_BUG
|
||||
-#define FORCE_WORD_WRITE 0
|
||||
+#define FORCE_WORD_WRITE 1
|
||||
|
||||
#define MAX_WORD_RETRIES 3
|
||||
|
||||
@@ -50,7 +50,9 @@
|
||||
|
||||
static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
|
||||
static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
|
||||
+#if !FORCE_WORD_WRITE
|
||||
static int cfi_amdstd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
|
||||
+#endif
|
||||
static int cfi_amdstd_erase_chip(struct mtd_info *, struct erase_info *);
|
||||
static int cfi_amdstd_erase_varsize(struct mtd_info *, struct erase_info *);
|
||||
static void cfi_amdstd_sync (struct mtd_info *);
|
||||
@@ -186,6 +188,7 @@ static void fixup_amd_bootblock(struct m
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if !FORCE_WORD_WRITE
|
||||
static void fixup_use_write_buffers(struct mtd_info *mtd)
|
||||
{
|
||||
struct map_info *map = mtd->priv;
|
||||
@@ -195,6 +198,7 @@ static void fixup_use_write_buffers(stru
|
||||
mtd->_write = cfi_amdstd_write_buffers;
|
||||
}
|
||||
}
|
||||
+#endif /* !FORCE_WORD_WRITE */
|
||||
|
||||
/* Atmel chips don't use the same PRI format as AMD chips */
|
||||
static void fixup_convert_atmel_pri(struct mtd_info *mtd)
|
||||
@@ -1443,6 +1447,7 @@ static int cfi_amdstd_write_words(struct
|
||||
/*
|
||||
* FIXME: interleaved mode not tested, and probably not supported!
|
||||
*/
|
||||
+#if !FORCE_WORD_WRITE
|
||||
static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
|
||||
unsigned long adr, const u_char *buf,
|
||||
int len)
|
||||
@@ -1567,7 +1572,6 @@ static int __xipram do_write_buffer(stru
|
||||
return ret;
|
||||
}
|
||||
|
||||
-
|
||||
static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
|
||||
size_t *retlen, const u_char *buf)
|
||||
{
|
||||
@@ -1642,6 +1646,7 @@ static int cfi_amdstd_write_buffers(stru
|
||||
|
||||
return 0;
|
||||
}
|
||||
+#endif /* !FORCE_WORD_WRITE */
|
||||
|
||||
/*
|
||||
* Wait for the flash chip to become ready to write data
|
@ -1,39 +0,0 @@ |
||||
--- a/arch/mips/Kconfig
|
||||
+++ b/arch/mips/Kconfig
|
||||
@@ -104,6 +104,9 @@ config ATH79
|
||||
help
|
||||
Support for the Atheros AR71XX/AR724X/AR913X SoCs.
|
||||
|
||||
+config MIPS_RALINK
|
||||
+ bool "Ralink MIPS SoC based boards"
|
||||
+
|
||||
config BCM47XX
|
||||
bool "Broadcom BCM47XX based boards"
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
@@ -845,6 +848,7 @@ source "arch/mips/jz4740/Kconfig"
|
||||
source "arch/mips/lantiq/Kconfig"
|
||||
source "arch/mips/lasat/Kconfig"
|
||||
source "arch/mips/pmc-sierra/Kconfig"
|
||||
+source "arch/mips/ralink/Kconfig"
|
||||
source "arch/mips/powertv/Kconfig"
|
||||
source "arch/mips/sgi-ip27/Kconfig"
|
||||
source "arch/mips/sibyte/Kconfig"
|
||||
@@ -1172,7 +1176,7 @@ config BOOT_ELF32
|
||||
|
||||
config MIPS_L1_CACHE_SHIFT
|
||||
int
|
||||
- default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
|
||||
+ default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL || RALINK_RT288X
|
||||
default "6" if MIPS_CPU_SCACHE
|
||||
default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
|
||||
default "5"
|
||||
--- a/arch/mips/Kbuild.platforms
|
||||
+++ b/arch/mips/Kbuild.platforms
|
||||
@@ -22,6 +22,7 @@ platforms += pmc-sierra
|
||||
platforms += pnx833x
|
||||
platforms += pnx8550
|
||||
platforms += powertv
|
||||
+platforms += ralink
|
||||
platforms += rb532
|
||||
platforms += sgi-ip22
|
||||
platforms += sgi-ip27
|
@ -1,89 +0,0 @@ |
||||
--- a/drivers/tty/serial/8250/Kconfig
|
||||
+++ b/drivers/tty/serial/8250/Kconfig
|
||||
@@ -249,6 +249,14 @@ config SERIAL_8250_ACORN
|
||||
system, say Y to this option. The driver can handle 1, 2, or 3 port
|
||||
cards. If unsure, say N.
|
||||
|
||||
+config SERIAL_8250_RT288X
|
||||
+ bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
|
||||
+ depends on SERIAL_8250 != n && (SOC_RT288X || SOC_RT305X || SOC_RT3883)
|
||||
+ help
|
||||
+ If you have a Ralink RT288x/RT305x SoC based board and want to use the
|
||||
+ serial port, say Y to this option. The driver can handle up to 2 serial
|
||||
+ ports. If unsure, say N.
|
||||
+
|
||||
config SERIAL_8250_RM9K
|
||||
bool "Support for MIPS RM9xxx integrated serial port"
|
||||
depends on SERIAL_8250 != n && SERIAL_RM9000
|
||||
--- a/include/linux/serial_core.h
|
||||
+++ b/include/linux/serial_core.h
|
||||
@@ -134,7 +134,7 @@ struct uart_port {
|
||||
#define UPIO_HUB6 (1)
|
||||
#define UPIO_MEM (2)
|
||||
#define UPIO_MEM32 (3)
|
||||
-#define UPIO_AU (4) /* Au1x00 type IO */
|
||||
+#define UPIO_AU (4) /* Au1x00 and RT288x type IO */
|
||||
#define UPIO_TSI (5) /* Tsi108/109 type IO */
|
||||
#define UPIO_RM9000 (6) /* RM9000 type IO */
|
||||
|
||||
--- a/drivers/tty/serial/8250/8250.c
|
||||
+++ b/drivers/tty/serial/8250/8250.c
|
||||
@@ -324,9 +324,9 @@ static void default_serial_dl_write(stru
|
||||
serial_out(up, UART_DLM, value >> 8 & 0xff);
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_MIPS_ALCHEMY
|
||||
+#if defined CONFIG_MIPS_ALCHEMY || defined (CONFIG_SERIAL_8250_RT288X)
|
||||
|
||||
-/* Au1x00 UART hardware has a weird register layout */
|
||||
+/* Au1x00 and RT288x UART hardware has a weird register layout */
|
||||
static const u8 au_io_in_map[] = {
|
||||
[UART_RX] = 0,
|
||||
[UART_IER] = 2,
|
||||
@@ -506,7 +506,7 @@ static void set_io_from_upio(struct uart
|
||||
break;
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_MIPS_ALCHEMY
|
||||
+#if defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_SERIAL_8250_RT288X)
|
||||
case UPIO_AU:
|
||||
p->serial_in = au_serial_in;
|
||||
p->serial_out = au_serial_out;
|
||||
@@ -731,22 +731,19 @@ static int size_fifo(struct uart_8250_po
|
||||
*/
|
||||
static unsigned int autoconfig_read_divisor_id(struct uart_8250_port *p)
|
||||
{
|
||||
- unsigned char old_dll, old_dlm, old_lcr;
|
||||
+ unsigned char old_lcr;
|
||||
+ unsigned int old_dl;
|
||||
unsigned int id;
|
||||
|
||||
old_lcr = serial_in(p, UART_LCR);
|
||||
serial_out(p, UART_LCR, UART_LCR_CONF_MODE_A);
|
||||
|
||||
- old_dll = serial_in(p, UART_DLL);
|
||||
- old_dlm = serial_in(p, UART_DLM);
|
||||
+ old_dl = serial_dl_read(p);
|
||||
|
||||
- serial_out(p, UART_DLL, 0);
|
||||
- serial_out(p, UART_DLM, 0);
|
||||
+ serial_dl_write(p, 0);
|
||||
+ id = serial_dl_read(p);
|
||||
|
||||
- id = serial_in(p, UART_DLL) | serial_in(p, UART_DLM) << 8;
|
||||
-
|
||||
- serial_out(p, UART_DLL, old_dll);
|
||||
- serial_out(p, UART_DLM, old_dlm);
|
||||
+ serial_dl_write(p, old_dl);
|
||||
serial_out(p, UART_LCR, old_lcr);
|
||||
|
||||
return id;
|
||||
@@ -872,7 +869,7 @@ static int broken_efr(struct uart_8250_p
|
||||
/*
|
||||
* Exar ST16C2550 "A2" devices incorrectly detect as
|
||||
* having an EFR, and report an ID of 0x0201. See
|
||||
- * http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-11/4812.html
|
||||
+ * http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-11/4812.html
|
||||
*/
|
||||
if (autoconfig_read_divisor_id(up) == 0x0201 && size_fifo(up) == 16)
|
||||
return 1;
|
@ -1,10 +0,0 @@ |
||||
--- a/arch/mips/pci/Makefile
|
||||
+++ b/arch/mips/pci/Makefile
|
||||
@@ -21,6 +21,7 @@ obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o
|
||||
obj-$(CONFIG_MIPS_ALCHEMY) += pci-alchemy.o
|
||||
obj-$(CONFIG_SOC_AR71XX) += pci-ar71xx.o
|
||||
obj-$(CONFIG_PCI_AR724X) += pci-ar724x.o
|
||||
+obj-$(CONFIG_SOC_RT288X) += pci-rt288x.o
|
||||
|
||||
#
|
||||
# These are still pretty much in the old state, watch, go blind.
|
@ -1,20 +0,0 @@ |
||||
--- a/drivers/net/ethernet/Kconfig
|
||||
+++ b/drivers/net/ethernet/Kconfig
|
||||
@@ -136,6 +136,7 @@ source "drivers/net/ethernet/packetengin
|
||||
source "drivers/net/ethernet/pasemi/Kconfig"
|
||||
source "drivers/net/ethernet/qlogic/Kconfig"
|
||||
source "drivers/net/ethernet/racal/Kconfig"
|
||||
+source "drivers/net/ethernet/ramips/Kconfig"
|
||||
source "drivers/net/ethernet/realtek/Kconfig"
|
||||
source "drivers/net/ethernet/renesas/Kconfig"
|
||||
source "drivers/net/ethernet/rdc/Kconfig"
|
||||
--- a/drivers/net/ethernet/Makefile
|
||||
+++ b/drivers/net/ethernet/Makefile
|
||||
@@ -54,6 +54,7 @@ obj-$(CONFIG_NET_PACKET_ENGINE) += packe
|
||||
obj-$(CONFIG_NET_VENDOR_PASEMI) += pasemi/
|
||||
obj-$(CONFIG_NET_VENDOR_QLOGIC) += qlogic/
|
||||
obj-$(CONFIG_NET_VENDOR_RACAL) += racal/
|
||||
+obj-$(CONFIG_NET_RAMIPS) += ramips/
|
||||
obj-$(CONFIG_NET_VENDOR_REALTEK) += realtek/
|
||||
obj-$(CONFIG_SH_ETH) += renesas/
|
||||
obj-$(CONFIG_NET_VENDOR_RDC) += rdc/
|
@ -1,26 +0,0 @@ |
||||
--- a/drivers/watchdog/Kconfig
|
||||
+++ b/drivers/watchdog/Kconfig
|
||||
@@ -1077,6 +1077,13 @@ config LANTIQ_WDT
|
||||
help
|
||||
Hardware driver for the Lantiq SoC Watchdog Timer.
|
||||
|
||||
+config RAMIPS_WDT
|
||||
+ tristate "Ralink RT288X/RT305X Watchdog Timer"
|
||||
+ depends on (SOC_RT288X || SOC_RT305X || SOC_RT3883)
|
||||
+ help
|
||||
+ Hardware driver for the built-in watchdog timer on the
|
||||
+ Ralink RT288X/RT305X SoCs.
|
||||
+
|
||||
# PARISC Architecture
|
||||
|
||||
# POWERPC Architecture
|
||||
--- a/drivers/watchdog/Makefile
|
||||
+++ b/drivers/watchdog/Makefile
|
||||
@@ -132,6 +132,7 @@ obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
|
||||
obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o
|
||||
octeon-wdt-y := octeon-wdt-main.o octeon-wdt-nmi.o
|
||||
obj-$(CONFIG_LANTIQ_WDT) += lantiq_wdt.o
|
||||
+obj-$(CONFIG_RAMIPS_WDT) += ramips_wdt.o
|
||||
|
||||
# PARISC Architecture
|
||||
|
@ -1,25 +0,0 @@ |
||||
--- a/drivers/spi/Kconfig
|
||||
+++ b/drivers/spi/Kconfig
|
||||
@@ -324,6 +324,12 @@ config SPI_RSPI
|
||||
help
|
||||
SPI driver for Renesas RSPI blocks.
|
||||
|
||||
+config SPI_RAMIPS
|
||||
+ tristate "Ralink RT288x/RT305x/RT3662 SPI Controller"
|
||||
+ depends on (SOC_RT288X || SOC_RT305X || SOC_RT3883)
|
||||
+ help
|
||||
+ This selects a driver for the Ralink RT288x/RT305x SPI Controller.
|
||||
+
|
||||
config SPI_S3C24XX
|
||||
tristate "Samsung S3C24XX series SPI"
|
||||
depends on ARCH_S3C24XX && EXPERIMENTAL
|
||||
--- a/drivers/spi/Makefile
|
||||
+++ b/drivers/spi/Makefile
|
||||
@@ -50,6 +50,7 @@ obj-$(CONFIG_SPI_PL022) += spi-pl022.o
|
||||
obj-$(CONFIG_SPI_PPC4xx) += spi-ppc4xx.o
|
||||
obj-$(CONFIG_SPI_PXA2XX) += spi-pxa2xx.o
|
||||
obj-$(CONFIG_SPI_PXA2XX_PCI) += spi-pxa2xx-pci.o
|
||||
+obj-$(CONFIG_SPI_RAMIPS) += spi-ramips.o
|
||||
obj-$(CONFIG_SPI_RSPI) += spi-rspi.o
|
||||
obj-$(CONFIG_SPI_S3C24XX) += spi-s3c24xx-hw.o
|
||||
spi-s3c24xx-hw-y := spi-s3c24xx.o
|
@ -1,20 +0,0 @@ |
||||
--- a/drivers/usb/Kconfig
|
||||
+++ b/drivers/usb/Kconfig
|
||||
@@ -188,4 +188,6 @@ source "drivers/usb/gadget/Kconfig"
|
||||
|
||||
source "drivers/usb/otg/Kconfig"
|
||||
|
||||
+source "drivers/usb/dwc_otg/Kconfig"
|
||||
+
|
||||
endif # USB_SUPPORT
|
||||
--- a/drivers/usb/Makefile
|
||||
+++ b/drivers/usb/Makefile
|
||||
@@ -52,6 +52,8 @@ obj-$(CONFIG_EARLY_PRINTK_DBGP) += early
|
||||
obj-$(CONFIG_USB_ATM) += atm/
|
||||
obj-$(CONFIG_USB_SPEEDTOUCH) += atm/
|
||||
|
||||
+obj-$(CONFIG_DWC_OTG) += dwc_otg/
|
||||
+
|
||||
obj-$(CONFIG_USB_MUSB_HDRC) += musb/
|
||||
obj-$(CONFIG_USB_CHIPIDEA) += chipidea/
|
||||
obj-$(CONFIG_USB_RENESAS_USBHS) += renesas_usbhs/
|
@ -1,10 +0,0 @@ |
||||
--- a/arch/mips/pci/Makefile
|
||||
+++ b/arch/mips/pci/Makefile
|
||||
@@ -22,6 +22,7 @@ obj-$(CONFIG_MIPS_ALCHEMY) += pci-alchem
|
||||
obj-$(CONFIG_SOC_AR71XX) += pci-ar71xx.o
|
||||
obj-$(CONFIG_PCI_AR724X) += pci-ar724x.o
|
||||
obj-$(CONFIG_SOC_RT288X) += pci-rt288x.o
|
||||
+obj-$(CONFIG_SOC_RT3883) += pci-rt3883.o
|
||||
|
||||
#
|
||||
# These are still pretty much in the old state, watch, go blind.
|
Loading…
Reference in new issue