summaryrefslogtreecommitdiffstats
path: root/target/linux/atheros
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/atheros')
-rw-r--r--target/linux/atheros/Makefile6
-rw-r--r--target/linux/atheros/base-files/etc/hotplug.d/button/00-button2
-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.patch60
-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;