diff options
Diffstat (limited to 'target/linux/atheros')
-rw-r--r-- | target/linux/atheros/Makefile | 6 | ||||
-rw-r--r-- | target/linux/atheros/base-files/etc/hotplug.d/button/00-button | 2 | ||||
-rw-r--r-- | target/linux/atheros/base-files/etc/uci-defaults/01_leds (renamed from target/linux/atheros/base-files/etc/uci-defaults/leds) | 0 | ||||
-rw-r--r-- | target/linux/atheros/base-files/etc/uci-defaults/02_network (renamed from target/linux/atheros/base-files/etc/uci-defaults/network) | 0 | ||||
-rw-r--r-- | target/linux/atheros/config-3.8 (renamed from target/linux/atheros/config-3.3) | 17 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/001-get_c0_compare_int_fix.patch (renamed from target/linux/atheros/patches-3.3/001-get_c0_compare_int_fix.patch) | 2 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/100-board.patch (renamed from target/linux/atheros/patches-3.3/100-board.patch) | 15 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/101-early-printk-support.patch (renamed from target/linux/atheros/patches-3.3/101-early-printk-support.patch) | 2 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/105-ar2315_pci.patch (renamed from target/linux/atheros/patches-3.3/105-ar2315_pci.patch) | 0 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/110-ar2313_ethernet.patch (renamed from target/linux/atheros/patches-3.3/110-ar2313_ethernet.patch) | 11 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/120-spiflash.patch (renamed from target/linux/atheros/patches-3.3/120-spiflash.patch) | 17 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/130-watchdog.patch (renamed from target/linux/atheros/patches-3.3/130-watchdog.patch) | 5 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/140-redboot_boardconfig.patch | 60 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/141-redboot_partition_scan.patch (renamed from target/linux/atheros/patches-3.3/140-redboot_partition_scan.patch) | 9 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/142-redboot_various_erase_size_fix.patch (renamed from target/linux/atheros/patches-3.3/141-redboot_various_erase_size_fix.patch) | 6 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/210-reset_button.patch (renamed from target/linux/atheros/patches-3.3/210-reset_button.patch) | 0 | ||||
-rw-r--r-- | target/linux/atheros/patches-3.8/220-enet_micrel_workaround.patch (renamed from target/linux/atheros/patches-3.3/220-enet_micrel_workaround.patch) | 39 |
17 files changed, 142 insertions, 49 deletions
diff --git a/target/linux/atheros/Makefile b/target/linux/atheros/Makefile index ce2a90dc9..13424b9f5 100644 --- a/target/linux/atheros/Makefile +++ b/target/linux/atheros/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2011 OpenWrt.org +# Copyright (C) 2006-2013 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -11,11 +11,11 @@ BOARD:=atheros BOARDNAME:=Atheros AR231x/AR5312 FEATURES:=squashfs jffs2 -LINUX_VERSION:=3.3.8 +LINUX_VERSION:=3.8.12 include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += wpad-mini kmod-ath5k gpioctl swconfig +DEFAULT_PACKAGES += wpad-mini kmod-ath5k swconfig kmod-gpio-button-hotplug define Target/Description Build firmware images for Atheros SoC boards diff --git a/target/linux/atheros/base-files/etc/hotplug.d/button/00-button b/target/linux/atheros/base-files/etc/hotplug.d/button/00-button index 857a59b4a..63cc217d5 100644 --- a/target/linux/atheros/base-files/etc/hotplug.d/button/00-button +++ b/target/linux/atheros/base-files/etc/hotplug.d/button/00-button @@ -1,4 +1,4 @@ -. /etc/functions.sh +. /lib/functions.sh do_button () { local button local action diff --git a/target/linux/atheros/base-files/etc/uci-defaults/leds b/target/linux/atheros/base-files/etc/uci-defaults/01_leds index 076a04bfd..076a04bfd 100644 --- a/target/linux/atheros/base-files/etc/uci-defaults/leds +++ b/target/linux/atheros/base-files/etc/uci-defaults/01_leds diff --git a/target/linux/atheros/base-files/etc/uci-defaults/network b/target/linux/atheros/base-files/etc/uci-defaults/02_network index 7e91e6ac2..7e91e6ac2 100644 --- a/target/linux/atheros/base-files/etc/uci-defaults/network +++ b/target/linux/atheros/base-files/etc/uci-defaults/02_network diff --git a/target/linux/atheros/config-3.3 b/target/linux/atheros/config-3.8 index c3713b3da..efc271607 100644 --- a/target/linux/atheros/config-3.3 +++ b/target/linux/atheros/config-3.8 @@ -1,15 +1,18 @@ +CONFIG_ADM6996_PHY=y CONFIG_AR8216_PHY=y CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_ATHEROS_AR2315=y CONFIG_ATHEROS_AR2315_PCI=y CONFIG_ATHEROS_AR231X=y CONFIG_ATHEROS_AR5312=y CONFIG_ATHEROS_WDT=y -CONFIG_BCMA_POSSIBLE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CEVT_R4K=y CONFIG_CEVT_R4K_LIB=y @@ -17,11 +20,14 @@ CONFIG_CMDLINE="console=ttyS0,9600 rootfstype=squashfs,jffs2" CONFIG_CMDLINE_BOOL=y # CONFIG_CMDLINE_OVERRIDE is not set CONFIG_CPU_BIG_ENDIAN=y +CONFIG_CPU_GENERIC_DUMP_TLB=y CONFIG_CPU_HAS_PREFETCH=y CONFIG_CPU_HAS_SYNC=y CONFIG_CPU_MIPS32=y CONFIG_CPU_MIPS32_R1=y CONFIG_CPU_MIPSR1=y +CONFIG_CPU_R4K_CACHE_TLB=y +CONFIG_CPU_R4K_FPU=y CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y CONFIG_CPU_SUPPORTS_HIGHMEM=y CONFIG_CSRC_R4K=y @@ -35,10 +41,11 @@ CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_IO=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVICE=y CONFIG_GPIO_SYSFS=y # CONFIG_HAMRADIO is not set CONFIG_HARDWARE_WATCHPOINTS=y @@ -48,6 +55,7 @@ CONFIG_HAS_IOPORT=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_KGDB=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_HAVE_DYNAMIC_FTRACE=y @@ -61,6 +69,7 @@ CONFIG_HAVE_IDE=y CONFIG_HAVE_IRQ_WORK=y CONFIG_HAVE_MEMBLOCK=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_HAVE_OPROFILE=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_HW_HAS_PCI=y @@ -76,6 +85,7 @@ CONFIG_MIPS=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_MIPS_MACHINE is not set CONFIG_MIPS_MT_DISABLED=y +CONFIG_MODULES_USE_ELF_REL=y CONFIG_MTD_AR2315=y CONFIG_MTD_CFI_ADV_OPTIONS=y # CONFIG_MTD_CFI_GEOMETRY is not set @@ -106,7 +116,8 @@ CONFIG_SYS_HAS_EARLY_PRINTK=y CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y CONFIG_SYS_SUPPORTS_ARBIT_HZ=y CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_UIDGID_CONVERTED=y CONFIG_USB_ARCH_HAS_XHCI=y CONFIG_USB_SUPPORT=y -CONFIG_XZ_DEC=y CONFIG_ZONE_DMA_FLAG=0 diff --git a/target/linux/atheros/patches-3.3/001-get_c0_compare_int_fix.patch b/target/linux/atheros/patches-3.8/001-get_c0_compare_int_fix.patch index 43da96c3f..ff6cc998f 100644 --- a/target/linux/atheros/patches-3.3/001-get_c0_compare_int_fix.patch +++ b/target/linux/atheros/patches-3.8/001-get_c0_compare_int_fix.patch @@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- a/arch/mips/kernel/cevt-r4k.c +++ b/arch/mips/kernel/cevt-r4k.c -@@ -168,20 +168,23 @@ int __cpuinit r4k_clockevent_init(void) +@@ -173,20 +173,23 @@ int __cpuinit r4k_clockevent_init(void) struct clock_event_device *cd; unsigned int irq; diff --git a/target/linux/atheros/patches-3.3/100-board.patch b/target/linux/atheros/patches-3.8/100-board.patch index aaa4d4193..8663156ad 100644 --- a/target/linux/atheros/patches-3.3/100-board.patch +++ b/target/linux/atheros/patches-3.8/100-board.patch @@ -1,6 +1,6 @@ --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -120,6 +120,19 @@ config BCM63XX +@@ -135,6 +135,19 @@ config BCM63XX help Support for BCM63XX based boards @@ -20,7 +20,7 @@ config MIPS_COBALT bool "Cobalt Server" select CEVT_R4K -@@ -813,6 +826,7 @@ config NLM_XLP_BOARD +@@ -836,6 +849,7 @@ config NLM_XLP_BOARD endchoice @@ -2106,7 +2106,7 @@ + --- /dev/null +++ b/arch/mips/ar231x/ar2315.c -@@ -0,0 +1,694 @@ +@@ -0,0 +1,692 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive @@ -2789,8 +2789,6 @@ + if (!is_2315()) + return; + -+ gpio_request(AR2315_RESET_GPIO, "reset"); -+ + /* Clear any lingering AHB errors */ + config = read_c0_config(); + write_c0_config(config & ~0x3); @@ -2989,7 +2987,7 @@ +#endif --- /dev/null +++ b/arch/mips/ar231x/devices.c -@@ -0,0 +1,173 @@ +@@ -0,0 +1,168 @@ +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/serial.h> @@ -3151,11 +3149,6 @@ + +static int __init ar231x_register_devices(void) +{ -+ static struct resource res = { -+ .start = 0xFFFFFFFF, -+ }; -+ -+ platform_device_register_simple("GPIODEV", 0, &res, 1); + ar5312_init_devices(); + ar2315_init_devices(); + diff --git a/target/linux/atheros/patches-3.3/101-early-printk-support.patch b/target/linux/atheros/patches-3.8/101-early-printk-support.patch index 90e9f2ed4..7b0b2ec4d 100644 --- a/target/linux/atheros/patches-3.3/101-early-printk-support.patch +++ b/target/linux/atheros/patches-3.8/101-early-printk-support.patch @@ -58,7 +58,7 @@ obj-$(CONFIG_ATHEROS_AR2315) += ar2315.o --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -130,6 +130,7 @@ config ATHEROS_AR231X +@@ -145,6 +145,7 @@ config ATHEROS_AR231X select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_32BIT_KERNEL select ARCH_REQUIRE_GPIOLIB diff --git a/target/linux/atheros/patches-3.3/105-ar2315_pci.patch b/target/linux/atheros/patches-3.8/105-ar2315_pci.patch index 7c72a8e41..7c72a8e41 100644 --- a/target/linux/atheros/patches-3.3/105-ar2315_pci.patch +++ b/target/linux/atheros/patches-3.8/105-ar2315_pci.patch diff --git a/target/linux/atheros/patches-3.3/110-ar2313_ethernet.patch b/target/linux/atheros/patches-3.8/110-ar2313_ethernet.patch index 47c9dd622..e8879f41d 100644 --- a/target/linux/atheros/patches-3.3/110-ar2313_ethernet.patch +++ b/target/linux/atheros/patches-3.8/110-ar2313_ethernet.patch @@ -32,7 +32,7 @@ +obj-$(CONFIG_NET_VENDOR_AR231X) += ar231x.o --- /dev/null +++ b/drivers/net/ethernet/ar231x/ar231x.c -@@ -0,0 +1,1279 @@ +@@ -0,0 +1,1278 @@ +/* + * ar231x.c: Linux driver for the Atheros AR231x Ethernet device. + * @@ -79,7 +79,6 @@ +#include <net/sock.h> +#include <net/ip.h> + -+#include <asm/system.h> +#include <asm/io.h> +#include <asm/irq.h> +#include <asm/byteorder.h> @@ -218,7 +217,7 @@ +#endif +}; + -+int __devinit ar231x_probe(struct platform_device *pdev) ++int ar231x_probe(struct platform_device *pdev) +{ + struct net_device *dev; + struct ar231x_private *sp; @@ -384,7 +383,7 @@ + tasklet_kill(&sp->rx_tasklet); +} + -+static int __devexit ar231x_remove(struct platform_device *pdev) ++static int ar231x_remove(struct platform_device *pdev) +{ + struct net_device *dev = platform_get_drvdata(pdev); + struct ar231x_private *sp = netdev_priv(dev); @@ -421,7 +420,7 @@ +static struct platform_driver ar231x_driver = { + .driver.name = "ar231x-eth", + .probe = ar231x_probe, -+ .remove = __devexit_p(ar231x_remove), ++ .remove = ar231x_remove, +}; + +module_platform_driver(ar231x_driver); @@ -744,7 +743,7 @@ + */ + ecode = + request_irq(dev->irq, &ar231x_interrupt, -+ IRQF_DISABLED | IRQF_SAMPLE_RANDOM, ++ IRQF_DISABLED, + dev->name, dev); + if (ecode) { + printk(KERN_WARNING "%s: %s: Requested IRQ %d is busy\n", diff --git a/target/linux/atheros/patches-3.3/120-spiflash.patch b/target/linux/atheros/patches-3.8/120-spiflash.patch index 116f7c950..33e862865 100644 --- a/target/linux/atheros/patches-3.3/120-spiflash.patch +++ b/target/linux/atheros/patches-3.8/120-spiflash.patch @@ -1,8 +1,8 @@ --- a/drivers/mtd/devices/Kconfig +++ b/drivers/mtd/devices/Kconfig -@@ -120,6 +120,10 @@ config MTD_SST25L - Set up your spi devices with the right board-specific platform data, - if you want to specify device partitioning. +@@ -136,6 +136,10 @@ config MTD_BCM47XXSFLASH + registered by bcma as platform devices. This enables driver for + serial flash memories (only read-only mode is implemented). +config MTD_AR2315 + tristate "Atheros AR2315+ SPI Flash support" @@ -13,11 +13,12 @@ help --- a/drivers/mtd/devices/Makefile +++ b/drivers/mtd/devices/Makefile -@@ -18,5 +18,6 @@ obj-$(CONFIG_MTD_BLOCK2MTD) += block2mtd - obj-$(CONFIG_MTD_DATAFLASH) += mtd_dataflash.o +@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_DATAFLASH) += mtd_dataf obj-$(CONFIG_MTD_M25P80) += m25p80.o + obj-$(CONFIG_MTD_SPEAR_SMI) += spear_smi.o obj-$(CONFIG_MTD_SST25L) += sst25l.o +obj-$(CONFIG_MTD_AR2315) += ar2315.o + obj-$(CONFIG_MTD_BCM47XXSFLASH) += bcm47xxsflash.o -CFLAGS_docg3.o += -I$(src) \ No newline at end of file @@ -480,9 +481,9 @@ + mtd->writesize = 1; + mtd->numeraseregions = 0; + mtd->eraseregions = NULL; -+ mtd->erase = spiflash_erase; -+ mtd->read = spiflash_read; -+ mtd->write = spiflash_write; ++ mtd->_erase = spiflash_erase; ++ mtd->_read = spiflash_read; ++ mtd->_write = spiflash_write; + mtd->owner = THIS_MODULE; + +#if defined CONFIG_MTD_REDBOOT_PARTS || CONFIG_MTD_MYLOADER_PARTS diff --git a/target/linux/atheros/patches-3.3/130-watchdog.patch b/target/linux/atheros/patches-3.8/130-watchdog.patch index 206d27475..085f31547 100644 --- a/target/linux/atheros/patches-3.3/130-watchdog.patch +++ b/target/linux/atheros/patches-3.8/130-watchdog.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/drivers/watchdog/ar2315-wtd.c -@@ -0,0 +1,200 @@ +@@ -0,0 +1,199 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by @@ -35,7 +35,6 @@ + +#include <asm/io.h> +#include <asm/uaccess.h> -+#include <asm/system.h> +#include <asm/addrspace.h> +#include <ar231x_platform.h> +#include <ar2315_regs.h> @@ -203,7 +202,7 @@ +module_exit(exit_ar2315_wdt); --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig -@@ -1033,6 +1033,12 @@ config LANTIQ_WDT +@@ -1077,6 +1077,12 @@ config LANTIQ_WDT help Hardware driver for the Lantiq SoC Watchdog Timer. diff --git a/target/linux/atheros/patches-3.8/140-redboot_boardconfig.patch b/target/linux/atheros/patches-3.8/140-redboot_boardconfig.patch new file mode 100644 index 000000000..4191b0d42 --- /dev/null +++ b/target/linux/atheros/patches-3.8/140-redboot_boardconfig.patch @@ -0,0 +1,60 @@ +--- a/drivers/mtd/redboot.c ++++ b/drivers/mtd/redboot.c +@@ -30,6 +30,8 @@ + #include <linux/mtd/partitions.h> + #include <linux/module.h> + ++#define BOARD_CONFIG_PART "boardconfig" ++ + struct fis_image_desc { + unsigned char name[16]; // Null terminated name + uint32_t flash_base; // Address within FLASH of image +@@ -60,6 +62,7 @@ static int parse_redboot_partitions(stru + struct mtd_partition **pparts, + struct mtd_part_parser_data *data) + { ++ unsigned long max_offset = 0; + int nrparts = 0; + struct fis_image_desc *buf; + struct mtd_partition *parts; +@@ -225,14 +228,14 @@ static int parse_redboot_partitions(stru + } + } + #endif +- parts = kzalloc(sizeof(*parts)*nrparts + nulllen + namelen, GFP_KERNEL); ++ parts = kzalloc(sizeof(*parts) * (nrparts + 1) + nulllen + namelen + sizeof(BOARD_CONFIG_PART), GFP_KERNEL); + + if (!parts) { + ret = -ENOMEM; + goto out; + } + +- nullname = (char *)&parts[nrparts]; ++ nullname = (char *)&parts[nrparts + 1]; + #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED + if (nulllen > 0) { + strcpy(nullname, nullstring); +@@ -251,6 +254,8 @@ static int parse_redboot_partitions(stru + } + #endif + for ( ; i<nrparts; i++) { ++ if(max_offset < buf[i].flash_base + buf[i].size) ++ max_offset = buf[i].flash_base + buf[i].size; + parts[i].size = fl->img->size; + parts[i].offset = fl->img->flash_base; + parts[i].name = names; +@@ -284,6 +289,14 @@ static int parse_redboot_partitions(stru + fl = fl->next; + kfree(tmp_fl); + } ++ if(master->size - max_offset >= master->erasesize) ++ { ++ parts[nrparts].size = master->size - max_offset; ++ parts[nrparts].offset = max_offset; ++ parts[nrparts].name = names; ++ strcpy(names, BOARD_CONFIG_PART); ++ nrparts++; ++ } + ret = nrparts; + *pparts = parts; + out: diff --git a/target/linux/atheros/patches-3.3/140-redboot_partition_scan.patch b/target/linux/atheros/patches-3.8/141-redboot_partition_scan.patch index c83823a21..c255baf8c 100644 --- a/target/linux/atheros/patches-3.3/140-redboot_partition_scan.patch +++ b/target/linux/atheros/patches-3.8/141-redboot_partition_scan.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/redboot.c +++ b/drivers/mtd/redboot.c -@@ -79,6 +79,11 @@ static int parse_redboot_partitions(stru +@@ -79,12 +79,18 @@ static int parse_redboot_partitions(stru static char nullstring[] = "unallocated"; #endif @@ -11,8 +11,7 @@ + restart: if ( directory < 0 ) { offset = master->size + directory * master->erasesize; - while (mtd_can_have_bb(master) && -@@ -86,6 +91,7 @@ static int parse_redboot_partitions(stru + while (mtd_block_isbad(master, offset)) { if (!offset) { nogood: printk(KERN_NOTICE "Failed to find a non-bad block to check for RedBoot partition table\n"); @@ -20,7 +19,7 @@ return -EIO; } offset -= master->erasesize; -@@ -99,10 +105,6 @@ static int parse_redboot_partitions(stru +@@ -97,10 +103,6 @@ static int parse_redboot_partitions(stru goto nogood; } } @@ -31,7 +30,7 @@ printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n", master->name, offset); -@@ -175,6 +177,11 @@ static int parse_redboot_partitions(stru +@@ -173,6 +175,11 @@ static int parse_redboot_partitions(stru } if (i == numslots) { /* Didn't find it */ diff --git a/target/linux/atheros/patches-3.3/141-redboot_various_erase_size_fix.patch b/target/linux/atheros/patches-3.8/142-redboot_various_erase_size_fix.patch index 0ad155efd..fa00dcd3b 100644 --- a/target/linux/atheros/patches-3.3/141-redboot_various_erase_size_fix.patch +++ b/target/linux/atheros/patches-3.8/142-redboot_various_erase_size_fix.patch @@ -31,7 +31,7 @@ unsigned long offset; #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED static char nullstring[] = "unallocated"; -@@ -188,7 +205,10 @@ static int parse_redboot_partitions(stru +@@ -186,7 +203,10 @@ static int parse_redboot_partitions(stru goto out; } @@ -43,7 +43,7 @@ struct fis_list *new_fl, **prev; if (buf[i].name[0] == 0xff) { -@@ -263,12 +283,13 @@ static int parse_redboot_partitions(stru +@@ -261,12 +281,13 @@ static int parse_redboot_partitions(stru } #endif for ( ; i<nrparts; i++) { @@ -59,7 +59,7 @@ strcpy(names, fl->img->name); #ifdef CONFIG_MTD_REDBOOT_PARTS_READONLY if (!memcmp(names, "RedBoot", 8) || -@@ -298,7 +319,9 @@ static int parse_redboot_partitions(stru +@@ -296,7 +317,9 @@ static int parse_redboot_partitions(stru fl = fl->next; kfree(tmp_fl); } diff --git a/target/linux/atheros/patches-3.3/210-reset_button.patch b/target/linux/atheros/patches-3.8/210-reset_button.patch index c1471903c..c1471903c 100644 --- a/target/linux/atheros/patches-3.3/210-reset_button.patch +++ b/target/linux/atheros/patches-3.8/210-reset_button.patch diff --git a/target/linux/atheros/patches-3.3/220-enet_micrel_workaround.patch b/target/linux/atheros/patches-3.8/220-enet_micrel_workaround.patch index 56c7cd545..da8685721 100644 --- a/target/linux/atheros/patches-3.3/220-enet_micrel_workaround.patch +++ b/target/linux/atheros/patches-3.8/220-enet_micrel_workaround.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/ar231x/ar231x.c +++ b/drivers/net/ethernet/ar231x/ar231x.c -@@ -151,6 +151,7 @@ static int ar231x_mdiobus_write(struct m +@@ -150,6 +150,7 @@ static int ar231x_mdiobus_write(struct m static int ar231x_mdiobus_reset(struct mii_bus *bus); static int ar231x_mdiobus_probe (struct net_device *dev); static void ar231x_adjust_link(struct net_device *dev); @@ -8,7 +8,38 @@ #ifndef ERR #define ERR(fmt, args...) printk("%s: " fmt, __func__, ##args) -@@ -300,6 +301,21 @@ int __devinit ar231x_probe(struct platfo +@@ -182,6 +183,30 @@ static const struct net_device_ops ar231 + #endif + }; + ++static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id) ++{ ++ int phy_reg; ++ ++ /* Grab the bits from PHYIR1, and put them ++ * in the upper half */ ++ phy_reg = mdiobus_read(bus, addr, MII_PHYSID1); ++ ++ if (phy_reg < 0) ++ return -EIO; ++ ++ *phy_id = (phy_reg & 0xffff) << 16; ++ ++ /* Grab the bits from PHYIR2, and put them in the lower half */ ++ phy_reg = mdiobus_read(bus, addr, MII_PHYSID2); ++ ++ if (phy_reg < 0) ++ return -EIO; ++ ++ *phy_id |= (phy_reg & 0xffff); ++ ++ return 0; ++} ++ + int ar231x_probe(struct platform_device *pdev) + { + struct net_device *dev; +@@ -299,6 +324,21 @@ int ar231x_probe(struct platform_device mdiobus_register(sp->mii_bus); @@ -30,7 +61,7 @@ if (ar231x_mdiobus_probe(dev) != 0) { printk(KERN_ERR "%s: mdiobus_probe failed\n", dev->name); rx_tasklet_cleanup(dev); -@@ -356,8 +372,10 @@ static int __devexit ar231x_remove(struc +@@ -355,8 +395,10 @@ static int ar231x_remove(struct platform rx_tasklet_cleanup(dev); ar231x_init_cleanup(dev); unregister_netdev(dev); @@ -43,7 +74,7 @@ kfree(dev); return 0; } -@@ -1133,6 +1151,9 @@ static int ar231x_ioctl(struct net_devic +@@ -1132,6 +1174,9 @@ static int ar231x_ioctl(struct net_devic struct ar231x_private *sp = netdev_priv(dev); int ret; |