aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/orion/patches
diff options
context:
space:
mode:
authorTravis Kemen <thepeople@openwrt.org>2010-03-14 01:41:52 +0000
committerTravis Kemen <thepeople@openwrt.org>2010-03-14 01:41:52 +0000
commit04097544bd983e29584d940ba3be2242decc3d66 (patch)
tree7ad90c8c9b6329c011e1decfa440456cb8c599cf /target/linux/orion/patches
parent5150a2d06cf333b59e823fa47b4715c2eb056400 (diff)
downloadupstream-04097544bd983e29584d940ba3be2242decc3d66.tar.gz
upstream-04097544bd983e29584d940ba3be2242decc3d66.tar.bz2
upstream-04097544bd983e29584d940ba3be2242decc3d66.zip
Switch Marvell Orion CPU to kernel 2.6.32 plus LED support for all LEDs
on LinkSys WRT350Nv2. Signed-off by: Matthias Buecher <mail@maddes.net> and Dirk Teurlings <info@upexia.nl> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20185 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/orion/patches')
-rw-r--r--target/linux/orion/patches/010-ignore_atag_cmdline.patch2
-rw-r--r--target/linux/orion/patches/020-wnr854t_switch_support.patch39
-rw-r--r--target/linux/orion/patches/050-wrt350nv2_cfi_workaround.patch2
-rw-r--r--target/linux/orion/patches/090-wrt350nv2_gpio_leds_buttons.patch102
-rw-r--r--target/linux/orion/patches/100-openwrt_partition_map.patch4
-rw-r--r--target/linux/orion/patches/200-dt2_board_support.patch2
-rw-r--r--target/linux/orion/patches/300-skb_cb_align.patch2
7 files changed, 108 insertions, 45 deletions
diff --git a/target/linux/orion/patches/010-ignore_atag_cmdline.patch b/target/linux/orion/patches/010-ignore_atag_cmdline.patch
index 05e835bf9d..9df21f1eb5 100644
--- a/target/linux/orion/patches/010-ignore_atag_cmdline.patch
+++ b/target/linux/orion/patches/010-ignore_atag_cmdline.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
-@@ -614,7 +614,7 @@ __tagtable(ATAG_REVISION, parse_tag_revi
+@@ -629,7 +629,7 @@ __tagtable(ATAG_REVISION, parse_tag_revi
static int __init parse_tag_cmdline(const struct tag *tag)
{
diff --git a/target/linux/orion/patches/020-wnr854t_switch_support.patch b/target/linux/orion/patches/020-wnr854t_switch_support.patch
index f62b56944e..e69de29bb2 100644
--- a/target/linux/orion/patches/020-wnr854t_switch_support.patch
+++ b/target/linux/orion/patches/020-wnr854t_switch_support.patch
@@ -1,39 +0,0 @@
---- a/arch/arm/mach-orion5x/wnr854t-setup.c
-+++ b/arch/arm/mach-orion5x/wnr854t-setup.c
-@@ -15,6 +15,7 @@
- #include <linux/mtd/physmap.h>
- #include <linux/mv643xx_eth.h>
- #include <linux/ethtool.h>
-+#include <net/dsa.h>
- #include <asm/mach-types.h>
- #include <asm/gpio.h>
- #include <asm/mach/arch.h>
-@@ -97,6 +98,20 @@ static struct mv643xx_eth_platform_data
- .duplex = DUPLEX_FULL,
- };
-
-+static struct dsa_chip_data wnr854t_switch_chip_data = {
-+ .port_names[0] = "lan3",
-+ .port_names[1] = "lan4",
-+ .port_names[2] = "wan",
-+ .port_names[3] = "cpu",
-+ .port_names[5] = "lan1",
-+ .port_names[7] = "lan2",
-+};
-+
-+static struct dsa_platform_data wnr854t_switch_plat_data = {
-+ .nr_chips = 1,
-+ .chip = &wnr854t_switch_chip_data,
-+};
-+
- static void __init wnr854t_init(void)
- {
- /*
-@@ -110,6 +125,7 @@ static void __init wnr854t_init(void)
- * Configure peripherals.
- */
- orion5x_eth_init(&wnr854t_eth_data);
-+ orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ);
- orion5x_uart0_init();
-
- orion5x_setup_dev_boot_win(WNR854T_NOR_BOOT_BASE,
diff --git a/target/linux/orion/patches/050-wrt350nv2_cfi_workaround.patch b/target/linux/orion/patches/050-wrt350nv2_cfi_workaround.patch
index b8ba0e2e28..246276d1f3 100644
--- a/target/linux/orion/patches/050-wrt350nv2_cfi_workaround.patch
+++ b/target/linux/orion/patches/050-wrt350nv2_cfi_workaround.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -385,8 +385,9 @@ struct mtd_info *cfi_cmdset_0002(struct
+@@ -374,8 +374,9 @@ struct mtd_info *cfi_cmdset_0002(struct
cfi_fixup_major_minor(cfi, extp);
diff --git a/target/linux/orion/patches/090-wrt350nv2_gpio_leds_buttons.patch b/target/linux/orion/patches/090-wrt350nv2_gpio_leds_buttons.patch
new file mode 100644
index 0000000000..e185693284
--- /dev/null
+++ b/target/linux/orion/patches/090-wrt350nv2_gpio_leds_buttons.patch
@@ -0,0 +1,102 @@
+--- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c 2009-12-08 02:39:46.000000000 +0100
++++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c 2010-01-13 15:25:17.000000000 +0100
+@@ -15,6 +15,9 @@
+ #include <linux/mtd/physmap.h>
+ #include <linux/mv643xx_eth.h>
+ #include <linux/ethtool.h>
++#include <linux/leds.h>
++#include <linux/gpio_keys.h>
++#include <linux/input.h>
+ #include <net/dsa.h>
+ #include <asm/mach-types.h>
+ #include <asm/gpio.h>
+@@ -24,6 +27,80 @@
+ #include "common.h"
+ #include "mpp.h"
+
++/*
++ * LEDs attached to GPIO
++ */
++static struct gpio_led wrt350n_v2_led_pins[] = {
++ {
++ .name = "wrt350nv2:green:power",
++ .gpio = 0,
++ .active_low = 1,
++ }, {
++ .name = "wrt350nv2:green:security",
++ .gpio = 1,
++ .active_low = 1,
++ }, {
++ .name = "wrt350nv2:orange:power",
++ .gpio = 5,
++ .active_low = 1,
++ }, {
++ .name = "wrt350nv2:green:usb",
++ .gpio = 6,
++ .active_low = 1,
++ }, {
++ .name = "wrt350nv2:green:wireless",
++ .gpio = 7,
++ .active_low = 1,
++ },
++};
++
++static struct gpio_led_platform_data wrt350n_v2_led_data = {
++ .leds = wrt350n_v2_led_pins,
++ .num_leds = ARRAY_SIZE(wrt350n_v2_led_pins),
++};
++
++static struct platform_device wrt350n_v2_leds = {
++ .name = "leds-gpio",
++ .id = -1,
++ .dev = {
++ .platform_data = &wrt350n_v2_led_data,
++ },
++};
++
++/*
++ * Buttons attached to GPIO
++ */
++static struct gpio_keys_button wrt350n_v2_buttons[] = {
++ {
++ .code = KEY_RESTART,
++ .gpio = 3,
++ .desc = "Reset Button",
++ .active_low = 1,
++ }, {
++ .code = KEY_WLAN,
++ .gpio = 2,
++ .desc = "WPS Button",
++ .active_low = 1,
++ },
++};
++
++static struct gpio_keys_platform_data wrt350n_v2_button_data = {
++ .buttons = wrt350n_v2_buttons,
++ .nbuttons = ARRAY_SIZE(wrt350n_v2_buttons),
++};
++
++static struct platform_device wrt350n_v2_button_device = {
++ .name = "gpio-keys",
++ .id = -1,
++ .num_resources = 0,
++ .dev = {
++ .platform_data = &wrt350n_v2_button_data,
++ },
++};
++
++/*
++ * General setup
++ */
+ static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = {
+ { 0, MPP_GPIO }, /* Power LED green (0=on) */
+ { 1, MPP_GPIO }, /* Security LED (0=on) */
+@@ -140,6 +217,8 @@
+ orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE,
+ WRT350N_V2_NOR_BOOT_SIZE);
+ platform_device_register(&wrt350n_v2_nor_flash);
++ platform_device_register(&wrt350n_v2_button_device);
++ platform_device_register(&wrt350n_v2_leds);
+ }
+
+ static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
diff --git a/target/linux/orion/patches/100-openwrt_partition_map.patch b/target/linux/orion/patches/100-openwrt_partition_map.patch
index bef4a54e84..79e1be7ee0 100644
--- a/target/linux/orion/patches/100-openwrt_partition_map.patch
+++ b/target/linux/orion/patches/100-openwrt_partition_map.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c
+++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
-@@ -58,11 +58,11 @@ static struct mtd_partition wrt350n_v2_nor_flash_partitions
+@@ -135,11 +135,11 @@ static struct mtd_partition wrt350n_v2_nor_flash_partitions
{
.name = "kernel",
.offset = 0x00000000,
@@ -15,7 +15,7 @@
}, {
.name = "lang",
.offset = 0x00760000,
-@@ -75,6 +79,14 @@ static struct mtd_partition wrt350n_v2_nor_flash_partitions
+@@ -152,6 +152,14 @@ static struct mtd_partition wrt350n_v2_nor_flash_partitions
.name = "u-boot",
.offset = 0x007c0000,
.size = 0x00040000,
diff --git a/target/linux/orion/patches/200-dt2_board_support.patch b/target/linux/orion/patches/200-dt2_board_support.patch
index 4735a221e4..27154723e1 100644
--- a/target/linux/orion/patches/200-dt2_board_support.patch
+++ b/target/linux/orion/patches/200-dt2_board_support.patch
@@ -16,7 +16,7 @@
select I2C_BOARDINFO
--- a/arch/arm/mach-orion5x/Makefile
+++ b/arch/arm/mach-orion5x/Makefile
-@@ -17,3 +17,4 @@ obj-$(CONFIG_MACH_WNR854T) += wnr854t-se
+@@ -20,3 +20,4 @@ obj-$(CONFIG_MACH_WNR854T) += wnr854t-se
obj-$(CONFIG_MACH_RD88F5181L_GE) += rd88f5181l-ge-setup.o
obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o
obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o
diff --git a/target/linux/orion/patches/300-skb_cb_align.patch b/target/linux/orion/patches/300-skb_cb_align.patch
index 89563c244f..3fefa4de39 100644
--- a/target/linux/orion/patches/300-skb_cb_align.patch
+++ b/target/linux/orion/patches/300-skb_cb_align.patch
@@ -1,6 +1,6 @@
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -335,7 +335,7 @@ struct sk_buff {
+@@ -332,7 +332,7 @@ struct sk_buff {
* want to keep them across layers you have to do a skb_clone()
* first. This is owned by whoever has the skb queued ATM.
*/