diff options
author | Jonas Gorski <jogo@openwrt.org> | 2015-05-21 19:32:46 +0000 |
---|---|---|
committer | Jonas Gorski <jogo@openwrt.org> | 2015-05-21 19:32:46 +0000 |
commit | 76d079204df113afa9e382a43abb5e1a2135150d (patch) | |
tree | 8e472ab203e8d6a47dc2e285b3becbfca35d04c6 /target | |
parent | 072937888e133f5e97fd05a7496eaf7eeae04079 (diff) | |
download | upstream-76d079204df113afa9e382a43abb5e1a2135150d.tar.gz upstream-76d079204df113afa9e382a43abb5e1a2135150d.tar.bz2 upstream-76d079204df113afa9e382a43abb5e1a2135150d.zip |
kernel: update 3.18 to 3.18.14
Changelogs:
* https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.12
* https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.13
* https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.14
Build tested on brcm63xx and ipq806x, runtested on brcm63xx.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 45711
Diffstat (limited to 'target')
193 files changed, 623 insertions, 1458 deletions
diff --git a/target/linux/adm5120/patches-3.18/050-revert_rootfs_splits.patch b/target/linux/adm5120/patches-3.18/050-revert_rootfs_splits.patch index 8b1191a022..7181b91c5f 100644 --- a/target/linux/adm5120/patches-3.18/050-revert_rootfs_splits.patch +++ b/target/linux/adm5120/patches-3.18/050-revert_rootfs_splits.patch @@ -46,7 +46,7 @@ } if (slave->offset == MTDPART_OFS_RETAIN) { slave->offset = cur_offset; -@@ -629,10 +628,8 @@ out_register: +@@ -626,10 +625,8 @@ out_register: return slave; } @@ -59,7 +59,7 @@ { struct mtd_partition part; struct mtd_part *p, *new; -@@ -664,24 +661,21 @@ __mtd_add_partition(struct mtd_info *mas +@@ -661,24 +658,21 @@ __mtd_add_partition(struct mtd_info *mas end = offset + length; mutex_lock(&mtd_partitions_mutex); @@ -94,7 +94,7 @@ return ret; err_inv: -@@ -691,12 +685,6 @@ err_inv: +@@ -688,12 +682,6 @@ err_inv: } EXPORT_SYMBOL_GPL(mtd_add_partition); @@ -107,7 +107,7 @@ int mtd_del_partition(struct mtd_info *master, int partno) { struct mtd_part *slave, *next; -@@ -720,166 +708,6 @@ int mtd_del_partition(struct mtd_info *m +@@ -717,166 +705,6 @@ int mtd_del_partition(struct mtd_info *m } EXPORT_SYMBOL_GPL(mtd_del_partition); @@ -274,7 +274,7 @@ /* * This function, given a master MTD object and a partition table, creates * and registers slave MTD objects which are bound to the master according to -@@ -909,7 +737,6 @@ int add_mtd_partitions(struct mtd_info * +@@ -906,7 +734,6 @@ int add_mtd_partitions(struct mtd_info * mutex_unlock(&mtd_partitions_mutex); add_mtd_device(&slave->mtd); @@ -282,7 +282,7 @@ cur_offset = slave->offset + slave->mtd.size; } -@@ -939,30 +766,6 @@ static struct mtd_part_parser *get_parti +@@ -936,30 +763,6 @@ static struct mtd_part_parser *get_parti #define put_partition_parser(p) do { module_put((p)->owner); } while (0) @@ -313,7 +313,7 @@ void register_mtd_parser(struct mtd_part_parser *p) { spin_lock(&part_parser_lock); -@@ -1036,38 +839,6 @@ int parse_mtd_partitions(struct mtd_info +@@ -1033,38 +836,6 @@ int parse_mtd_partitions(struct mtd_info return ret; } diff --git a/target/linux/adm5120/patches-3.18/100-rootfs_split.patch b/target/linux/adm5120/patches-3.18/100-rootfs_split.patch index 22241e4fdf..44108a608a 100644 --- a/target/linux/adm5120/patches-3.18/100-rootfs_split.patch +++ b/target/linux/adm5120/patches-3.18/100-rootfs_split.patch @@ -35,7 +35,7 @@ /* * MTD methods which simply translate the effective address and pass through -@@ -708,6 +710,144 @@ int mtd_del_partition(struct mtd_info *m +@@ -705,6 +707,144 @@ int mtd_del_partition(struct mtd_info *m } EXPORT_SYMBOL_GPL(mtd_del_partition); @@ -180,7 +180,7 @@ /* * This function, given a master MTD object and a partition table, creates * and registers slave MTD objects which are bound to the master according to -@@ -724,6 +864,9 @@ int add_mtd_partitions(struct mtd_info * +@@ -721,6 +861,9 @@ int add_mtd_partitions(struct mtd_info * struct mtd_part *slave; uint64_t cur_offset = 0; int i; @@ -190,7 +190,7 @@ printk(KERN_NOTICE "Creating %d MTD partitions on \"%s\":\n", nbparts, master->name); -@@ -738,12 +881,53 @@ int add_mtd_partitions(struct mtd_info * +@@ -735,12 +878,53 @@ int add_mtd_partitions(struct mtd_info * add_mtd_device(&slave->mtd); diff --git a/target/linux/ar7/patches-3.18/110-flash.patch b/target/linux/ar7/patches-3.18/110-flash.patch index e12eec5f7d..e4aeffd3e2 100644 --- a/target/linux/ar7/patches-3.18/110-flash.patch +++ b/target/linux/ar7/patches-3.18/110-flash.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/Makefile +++ b/drivers/mtd/Makefile -@@ -16,7 +16,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o +@@ -12,7 +12,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o obj-$(CONFIG_MTD_AFS_PARTS) += afs.o diff --git a/target/linux/ar7/patches-3.18/160-vlynq_try_remote_first.patch b/target/linux/ar7/patches-3.18/160-vlynq_try_remote_first.patch index 841eb2307b..1d1310d82e 100644 --- a/target/linux/ar7/patches-3.18/160-vlynq_try_remote_first.patch +++ b/target/linux/ar7/patches-3.18/160-vlynq_try_remote_first.patch @@ -199,7 +199,7 @@ return 0; } -@@ -501,24 +547,16 @@ static int __vlynq_enable_device(struct +@@ -501,24 +547,16 @@ static int __vlynq_enable_device(struct return result; switch (dev->divisor) { @@ -229,7 +229,7 @@ break; case vlynq_ldiv1: case vlynq_ldiv2: -@@ -528,15 +566,12 @@ static int __vlynq_enable_device(struct +@@ -528,15 +566,12 @@ static int __vlynq_enable_device(struct case vlynq_ldiv6: case vlynq_ldiv7: case vlynq_ldiv8: @@ -251,7 +251,7 @@ return 0; } break; -@@ -548,20 +583,17 @@ static int __vlynq_enable_device(struct +@@ -548,20 +583,17 @@ static int __vlynq_enable_device(struct case vlynq_rdiv6: case vlynq_rdiv7: case vlynq_rdiv8: diff --git a/target/linux/ar7/patches-3.18/300-add-ac49x-platform.patch b/target/linux/ar7/patches-3.18/300-add-ac49x-platform.patch index 92bd4f3b8c..ccdc84d309 100644 --- a/target/linux/ar7/patches-3.18/300-add-ac49x-platform.patch +++ b/target/linux/ar7/patches-3.18/300-add-ac49x-platform.patch @@ -37,7 +37,7 @@ #define AR7_IRQ_UART0 15 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -89,7 +89,7 @@ config AR7 +@@ -94,7 +94,7 @@ config AR7 select HAVE_CLK help Support for the Texas Instruments AR7 System-on-a-Chip @@ -46,7 +46,7 @@ config ATH79 bool "Atheros AR71XX/AR724X/AR913X based boards" -@@ -796,6 +796,7 @@ config NLM_XLP_BOARD +@@ -835,6 +835,7 @@ config MIPS_PARAVIRT endchoice source "arch/mips/alchemy/Kconfig" diff --git a/target/linux/ar7/patches-3.18/320-ac49x-mtd-partitions.patch b/target/linux/ar7/patches-3.18/320-ac49x-mtd-partitions.patch index e6b08d669a..53ac07273a 100644 --- a/target/linux/ar7/patches-3.18/320-ac49x-mtd-partitions.patch +++ b/target/linux/ar7/patches-3.18/320-ac49x-mtd-partitions.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig -@@ -169,6 +169,11 @@ config MTD_OF_PARTS +@@ -164,6 +164,11 @@ config MTD_OF_PARTS the partition map from the children of the flash node, as described in Documentation/devicetree/booting-without-of.txt. @@ -14,7 +14,7 @@ ---help--- --- a/drivers/mtd/Makefile +++ b/drivers/mtd/Makefile -@@ -15,6 +15,7 @@ mtd-$(CONFIG_MTD_SPLIT_LZMA_FW) += mtdsp +@@ -11,6 +11,7 @@ obj-$(CONFIG_MTD_SPLIT) += mtdsplit/ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o diff --git a/target/linux/ar7/patches-3.18/500-serial_kludge.patch b/target/linux/ar7/patches-3.18/500-serial_kludge.patch index e5d5a914a3..08bd6a6f2d 100644 --- a/target/linux/ar7/patches-3.18/500-serial_kludge.patch +++ b/target/linux/ar7/patches-3.18/500-serial_kludge.patch @@ -1,6 +1,6 @@ --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c -@@ -323,6 +323,13 @@ static const struct serial8250_config ua +@@ -329,6 +329,13 @@ static const struct serial8250_config ua .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, .flags = UART_CAP_FIFO | UART_CAP_AFE, }, @@ -14,9 +14,9 @@ }; /* Uart divisor latch read */ -@@ -2861,7 +2868,11 @@ static void serial8250_console_putchar(s - struct uart_8250_port *up = - container_of(port, struct uart_8250_port, port); +@@ -3174,7 +3181,11 @@ static void serial8250_console_putchar(s + { + struct uart_8250_port *up = up_to_u8250p(port); +#ifdef CONFIG_AR7 + wait_for_xmitr(up, BOTH_EMPTY); diff --git a/target/linux/ar7/patches-3.18/920-ar7part.patch b/target/linux/ar7/patches-3.18/920-ar7part.patch index 84f68d82ab..9948858d05 100644 --- a/target/linux/ar7/patches-3.18/920-ar7part.patch +++ b/target/linux/ar7/patches-3.18/920-ar7part.patch @@ -33,7 +33,7 @@ size_t len; unsigned int pre_size = master->erasesize, post_size = 0; unsigned int root_offset = ROOT_OFFSET; -@@ -55,6 +62,16 @@ static int create_mtd_partitions(struct +@@ -55,6 +62,16 @@ static int create_mtd_partitions(struct int retries = 10; struct mtd_partition *ar7_parts; @@ -50,7 +50,7 @@ ar7_parts = kzalloc(sizeof(*ar7_parts) * AR7_PARTS, GFP_KERNEL); if (!ar7_parts) return -ENOMEM; -@@ -83,34 +100,39 @@ static int create_mtd_partitions(struct +@@ -83,34 +100,39 @@ static int create_mtd_partitions(struct pre_size = offset; diff --git a/target/linux/ar7/patches-3.18/950-cpmac_titan.patch b/target/linux/ar7/patches-3.18/950-cpmac_titan.patch index 1d76e9fd78..f1d432cc4c 100644 --- a/target/linux/ar7/patches-3.18/950-cpmac_titan.patch +++ b/target/linux/ar7/patches-3.18/950-cpmac_titan.patch @@ -1,7 +1,7 @@ --- a/drivers/net/ethernet/ti/cpmac.c +++ b/drivers/net/ethernet/ti/cpmac.c -@@ -1154,6 +1154,8 @@ static int cpmac_probe(struct platform_d - goto fail; +@@ -1146,6 +1146,8 @@ static int cpmac_probe(struct platform_d + goto out; } + ar7_device_reset(pdata->reset_bit); @@ -9,7 +9,7 @@ dev->irq = platform_get_irq_byname(pdev, "irq"); dev->netdev_ops = &cpmac_netdev_ops; -@@ -1232,7 +1234,7 @@ int cpmac_init(void) +@@ -1227,7 +1229,7 @@ int cpmac_init(void) cpmac_mii->reset = cpmac_mdio_reset; cpmac_mii->irq = mii_irqs; @@ -17,8 +17,8 @@ + cpmac_mii->priv = ioremap(ar7_is_titan() ? TITAN_REGS_MDIO : AR7_REGS_MDIO, 256); if (!cpmac_mii->priv) { - printk(KERN_ERR "Can't ioremap mdio registers\n"); -@@ -1243,10 +1245,16 @@ int cpmac_init(void) + pr_err("Can't ioremap mdio registers\n"); +@@ -1238,10 +1240,16 @@ int cpmac_init(void) #warning FIXME: unhardcode gpio&reset bits ar7_gpio_disable(26); ar7_gpio_disable(27); @@ -37,7 +37,7 @@ cpmac_mii->reset(cpmac_mii); for (i = 0; i < 300; i++) { -@@ -1263,7 +1271,11 @@ int cpmac_init(void) +@@ -1258,7 +1266,11 @@ int cpmac_init(void) mask = 0; } diff --git a/target/linux/ar71xx/patches-3.18/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch b/target/linux/ar71xx/patches-3.18/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch index d9b8682f0d..b41c733c5e 100644 --- a/target/linux/ar71xx/patches-3.18/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch +++ b/target/linux/ar71xx/patches-3.18/501-MIPS-ath79-add-mac-argument-to-ath79_register_wmac.patch @@ -48,7 +48,7 @@ #endif /* _ATH79_DEV_WMAC_H */ --- a/arch/mips/ath79/mach-ap81.c +++ b/arch/mips/ath79/mach-ap81.c -@@ -98,7 +98,7 @@ static void __init ap81_setup(void) +@@ -92,7 +92,7 @@ static void __init ap81_setup(void) ap81_gpio_keys); ath79_register_spi(&ap81_spi_data, ap81_spi_info, ARRAY_SIZE(ap81_spi_info)); @@ -59,7 +59,7 @@ --- a/arch/mips/ath79/mach-db120.c +++ b/arch/mips/ath79/mach-db120.c -@@ -134,7 +134,7 @@ static void __init db120_setup(void) +@@ -128,7 +128,7 @@ static void __init db120_setup(void) ath79_register_spi(&db120_spi_data, db120_spi_info, ARRAY_SIZE(db120_spi_info)); ath79_register_usb(); @@ -70,7 +70,7 @@ --- a/arch/mips/ath79/mach-ap121.c +++ b/arch/mips/ath79/mach-ap121.c -@@ -91,7 +91,7 @@ static void __init ap121_setup(void) +@@ -85,7 +85,7 @@ static void __init ap121_setup(void) ath79_register_spi(&ap121_spi_data, ap121_spi_info, ARRAY_SIZE(ap121_spi_info)); ath79_register_usb(); diff --git a/target/linux/ar71xx/patches-3.18/603-MIPS-ath79-ap121-fixes.patch b/target/linux/ar71xx/patches-3.18/603-MIPS-ath79-ap121-fixes.patch index 36139b0905..706e5afdfe 100644 --- a/target/linux/ar71xx/patches-3.18/603-MIPS-ath79-ap121-fixes.patch +++ b/target/linux/ar71xx/patches-3.18/603-MIPS-ath79-ap121-fixes.patch @@ -45,26 +45,22 @@ }; -static struct spi_board_info ap121_spi_info[] = { -- { ++static struct gpio_led ap121_mini_leds_gpio[] __initdata = { + { - .bus_num = 0, - .chip_select = 0, - .max_speed_hz = 25000000, - .modalias = "mx25l1606e", - } --}; -- --static struct ath79_spi_platform_data ap121_spi_data = { -- .bus_num = 0, -- .num_chipselect = 1, --}; -+static struct gpio_led ap121_mini_leds_gpio[] __initdata = { -+ { + .name = "ap121:green:wlan", + .gpio = AP121_MINI_GPIO_LED_WLAN, + .active_low = 0, + }, -+}; -+ + }; + +-static struct ath79_spi_platform_data ap121_spi_data = { +- .bus_num = 0, +- .num_chipselect = 1, +static struct gpio_keys_button ap121_mini_gpio_keys[] __initdata = { + { + .desc = "jumpstart button", @@ -82,8 +78,8 @@ + .gpio = AP121_MINI_GPIO_BTN_RESET, + .active_low = 1, + } -+}; -+ + }; + +static void __init ap121_common_setup(void) +{ + u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); @@ -103,7 +99,7 @@ + /* WAN port */ + ath79_register_eth(0); +} - ++ static void __init ap121_setup(void) { - u8 *cal_data = (u8 *) KSEG1ADDR(AP121_CAL_DATA_ADDR); diff --git a/target/linux/ar71xx/patches-3.18/604-MIPS-ath79-ap81-fixes.patch b/target/linux/ar71xx/patches-3.18/604-MIPS-ath79-ap81-fixes.patch index 2817453a4d..3112eab6bb 100644 --- a/target/linux/ar71xx/patches-3.18/604-MIPS-ath79-ap81-fixes.patch +++ b/target/linux/ar71xx/patches-3.18/604-MIPS-ath79-ap81-fixes.patch @@ -20,7 +20,7 @@ #define AP81_GPIO_LED_STATUS 1 #define AP81_GPIO_LED_AOSS 3 -@@ -67,20 +102,6 @@ static struct gpio_keys_button ap81_gpio +@@ -67,20 +71,6 @@ static struct gpio_keys_button ap81_gpio } }; @@ -41,7 +41,7 @@ static void __init ap81_setup(void) { u8 *cal_data = (u8 *) KSEG1ADDR(AP81_CAL_DATA_ADDR); -@@ -90,10 +105,24 @@ static void __init ap81_setup(void) +@@ -90,10 +80,24 @@ static void __init ap81_setup(void) ath79_register_gpio_keys_polled(-1, AP81_KEYS_POLL_INTERVAL, ARRAY_SIZE(ap81_gpio_keys), ap81_gpio_keys); diff --git a/target/linux/ar71xx/patches-3.18/605-MIPS-ath79-db120-fixes.patch b/target/linux/ar71xx/patches-3.18/605-MIPS-ath79-db120-fixes.patch index d62263fcdf..080165a802 100644 --- a/target/linux/ar71xx/patches-3.18/605-MIPS-ath79-db120-fixes.patch +++ b/target/linux/ar71xx/patches-3.18/605-MIPS-ath79-db120-fixes.patch @@ -67,14 +67,6 @@ }, }; -+static struct ar8327_pad_cfg db120_ar8327_pad0_cfg = { -+ .mode = AR8327_PAD_MAC_RGMII, -+ .txclk_delay_en = true, -+ .rxclk_delay_en = true, -+ .txclk_delay_sel = AR8327_CLK_DELAY_SEL1, -+ .rxclk_delay_sel = AR8327_CLK_DELAY_SEL2, -+}; -+ -static struct spi_board_info db120_spi_info[] = { - { - .bus_num = 0, @@ -82,6 +74,17 @@ - .max_speed_hz = 25000000, - .modalias = "s25sl064a", - } ++static struct ar8327_pad_cfg db120_ar8327_pad0_cfg = { ++ .mode = AR8327_PAD_MAC_RGMII, ++ .txclk_delay_en = true, ++ .rxclk_delay_en = true, ++ .txclk_delay_sel = AR8327_CLK_DELAY_SEL1, ++ .rxclk_delay_sel = AR8327_CLK_DELAY_SEL2, + }; + +-static struct ath79_spi_platform_data db120_spi_data = { +- .bus_num = 0, +- .num_chipselect = 1, +static struct ar8327_led_cfg db120_ar8327_led_cfg = { + .led_ctrl0 = 0x00000000, + .led_ctrl1 = 0xc737c737, @@ -90,21 +93,6 @@ + .open_drain = true, }; --static struct ath79_spi_platform_data db120_spi_data = { -- .bus_num = 0, -- .num_chipselect = 1, -+static struct ar8327_platform_data db120_ar8327_data = { -+ .pad0_cfg = &db120_ar8327_pad0_cfg, -+ .port0_cfg = { -+ .force_link = 1, -+ .speed = AR8327_PORT_SPEED_1000, -+ .duplex = 1, -+ .txpause = 1, -+ .rxpause = 1, -+ }, -+ .led_cfg = &db120_ar8327_led_cfg, - }; - -#ifdef CONFIG_PCI -static struct ath9k_platform_data db120_ath9k_data; - @@ -123,7 +111,18 @@ -{ - memcpy(db120_ath9k_data.eeprom_data, eeprom, - sizeof(db120_ath9k_data.eeprom_data)); -- ++static struct ar8327_platform_data db120_ar8327_data = { ++ .pad0_cfg = &db120_ar8327_pad0_cfg, ++ .port0_cfg = { ++ .force_link = 1, ++ .speed = AR8327_PORT_SPEED_1000, ++ .duplex = 1, ++ .txpause = 1, ++ .rxpause = 1, ++ }, ++ .led_cfg = &db120_ar8327_led_cfg, ++}; + - ath79_pci_set_plat_dev_init(db120_pci_plat_dev_init); - ath79_register_pci(); -} diff --git a/target/linux/ar71xx/patches-3.18/607-MIPS-ath79-ubnt-xm-fixes.patch b/target/linux/ar71xx/patches-3.18/607-MIPS-ath79-ubnt-xm-fixes.patch index 6170a0a868..50be509e6c 100644 --- a/target/linux/ar71xx/patches-3.18/607-MIPS-ath79-ubnt-xm-fixes.patch +++ b/target/linux/ar71xx/patches-3.18/607-MIPS-ath79-ubnt-xm-fixes.patch @@ -88,7 +88,7 @@ ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_xm_leds_gpio), ubnt_xm_leds_gpio); -@@ -114,10 +71,8 @@ static void __init ubnt_xm_init(void) +@@ -114,10 +77,8 @@ static void __init ubnt_xm_init(void) ARRAY_SIZE(ubnt_xm_gpio_keys), ubnt_xm_gpio_keys); diff --git a/target/linux/ar71xx/patches-3.18/609-MIPS-ath79-ap136-fixes.patch b/target/linux/ar71xx/patches-3.18/609-MIPS-ath79-ap136-fixes.patch index af7368a4d9..bf64fc6bf5 100644 --- a/target/linux/ar71xx/patches-3.18/609-MIPS-ath79-ap136-fixes.patch +++ b/target/linux/ar71xx/patches-3.18/609-MIPS-ath79-ap136-fixes.patch @@ -90,6 +90,13 @@ }, }; +-static struct spi_board_info ap136_spi_info[] = { +- { +- .bus_num = 0, +- .chip_select = 0, +- .max_speed_hz = 25000000, +- .modalias = "mx25l6405d", +- } +static struct ar8327_pad_cfg ap136_ar8327_pad0_cfg; +static struct ar8327_pad_cfg ap136_ar8327_pad6_cfg; + @@ -110,26 +117,21 @@ + .txpause = 1, + .rxpause = 1, + }, -+}; -+ --static struct spi_board_info ap136_spi_info[] = { + }; + +-static struct ath79_spi_platform_data ap136_spi_data = { +- .bus_num = 0, +- .num_chipselect = 1, +static struct mdio_board_info ap136_mdio0_info[] = { - { -- .bus_num = 0, -- .chip_select = 0, -- .max_speed_hz = 25000000, -- .modalias = "mx25l6405d", -- } ++ { + .bus_id = "ag71xx-mdio.0", + .phy_addr = 0, + .platform_data = &ap136_ar8327_data, + }, }; --static struct ath79_spi_platform_data ap136_spi_data = { -- .bus_num = 0, -- .num_chipselect = 1, --}; +-#ifdef CONFIG_PCI +-static struct ath9k_platform_data ap136_ath9k_data; +static void __init ap136_common_setup(void) +{ + u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); @@ -149,12 +151,10 @@ + + ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN); --#ifdef CONFIG_PCI --static struct ath9k_platform_data ap136_ath9k_data; +-static int ap136_pci_plat_dev_init(struct pci_dev *dev) + ath79_register_mdio(0, 0x0); + ath79_init_mac(ath79_eth0_data.mac_addr, art + AP136_MAC0_OFFSET, 0); - --static int ap136_pci_plat_dev_init(struct pci_dev *dev) ++ + mdiobus_register_board_info(ap136_mdio0_info, + ARRAY_SIZE(ap136_mdio0_info)); + diff --git a/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch index bab5736735..7e22859343 100644 --- a/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch @@ -835,7 +835,7 @@ --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3677,14 +3677,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -3678,14 +3678,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch b/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch index 056a690ca0..1d461eb642 100644 --- a/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch +++ b/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -169,6 +169,7 @@ +@@ -169,6 +169,7 @@ enum ath79_mach_type { ATH79_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */ ATH79_MACH_UBNT_NANO_M_XW, /* Ubiquiti NanoStation M XW */ ATH79_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */ @@ -10,7 +10,7 @@ ATH79_MACH_UBNT_UAP_PRO, /* Ubiquiti UniFi AP Pro */ --- a/arch/mips/ath79/mach-ubnt-xm.c +++ b/arch/mips/ath79/mach-ubnt-xm.c -@@ -449,12 +449,42 @@ +@@ -449,12 +449,42 @@ static void __init ubnt_loco_m_xw_setup( ath79_register_eth(0); } diff --git a/target/linux/at91/patches/101-ARM-at91-build-dtb-for-q5xr5.patch b/target/linux/at91/patches/101-ARM-at91-build-dtb-for-q5xr5.patch index 0465552c1b..b5a9b68f3d 100644 --- a/target/linux/at91/patches/101-ARM-at91-build-dtb-for-q5xr5.patch +++ b/target/linux/at91/patches/101-ARM-at91-build-dtb-for-q5xr5.patch @@ -1,6 +1,6 @@ --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -20,6 +20,7 @@ +@@ -20,6 +20,7 @@ dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb # sam9g20 dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb diff --git a/target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch b/target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch index 1aec3d00b8..32e1ac540d 100644 --- a/target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch +++ b/target/linux/at91/patches/200-ARM-at91-udc-clockfix-backport.patch @@ -1,6 +1,6 @@ --- a/drivers/usb/gadget/udc/at91_udc.c +++ b/drivers/usb/gadget/udc/at91_udc.c -@@ -870,8 +870,6 @@ +@@ -870,8 +870,6 @@ static void clk_on(struct at91_udc *udc) return; udc->clocked = 1; @@ -9,7 +9,7 @@ clk_enable(udc->iclk); clk_enable(udc->fclk); } -@@ -884,8 +882,6 @@ +@@ -884,8 +882,6 @@ static void clk_off(struct at91_udc *udc udc->gadget.speed = USB_SPEED_UNKNOWN; clk_disable(udc->fclk); clk_disable(udc->iclk); @@ -18,7 +18,7 @@ } /* -@@ -1766,27 +1762,18 @@ +@@ -1766,27 +1762,18 @@ static int at91udc_probe(struct platform udc_reinit(udc); /* get interface and function clocks */ @@ -51,7 +51,7 @@ retval = clk_prepare_enable(udc->iclk); if (retval) -@@ -1860,12 +1847,7 @@ +@@ -1860,12 +1847,7 @@ fail1c: clk_unprepare(udc->iclk); fail1b: clk_unprepare(udc->fclk); @@ -64,7 +64,7 @@ if (!IS_ERR(udc->fclk)) clk_put(udc->fclk); if (!IS_ERR(udc->iclk)) -@@ -1911,15 +1893,11 @@ +@@ -1911,15 +1893,11 @@ static int __exit at91udc_remove(struct res = platform_get_resource(pdev, IORESOURCE_MEM, 0); release_mem_region(res->start, resource_size(res)); diff --git a/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch b/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch index a97850ac91..1da2e4d4f4 100644 --- a/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch +++ b/target/linux/at91/patches/901-AT91-flexibity-default-leds-to-heartbeat.patch @@ -1,6 +1,6 @@ --- a/arch/arm/mach-at91/board-flexibity.c +++ b/arch/arm/mach-at91/board-flexibity.c -@@ -89,49 +89,49 @@ static struct gpio_led flexibity_leds[] +@@ -90,49 +90,49 @@ static struct gpio_led flexibity_leds[] .name = "usb1:green", .gpio = AT91_PIN_PA12, .active_low = 1, diff --git a/target/linux/au1000/patches/003-au1000_eth_ioctl.patch b/target/linux/au1000/patches/003-au1000_eth_ioctl.patch index 78dae580fd..58927f590d 100644 --- a/target/linux/au1000/patches/003-au1000_eth_ioctl.patch +++ b/target/linux/au1000/patches/003-au1000_eth_ioctl.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/amd/au1000_eth.c +++ b/drivers/net/ethernet/amd/au1000_eth.c -@@ -988,10 +988,14 @@ static void au1000_multicast_list(struct +@@ -1113,10 +1113,14 @@ static void au1000_multicast_list(struct writel(reg, &aup->mac->control); } diff --git a/target/linux/au1000/patches/006-codec.patch b/target/linux/au1000/patches/006-codec.patch index 54f4fa9d30..d80cf56ac9 100644 --- a/target/linux/au1000/patches/006-codec.patch +++ b/target/linux/au1000/patches/006-codec.patch @@ -1,8 +1,6 @@ -Index: linux-3.18.8/arch/mips/alchemy/devboards/db1300.c -=================================================================== ---- linux-3.18.8.orig/arch/mips/alchemy/devboards/db1300.c 2015-02-27 02:49:36.000000000 +0100 -+++ linux-3.18.8/arch/mips/alchemy/devboards/db1300.c 2015-03-10 11:36:47.906310432 +0100 -@@ -712,6 +712,7 @@ +--- a/arch/mips/alchemy/devboards/db1300.c ++++ b/arch/mips/alchemy/devboards/db1300.c +@@ -712,6 +712,7 @@ static struct platform_device db1300_lcd /**********************************************************************/ @@ -10,7 +8,7 @@ Index: linux-3.18.8/arch/mips/alchemy/devboards/db1300.c static void db1300_wm97xx_irqen(struct wm97xx *wm, int enable) { if (enable) -@@ -744,6 +745,15 @@ +@@ -744,6 +745,15 @@ static int db1300_wm97xx_probe(struct pl return wm97xx_register_mach_ops(wm, &db1300_wm97xx_ops); } diff --git a/target/linux/bcm53xx/patches-3.18/003-mtd-spi-nor-from-3.19.patch b/target/linux/bcm53xx/patches-3.18/003-mtd-spi-nor-from-3.19.patch index b13a6fb391..815097949e 100644 --- a/target/linux/bcm53xx/patches-3.18/003-mtd-spi-nor-from-3.19.patch +++ b/target/linux/bcm53xx/patches-3.18/003-mtd-spi-nor-from-3.19.patch @@ -234,7 +234,7 @@ spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_ERASE); instr->state = MTD_ERASE_DONE; -@@ -341,11 +380,6 @@ static int spi_nor_lock(struct mtd_info +@@ -341,11 +380,6 @@ static int spi_nor_lock(struct mtd_info if (ret) return ret; @@ -510,7 +510,7 @@ case CFI_MFR_MACRONIX: status = macronix_quad_enable(nor); if (status) { -@@ -909,11 +925,6 @@ static int spi_nor_check(struct spi_nor +@@ -909,11 +925,6 @@ static int spi_nor_check(struct spi_nor return -EINVAL; } diff --git a/target/linux/bcm53xx/patches-3.18/004-mtd-spi-nor-from-3.20.patch b/target/linux/bcm53xx/patches-3.18/004-mtd-spi-nor-from-3.20.patch index 22fb687a82..ab7b0bb573 100644 --- a/target/linux/bcm53xx/patches-3.18/004-mtd-spi-nor-from-3.20.patch +++ b/target/linux/bcm53xx/patches-3.18/004-mtd-spi-nor-from-3.20.patch @@ -77,7 +77,7 @@ static int set_quad_mode(struct spi_nor *nor, struct flash_info *info) { int status; -@@ -907,6 +947,13 @@ static int set_quad_mode(struct spi_nor +@@ -907,6 +947,13 @@ static int set_quad_mode(struct spi_nor return -EINVAL; } return status; diff --git a/target/linux/bcm53xx/patches-3.18/058-ARM-BCM5301X-Add-USB-LED-for-Buffalo-WZR-1750DHP.patch b/target/linux/bcm53xx/patches-3.18/058-ARM-BCM5301X-Add-USB-LED-for-Buffalo-WZR-1750DHP.patch index 6ba241b216..290ea0aea9 100644 --- a/target/linux/bcm53xx/patches-3.18/058-ARM-BCM5301X-Add-USB-LED-for-Buffalo-WZR-1750DHP.patch +++ b/target/linux/bcm53xx/patches-3.18/058-ARM-BCM5301X-Add-USB-LED-for-Buffalo-WZR-1750DHP.patch @@ -9,8 +9,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts -index b359c1e..78e95c0 100644 --- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts +++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts @@ -47,6 +47,12 @@ @@ -26,6 +24,3 @@ index b359c1e..78e95c0 100644 power0 { label = "bcm53xx:red:power"; gpios = <&hc595 1 GPIO_ACTIVE_HIGH>; --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/059-ARM-BCM5301X-Add-DT-for-Buffalo-WXR-1900DHP.patch b/target/linux/bcm53xx/patches-3.18/059-ARM-BCM5301X-Add-DT-for-Buffalo-WXR-1900DHP.patch index 363a3abe3c..4bf5e0491c 100644 --- a/target/linux/bcm53xx/patches-3.18/059-ARM-BCM5301X-Add-DT-for-Buffalo-WXR-1900DHP.patch +++ b/target/linux/bcm53xx/patches-3.18/059-ARM-BCM5301X-Add-DT-for-Buffalo-WXR-1900DHP.patch @@ -15,8 +15,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> 2 files changed, 128 insertions(+) create mode 100644 arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 86217db..d34785a 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -62,6 +62,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ @@ -27,9 +25,6 @@ index 86217db..d34785a 100644 bcm4709-netgear-r8000.dtb dtb-$(CONFIG_ARCH_BCM_63XX) += bcm963138dvt.dtb dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm28155-ap.dtb \ -diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts -new file mode 100644 -index 0000000..548e93b --- /dev/null +++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts @@ -0,0 +1,127 @@ @@ -160,6 +155,3 @@ index 0000000..548e93b + }; + }; +}; --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/060-ARM-BCM5301X-Add-DT-for-SmartRG-SR400ac.patch b/target/linux/bcm53xx/patches-3.18/060-ARM-BCM5301X-Add-DT-for-SmartRG-SR400ac.patch index 3edac1e1ab..2213d3b76e 100644 --- a/target/linux/bcm53xx/patches-3.18/060-ARM-BCM5301X-Add-DT-for-SmartRG-SR400ac.patch +++ b/target/linux/bcm53xx/patches-3.18/060-ARM-BCM5301X-Add-DT-for-SmartRG-SR400ac.patch @@ -14,8 +14,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> 2 files changed, 120 insertions(+) create mode 100644 arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index d34785a..59f7970 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -59,6 +59,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ @@ -26,9 +24,6 @@ index d34785a..59f7970 100644 bcm47081-asus-rt-n18u.dtb \ bcm47081-buffalo-wzr-600dhp2.dtb \ bcm47081-buffalo-wzr-900dhp.dtb \ -diff --git a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts -new file mode 100644 -index 0000000..66dfb53 --- /dev/null +++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts @@ -0,0 +1,119 @@ @@ -151,6 +146,3 @@ index 0000000..66dfb53 + }; + }; +}; --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/061-ARM-BCM5301X-Add-DT-for-Asus-RT-AC68U.patch b/target/linux/bcm53xx/patches-3.18/061-ARM-BCM5301X-Add-DT-for-Asus-RT-AC68U.patch index 618a2cdaab..77ae2f7056 100644 --- a/target/linux/bcm53xx/patches-3.18/061-ARM-BCM5301X-Add-DT-for-Asus-RT-AC68U.patch +++ b/target/linux/bcm53xx/patches-3.18/061-ARM-BCM5301X-Add-DT-for-Asus-RT-AC68U.patch @@ -14,8 +14,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> 2 files changed, 84 insertions(+) create mode 100644 arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 59f7970..1e8b8b7 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -55,6 +55,7 @@ dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb. @@ -26,9 +24,6 @@ index 59f7970..1e8b8b7 100644 bcm4708-buffalo-wzr-1750dhp.dtb \ bcm4708-luxul-xwc-1000.dtb \ bcm4708-netgear-r6250.dtb \ -diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts -new file mode 100644 -index 0000000..8b62836 --- /dev/null +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts @@ -0,0 +1,83 @@ @@ -115,6 +110,3 @@ index 0000000..8b62836 + }; + }; +}; --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/062-ARM-BCM5301X-Add-DT-for-Asus-RT-AC56U.patch b/target/linux/bcm53xx/patches-3.18/062-ARM-BCM5301X-Add-DT-for-Asus-RT-AC56U.patch index 12809ff232..58e33e0598 100644 --- a/target/linux/bcm53xx/patches-3.18/062-ARM-BCM5301X-Add-DT-for-Asus-RT-AC56U.patch +++ b/target/linux/bcm53xx/patches-3.18/062-ARM-BCM5301X-Add-DT-for-Asus-RT-AC56U.patch @@ -14,8 +14,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> 2 files changed, 97 insertions(+) create mode 100644 arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 1e8b8b7..4802376 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -55,6 +55,7 @@ dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb. @@ -26,9 +24,6 @@ index 1e8b8b7..4802376 100644 bcm4708-asus-rt-ac68u.dtb \ bcm4708-buffalo-wzr-1750dhp.dtb \ bcm4708-luxul-xwc-1000.dtb \ -diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts -new file mode 100644 -index 0000000..71cff8d --- /dev/null +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts @@ -0,0 +1,96 @@ @@ -128,6 +123,3 @@ index 0000000..71cff8d + }; + }; +}; --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/133-ARM-BCM5301X-Add-DT-for-Asus-RT-AC87U.patch b/target/linux/bcm53xx/patches-3.18/133-ARM-BCM5301X-Add-DT-for-Asus-RT-AC87U.patch index d3b425d7da..5105cec5ae 100644 --- a/target/linux/bcm53xx/patches-3.18/133-ARM-BCM5301X-Add-DT-for-Asus-RT-AC87U.patch +++ b/target/linux/bcm53xx/patches-3.18/133-ARM-BCM5301X-Add-DT-for-Asus-RT-AC87U.patch @@ -14,8 +14,6 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> 2 files changed, 66 insertions(+) create mode 100644 arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 4802376..4e76f68 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -65,6 +65,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ @@ -26,9 +24,6 @@ index 4802376..4e76f68 100644 bcm4709-buffalo-wxr-1900dhp.dtb \ bcm4709-netgear-r8000.dtb dtb-$(CONFIG_ARCH_BCM_63XX) += bcm963138dvt.dtb -diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts -new file mode 100644 -index 0000000..aedf3c4 --- /dev/null +++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts @@ -0,0 +1,65 @@ @@ -97,6 +92,3 @@ index 0000000..aedf3c4 + }; + }; +}; --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/320-ARM-BCM5301X-Add-Buffalo-WXR-1900DHP-clock-and-USB-p.patch b/target/linux/bcm53xx/patches-3.18/320-ARM-BCM5301X-Add-Buffalo-WXR-1900DHP-clock-and-USB-p.patch index 4eaf5a7068..af4c6b2bc6 100644 --- a/target/linux/bcm53xx/patches-3.18/320-ARM-BCM5301X-Add-Buffalo-WXR-1900DHP-clock-and-USB-p.patch +++ b/target/linux/bcm53xx/patches-3.18/320-ARM-BCM5301X-Add-Buffalo-WXR-1900DHP-clock-and-USB-p.patch @@ -13,8 +13,6 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) -diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts -index 4b02a0b..2c691a8 100644 --- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts +++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts @@ -24,6 +24,23 @@ @@ -41,6 +39,3 @@ index 4b02a0b..2c691a8 100644 leds { compatible = "gpio-leds"; --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/700-bgmac-add-support-for-the-3rd-bus-core-device.patch b/target/linux/bcm53xx/patches-3.18/700-bgmac-add-support-for-the-3rd-bus-core-device.patch index 18ee2f1cbe..6be75bb806 100644 --- a/target/linux/bcm53xx/patches-3.18/700-bgmac-add-support-for-the-3rd-bus-core-device.patch +++ b/target/linux/bcm53xx/patches-3.18/700-bgmac-add-support-for-the-3rd-bus-core-device.patch @@ -15,11 +15,9 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> drivers/net/ethernet/broadcom/bgmac.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) -diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c -index f66c416..0614cae 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1561,11 +1561,20 @@ static int bgmac_probe(struct bcma_device *core) +@@ -1561,11 +1561,20 @@ static int bgmac_probe(struct bcma_devic struct net_device *net_dev; struct bgmac *bgmac; struct ssb_sprom *sprom = &core->bus->sprom; @@ -43,7 +41,7 @@ index f66c416..0614cae 100644 pr_err("Unsupported core_unit %d\n", core->core_unit); return -ENOTSUPP; } -@@ -1600,8 +1609,17 @@ static int bgmac_probe(struct bcma_device *core) +@@ -1600,8 +1609,17 @@ static int bgmac_probe(struct bcma_devic } bgmac->cmn = core->bus->drv_gmac_cmn.core; @@ -63,6 +61,3 @@ index f66c416..0614cae 100644 bgmac->phyaddr &= BGMAC_PHY_MASK; if (bgmac->phyaddr == BGMAC_PHY_MASK) { bgmac_err(bgmac, "No PHY found\n"); --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch index 14de694dd0..6015c4aaca 100644 --- a/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch +++ b/target/linux/bcm53xx/patches-3.18/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch @@ -11,8 +11,6 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> drivers/net/phy/b53/b53_common.c | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/drivers/net/phy/b53/b53_common.c b/drivers/net/phy/b53/b53_common.c -index 2b05d5d..fd3b39c 100644 --- a/drivers/net/phy/b53/b53_common.c +++ b/drivers/net/phy/b53/b53_common.c @@ -25,6 +25,7 @@ @@ -23,7 +21,7 @@ index 2b05d5d..fd3b39c 100644 #include "b53_regs.h" #include "b53_priv.h" -@@ -1313,6 +1314,11 @@ static int b53_switch_init(struct b53_device *dev) +@@ -1313,6 +1314,11 @@ static int b53_switch_init(struct b53_de sw_dev->cpu_port = 5; } @@ -35,6 +33,3 @@ index 2b05d5d..fd3b39c 100644 /* cpu port is always last */ sw_dev->ports = sw_dev->cpu_port + 1; dev->enabled_ports |= BIT(sw_dev->cpu_port); --- -1.8.4.5 - diff --git a/target/linux/bcm53xx/patches-3.18/901-mtd-bcm47xxpart-workaround-for-Asus-RT-AC87U-asus-pa.patch b/target/linux/bcm53xx/patches-3.18/901-mtd-bcm47xxpart-workaround-for-Asus-RT-AC87U-asus-pa.patch index 886b22a1eb..c1dfa92013 100644 --- a/target/linux/bcm53xx/patches-3.18/901-mtd-bcm47xxpart-workaround-for-Asus-RT-AC87U-asus-pa.patch +++ b/target/linux/bcm53xx/patches-3.18/901-mtd-bcm47xxpart-workaround-for-Asus-RT-AC87U-asus-pa.patch @@ -12,8 +12,6 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> drivers/mtd/bcm47xxpart.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) -diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c -index 34314f9..d08d329 100644 --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c @@ -14,6 +14,7 @@ @@ -24,7 +22,7 @@ index 34314f9..d08d329 100644 #include <uapi/linux/magic.h> -@@ -135,6 +136,17 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -135,6 +136,17 @@ static int bcm47xxpart_parse(struct mtd_ break; } @@ -42,6 +40,3 @@ index 34314f9..d08d329 100644 /* Read beginning of the block */ if (mtd_read(master, offset, BCM47XXPART_BYTES_TO_READ, &bytes_read, (uint8_t *)buf) < 0) { --- -1.8.4.5 - diff --git a/target/linux/brcm2708/patches-3.18/0001-Main-bcm2708-linux-port.patch b/target/linux/brcm2708/patches-3.18/0001-Main-bcm2708-linux-port.patch index af320ccedf..79ac4edf3a 100644 --- a/target/linux/brcm2708/patches-3.18/0001-Main-bcm2708-linux-port.patch +++ b/target/linux/brcm2708/patches-3.18/0001-Main-bcm2708-linux-port.patch @@ -612,7 +612,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com> +CONFIG_LIBCRC32C=y --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c -@@ -166,6 +166,16 @@ void arch_cpu_idle_dead(void) +@@ -172,6 +172,16 @@ void arch_cpu_idle_dead(void) } #endif diff --git a/target/linux/brcm2708/patches-3.18/0004-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-3.18/0004-Add-dwc_otg-driver.patch index 0623c49e4c..580ba613ce 100644 --- a/target/linux/brcm2708/patches-3.18/0004-Add-dwc_otg-driver.patch +++ b/target/linux/brcm2708/patches-3.18/0004-Add-dwc_otg-driver.patch @@ -159,7 +159,7 @@ Signed-off-by: Kari Suvanto <karis79@gmail.com> } --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c -@@ -1889,6 +1889,85 @@ free_interfaces: +@@ -1872,6 +1872,85 @@ free_interfaces: if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) cp->string = usb_cache_string(dev, cp->desc.iConfiguration); diff --git a/target/linux/brcm2708/patches-3.18/0027-bcm2835-add-v4l2-camera-device.patch b/target/linux/brcm2708/patches-3.18/0027-bcm2835-add-v4l2-camera-device.patch index 8e8071db42..95df5c3ed6 100644 --- a/target/linux/brcm2708/patches-3.18/0027-bcm2835-add-v4l2-camera-device.patch +++ b/target/linux/brcm2708/patches-3.18/0027-bcm2835-add-v4l2-camera-device.patch @@ -111,7 +111,7 @@ Signed-off-by: Luke Diamand <luked@broadcom.com> +$ v4l2-ctl --list-formats --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig -@@ -126,6 +126,7 @@ config VIDEO_S3C_CAMIF +@@ -124,6 +124,7 @@ config VIDEO_S3C_CAMIF source "drivers/media/platform/soc_camera/Kconfig" source "drivers/media/platform/exynos4-is/Kconfig" source "drivers/media/platform/s5p-tv/Kconfig" diff --git a/target/linux/brcm2708/patches-3.18/0043-pcm512x-Use-a-range-macro-for-Volume-and-rename-to-P.patch b/target/linux/brcm2708/patches-3.18/0043-pcm512x-Use-a-range-macro-for-Volume-and-rename-to-P.patch index 5d1aba3490..1ede655c8b 100644 --- a/target/linux/brcm2708/patches-3.18/0043-pcm512x-Use-a-range-macro-for-Volume-and-rename-to-P.patch +++ b/target/linux/brcm2708/patches-3.18/0043-pcm512x-Use-a-range-macro-for-Volume-and-rename-to-P.patch @@ -20,6 +20,6 @@ DAC ouput stages. - PCM512x_DIGITAL_VOLUME_3, 0, 255, 1, digital_tlv), +SOC_DOUBLE_R_RANGE_TLV("PCM", PCM512x_DIGITAL_VOLUME_2, + PCM512x_DIGITAL_VOLUME_3, 0, 40, 255, 1, digital_tlv), - SOC_DOUBLE_TLV("Playback Volume", PCM512x_ANALOG_GAIN_CTRL, + SOC_DOUBLE_TLV("Analogue Playback Volume", PCM512x_ANALOG_GAIN_CTRL, PCM512x_LAGN_SHIFT, PCM512x_RAGN_SHIFT, 1, 1, analog_tlv), - SOC_DOUBLE_TLV("Playback Boost Volume", PCM512x_ANALOG_GAIN_BOOST, + SOC_DOUBLE_TLV("Analogue Playback Boost Volume", PCM512x_ANALOG_GAIN_BOOST, diff --git a/target/linux/brcm47xx/patches-3.18/030-01-MIPS-BCM47XX-Get-rid-of-calls-to-KSEG1ADDR.patch b/target/linux/brcm47xx/patches-3.18/030-01-MIPS-BCM47XX-Get-rid-of-calls-to-KSEG1ADDR.patch index 4b2f6a27e2..6f33548996 100644 --- a/target/linux/brcm47xx/patches-3.18/030-01-MIPS-BCM47XX-Get-rid-of-calls-to-KSEG1ADDR.patch +++ b/target/linux/brcm47xx/patches-3.18/030-01-MIPS-BCM47XX-Get-rid-of-calls-to-KSEG1ADDR.patch @@ -18,8 +18,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/nvram.c | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 2bed73a..e07976b 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -23,13 +23,13 @@ @@ -127,6 +125,3 @@ index 2bed73a..e07976b 100644 } #endif --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/030-02-MIPS-BCM47XX-Make-ssb-init-NVRAM-instead-of-bcm47xx-.patch b/target/linux/brcm47xx/patches-3.18/030-02-MIPS-BCM47XX-Make-ssb-init-NVRAM-instead-of-bcm47xx-.patch index 07a782da8f..ce924d90bf 100644 --- a/target/linux/brcm47xx/patches-3.18/030-02-MIPS-BCM47XX-Make-ssb-init-NVRAM-instead-of-bcm47xx-.patch +++ b/target/linux/brcm47xx/patches-3.18/030-02-MIPS-BCM47XX-Make-ssb-init-NVRAM-instead-of-bcm47xx-.patch @@ -22,8 +22,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> drivers/ssb/driver_mipscore.c | 14 +++++++++- 3 files changed, 23 insertions(+), 22 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index e07976b..fecc5ae 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -98,7 +98,14 @@ found: @@ -42,7 +40,7 @@ index e07976b..fecc5ae 100644 { void __iomem *iobase; int err; -@@ -114,25 +121,6 @@ static int bcm47xx_nvram_init_from_mem(u32 base, u32 lim) +@@ -114,25 +121,6 @@ static int bcm47xx_nvram_init_from_mem(u return err; } @@ -77,8 +75,6 @@ index e07976b..fecc5ae 100644 #endif #ifdef CONFIG_BCM47XX_BCMA case BCM47XX_BUS_TYPE_BCMA: -diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h -index 36a3fc1..676be22 100644 --- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h @@ -32,6 +32,7 @@ struct nvram_header { @@ -89,8 +85,6 @@ index 36a3fc1..676be22 100644 extern int bcm47xx_nvram_getenv(char *name, char *val, size_t val_len); static inline void bcm47xx_nvram_parse_macaddr(char *buf, u8 macaddr[6]) -diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c -index 0907706..7b986f9 100644 --- a/drivers/ssb/driver_mipscore.c +++ b/drivers/ssb/driver_mipscore.c @@ -15,6 +15,9 @@ @@ -103,7 +97,7 @@ index 0907706..7b986f9 100644 #include "ssb_private.h" -@@ -210,6 +213,7 @@ static void ssb_mips_serial_init(struct ssb_mipscore *mcore) +@@ -210,6 +213,7 @@ static void ssb_mips_serial_init(struct static void ssb_mips_flash_detect(struct ssb_mipscore *mcore) { struct ssb_bus *bus = mcore->dev->bus; @@ -111,7 +105,7 @@ index 0907706..7b986f9 100644 struct ssb_pflash *pflash = &mcore->pflash; /* When there is no chipcommon on the bus there is 4MB flash */ -@@ -242,7 +246,15 @@ static void ssb_mips_flash_detect(struct ssb_mipscore *mcore) +@@ -242,7 +246,15 @@ static void ssb_mips_flash_detect(struct } ssb_pflash: @@ -128,6 +122,3 @@ index 0907706..7b986f9 100644 ssb_pflash_data.width = pflash->buswidth; ssb_pflash_resource.start = pflash->window; ssb_pflash_resource.end = pflash->window + pflash->window_size; --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/030-03-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch b/target/linux/brcm47xx/patches-3.18/030-03-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch index a616fcc0e0..000e4b5ac4 100644 --- a/target/linux/brcm47xx/patches-3.18/030-03-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch +++ b/target/linux/brcm47xx/patches-3.18/030-03-MIPS-BCM47XX-Make-bcma-init-NVRAM-instead-of-bcm47xx.patch @@ -20,11 +20,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> drivers/bcma/driver_mips.c | 13 +++++++++++-- 2 files changed, 13 insertions(+), 42 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index fecc5ae..21712fb 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c -@@ -121,48 +121,10 @@ int bcm47xx_nvram_init_from_mem(u32 base, u32 lim) +@@ -121,48 +121,10 @@ int bcm47xx_nvram_init_from_mem(u32 base return err; } @@ -75,8 +73,6 @@ index fecc5ae..21712fb 100644 return -ENXIO; } -diff --git a/drivers/bcma/driver_mips.c b/drivers/bcma/driver_mips.c -index 004d6aa..8a653dc 100644 --- a/drivers/bcma/driver_mips.c +++ b/drivers/bcma/driver_mips.c @@ -20,6 +20,9 @@ @@ -89,7 +85,7 @@ index 004d6aa..8a653dc 100644 enum bcma_boot_dev { BCMA_BOOT_DEV_UNK = 0, -@@ -316,10 +319,16 @@ static void bcma_core_mips_flash_detect(struct bcma_drv_mips *mcore) +@@ -316,10 +319,16 @@ static void bcma_core_mips_flash_detect( switch (boot_dev) { case BCMA_BOOT_DEV_PARALLEL: case BCMA_BOOT_DEV_SERIAL: @@ -108,6 +104,3 @@ index 004d6aa..8a653dc 100644 break; default: break; --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/030-04-MIPS-BCM47XX-Move-SPROM-fallback-code-into-sprom.c.patch b/target/linux/brcm47xx/patches-3.18/030-04-MIPS-BCM47XX-Move-SPROM-fallback-code-into-sprom.c.patch index fe4962993b..e38fde42b6 100644 --- a/target/linux/brcm47xx/patches-3.18/030-04-MIPS-BCM47XX-Move-SPROM-fallback-code-into-sprom.c.patch +++ b/target/linux/brcm47xx/patches-3.18/030-04-MIPS-BCM47XX-Move-SPROM-fallback-code-into-sprom.c.patch @@ -20,8 +20,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/sprom.c | 68 +++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 56 deletions(-) -diff --git a/arch/mips/bcm47xx/bcm47xx_private.h b/arch/mips/bcm47xx/bcm47xx_private.h -index f1cc9d0..12a112d 100644 --- a/arch/mips/bcm47xx/bcm47xx_private.h +++ b/arch/mips/bcm47xx/bcm47xx_private.h @@ -6,6 +6,9 @@ @@ -34,8 +32,6 @@ index f1cc9d0..12a112d 100644 /* buttons.c */ int __init bcm47xx_buttons_register(void); -diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c -index c00585d..444c65a 100644 --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c @@ -102,23 +102,6 @@ static void bcm47xx_machine_halt(void) @@ -62,7 +58,7 @@ index c00585d..444c65a 100644 static int bcm47xx_get_invariants(struct ssb_bus *bus, struct ssb_init_invariants *iv) { -@@ -144,11 +127,6 @@ static void __init bcm47xx_register_ssb(void) +@@ -144,11 +127,6 @@ static void __init bcm47xx_register_ssb( char buf[100]; struct ssb_mipscore *mcore; @@ -74,7 +70,7 @@ index c00585d..444c65a 100644 err = ssb_bus_ssbbus_register(&(bcm47xx_bus.ssb), SSB_ENUM_BASE, bcm47xx_get_invariants); if (err) -@@ -171,44 +149,10 @@ static void __init bcm47xx_register_ssb(void) +@@ -171,44 +149,10 @@ static void __init bcm47xx_register_ssb( #endif #ifdef CONFIG_BCM47XX_BCMA @@ -135,11 +131,9 @@ index c00585d..444c65a 100644 bcm47xx_register_ssb(); bcm47xx_set_system_type(bcm47xx_bus.ssb.chip_id); #endif -diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c -index 41226b6..e772e77 100644 --- a/arch/mips/bcm47xx/sprom.c +++ b/arch/mips/bcm47xx/sprom.c -@@ -801,3 +801,71 @@ void bcm47xx_fill_bcma_boardinfo(struct bcma_boardinfo *boardinfo, +@@ -801,3 +801,71 @@ void bcm47xx_fill_bcma_boardinfo(struct nvram_read_u16(prefix, NULL, "boardtype", &boardinfo->type, 0, true); } #endif @@ -211,6 +205,3 @@ index 41226b6..e772e77 100644 + pr_warn("Failed to registered bcma SPROM handler\n"); +#endif +} --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/030-05-MIPS-BCM47XX-Initialize-bcma-bus-later-with-mm-avail.patch b/target/linux/brcm47xx/patches-3.18/030-05-MIPS-BCM47XX-Initialize-bcma-bus-later-with-mm-avail.patch index 54680de0b7..1e77063804 100644 --- a/target/linux/brcm47xx/patches-3.18/030-05-MIPS-BCM47XX-Initialize-bcma-bus-later-with-mm-avail.patch +++ b/target/linux/brcm47xx/patches-3.18/030-05-MIPS-BCM47XX-Initialize-bcma-bus-later-with-mm-avail.patch @@ -21,11 +21,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/setup.c | 33 +++++++++++++++++++++++++++------ 3 files changed, 38 insertions(+), 6 deletions(-) -diff --git a/arch/mips/bcm47xx/bcm47xx_private.h b/arch/mips/bcm47xx/bcm47xx_private.h -index 12a112d..ea909a5 100644 --- a/arch/mips/bcm47xx/bcm47xx_private.h +++ b/arch/mips/bcm47xx/bcm47xx_private.h -@@ -15,6 +15,9 @@ int __init bcm47xx_buttons_register(void); +@@ -15,6 +15,9 @@ int __init bcm47xx_buttons_register(void /* leds.c */ void __init bcm47xx_leds_register(void); @@ -35,8 +33,6 @@ index 12a112d..ea909a5 100644 /* workarounds.c */ void __init bcm47xx_workarounds(void); -diff --git a/arch/mips/bcm47xx/irq.c b/arch/mips/bcm47xx/irq.c -index e0585b7..21b4497 100644 --- a/arch/mips/bcm47xx/irq.c +++ b/arch/mips/bcm47xx/irq.c @@ -22,6 +22,8 @@ @@ -61,11 +57,9 @@ index e0585b7..21b4497 100644 #ifdef CONFIG_BCM47XX_BCMA if (bcm47xx_bus_type == BCM47XX_BUS_TYPE_BCMA) { bcma_write32(bcm47xx_bus.bcma.bus.drv_mips.core, -diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c -index 444c65a..e43b504 100644 --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c -@@ -156,15 +156,14 @@ static void __init bcm47xx_register_bcma(void) +@@ -156,15 +156,14 @@ static void __init bcm47xx_register_bcma err = bcma_host_soc_register(&bcm47xx_bus.bcma); if (err) panic("Failed to register BCMA bus (err %d)", err); @@ -115,6 +109,3 @@ index 444c65a..e43b504 100644 bcm47xx_board_detect(); mips_set_machine_name(bcm47xx_board_get_name()); } --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/030-06-MIPS-BCM47XX-Use-mtd-as-an-alternative-way-API-to-ge.patch b/target/linux/brcm47xx/patches-3.18/030-06-MIPS-BCM47XX-Use-mtd-as-an-alternative-way-API-to-ge.patch index 7f19d3ac65..1e6bc2f20b 100644 --- a/target/linux/brcm47xx/patches-3.18/030-06-MIPS-BCM47XX-Use-mtd-as-an-alternative-way-API-to-ge.patch +++ b/target/linux/brcm47xx/patches-3.18/030-06-MIPS-BCM47XX-Use-mtd-as-an-alternative-way-API-to-ge.patch @@ -20,8 +20,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/nvram.c | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 21712fb..8b64991 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -13,12 +13,10 @@ @@ -38,7 +36,7 @@ index 21712fb..8b64991 100644 static char nvram_buf[NVRAM_SPACE]; static const u32 nvram_sizes[] = {0x8000, 0xF000, 0x10000}; -@@ -123,7 +121,43 @@ int bcm47xx_nvram_init_from_mem(u32 base, u32 lim) +@@ -123,7 +121,43 @@ int bcm47xx_nvram_init_from_mem(u32 base static int nvram_init(void) { @@ -83,6 +81,3 @@ index 21712fb..8b64991 100644 return -ENXIO; } --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/030-07-MIPS-BCM47XX-Clean-up-nvram-header.patch b/target/linux/brcm47xx/patches-3.18/030-07-MIPS-BCM47XX-Clean-up-nvram-header.patch index b4a07919b7..31d14a96f6 100644 --- a/target/linux/brcm47xx/patches-3.18/030-07-MIPS-BCM47XX-Clean-up-nvram-header.patch +++ b/target/linux/brcm47xx/patches-3.18/030-07-MIPS-BCM47XX-Clean-up-nvram-header.patch @@ -23,8 +23,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h | 35 +--------------------- 3 files changed, 33 insertions(+), 39 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 8b64991..c5c381c 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -18,6 +18,19 @@ @@ -47,7 +45,7 @@ index 8b64991..c5c381c 100644 static char nvram_buf[NVRAM_SPACE]; static const u32 nvram_sizes[] = {0x8000, 0xF000, 0x10000}; -@@ -28,7 +41,7 @@ static u32 find_nvram_size(void __iomem *end) +@@ -28,7 +41,7 @@ static u32 find_nvram_size(void __iomem for (i = 0; i < ARRAY_SIZE(nvram_sizes); i++) { header = (struct nvram_header *)(end - nvram_sizes[i]); @@ -56,7 +54,7 @@ index 8b64991..c5c381c 100644 return nvram_sizes[i]; } -@@ -63,13 +76,13 @@ static int nvram_find_and_copy(void __iomem *iobase, u32 lim) +@@ -63,13 +76,13 @@ static int nvram_find_and_copy(void __io /* Try embedded NVRAM at 4 KB and 1 KB as last resorts */ header = (struct nvram_header *)(iobase + 4096); @@ -90,11 +88,9 @@ index 8b64991..c5c381c 100644 { char *var, *value, *end, *eq; int err; -diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c -index e772e77..2eff7fe 100644 --- a/arch/mips/bcm47xx/sprom.c +++ b/arch/mips/bcm47xx/sprom.c -@@ -136,6 +136,20 @@ static void nvram_read_leddc(const char *prefix, const char *name, +@@ -136,6 +136,20 @@ static void nvram_read_leddc(const char *leddc_off_time = (val >> 16) & 0xff; } @@ -115,8 +111,6 @@ index e772e77..2eff7fe 100644 static void nvram_read_macaddr(const char *prefix, const char *name, u8 val[6], bool fallback) { -diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h -index 676be22..ee59ffe 100644 --- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h @@ -14,41 +14,8 @@ @@ -162,6 +156,3 @@ index 676be22..ee59ffe 100644 int bcm47xx_nvram_gpio_pin(const char *name); #endif /* __BCM47XX_NVRAM_H */ --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-01-MIPS-BCM47XX-Support-SPROM-prefixes-for-PCI-devices.patch b/target/linux/brcm47xx/patches-3.18/031-01-MIPS-BCM47XX-Support-SPROM-prefixes-for-PCI-devices.patch index 095338f61d..e78b159e6f 100644 --- a/target/linux/brcm47xx/patches-3.18/031-01-MIPS-BCM47XX-Support-SPROM-prefixes-for-PCI-devices.patch +++ b/target/linux/brcm47xx/patches-3.18/031-01-MIPS-BCM47XX-Support-SPROM-prefixes-for-PCI-devices.patch @@ -17,11 +17,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/sprom.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) -diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c -index 2eff7fe..eff9205 100644 --- a/arch/mips/bcm47xx/sprom.c +++ b/arch/mips/bcm47xx/sprom.c -@@ -836,6 +836,38 @@ static int bcm47xx_get_sprom_ssb(struct ssb_bus *bus, struct ssb_sprom *out) +@@ -836,6 +836,38 @@ static int bcm47xx_get_sprom_ssb(struct #endif #if defined(CONFIG_BCM47XX_BCMA) @@ -60,7 +58,7 @@ index 2eff7fe..eff9205 100644 static int bcm47xx_get_sprom_bcma(struct bcma_bus *bus, struct ssb_sprom *out) { char prefix[10]; -@@ -847,6 +879,7 @@ static int bcm47xx_get_sprom_bcma(struct bcma_bus *bus, struct ssb_sprom *out) +@@ -847,6 +879,7 @@ static int bcm47xx_get_sprom_bcma(struct snprintf(prefix, sizeof(prefix), "pci/%u/%u/", bus->host_pci->bus->number + 1, PCI_SLOT(bus->host_pci->devfn)); @@ -68,6 +66,3 @@ index 2eff7fe..eff9205 100644 bcm47xx_fill_sprom(out, prefix, false); return 0; case BCMA_HOSTTYPE_SOC: --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-02-MIPS-BCM47XX-Fix-detecting-Microsoft-MN-700-Asus-WL5.patch b/target/linux/brcm47xx/patches-3.18/031-02-MIPS-BCM47XX-Fix-detecting-Microsoft-MN-700-Asus-WL5.patch deleted file mode 100644 index 25125af197..0000000000 --- a/target/linux/brcm47xx/patches-3.18/031-02-MIPS-BCM47XX-Fix-detecting-Microsoft-MN-700-Asus-WL5.patch +++ /dev/null @@ -1,38 +0,0 @@ -From e0c3678ae640db049f738f30b5f23cde740799ac Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> -Date: Wed, 1 Apr 2015 16:01:02 +0200 -Subject: [PATCH] MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Since the day of adding this code it was broken. We were iterating over -a wrong array and checking for wrong NVRAM entry. - -Signed-off-by: Rafał Miłecki <zajec5@gmail.com> -Cc: linux-mips@linux-mips.org -Cc: Hauke Mehrtens <hauke@hauke-m.de> -Patchwork: https://patchwork.linux-mips.org/patch/9654/ -Signed-off-by: Ralf Baechle <ralf@linux-mips.org> ---- - arch/mips/bcm47xx/board.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/mips/bcm47xx/board.c b/arch/mips/bcm47xx/board.c -index b3ae068..3fd369d 100644 ---- a/arch/mips/bcm47xx/board.c -+++ b/arch/mips/bcm47xx/board.c -@@ -247,8 +247,8 @@ static __init const struct bcm47xx_board_type *bcm47xx_board_get_nvram(void) - } - - if (bcm47xx_nvram_getenv("hardware_version", buf1, sizeof(buf1)) >= 0 && -- bcm47xx_nvram_getenv("boardtype", buf2, sizeof(buf2)) >= 0) { -- for (e2 = bcm47xx_board_list_boot_hw; e2->value1; e2++) { -+ bcm47xx_nvram_getenv("boardnum", buf2, sizeof(buf2)) >= 0) { -+ for (e2 = bcm47xx_board_list_hw_version_num; e2->value1; e2++) { - if (!strstarts(buf1, e2->value1) && - !strcmp(buf2, e2->value2)) - return &e2->board; --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-03-MIPS-BCM47XX-Use-helpers-for-reading-NVRAM-content.patch b/target/linux/brcm47xx/patches-3.18/031-03-MIPS-BCM47XX-Use-helpers-for-reading-NVRAM-content.patch index a028d9d67e..9c9865ff83 100644 --- a/target/linux/brcm47xx/patches-3.18/031-03-MIPS-BCM47XX-Use-helpers-for-reading-NVRAM-content.patch +++ b/target/linux/brcm47xx/patches-3.18/031-03-MIPS-BCM47XX-Use-helpers-for-reading-NVRAM-content.patch @@ -18,11 +18,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/nvram.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index c5c381c..5e4ae04 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c -@@ -91,7 +91,6 @@ static int nvram_find_and_copy(void __iomem *iobase, u32 lim) +@@ -91,7 +91,6 @@ static int nvram_find_and_copy(void __io return -ENXIO; found: @@ -51,6 +49,3 @@ index c5c381c..5e4ae04 100644 return 0; } --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-04-MIPS-BCM47XX-Use-strnchr-to-avoid-reading-out-of-the.patch b/target/linux/brcm47xx/patches-3.18/031-04-MIPS-BCM47XX-Use-strnchr-to-avoid-reading-out-of-the.patch index 7b16835ae9..ee2e2732ff 100644 --- a/target/linux/brcm47xx/patches-3.18/031-04-MIPS-BCM47XX-Use-strnchr-to-avoid-reading-out-of-the.patch +++ b/target/linux/brcm47xx/patches-3.18/031-04-MIPS-BCM47XX-Use-strnchr-to-avoid-reading-out-of-the.patch @@ -16,8 +16,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/nvram.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 5e4ae04..d805d8a 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -175,7 +175,7 @@ static int nvram_init(void) @@ -29,7 +27,7 @@ index 5e4ae04..d805d8a 100644 if (!name) return -EINVAL; -@@ -191,7 +191,9 @@ int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len) +@@ -191,7 +191,9 @@ int bcm47xx_nvram_getenv(const char *nam end = nvram_buf + sizeof(nvram_buf) - 2; end[0] = end[1] = '\0'; for (; *var; var = value + strlen(value) + 1) { @@ -40,6 +38,3 @@ index 5e4ae04..d805d8a 100644 if (!eq) break; value = eq + 1; --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch b/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch index d073a06d32..c1c0927cec 100644 --- a/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch +++ b/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch @@ -39,8 +39,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> delete mode 100644 arch/mips/include/asm/mach-bcm47xx/bcm47xx_nvram.h create mode 100644 include/linux/bcm47xx_nvram.h -diff --git a/arch/mips/bcm47xx/board.c b/arch/mips/bcm47xx/board.c -index b3ae068..6e85130 100644 --- a/arch/mips/bcm47xx/board.c +++ b/arch/mips/bcm47xx/board.c @@ -1,8 +1,8 @@ @@ -53,8 +51,6 @@ index b3ae068..6e85130 100644 struct bcm47xx_board_type { const enum bcm47xx_board board; -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index d805d8a..7c77a88 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -16,7 +16,7 @@ @@ -66,8 +62,6 @@ index d805d8a..7c77a88 100644 #define NVRAM_MAGIC 0x48534C46 /* 'FLSH' */ #define NVRAM_SPACE 0x8000 -diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c -index e43b504..b26c9c2 100644 --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c @@ -42,7 +42,6 @@ @@ -78,8 +72,6 @@ index e43b504..b26c9c2 100644 #include <bcm47xx_board.h> union bcm47xx_bus bcm47xx_bus; -diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c -index eff9205..c114b02 100644 --- a/arch/mips/bcm47xx/sprom.c +++ b/arch/mips/bcm47xx/sprom.c @@ -27,7 +27,6 @@ @@ -90,8 +82,6 @@ index eff9205..c114b02 100644 #include <linux/if_ether.h> #include <linux/etherdevice.h> -diff --git a/arch/mips/bcm47xx/time.c b/arch/mips/bcm47xx/time.c -index 2c85d92..5b46510 100644 --- a/arch/mips/bcm47xx/time.c +++ b/arch/mips/bcm47xx/time.c @@ -27,7 +27,6 @@ @@ -102,8 +92,6 @@ index 2c85d92..5b46510 100644 #include <bcm47xx_board.h> void __init plat_time_init(void) -diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h -index 7527c1d..8ed77f6 100644 --- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h @@ -22,6 +22,7 @@ @@ -139,8 +127,6 @@ index 7527c1d..8ed77f6 100644 - -#endif /* __BCM47XX_NVRAM_H */ +#include <linux/bcm47xx_nvram.h> -diff --git a/drivers/bcma/driver_mips.c b/drivers/bcma/driver_mips.c -index 04faf6d..24424f3 100644 --- a/drivers/bcma/driver_mips.c +++ b/drivers/bcma/driver_mips.c @@ -21,7 +21,7 @@ @@ -152,11 +138,9 @@ index 04faf6d..24424f3 100644 #endif enum bcma_boot_dev { -diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c -index bd5916a..77363d6 100644 --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c -@@ -400,7 +400,7 @@ static void b44_set_flow_ctrl(struct b44 *bp, u32 local, u32 remote) +@@ -400,7 +400,7 @@ static void b44_set_flow_ctrl(struct b44 } #ifdef CONFIG_BCM47XX @@ -165,8 +149,6 @@ index bd5916a..77363d6 100644 static void b44_wap54g10_workaround(struct b44 *bp) { char buf[20]; -diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c -index 0469f72..be059df 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c @@ -18,7 +18,7 @@ @@ -178,8 +160,6 @@ index 0469f72..be059df 100644 static const struct bcma_device_id bgmac_bcma_tbl[] = { BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_4706_MAC_GBIT, BCMA_ANY_REV, BCMA_ANY_CLASS), -diff --git a/drivers/ssb/driver_chipcommon_pmu.c b/drivers/ssb/driver_chipcommon_pmu.c -index 1173a09..0942841 100644 --- a/drivers/ssb/driver_chipcommon_pmu.c +++ b/drivers/ssb/driver_chipcommon_pmu.c @@ -14,7 +14,7 @@ @@ -191,8 +171,6 @@ index 1173a09..0942841 100644 #endif #include "ssb_private.h" -diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c -index 7b986f9..f87efef 100644 --- a/drivers/ssb/driver_mipscore.c +++ b/drivers/ssb/driver_mipscore.c @@ -16,7 +16,7 @@ @@ -204,9 +182,6 @@ index 7b986f9..f87efef 100644 #endif #include "ssb_private.h" -diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h -new file mode 100644 -index 0000000..b12b07e --- /dev/null +++ b/include/linux/bcm47xx_nvram.h @@ -0,0 +1,34 @@ @@ -244,6 +219,3 @@ index 0000000..b12b07e +#endif + +#endif /* __BCM47XX_NVRAM_H */ --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-06-MIPS-BCM47XX-Fix-coding-style-to-match-kernel-standa.patch b/target/linux/brcm47xx/patches-3.18/031-06-MIPS-BCM47XX-Fix-coding-style-to-match-kernel-standa.patch index 0e93447e30..826307b325 100644 --- a/target/linux/brcm47xx/patches-3.18/031-06-MIPS-BCM47XX-Fix-coding-style-to-match-kernel-standa.patch +++ b/target/linux/brcm47xx/patches-3.18/031-06-MIPS-BCM47XX-Fix-coding-style-to-match-kernel-standa.patch @@ -25,8 +25,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/time.c | 1 - 8 files changed, 34 insertions(+), 30 deletions(-) -diff --git a/arch/mips/bcm47xx/bcm47xx_private.h b/arch/mips/bcm47xx/bcm47xx_private.h -index ea909a5..41796be 100644 --- a/arch/mips/bcm47xx/bcm47xx_private.h +++ b/arch/mips/bcm47xx/bcm47xx_private.h @@ -1,6 +1,10 @@ @@ -40,8 +38,6 @@ index ea909a5..41796be 100644 #include <linux/kernel.h> /* prom.c */ -diff --git a/arch/mips/bcm47xx/board.c b/arch/mips/bcm47xx/board.c -index 6e85130..d4a5a51 100644 --- a/arch/mips/bcm47xx/board.c +++ b/arch/mips/bcm47xx/board.c @@ -330,9 +330,8 @@ void __init bcm47xx_board_detect(void) @@ -55,8 +51,6 @@ index 6e85130..d4a5a51 100644 board_detected = bcm47xx_board_get_nvram(); bcm47xx_board.board = board_detected->board; -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 7c77a88..6a97732 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -18,8 +18,10 @@ @@ -83,7 +77,7 @@ index 7c77a88..6a97732 100644 for (i = 0; i < sizeof(struct nvram_header); i += 4) *dst++ = __raw_readl(src++); for (; i < header->len && i < NVRAM_SPACE && i < size; i += 4) -@@ -189,7 +191,8 @@ int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len) +@@ -189,7 +191,8 @@ int bcm47xx_nvram_getenv(const char *nam /* Look for name=value and return value */ var = &nvram_buf[sizeof(struct nvram_header)]; end = nvram_buf + sizeof(nvram_buf) - 2; @@ -93,7 +87,7 @@ index 7c77a88..6a97732 100644 for (; *var; var = value + strlen(value) + 1) { data_left = end - var; -@@ -197,11 +200,10 @@ int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len) +@@ -197,11 +200,10 @@ int bcm47xx_nvram_getenv(const char *nam if (!eq) break; value = eq + 1; @@ -122,8 +116,6 @@ index 7c77a88..6a97732 100644 err = snprintf(nvram_var, sizeof(nvram_var), "gpio%i", i); if (err <= 0) continue; -diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c -index 1b170bf..ab698ba 100644 --- a/arch/mips/bcm47xx/prom.c +++ b/arch/mips/bcm47xx/prom.c @@ -35,7 +35,6 @@ @@ -143,11 +135,9 @@ index 1b170bf..ab698ba 100644 break; } if (!memcmp(prom_init, prom_init + mem, 32)) -diff --git a/arch/mips/bcm47xx/serial.c b/arch/mips/bcm47xx/serial.c -index 2f5bbd6..df761d3 100644 --- a/arch/mips/bcm47xx/serial.c +++ b/arch/mips/bcm47xx/serial.c -@@ -36,8 +36,8 @@ static int __init uart8250_init_ssb(void) +@@ -36,8 +36,8 @@ static int __init uart8250_init_ssb(void struct plat_serial8250_port *p = &(uart8250_data[i]); struct ssb_serial_port *ssb_port = &(mcore->serial_ports[i]); @@ -158,7 +148,7 @@ index 2f5bbd6..df761d3 100644 p->irq = ssb_port->irq + 2; p->uartclk = ssb_port->baud_base; p->regshift = ssb_port->reg_shift; -@@ -62,8 +62,8 @@ static int __init uart8250_init_bcma(void) +@@ -62,8 +62,8 @@ static int __init uart8250_init_bcma(voi struct bcma_serial_port *bcma_port; bcma_port = &(cc->serial_ports[i]); @@ -169,8 +159,6 @@ index 2f5bbd6..df761d3 100644 p->irq = bcma_port->irq; p->uartclk = bcma_port->baud_base; p->regshift = bcma_port->reg_shift; -diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c -index b26c9c2..82ff9fd 100644 --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c @@ -52,7 +52,7 @@ EXPORT_SYMBOL(bcm47xx_bus_type); @@ -182,7 +170,7 @@ index b26c9c2..82ff9fd 100644 local_irq_disable(); /* Set the watchdog timer to reset immediately */ switch (bcm47xx_bus_type) { -@@ -107,7 +107,7 @@ static int bcm47xx_get_invariants(struct ssb_bus *bus, +@@ -107,7 +107,7 @@ static int bcm47xx_get_invariants(struct char buf[20]; /* Fill boardinfo structure */ @@ -191,7 +179,7 @@ index b26c9c2..82ff9fd 100644 bcm47xx_fill_ssb_boardinfo(&iv->boardinfo, NULL); -@@ -126,7 +126,7 @@ static void __init bcm47xx_register_ssb(void) +@@ -126,7 +126,7 @@ static void __init bcm47xx_register_ssb( char buf[100]; struct ssb_mipscore *mcore; @@ -200,7 +188,7 @@ index b26c9c2..82ff9fd 100644 bcm47xx_get_invariants); if (err) panic("Failed to initialize SSB bus (err %d)", err); -@@ -136,7 +136,7 @@ static void __init bcm47xx_register_ssb(void) +@@ -136,7 +136,7 @@ static void __init bcm47xx_register_ssb( if (strstr(buf, "console=ttyS1")) { struct ssb_serial_port port; @@ -227,11 +215,9 @@ index b26c9c2..82ff9fd 100644 #ifdef CONFIG_BCM47XX_SSB bcm47xx_bus_type = BCM47XX_BUS_TYPE_SSB; bcm47xx_sprom_register_fallbacks(); -diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c -index c114b02..5d32afc 100644 --- a/arch/mips/bcm47xx/sprom.c +++ b/arch/mips/bcm47xx/sprom.c -@@ -780,8 +780,8 @@ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, +@@ -780,8 +780,8 @@ void bcm47xx_fill_sprom(struct ssb_sprom bcm47xx_fill_sprom_path_r4589(sprom, prefix, fallback); break; default: @@ -242,7 +228,7 @@ index c114b02..5d32afc 100644 sprom->revision = 1; bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); bcm47xx_fill_sprom_r12389(sprom, prefix, fallback); -@@ -828,7 +828,7 @@ static int bcm47xx_get_sprom_ssb(struct ssb_bus *bus, struct ssb_sprom *out) +@@ -828,7 +828,7 @@ static int bcm47xx_get_sprom_ssb(struct bcm47xx_fill_sprom(out, prefix, false); return 0; } else { @@ -251,7 +237,7 @@ index c114b02..5d32afc 100644 return -EINVAL; } } -@@ -893,7 +893,7 @@ static int bcm47xx_get_sprom_bcma(struct bcma_bus *bus, struct ssb_sprom *out) +@@ -893,7 +893,7 @@ static int bcm47xx_get_sprom_bcma(struct } return 0; default: @@ -260,8 +246,6 @@ index c114b02..5d32afc 100644 return -EINVAL; } } -diff --git a/arch/mips/bcm47xx/time.c b/arch/mips/bcm47xx/time.c -index 5b46510..74224cf 100644 --- a/arch/mips/bcm47xx/time.c +++ b/arch/mips/bcm47xx/time.c @@ -22,7 +22,6 @@ @@ -272,6 +256,3 @@ index 5b46510..74224cf 100644 #include <linux/init.h> #include <linux/ssb/ssb.h> #include <asm/time.h> --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-07-MIPS-BCM47XX-Include-io.h-directly-and-fix-brace-ind.patch b/target/linux/brcm47xx/patches-3.18/031-07-MIPS-BCM47XX-Include-io.h-directly-and-fix-brace-ind.patch index f7e404f6e3..6f96ee02bd 100644 --- a/target/linux/brcm47xx/patches-3.18/031-07-MIPS-BCM47XX-Include-io.h-directly-and-fix-brace-ind.patch +++ b/target/linux/brcm47xx/patches-3.18/031-07-MIPS-BCM47XX-Include-io.h-directly-and-fix-brace-ind.patch @@ -17,8 +17,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/nvram.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 6a97732..2357ea3 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -11,6 +11,7 @@ @@ -29,7 +27,7 @@ index 6a97732..2357ea3 100644 #include <linux/types.h> #include <linux/module.h> #include <linux/kernel.h> -@@ -203,7 +204,7 @@ int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len) +@@ -203,7 +204,7 @@ int bcm47xx_nvram_getenv(const char *nam if (eq - var == strlen(name) && strncmp(var, name, eq - var) == 0) return snprintf(val, val_len, "%s", value); @@ -38,6 +36,3 @@ index 6a97732..2357ea3 100644 return -ENOENT; } EXPORT_SYMBOL(bcm47xx_nvram_getenv); --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-08-MIPS-BCM47XX-Increase-NVRAM-buffer-size-to-64-KiB.patch b/target/linux/brcm47xx/patches-3.18/031-08-MIPS-BCM47XX-Increase-NVRAM-buffer-size-to-64-KiB.patch index af6ec8e891..a7cc1106b8 100644 --- a/target/linux/brcm47xx/patches-3.18/031-08-MIPS-BCM47XX-Increase-NVRAM-buffer-size-to-64-KiB.patch +++ b/target/linux/brcm47xx/patches-3.18/031-08-MIPS-BCM47XX-Increase-NVRAM-buffer-size-to-64-KiB.patch @@ -19,8 +19,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/nvram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 2357ea3..2ac7482 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -20,7 +20,7 @@ @@ -32,6 +30,3 @@ index 2357ea3..2ac7482 100644 #define NVRAM_MAX_GPIO_ENTRIES 32 #define NVRAM_MAX_GPIO_VALUE_LEN 30 --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-09-MIPS-BCM47XX-Don-t-try-guessing-NVRAM-size-on-MTD-pa.patch b/target/linux/brcm47xx/patches-3.18/031-09-MIPS-BCM47XX-Don-t-try-guessing-NVRAM-size-on-MTD-pa.patch index 50b9f2daca..c40c8b7f89 100644 --- a/target/linux/brcm47xx/patches-3.18/031-09-MIPS-BCM47XX-Don-t-try-guessing-NVRAM-size-on-MTD-pa.patch +++ b/target/linux/brcm47xx/patches-3.18/031-09-MIPS-BCM47XX-Don-t-try-guessing-NVRAM-size-on-MTD-pa.patch @@ -19,8 +19,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/nvram.c | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c -index 2ac7482..ba632ff 100644 --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -139,36 +139,28 @@ static int nvram_init(void) @@ -39,28 +37,29 @@ index 2ac7482..ba632ff 100644 - - if (from < 0) - continue; -- -- err = mtd_read(mtd, from, sizeof(header), &bytes_read, -- (uint8_t *)&header); -- if (!err && header.magic == NVRAM_MAGIC) { -- u8 *dst = (uint8_t *)nvram_buf; -- size_t len = header.len; + err = mtd_read(mtd, 0, sizeof(header), &bytes_read, (uint8_t *)&header); + if (!err && header.magic == NVRAM_MAGIC) { + u8 *dst = (uint8_t *)nvram_buf; + size_t len = header.len; - -- if (header.len > NVRAM_SPACE) { -- pr_err("nvram on flash (%i bytes) is bigger than the reserved space in memory, will just copy the first %i bytes\n", -- header.len, NVRAM_SPACE); -- len = NVRAM_SPACE; -- } ++ + if (header.len > NVRAM_SPACE) { + pr_err("nvram on flash (%i bytes) is bigger than the reserved space in memory, will just copy the first %i bytes\n", + header.len, NVRAM_SPACE); + len = NVRAM_SPACE; + } +- err = mtd_read(mtd, from, sizeof(header), &bytes_read, +- (uint8_t *)&header); +- if (!err && header.magic == NVRAM_MAGIC) { +- u8 *dst = (uint8_t *)nvram_buf; +- size_t len = header.len; +- +- if (header.len > NVRAM_SPACE) { +- pr_err("nvram on flash (%i bytes) is bigger than the reserved space in memory, will just copy the first %i bytes\n", +- header.len, NVRAM_SPACE); +- len = NVRAM_SPACE; +- } +- - err = mtd_read(mtd, from, len, &bytes_read, dst); - if (err) - return err; @@ -74,6 +73,3 @@ index 2ac7482..ba632ff 100644 } #endif --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-10-MIPS-BCM47xx-Keep-ID-entries-for-non-standard-device.patch b/target/linux/brcm47xx/patches-3.18/031-10-MIPS-BCM47xx-Keep-ID-entries-for-non-standard-device.patch index 1f7233b807..89188117ac 100644 --- a/target/linux/brcm47xx/patches-3.18/031-10-MIPS-BCM47xx-Keep-ID-entries-for-non-standard-device.patch +++ b/target/linux/brcm47xx/patches-3.18/031-10-MIPS-BCM47xx-Keep-ID-entries-for-non-standard-device.patch @@ -16,11 +16,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/board.c | 48 ++++++++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 28 deletions(-) -diff --git a/arch/mips/bcm47xx/board.c b/arch/mips/bcm47xx/board.c -index d4a5a51..f936dcc 100644 --- a/arch/mips/bcm47xx/board.c +++ b/arch/mips/bcm47xx/board.c -@@ -40,20 +40,6 @@ struct bcm47xx_board_type_list1 bcm47xx_board_list_model_name[] __initconst = { +@@ -40,20 +40,6 @@ struct bcm47xx_board_type_list1 bcm47xx_ { {0}, NULL}, }; @@ -41,7 +39,7 @@ index d4a5a51..f936dcc 100644 /* hardware_version */ static const struct bcm47xx_board_type_list1 bcm47xx_board_list_hardware_version[] __initconst = { -@@ -202,6 +188,18 @@ struct bcm47xx_board_type_list2 bcm47xx_board_list_board_type_rev[] __initconst +@@ -202,6 +188,18 @@ struct bcm47xx_board_type_list2 bcm47xx_ { {0}, NULL}, }; @@ -60,7 +58,7 @@ index d4a5a51..f936dcc 100644 static const struct bcm47xx_board_type bcm47xx_board_unknown[] __initconst = { {BCM47XX_BOARD_UNKNOWN, "Unknown Board"}, -@@ -225,20 +223,6 @@ static __init const struct bcm47xx_board_type *bcm47xx_board_get_nvram(void) +@@ -225,20 +223,6 @@ static __init const struct bcm47xx_board } } @@ -81,7 +79,7 @@ index d4a5a51..f936dcc 100644 if (bcm47xx_nvram_getenv("hardware_version", buf1, sizeof(buf1)) >= 0) { for (e1 = bcm47xx_board_list_hardware_version; e1->value1; e1++) { if (strstarts(buf1, e1->value1)) -@@ -314,6 +298,14 @@ static __init const struct bcm47xx_board_type *bcm47xx_board_get_nvram(void) +@@ -314,6 +298,14 @@ static __init const struct bcm47xx_board return &e2->board; } } @@ -96,6 +94,3 @@ index d4a5a51..f936dcc 100644 return bcm47xx_board_unknown; } --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-11-MIPS-BCM47xx-Devices-database-update-for-4.1-or-4.2.patch b/target/linux/brcm47xx/patches-3.18/031-11-MIPS-BCM47xx-Devices-database-update-for-4.1-or-4.2.patch index e81a99f7c3..6e6166cad2 100644 --- a/target/linux/brcm47xx/patches-3.18/031-11-MIPS-BCM47xx-Devices-database-update-for-4.1-or-4.2.patch +++ b/target/linux/brcm47xx/patches-3.18/031-11-MIPS-BCM47xx-Devices-database-update-for-4.1-or-4.2.patch @@ -18,8 +18,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 4 ++++ 4 files changed, 36 insertions(+) -diff --git a/arch/mips/bcm47xx/board.c b/arch/mips/bcm47xx/board.c -index f936dcc..41b9736 100644 --- a/arch/mips/bcm47xx/board.c +++ b/arch/mips/bcm47xx/board.c @@ -151,9 +151,11 @@ static const @@ -34,7 +32,7 @@ index f936dcc..41b9736 100644 {{BCM47XX_BOARD_NETGEAR_WNDR3400VCNA, "Netgear WNDR3400 Vcna"}, "U12H155T01_NETGEAR"}, {{BCM47XX_BOARD_NETGEAR_WNDR3700V3, "Netgear WNDR3700 V3"}, "U12H194T00_NETGEAR"}, {{BCM47XX_BOARD_NETGEAR_WNDR4000, "Netgear WNDR4000"}, "U12H181T00_NETGEAR"}, -@@ -196,6 +198,8 @@ struct bcm47xx_board_type_list2 bcm47xx_board_list_board_type_rev[] __initconst +@@ -196,6 +198,8 @@ struct bcm47xx_board_type_list2 bcm47xx_ static const struct bcm47xx_board_type_list2 bcm47xx_board_list_key_value[] __initconst = { {{BCM47XX_BOARD_ASUS_WL700GE, "Asus WL700"}, "model_no", "WL700"}, @@ -43,11 +41,9 @@ index f936dcc..41b9736 100644 {{BCM47XX_BOARD_LINKSYS_WRTSL54GS, "Linksys WRTSL54GS"}, "machine_name", "WRTSL54GS"}, { {0}, NULL}, }; -diff --git a/arch/mips/bcm47xx/buttons.c b/arch/mips/bcm47xx/buttons.c -index 913182b..276276a 100644 --- a/arch/mips/bcm47xx/buttons.c +++ b/arch/mips/bcm47xx/buttons.c -@@ -252,6 +252,12 @@ bcm47xx_buttons_linksys_wrt160nv3[] __initconst = { +@@ -252,6 +252,12 @@ bcm47xx_buttons_linksys_wrt160nv3[] __in }; static const struct gpio_keys_button @@ -60,7 +56,7 @@ index 913182b..276276a 100644 bcm47xx_buttons_linksys_wrt300nv11[] __initconst = { BCM47XX_GPIO_KEY(4, KEY_UNKNOWN), BCM47XX_GPIO_KEY(6, KEY_RESTART), -@@ -327,6 +333,12 @@ bcm47xx_buttons_netgear_wndr3400v1[] __initconst = { +@@ -327,6 +333,12 @@ bcm47xx_buttons_netgear_wndr3400v1[] __i }; static const struct gpio_keys_button @@ -73,7 +69,7 @@ index 913182b..276276a 100644 bcm47xx_buttons_netgear_wndr3700v3[] __initconst = { BCM47XX_GPIO_KEY(2, KEY_RFKILL), BCM47XX_GPIO_KEY(3, KEY_RESTART), -@@ -516,6 +528,9 @@ int __init bcm47xx_buttons_register(void) +@@ -516,6 +528,9 @@ int __init bcm47xx_buttons_register(void case BCM47XX_BOARD_LINKSYS_WRT160NV3: err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt160nv3); break; @@ -83,7 +79,7 @@ index 913182b..276276a 100644 case BCM47XX_BOARD_LINKSYS_WRT300NV11: err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt300nv11); break; -@@ -557,6 +572,9 @@ int __init bcm47xx_buttons_register(void) +@@ -557,6 +572,9 @@ int __init bcm47xx_buttons_register(void case BCM47XX_BOARD_NETGEAR_WNDR3400V1: err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1); break; @@ -93,11 +89,9 @@ index 913182b..276276a 100644 case BCM47XX_BOARD_NETGEAR_WNDR3700V3: err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3700v3); break; -diff --git a/arch/mips/bcm47xx/leds.c b/arch/mips/bcm47xx/leds.c -index 903a656..0e4ade3 100644 --- a/arch/mips/bcm47xx/leds.c +++ b/arch/mips/bcm47xx/leds.c -@@ -292,6 +292,13 @@ bcm47xx_leds_linksys_wrt160nv3[] __initconst = { +@@ -292,6 +292,13 @@ bcm47xx_leds_linksys_wrt160nv3[] __initc }; static const struct gpio_led @@ -121,8 +115,6 @@ index 903a656..0e4ade3 100644 case BCM47XX_BOARD_LINKSYS_WRT300NV11: bcm47xx_set_pdata(bcm47xx_leds_linksys_wrt300nv11); break; -diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h -index 1f5643b..c41d1dc 100644 --- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h +++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h @@ -67,6 +67,7 @@ enum bcm47xx_board { @@ -153,6 +145,3 @@ index 1f5643b..c41d1dc 100644 BCM47XX_BOARD_NETGEAR_WNDR3400VCNA, BCM47XX_BOARD_NETGEAR_WNDR3700V3, BCM47XX_BOARD_NETGEAR_WNDR4000, --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch b/target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch index eb994facff..482aa49a15 100644 --- a/target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch +++ b/target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch @@ -23,11 +23,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/sprom.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) -diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c -index 5d32afc..77790c9 100644 --- a/arch/mips/bcm47xx/sprom.c +++ b/arch/mips/bcm47xx/sprom.c -@@ -180,6 +180,33 @@ static void nvram_read_alpha2(const char *prefix, const char *name, +@@ -180,6 +180,33 @@ static void nvram_read_alpha2(const char memcpy(val, buf, 2); } @@ -61,7 +59,7 @@ index 5d32afc..77790c9 100644 static void bcm47xx_fill_sprom_r1234589(struct ssb_sprom *sprom, const char *prefix, bool fallback) { -@@ -714,9 +741,6 @@ static void bcm47xx_fill_sprom_ethernet(struct ssb_sprom *sprom, +@@ -714,9 +741,6 @@ static void bcm47xx_fill_sprom_ethernet( static void bcm47xx_fill_board_data(struct ssb_sprom *sprom, const char *prefix, bool fallback) { @@ -71,7 +69,7 @@ index 5d32afc..77790c9 100644 nvram_read_u16(prefix, NULL, "boardtype", &sprom->board_type, 0, true); nvram_read_u32_2(prefix, "boardflags", &sprom->boardflags_lo, &sprom->boardflags_hi, fallback); -@@ -787,6 +811,8 @@ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, +@@ -787,6 +811,8 @@ void bcm47xx_fill_sprom(struct ssb_sprom bcm47xx_fill_sprom_r12389(sprom, prefix, fallback); bcm47xx_fill_sprom_r1(sprom, prefix, fallback); } @@ -80,6 +78,3 @@ index 5d32afc..77790c9 100644 } #ifdef CONFIG_BCM47XX_SSB --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/031-13-MIPS-BCM47xx-Move-filling-most-of-SPROM-to-the-gener.patch b/target/linux/brcm47xx/patches-3.18/031-13-MIPS-BCM47xx-Move-filling-most-of-SPROM-to-the-gener.patch index 6056bdf71b..6a2d64f7f8 100644 --- a/target/linux/brcm47xx/patches-3.18/031-13-MIPS-BCM47xx-Move-filling-most-of-SPROM-to-the-gener.patch +++ b/target/linux/brcm47xx/patches-3.18/031-13-MIPS-BCM47xx-Move-filling-most-of-SPROM-to-the-gener.patch @@ -27,22 +27,19 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> arch/mips/bcm47xx/sprom.c | 605 ++++++++++++++++------------------------------ 1 file changed, 204 insertions(+), 401 deletions(-) -diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c -index 77790c9..68ebf23 100644 --- a/arch/mips/bcm47xx/sprom.c +++ b/arch/mips/bcm47xx/sprom.c -@@ -201,9 +201,211 @@ static void bcm47xx_sprom_fill_auto(struct ssb_sprom *sprom, +@@ -201,9 +201,211 @@ static void bcm47xx_sprom_fill_auto(stru bool fb = fallback; ENTRY(0xfffffffe, u16, pre, "boardrev", board_rev, 0, true); + ENTRY(0x00000002, u16, pre, "boardflags", boardflags_lo, 0, fb); + ENTRY(0xfffffffc, u16, pre, "boardtype", board_type, 0, true); ENTRY(0xfffffffe, u16, pre, "boardnum", board_num, 0, fb); -- -- /* TODO: Move more mappings here */ + ENTRY(0x00000002, u8, pre, "cc", country_code, 0, fb); + ENTRY(0xfffffff8, u8, pre, "regrev", regrev, 0, fb); -+ + +- /* TODO: Move more mappings here */ + ENTRY(0xfffffffe, u8, pre, "ledbh0", gpio0, 0xff, fb); + ENTRY(0xfffffffe, u8, pre, "ledbh1", gpio1, 0xff, fb); + ENTRY(0xfffffffe, u8, pre, "ledbh2", gpio2, 0xff, fb); @@ -245,7 +242,7 @@ index 77790c9..68ebf23 100644 } #undef ENTRY /* It's specififc, uses local variable, don't use it (again). */ -@@ -211,90 +413,12 @@ static void bcm47xx_fill_sprom_r1234589(struct ssb_sprom *sprom, +@@ -211,90 +413,12 @@ static void bcm47xx_fill_sprom_r1234589( const char *prefix, bool fallback) { nvram_read_u16(prefix, NULL, "devid", &sprom->dev_id, 0, fallback); @@ -336,7 +333,7 @@ index 77790c9..68ebf23 100644 nvram_read_leddc(prefix, "leddc", &sprom->leddc_on_time, &sprom->leddc_off_time, fallback); } -@@ -302,309 +426,10 @@ static void bcm47xx_fill_sprom_r3(struct ssb_sprom *sprom, const char *prefix, +@@ -302,309 +426,10 @@ static void bcm47xx_fill_sprom_r3(struct static void bcm47xx_fill_sprom_r4589(struct ssb_sprom *sprom, const char *prefix, bool fallback) { @@ -646,7 +643,7 @@ index 77790c9..68ebf23 100644 static void bcm47xx_fill_sprom_path_r4589(struct ssb_sprom *sprom, const char *prefix, bool fallback) { -@@ -741,7 +566,6 @@ static void bcm47xx_fill_sprom_ethernet(struct ssb_sprom *sprom, +@@ -741,7 +566,6 @@ static void bcm47xx_fill_sprom_ethernet( static void bcm47xx_fill_board_data(struct ssb_sprom *sprom, const char *prefix, bool fallback) { @@ -654,7 +651,7 @@ index 77790c9..68ebf23 100644 nvram_read_u32_2(prefix, "boardflags", &sprom->boardflags_lo, &sprom->boardflags_hi, fallback); nvram_read_u32_2(prefix, "boardflags2", &sprom->boardflags2_lo, -@@ -759,48 +583,29 @@ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, +@@ -759,48 +583,29 @@ void bcm47xx_fill_sprom(struct ssb_sprom switch (sprom->revision) { case 1: bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); @@ -703,7 +700,7 @@ index 77790c9..68ebf23 100644 bcm47xx_fill_sprom_path_r4589(sprom, prefix, fallback); break; default: -@@ -808,8 +613,6 @@ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, +@@ -808,8 +613,6 @@ void bcm47xx_fill_sprom(struct ssb_sprom sprom->revision); sprom->revision = 1; bcm47xx_fill_sprom_r1234589(sprom, prefix, fallback); @@ -712,6 +709,3 @@ index 77790c9..68ebf23 100644 } bcm47xx_sprom_fill_auto(sprom, prefix, fallback); --- -1.8.4.5 - diff --git a/target/linux/brcm47xx/patches-3.18/280-activate_ssb_support_in_usb.patch b/target/linux/brcm47xx/patches-3.18/280-activate_ssb_support_in_usb.patch index c44131f2fe..c4082ab464 100644 --- a/target/linux/brcm47xx/patches-3.18/280-activate_ssb_support_in_usb.patch +++ b/target/linux/brcm47xx/patches-3.18/280-activate_ssb_support_in_usb.patch @@ -15,7 +15,7 @@ This prevents the options from being delete with make kernel_oldconfig. the memory. This only works with the Broadcom SoCs from the --- a/drivers/ssb/Kconfig +++ b/drivers/ssb/Kconfig -@@ -146,6 +146,7 @@ config SSB_SFLASH +@@ -147,6 +147,7 @@ config SSB_SFLASH config SSB_EMBEDDED bool depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE diff --git a/target/linux/brcm47xx/patches-3.18/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch b/target/linux/brcm47xx/patches-3.18/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch index e860acb22c..d7d2d7e59a 100644 --- a/target/linux/brcm47xx/patches-3.18/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch +++ b/target/linux/brcm47xx/patches-3.18/900-ssb-reject-PCI-writes-setting-CardBus-bridge-resourc.patch @@ -15,11 +15,9 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> drivers/ssb/driver_pcicore.c | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/drivers/ssb/driver_pcicore.c b/drivers/ssb/driver_pcicore.c -index 15a7ee3..c603d19 100644 --- a/drivers/ssb/driver_pcicore.c +++ b/drivers/ssb/driver_pcicore.c -@@ -164,6 +164,10 @@ static int ssb_extpci_write_config(struct ssb_pcicore *pc, +@@ -164,6 +164,10 @@ static int ssb_extpci_write_config(struc SSB_WARN_ON(!pc->hostmode); if (unlikely(len != 1 && len != 2 && len != 4)) goto out; @@ -30,6 +28,3 @@ index 15a7ee3..c603d19 100644 addr = get_cfgspace_addr(pc, bus, dev, func, off); if (unlikely(!addr)) goto out; --- -1.8.4.5 - diff --git a/target/linux/brcm63xx/patches-3.18/341-MIPS-BCM63XX-add-support-for-BCM6318.patch b/target/linux/brcm63xx/patches-3.18/341-MIPS-BCM63XX-add-support-for-BCM6318.patch index 9fde790d65..f3f4c6a3eb 100644 --- a/target/linux/brcm63xx/patches-3.18/341-MIPS-BCM63XX-add-support-for-BCM6318.patch +++ b/target/linux/brcm63xx/patches-3.18/341-MIPS-BCM63XX-add-support-for-BCM6318.patch @@ -216,7 +216,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318 periph_bases[1] += PERF_IRQMASK_6328_REG(1); --- a/arch/mips/bcm63xx/prom.c +++ b/arch/mips/bcm63xx/prom.c -@@ -72,7 +72,7 @@ void __init prom_init(void) +@@ -68,7 +68,7 @@ void __init prom_init(void) if (reg & OTP_6328_REG3_TP1_DISABLED) bmips_smp_enabled = 0; @@ -274,7 +274,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318 bcm63xx_reset_bits = bcm6328_reset_bits; --- a/arch/mips/bcm63xx/setup.c +++ b/arch/mips/bcm63xx/setup.c -@@ -71,6 +71,9 @@ void bcm63xx_machine_reboot(void) +@@ -72,6 +72,9 @@ void bcm63xx_machine_reboot(void) case BCM3368_CPU_ID: perf_regs[0] = PERF_EXTIRQ_CFG_REG_3368; break; @@ -284,7 +284,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318 case BCM6328_CPU_ID: perf_regs[0] = PERF_EXTIRQ_CFG_REG_6328; break; -@@ -110,7 +113,7 @@ void bcm63xx_machine_reboot(void) +@@ -111,7 +114,7 @@ void bcm63xx_machine_reboot(void) bcm6348_a1_reboot(); printk(KERN_INFO "triggering watchdog soft-reset...\n"); diff --git a/target/linux/brcm63xx/patches-3.18/344-MIPS-BCM63XX-detect-flash-type-early-and-store-the-r.patch b/target/linux/brcm63xx/patches-3.18/344-MIPS-BCM63XX-detect-flash-type-early-and-store-the-r.patch index a91a29b16c..f5b0e77668 100644 --- a/target/linux/brcm63xx/patches-3.18/344-MIPS-BCM63XX-detect-flash-type-early-and-store-the-r.patch +++ b/target/linux/brcm63xx/patches-3.18/344-MIPS-BCM63XX-detect-flash-type-early-and-store-the-r.patch @@ -43,17 +43,17 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> /* read base address of boot chip select (0) */ --- a/arch/mips/bcm63xx/prom.c +++ b/arch/mips/bcm63xx/prom.c -@@ -18,6 +18,7 @@ +@@ -17,6 +17,7 @@ + #include <bcm63xx_cpu.h> #include <bcm63xx_io.h> #include <bcm63xx_regs.h> - #include <bcm63xx_gpio.h> +#include <bcm63xx_dev_flash.h> void __init prom_init(void) { -@@ -56,6 +57,9 @@ void __init prom_init(void) - /* register gpiochip */ - bcm63xx_gpio_init(); +@@ -52,6 +53,9 @@ void __init prom_init(void) + reg &= ~mask; + bcm_perf_writel(reg, PERF_CKCTL_REG); + /* detect and setup flash access */ + bcm63xx_flash_detect(); diff --git a/target/linux/brcm63xx/patches-3.18/375-MIPS-BCM63XX-switch-to-new-gpio-driver.patch b/target/linux/brcm63xx/patches-3.18/375-MIPS-BCM63XX-switch-to-new-gpio-driver.patch index d561e43f8c..baf97b2f50 100644 --- a/target/linux/brcm63xx/patches-3.18/375-MIPS-BCM63XX-switch-to-new-gpio-driver.patch +++ b/target/linux/brcm63xx/patches-3.18/375-MIPS-BCM63XX-switch-to-new-gpio-driver.patch @@ -7,7 +7,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> --- arch/mips/bcm63xx/boards/board_common.c | 2 + arch/mips/bcm63xx/gpio.c | 147 +++++++------------------------ - arch/mips/bcm63xx/prom.c | 3 - + arch/mips/bcm63xx/setup.c | 3 - 3 files changed, 33 insertions(+), 119 deletions(-) --- a/arch/mips/bcm63xx/boards/board_common.c @@ -202,15 +202,15 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> - return gpiochip_add(&bcm63xx_gpio_chip); } ---- a/arch/mips/bcm63xx/prom.c -+++ b/arch/mips/bcm63xx/prom.c -@@ -54,9 +54,6 @@ void __init prom_init(void) - reg &= ~mask; - bcm_perf_writel(reg, PERF_CKCTL_REG); +--- a/arch/mips/bcm63xx/setup.c ++++ b/arch/mips/bcm63xx/setup.c +@@ -164,9 +164,6 @@ void __init plat_mem_setup(void) + int __init bcm63xx_register_devices(void) + { - /* register gpiochip */ - bcm63xx_gpio_init(); - - /* detect and setup flash access */ - bcm63xx_flash_detect(); + return board_register_devices(); + } diff --git a/target/linux/cns3xxx/patches-3.18/031-pcie_init.patch b/target/linux/cns3xxx/patches-3.18/031-pcie_init.patch index 28c3570775..3c739c559a 100644 --- a/target/linux/cns3xxx/patches-3.18/031-pcie_init.patch +++ b/target/linux/cns3xxx/patches-3.18/031-pcie_init.patch @@ -1,6 +1,6 @@ --- a/arch/arm/mach-cns3xxx/laguna.c +++ b/arch/arm/mach-cns3xxx/laguna.c -@@ -849,7 +849,6 @@ static struct map_desc laguna_io_desc[] +@@ -849,7 +849,6 @@ static struct map_desc laguna_io_desc[] static void __init laguna_map_io(void) { cns3xxx_map_io(); diff --git a/target/linux/cns3xxx/patches-3.18/090-timers.patch b/target/linux/cns3xxx/patches-3.18/090-timers.patch index 2bddc1f67b..a884021384 100644 --- a/target/linux/cns3xxx/patches-3.18/090-timers.patch +++ b/target/linux/cns3xxx/patches-3.18/090-timers.patch @@ -1,6 +1,6 @@ --- a/arch/arm/mach-cns3xxx/core.c +++ b/arch/arm/mach-cns3xxx/core.c -@@ -135,12 +135,13 @@ static void cns3xxx_timer_set_mode(enum +@@ -135,12 +135,13 @@ static void cns3xxx_timer_set_mode(enum switch (mode) { case CLOCK_EVT_MODE_PERIODIC: diff --git a/target/linux/gemini/patches-3.18/002-gemini-rtc.patch b/target/linux/gemini/patches-3.18/002-gemini-rtc.patch index 1c6edd24d7..f16e6a32b2 100644 --- a/target/linux/gemini/patches-3.18/002-gemini-rtc.patch +++ b/target/linux/gemini/patches-3.18/002-gemini-rtc.patch @@ -18,7 +18,7 @@ depends on SH_LANDISK --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile -@@ -60,6 +60,7 @@ obj-$(CONFIG_RTC_DRV_DS3234) += rtc-ds3234.o +@@ -60,6 +60,7 @@ obj-$(CONFIG_RTC_DRV_EFI) += rtc-efi.o obj-$(CONFIG_RTC_DRV_EM3027) += rtc-em3027.o obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o diff --git a/target/linux/gemini/patches-3.18/021-reset-parameters.patch b/target/linux/gemini/patches-3.18/021-reset-parameters.patch index b466badd67..644e513746 100644 --- a/target/linux/gemini/patches-3.18/021-reset-parameters.patch +++ b/target/linux/gemini/patches-3.18/021-reset-parameters.patch @@ -13,9 +13,9 @@ { __raw_writel(RESET_GLOBAL | RESET_CPU1, IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET); ---- a/arch/arm/mach-gemini/common.h 2014-08-23 07:06:06.014200638 -0500 -+++ b/arch/arm/mach-gemini/common.h 2014-08-23 07:07:33.450536466 -0500 -@@ -26,6 +26,6 @@ +--- a/arch/arm/mach-gemini/common.h ++++ b/arch/arm/mach-gemini/common.h +@@ -26,6 +26,6 @@ extern int platform_register_pflash(unsi struct mtd_partition *parts, unsigned int nr_parts); diff --git a/target/linux/gemini/patches-3.18/050-gpio-to-irq.patch b/target/linux/gemini/patches-3.18/050-gpio-to-irq.patch index 18b0abdac6..7572849864 100644 --- a/target/linux/gemini/patches-3.18/050-gpio-to-irq.patch +++ b/target/linux/gemini/patches-3.18/050-gpio-to-irq.patch @@ -1,6 +1,6 @@ ---- a/arch/arm/mach-gemini/gpio.c 2015-03-01 10:34:52.492113048 +0100 -+++ b/arch/arm/mach-gemini/gpio.c 2015-03-01 10:34:59.876498159 +0100 -@@ -196,12 +196,18 @@ +--- a/arch/arm/mach-gemini/gpio.c ++++ b/arch/arm/mach-gemini/gpio.c +@@ -196,12 +196,18 @@ static int gemini_gpio_direction_output( return 0; } diff --git a/target/linux/gemini/patches-3.18/060-cache-fa.diff b/target/linux/gemini/patches-3.18/060-cache-fa.diff index d337607e97..fc74c0af88 100644 --- a/target/linux/gemini/patches-3.18/060-cache-fa.diff +++ b/target/linux/gemini/patches-3.18/060-cache-fa.diff @@ -1,5 +1,5 @@ ---- a/arch/arm/mm/cache-fa.S 2011-01-05 01:50:19.000000000 +0100 -+++ b/arch/arm/mm/cache-fa.S 2012-07-25 14:30:40.883639094 +0200 +--- a/arch/arm/mm/cache-fa.S ++++ b/arch/arm/mm/cache-fa.S @@ -24,7 +24,8 @@ /* * The size of one data cache line. @@ -10,7 +10,7 @@ /* * The total size of the data cache. -@@ -169,7 +170,17 @@ +@@ -169,7 +170,17 @@ ENTRY(fa_flush_kern_dcache_area) * - start - virtual start address * - end - virtual end address */ @@ -28,7 +28,7 @@ tst r0, #CACHE_DLINESIZE - 1 bic r0, r0, #CACHE_DLINESIZE - 1 mcrne p15, 0, r0, c7, c14, 1 @ clean & invalidate D entry -@@ -193,6 +204,10 @@ +@@ -193,6 +204,10 @@ fa_dma_inv_range: * - end - virtual end address */ fa_dma_clean_range: diff --git a/target/linux/gemini/patches-3.18/120-net-add-gemini-gmac-driver.patch b/target/linux/gemini/patches-3.18/120-net-add-gemini-gmac-driver.patch index 64468133b8..5f916abfa4 100644 --- a/target/linux/gemini/patches-3.18/120-net-add-gemini-gmac-driver.patch +++ b/target/linux/gemini/patches-3.18/120-net-add-gemini-gmac-driver.patch @@ -22,8 +22,8 @@ +}; + +#endif /* __NET_GEMINI_PLATFORM_H__ */ ---- a/arch/arm/mach-gemini/common.h 2011-04-19 03:05:29.446367900 +0200 -+++ b/arch/arm/mach-gemini/common.h 2011-04-19 03:07:02.191154293 +0200 +--- a/arch/arm/mach-gemini/common.h ++++ b/arch/arm/mach-gemini/common.h @@ -13,6 +13,7 @@ #define __GEMINI_COMMON_H__ @@ -32,7 +32,7 @@ extern void gemini_map_io(void); extern void gemini_init_irq(void); -@@ -26,6 +27,7 @@ +@@ -26,6 +27,7 @@ extern int platform_register_pflash(unsi struct mtd_partition *parts, unsigned int nr_parts); extern int platform_register_watchdog(void); @@ -40,8 +40,8 @@ extern void gemini_restart(enum reboot_mode mode, const char *cmd); ---- a/arch/arm/mach-gemini/devices.c 2011-04-21 13:01:53.578121892 +0200 -+++ b/arch/arm/mach-gemini/devices.c 2011-04-21 13:14:27.643158445 +0200 +--- a/arch/arm/mach-gemini/devices.c ++++ b/arch/arm/mach-gemini/devices.c @@ -17,6 +17,7 @@ #include <mach/irqs.h> #include <mach/hardware.h> @@ -50,7 +50,7 @@ #include "common.h" static struct plat_serial8250_port serial_platform_data[] = { -@@ -134,3 +134,56 @@ +@@ -134,3 +135,56 @@ int __init platform_register_watchdog(vo { return platform_device_register(&wdt_device); } @@ -107,10 +107,9 @@ + + return platform_device_register(ðernet_device); +} - ---- a/drivers/net/ethernet/Kconfig 2012-01-25 22:19:43.633736456 +0100 -+++ b/drivers/net/ethernet/Kconfig 2012-01-25 22:20:28.582730742 +0100 -@@ -70,6 +70,7 @@ +--- a/drivers/net/ethernet/Kconfig ++++ b/drivers/net/ethernet/Kconfig +@@ -70,6 +70,7 @@ source "drivers/net/ethernet/neterion/Kc source "drivers/net/ethernet/faraday/Kconfig" source "drivers/net/ethernet/freescale/Kconfig" source "drivers/net/ethernet/fujitsu/Kconfig" @@ -118,9 +117,9 @@ source "drivers/net/ethernet/hisilicon/Kconfig" source "drivers/net/ethernet/hp/Kconfig" source "drivers/net/ethernet/ibm/Kconfig" ---- a/drivers/net/ethernet/Makefile 2012-01-27 01:37:10.839114389 +0100 -+++ b/drivers/net/ethernet/Makefile 2012-01-27 01:39:06.102105027 +0100 -@@ -33,6 +33,7 @@ +--- a/drivers/net/ethernet/Makefile ++++ b/drivers/net/ethernet/Makefile +@@ -33,6 +33,7 @@ obj-$(CONFIG_NET_VENDOR_EXAR) += neterio obj-$(CONFIG_NET_VENDOR_FARADAY) += faraday/ obj-$(CONFIG_NET_VENDOR_FREESCALE) += freescale/ obj-$(CONFIG_NET_VENDOR_FUJITSU) += fujitsu/ @@ -128,8 +127,8 @@ obj-$(CONFIG_NET_VENDOR_HISILICON) += hisilicon/ obj-$(CONFIG_NET_VENDOR_HP) += hp/ obj-$(CONFIG_NET_VENDOR_IBM) += ibm/ ---- /dev/null 2012-01-23 21:36:48.249769447 +0100 -+++ b/drivers/net/ethernet/gemini/Kconfig 2012-01-25 22:16:44.285740226 +0100 +--- /dev/null ++++ b/drivers/net/ethernet/gemini/Kconfig @@ -0,0 +1,31 @@ +# +# Gemini device configuration @@ -162,16 +161,16 @@ + This driver supports StorLink SL351x (Gemini) dual Gigabit Ethernet. + +endif # NET_VENDOR_GEMINI ---- /dev/null 2012-01-23 21:36:48.249769447 +0100 -+++ b/drivers/net/ethernet/gemini/Makefile 2012-01-25 22:17:29.698741496 +0100 +--- /dev/null ++++ b/drivers/net/ethernet/gemini/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for the Cortina Gemini network device drivers. +# + +obj-$(CONFIG_GEMINI_SL351X) += sl351x.o ---- /dev/null 2012-01-23 21:36:48.249769447 +0100 -+++ b/drivers/net/ethernet/gemini/sl351x.c 2012-01-27 17:09:51.000000000 +0100 +--- /dev/null ++++ b/drivers/net/ethernet/gemini/sl351x.c @@ -0,0 +1,2340 @@ +/* + * Ethernet device driver for Gemini SoC (SL351x GMAC). diff --git a/target/linux/gemini/patches-3.18/121-arm-gemini-register-ethernet.patch b/target/linux/gemini/patches-3.18/121-arm-gemini-register-ethernet.patch index 8ce3de27fe..5ae896c66f 100644 --- a/target/linux/gemini/patches-3.18/121-arm-gemini-register-ethernet.patch +++ b/target/linux/gemini/patches-3.18/121-arm-gemini-register-ethernet.patch @@ -1,5 +1,5 @@ ---- a/arch/arm/mach-gemini/board-nas4220b.c 2011-04-21 13:19:09.878432930 +0200 -+++ b/arch/arm/mach-gemini/board-nas4220b.c 2011-04-21 13:30:37.555082365 +0200 +--- a/arch/arm/mach-gemini/board-nas4220b.c ++++ b/arch/arm/mach-gemini/board-nas4220b.c @@ -28,9 +28,27 @@ #include <mach/hardware.h> @@ -28,7 +28,7 @@ static struct gpio_led ib4220b_leds[] = { { .name = "nas4220b:orange:hdd", -@@ -87,9 +105,39 @@ +@@ -87,15 +105,47 @@ static struct platform_device ib4220b_ke }, }; @@ -68,7 +68,6 @@ platform_register_uart(); platform_register_pflash(SZ_16M, NULL, 0); platform_device_register(&ib4220b_led_device); -@@ -96,6 +144,8 @@ platform_device_register(&ib4220b_key_device); platform_register_rtc(); platform_register_watchdog(); diff --git a/target/linux/gemini/patches-3.18/130-usb-ehci-fot2g.patch b/target/linux/gemini/patches-3.18/130-usb-ehci-fot2g.patch index d621fe3645..d13554e535 100644 --- a/target/linux/gemini/patches-3.18/130-usb-ehci-fot2g.patch +++ b/target/linux/gemini/patches-3.18/130-usb-ehci-fot2g.patch @@ -1,6 +1,6 @@ ---- a/arch/arm/mach-gemini/devices.c 2011-04-23 01:00:16.738137491 +0200 -+++ b/arch/arm/mach-gemini/devices.c 2011-04-23 01:06:55.539299920 +0200 -@@ -188,3 +188,64 @@ +--- a/arch/arm/mach-gemini/devices.c ++++ b/arch/arm/mach-gemini/devices.c +@@ -188,3 +188,64 @@ int platform_register_ethernet(struct ge return platform_device_register(ðernet_device); } @@ -65,9 +65,9 @@ + return platform_device_register(&usb_device[id]); +} + ---- a/arch/arm/mach-gemini/common.h 2011-04-23 01:09:31.413161153 +0200 -+++ b/arch/arm/mach-gemini/common.h 2011-04-23 01:09:52.426358514 +0200 -@@ -28,6 +28,7 @@ +--- a/arch/arm/mach-gemini/common.h ++++ b/arch/arm/mach-gemini/common.h +@@ -28,6 +28,7 @@ extern int platform_register_pflash(unsi unsigned int nr_parts); extern int platform_register_watchdog(void); extern int platform_register_ethernet(struct gemini_gmac_platform_data *pdata); @@ -77,8 +77,7 @@ --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c -@@ -345,12 +345,14 @@ static void ehci_silence_controller(struct ehci_hcd *ehci) - spin_lock_irq(&ehci->lock); +@@ -346,11 +346,13 @@ static void ehci_silence_controller(stru ehci->rh_state = EHCI_RH_HALTED; ehci_turn_off_all_ports(ehci); @@ -92,7 +91,7 @@ spin_unlock_irq(&ehci->lock); } -@@ -602,7 +604,9 @@ static int ehci_run (struct usb_hcd *hcd) +@@ -602,7 +604,9 @@ static int ehci_run (struct usb_hcd *hcd // Philips, Intel, and maybe others need CMD_RUN before the // root hub will detect new devices (why?); NEC doesn't ehci->command &= ~(CMD_LRESET|CMD_IAAD|CMD_PSE|CMD_ASE|CMD_RESET); @@ -102,7 +101,7 @@ ehci_writel(ehci, ehci->command, &ehci->regs->command); dbg_cmd (ehci, "init", ehci->command); -@@ -622,9 +626,11 @@ static int ehci_run (struct usb_hcd *hcd) +@@ -622,9 +626,11 @@ static int ehci_run (struct usb_hcd *hcd */ down_write(&ehci_cf_port_reset_rwsem); ehci->rh_state = EHCI_RH_RUNNING; @@ -114,7 +113,7 @@ up_write(&ehci_cf_port_reset_rwsem); ehci->last_periodic_enable = ktime_get_real(); -@@ -762,9 +768,10 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) +@@ -762,9 +768,10 @@ static irqreturn_t ehci_irq (struct usb_ pcd_status = status; /* resume root hub? */ @@ -138,9 +137,9 @@ #ifdef CONFIG_USB_EHCI_FSL #include "ehci-fsl.c" #define PLATFORM_DRIVER ehci_fsl_driver ---- a/drivers/usb/host/ehci-timer.c 2012-12-24 18:35:19.695560879 +0100 -+++ b/drivers/usb/host/ehci-timer.c 2012-12-24 18:39:39.813308000 +0100 -@@ -208,7 +208,9 @@ +--- a/drivers/usb/host/ehci-timer.c ++++ b/drivers/usb/host/ehci-timer.c +@@ -208,7 +208,9 @@ static void ehci_handle_controller_death /* Clean up the mess */ ehci->rh_state = EHCI_RH_HALTED; @@ -168,7 +167,7 @@ case 1: --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c -@@ -1072,6 +1072,11 @@ static int ehci_hub_control ( +@@ -1075,6 +1075,11 @@ int ehci_hub_control( /* see what we found out */ temp = check_reset_complete (ehci, wIndex, status_reg, ehci_readl(ehci, status_reg)); @@ -180,26 +179,24 @@ } /* transfer dedicated ports to the companion hc */ ---- a/include/linux/usb/ehci_def.h 2012-12-24 15:01:10.168320497 +0100 -+++ b/include/linux/usb/ehci_def.h 2012-12-24 15:11:43.335575000 +0100 -@@ -110,9 +110,14 @@ +--- a/include/linux/usb/ehci_def.h ++++ b/include/linux/usb/ehci_def.h +@@ -110,8 +110,13 @@ struct ehci_regs { u32 frame_list; /* points to periodic list */ /* ASYNCLISTADDR: offset 0x18 */ u32 async_next; /* address of next async queue head */ - +#ifndef CONFIG_ARCH_GEMINI u32 reserved1[2]; -- +#else + u32 reserved1; + /* PORTSC: offset 0x20 for Faraday OTG */ + u32 port_status[1]; +#endif -+ + /* TXFILLTUNING: offset 0x24 */ u32 txfill_tuning; /* TX FIFO Tuning register */ - #define TXFIFO_DEFAULT (8<<16) /* FIFO burst threshold 8 */ -@@ -123,8 +128,11 @@ +@@ -123,8 +128,11 @@ struct ehci_regs { u32 configured_flag; #define FLAG_CF (1<<0) /* true: we'll support "high speed" */ diff --git a/target/linux/gemini/patches-3.18/132-arm-gemini-register-usb.patch b/target/linux/gemini/patches-3.18/132-arm-gemini-register-usb.patch index 222e485989..2a61d828ea 100644 --- a/target/linux/gemini/patches-3.18/132-arm-gemini-register-usb.patch +++ b/target/linux/gemini/patches-3.18/132-arm-gemini-register-usb.patch @@ -30,7 +30,7 @@ MACHINE_START(RUT100, "Teltonika RUT100") --- a/arch/arm/mach-gemini/board-nas4220b.c +++ b/arch/arm/mach-gemini/board-nas4220b.c -@@ -134,10 +134,23 @@ +@@ -134,10 +134,23 @@ static void __init ib4220b_gmac_init(voi GLOBAL_ARBITRATION1_CTRL)); } diff --git a/target/linux/gemini/patches-3.18/150-gemini-pata.patch b/target/linux/gemini/patches-3.18/150-gemini-pata.patch index 21fd801f91..62a71def76 100644 --- a/target/linux/gemini/patches-3.18/150-gemini-pata.patch +++ b/target/linux/gemini/patches-3.18/150-gemini-pata.patch @@ -15,9 +15,9 @@ #define USB1_VBUS_ON (1 << 23) #define USB0_VBUS_ON (1 << 22) #define APB_CLKOUT_ENABLE (1 << 21) ---- a/arch/arm/mach-gemini/irq.c 2013-02-19 13:38:13.263948000 +0100 -+++ b/arch/arm/mach-gemini/irq.c 2013-02-19 18:24:02.912997292 +0100 -@@ -89,6 +89,9 @@ +--- a/arch/arm/mach-gemini/irq.c ++++ b/arch/arm/mach-gemini/irq.c +@@ -89,6 +89,9 @@ void __init gemini_init_irq(void) irq_set_handler(i, handle_edge_irq); mode |= 1 << i; level |= 1 << i; @@ -29,7 +29,7 @@ } --- a/arch/arm/mach-gemini/common.h +++ b/arch/arm/mach-gemini/common.h -@@ -29,6 +29,7 @@ +@@ -29,6 +29,7 @@ extern int platform_register_pflash(unsi extern int platform_register_watchdog(void); extern int platform_register_ethernet(struct gemini_gmac_platform_data *pdata); extern int platform_register_usb(unsigned int id); @@ -39,7 +39,7 @@ --- a/arch/arm/mach-gemini/devices.c +++ b/arch/arm/mach-gemini/devices.c -@@ -249,3 +249,67 @@ +@@ -249,3 +249,67 @@ int __init platform_register_usb(unsigne return platform_device_register(&usb_device[id]); } @@ -109,7 +109,7 @@ +} --- a/arch/arm/mach-gemini/mm.c +++ b/arch/arm/mach-gemini/mm.c -@@ -24,6 +24,11 @@ +@@ -24,6 +24,11 @@ static struct map_desc gemini_io_desc[] .length = SZ_512K, .type = MT_DEVICE, }, { @@ -123,7 +123,7 @@ .length = SZ_512K, --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig -@@ -536,6 +536,16 @@ config PATA_EFAR +@@ -536,6 +536,16 @@ config PATA_EP93XX If unsure, say N. @@ -142,7 +142,7 @@ depends on PCI --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile -@@ -53,6 +53,7 @@ +@@ -53,6 +53,7 @@ obj-$(CONFIG_PATA_CS5536) += pata_cs5536 obj-$(CONFIG_PATA_CYPRESS) += pata_cypress.o obj-$(CONFIG_PATA_EFAR) += pata_efar.o obj-$(CONFIG_PATA_EP93XX) += pata_ep93xx.o @@ -152,7 +152,7 @@ obj-$(CONFIG_PATA_HPT3X2N) += pata_hpt3x2n.o --- a/arch/arm/mach-gemini/board-nas4220b.c +++ b/arch/arm/mach-gemini/board-nas4220b.c -@@ -146,11 +146,28 @@ +@@ -146,11 +146,28 @@ static void __init usb_ib4220b_init(void GLOBAL_MISC_CTRL)); } @@ -181,7 +181,7 @@ platform_register_uart(); platform_register_pflash(SZ_16M, NULL, 0); platform_device_register(&ib4220b_led_device); -@@ -161,6 +178,8 @@ +@@ -161,6 +178,8 @@ static void __init ib4220b_init(void) platform_register_ethernet(&ib4220b_gmac_data); platform_register_usb(0); platform_register_usb(1); diff --git a/target/linux/gemini/patches-3.18/160-gemini-timers.patch b/target/linux/gemini/patches-3.18/160-gemini-timers.patch index 06251356d2..4b0edb45d1 100644 --- a/target/linux/gemini/patches-3.18/160-gemini-timers.patch +++ b/target/linux/gemini/patches-3.18/160-gemini-timers.patch @@ -1,5 +1,5 @@ ---- a/arch/arm/mach-gemini/time.c 2015-03-25 23:06:03.188317455 +0200 -+++ b/arch/arm/mach-gemini/time.c 2015-03-25 23:06:24.417315486 +0200 +--- a/arch/arm/mach-gemini/time.c ++++ b/arch/arm/mach-gemini/time.c @@ -15,15 +15,18 @@ #include <asm/mach/time.h> #include <linux/clockchips.h> @@ -76,7 +76,7 @@ return 0; } -@@ -66,48 +80,68 @@ +@@ -66,48 +80,68 @@ static void gemini_timer_set_mode(enum c u32 cr; switch (mode) { @@ -176,7 +176,7 @@ { struct clock_event_device *evt = &gemini_clockevent; -@@ -116,14 +150,11 @@ +@@ -116,14 +150,11 @@ static irqreturn_t gemini_timer_interrup } static struct irqaction gemini_timer_irq = { @@ -194,7 +194,7 @@ void __init gemini_timer_init(void) { u32 reg_v; -@@ -151,20 +182,35 @@ +@@ -151,20 +182,35 @@ void __init gemini_timer_init(void) } /* diff --git a/target/linux/generic/patches-3.18/082-usbnet-Fix-tx_packets-stat-for-FLAG_MULTI_FRAME-driv.patch b/target/linux/generic/patches-3.18/082-usbnet-Fix-tx_packets-stat-for-FLAG_MULTI_FRAME-driv.patch deleted file mode 100644 index 2a5e08b04f..0000000000 --- a/target/linux/generic/patches-3.18/082-usbnet-Fix-tx_packets-stat-for-FLAG_MULTI_FRAME-driv.patch +++ /dev/null @@ -1,107 +0,0 @@ -From: Ben Hutchings <ben.hutchings@codethink.co.uk> -Date: Thu, 26 Feb 2015 19:34:37 +0000 -Subject: [PATCH] usbnet: Fix tx_packets stat for FLAG_MULTI_FRAME drivers -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Currently the usbnet core does not update the tx_packets statistic for -drivers with FLAG_MULTI_PACKET and there is no hook in the TX -completion path where they could do this. - -cdc_ncm and dependent drivers are bumping tx_packets stat on the -transmit path while asix and sr9800 aren't updating it at all. - -Add a packet count in struct skb_data so these drivers can fill it -in, initialise it to 1 for other drivers, and add the packet count -to the tx_packets statistic on completion. - -Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk> -Tested-by: Bjørn Mork <bjorn@mork.no> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - ---- a/drivers/net/usb/asix_common.c -+++ b/drivers/net/usb/asix_common.c -@@ -188,6 +188,8 @@ struct sk_buff *asix_tx_fixup(struct usb - memcpy(skb_tail_pointer(skb), &padbytes, sizeof(padbytes)); - skb_put(skb, sizeof(padbytes)); - } -+ -+ usbnet_set_skb_tx_stats(skb, 1); - return skb; - } - ---- a/drivers/net/usb/cdc_ncm.c -+++ b/drivers/net/usb/cdc_ncm.c -@@ -1172,7 +1172,6 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev - - /* return skb */ - ctx->tx_curr_skb = NULL; -- dev->net->stats.tx_packets += ctx->tx_curr_frame_num; - - /* keep private stats: framing overhead and number of NTBs */ - ctx->tx_overhead += skb_out->len - ctx->tx_curr_frame_payload; -@@ -1184,6 +1183,8 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev - */ - dev->net->stats.tx_bytes -= skb_out->len - ctx->tx_curr_frame_payload; - -+ usbnet_set_skb_tx_stats(skb_out, n); -+ - return skb_out; - - exit_no_skb: ---- a/drivers/net/usb/sr9800.c -+++ b/drivers/net/usb/sr9800.c -@@ -144,6 +144,7 @@ static struct sk_buff *sr_tx_fixup(struc - skb_put(skb, sizeof(padbytes)); - } - -+ usbnet_set_skb_tx_stats(skb, 1); - return skb; - } - ---- a/drivers/net/usb/usbnet.c -+++ b/drivers/net/usb/usbnet.c -@@ -1189,8 +1189,7 @@ static void tx_complete (struct urb *urb - struct usbnet *dev = entry->dev; - - if (urb->status == 0) { -- if (!(dev->driver_info->flags & FLAG_MULTI_PACKET)) -- dev->net->stats.tx_packets++; -+ dev->net->stats.tx_packets += entry->packets; - dev->net->stats.tx_bytes += entry->length; - } else { - dev->net->stats.tx_errors++; -@@ -1349,6 +1348,8 @@ netdev_tx_t usbnet_start_xmit (struct sk - urb->transfer_flags |= URB_ZERO_PACKET; - } - entry->length = urb->transfer_buffer_length = length; -+ if (!(info->flags & FLAG_MULTI_PACKET)) -+ usbnet_set_skb_tx_stats(skb, 1); - - spin_lock_irqsave(&dev->txq.lock, flags); - retval = usb_autopm_get_interface_async(dev->intf); ---- a/include/linux/usb/usbnet.h -+++ b/include/linux/usb/usbnet.h -@@ -228,8 +228,20 @@ struct skb_data { /* skb->cb is one of t - struct usbnet *dev; - enum skb_state state; - size_t length; -+ unsigned long packets; - }; - -+/* Drivers that set FLAG_MULTI_PACKET must call this in their -+ * tx_fixup method before returning an skb. -+ */ -+static inline void -+usbnet_set_skb_tx_stats(struct sk_buff *skb, unsigned long packets) -+{ -+ struct skb_data *entry = (struct skb_data *) skb->cb; -+ -+ entry->packets = packets; -+} -+ - extern int usbnet_open(struct net_device *net); - extern int usbnet_stop(struct net_device *net); - extern netdev_tx_t usbnet_start_xmit(struct sk_buff *skb, diff --git a/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch b/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch index f498d4eac6..a5645596f9 100644 --- a/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch +++ b/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch @@ -31,7 +31,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org> &ehci->regs->intr_enable); /* Turn On Interrupts */ --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c -@@ -632,7 +632,7 @@ ehci_hub_status_data (struct usb_hcd *hc +@@ -635,7 +635,7 @@ ehci_hub_status_data (struct usb_hcd *hc * always set, seem to clear PORT_OCC and PORT_CSC when writing to * PORT_POWER; that's surprising, but maybe within-spec. */ @@ -40,7 +40,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org> mask = PORT_CSC | PORT_PEC | PORT_OCC; else mask = PORT_CSC | PORT_PEC; -@@ -992,7 +992,7 @@ int ehci_hub_control( +@@ -995,7 +995,7 @@ int ehci_hub_control( if (temp & PORT_PEC) status |= USB_PORT_STAT_C_ENABLE << 16; diff --git a/target/linux/generic/patches-3.18/259-regmap_dynamic.patch b/target/linux/generic/patches-3.18/259-regmap_dynamic.patch index cf67a7df01..44548ca8cc 100644 --- a/target/linux/generic/patches-3.18/259-regmap_dynamic.patch +++ b/target/linux/generic/patches-3.18/259-regmap_dynamic.patch @@ -71,7 +71,7 @@ #include <linux/mutex.h> #include <linux/err.h> #include <linux/of.h> -@@ -2635,3 +2636,5 @@ static int __init regmap_initcall(void) +@@ -2631,3 +2632,5 @@ static int __init regmap_initcall(void) return 0; } postcore_initcall(regmap_initcall); diff --git a/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch b/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch index 24fd5c7bfa..37ec9934ff 100644 --- a/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch +++ b/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch @@ -60,7 +60,7 @@ v2: incorporated changes suggested by Jonas Gorski core-y += arch/mips/ --- a/arch/mips/include/asm/fpu.h +++ b/arch/mips/include/asm/fpu.h -@@ -168,8 +168,10 @@ static inline int init_fpu(void) +@@ -169,8 +169,10 @@ static inline int init_fpu(void) ret = __own_fpu(); if (!ret) _init_fpu(); diff --git a/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch b/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch index 0c117c2703..7692d3dd42 100644 --- a/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch +++ b/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch @@ -97,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -514,18 +582,21 @@ static struct mtd_part *allocate_partiti +@@ -514,17 +582,20 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ @@ -127,7 +127,6 @@ } slave->mtd.ecclayout = master->ecclayout; - slave->mtd.ecc_step_size = master->ecc_step_size; --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -55,6 +55,10 @@ struct erase_info { diff --git a/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch b/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch index 60279c3c5b..3b4978be84 100644 --- a/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch +++ b/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c -@@ -865,7 +865,7 @@ static int pppoe_sendmsg(struct kiocb *i +@@ -869,7 +869,7 @@ static int pppoe_sendmsg(struct kiocb *i goto end; @@ -9,7 +9,7 @@ 0, GFP_KERNEL); if (!skb) { error = -ENOMEM; -@@ -873,7 +873,7 @@ static int pppoe_sendmsg(struct kiocb *i +@@ -877,7 +877,7 @@ static int pppoe_sendmsg(struct kiocb *i } /* Reserve space for headers. */ diff --git a/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch b/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch index 5732596792..f8bc1f44ed 100644 --- a/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch +++ b/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch @@ -1,6 +1,6 @@ --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c -@@ -1695,27 +1695,7 @@ void netlink_detachskb(struct sock *sk, +@@ -1693,27 +1693,7 @@ void netlink_detachskb(struct sock *sk, static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation) { diff --git a/target/linux/generic/patches-3.18/655-increase_skb_pad.patch b/target/linux/generic/patches-3.18/655-increase_skb_pad.patch index 96da16788a..19344cca3f 100644 --- a/target/linux/generic/patches-3.18/655-increase_skb_pad.patch +++ b/target/linux/generic/patches-3.18/655-increase_skb_pad.patch @@ -1,6 +1,6 @@ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2022,7 +2022,7 @@ static inline int pskb_network_may_pull( +@@ -2023,7 +2023,7 @@ static inline int pskb_network_may_pull( * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) */ #ifndef NET_SKB_PAD diff --git a/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch b/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch index 48277930d4..b326a8b727 100644 --- a/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch +++ b/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch @@ -14,7 +14,7 @@ when needed. --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2067,6 +2067,24 @@ static inline void pskb_trim_unique(stru +@@ -2068,6 +2068,24 @@ static inline void pskb_trim_unique(stru BUG_ON(err); } diff --git a/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch b/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch index db93ee1614..f67ef47879 100644 --- a/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch +++ b/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch @@ -24,11 +24,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net> net/ipv6/route.c | 5 +++-- 2 files changed, 34 insertions(+), 10 deletions(-) -diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c -index 7fde1f2..c217775 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c -@@ -897,21 +897,45 @@ static int ip6_dst_lookup_tail(struct so +@@ -898,21 +898,45 @@ static int ip6_dst_lookup_tail(struct so #endif int err; @@ -83,7 +81,7 @@ index 7fde1f2..c217775 100644 * Here if the dst entry we've looked up --- a/net/ipv6/route.c +++ b/net/ipv6/route.c -@@ -2215,9 +2215,10 @@ int ip6_route_get_saddr(struct net *net, +@@ -2182,9 +2182,10 @@ int ip6_route_get_saddr(struct net *net, unsigned int prefs, struct in6_addr *saddr) { diff --git a/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index bc163cb251..1bf9dc99dc 100644 --- a/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2362,7 +2395,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2363,7 +2396,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -2564,6 +2598,9 @@ static int rt6_fill_node(struct net *net +@@ -2565,6 +2599,9 @@ static int rt6_fill_node(struct net *net case -EACCES: rtm->rtm_type = RTN_PROHIBIT; break; @@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -2817,6 +2854,8 @@ static int ip6_route_dev_notify(struct n +@@ -2818,6 +2855,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -3033,6 +3072,17 @@ static int __net_init ip6_route_net_init +@@ -3034,6 +3073,17 @@ static int __net_init ip6_route_net_init net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); @@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3051,6 +3101,8 @@ out: +@@ -3052,6 +3102,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3068,6 +3120,7 @@ static void __net_exit ip6_route_net_exi +@@ -3069,6 +3121,7 @@ static void __net_exit ip6_route_net_exi #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_blk_hole_entry); @@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3164,6 +3217,9 @@ int __init ip6_route_init(void) +@@ -3165,6 +3218,9 @@ int __init ip6_route_init(void) init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index ad5000e2b9..4a2f36bc0a 100644 --- a/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4003,6 +4003,9 @@ static enum gro_result dev_gro_receive(s +@@ -4001,6 +4001,9 @@ static enum gro_result dev_gro_receive(s enum gro_result ret; int grow; @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (!(skb->dev->features & NETIF_F_GRO)) goto normal; -@@ -5066,6 +5069,48 @@ static void __netdev_adjacent_dev_unlink +@@ -5064,6 +5067,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *private) -@@ -5126,6 +5171,7 @@ static int __netdev_upper_dev_link(struc +@@ -5124,6 +5169,7 @@ static int __netdev_upper_dev_link(struc goto rollback_lower_mesh; } @@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev); return 0; -@@ -5243,6 +5289,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -5241,6 +5287,7 @@ void netdev_upper_dev_unlink(struct net_ list_for_each_entry(i, &upper_dev->all_adj_list.upper, list) __netdev_adjacent_dev_unlink(dev, i->dev); @@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev); } EXPORT_SYMBOL(netdev_upper_dev_unlink); -@@ -5762,6 +5809,7 @@ int dev_set_mac_address(struct net_devic +@@ -5760,6 +5807,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/patches-3.18/721-phy_packets.patch b/target/linux/generic/patches-3.18/721-phy_packets.patch index aa1897cad9..7616817f9b 100644 --- a/target/linux/generic/patches-3.18/721-phy_packets.patch +++ b/target/linux/generic/patches-3.18/721-phy_packets.patch @@ -41,7 +41,7 @@ */ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2053,6 +2053,10 @@ static inline int pskb_trim(struct sk_bu +@@ -2054,6 +2054,10 @@ static inline int pskb_trim(struct sk_bu return (len < skb->len) ? __pskb_trim(skb, len) : 0; } @@ -52,7 +52,7 @@ /** * pskb_trim_unique - remove end from a paged unique (not cloned) buffer * @skb: buffer to alter -@@ -2179,16 +2183,6 @@ static inline struct sk_buff *dev_alloc_ +@@ -2180,16 +2184,6 @@ static inline struct sk_buff *dev_alloc_ } @@ -121,7 +121,7 @@ #include <net/protocol.h> #include <net/dst.h> -@@ -451,6 +452,22 @@ struct sk_buff *__netdev_alloc_skb(struc +@@ -469,6 +470,22 @@ struct sk_buff *__netdev_alloc_skb(struc } EXPORT_SYMBOL(__netdev_alloc_skb); diff --git a/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch b/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch index a2f526282b..e381cc97be 100644 --- a/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch +++ b/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch @@ -74,7 +74,7 @@ * @dev: device the buffer will be used with --- a/include/linux/usb.h +++ b/include/linux/usb.h -@@ -695,6 +695,7 @@ static inline bool usb_device_no_sg_cons +@@ -721,6 +721,7 @@ static inline bool usb_device_no_sg_cons return udev && udev->bus && udev->bus->no_sg_constraint; } diff --git a/target/linux/generic/patches-3.18/902-debloat_proc.patch b/target/linux/generic/patches-3.18/902-debloat_proc.patch index 8b3a5d43f0..52beed2128 100644 --- a/target/linux/generic/patches-3.18/902-debloat_proc.patch +++ b/target/linux/generic/patches-3.18/902-debloat_proc.patch @@ -173,7 +173,7 @@ goto err; --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -2915,6 +2915,8 @@ static __net_initdata struct pernet_oper +@@ -2934,6 +2934,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { diff --git a/target/linux/imx6/patches-3.18/200-pci_designware_add-ability-for-custom-swizzle.patch b/target/linux/imx6/patches-3.18/200-pci_designware_add-ability-for-custom-swizzle.patch index 38e5123507..75218d2a4c 100644 --- a/target/linux/imx6/patches-3.18/200-pci_designware_add-ability-for-custom-swizzle.patch +++ b/target/linux/imx6/patches-3.18/200-pci_designware_add-ability-for-custom-swizzle.patch @@ -11,7 +11,7 @@ Date: Thu Feb 27 01:02:23 2014 -0800 --- a/drivers/pci/host/pcie-designware.c +++ b/drivers/pci/host/pcie-designware.c -@@ -492,6 +492,9 @@ int __init dw_pcie_host_init(struct pcie +@@ -492,6 +492,9 @@ int dw_pcie_host_init(struct pcie_port * if (pp->ops->host_init) pp->ops->host_init(pp); diff --git a/target/linux/ipq806x/patches-3.18/001-spi-qup-Add-DMA-capabilities.patch b/target/linux/ipq806x/patches-3.18/001-spi-qup-Add-DMA-capabilities.patch index 62badd5387..e110bf726c 100644 --- a/target/linux/ipq806x/patches-3.18/001-spi-qup-Add-DMA-capabilities.patch +++ b/target/linux/ipq806x/patches-3.18/001-spi-qup-Add-DMA-capabilities.patch @@ -443,7 +443,7 @@ Signed-off-by: Andy Gross <agross@codeaurora.org> exit: spi_qup_set_state(controller, QUP_STATE_RESET); spin_lock_irqsave(&controller->lock, flags); -@@ -553,6 +816,7 @@ static int spi_qup_probe(struct platform +@@ -554,6 +817,7 @@ static int spi_qup_probe(struct platform master->transfer_one = spi_qup_transfer_one; master->dev.of_node = pdev->dev.of_node; master->auto_runtime_pm = true; @@ -451,7 +451,7 @@ Signed-off-by: Andy Gross <agross@codeaurora.org> platform_set_drvdata(pdev, master); -@@ -618,6 +882,56 @@ static int spi_qup_probe(struct platform +@@ -619,6 +883,56 @@ static int spi_qup_probe(struct platform QUP_ERROR_INPUT_UNDER_RUN | QUP_ERROR_OUTPUT_UNDER_RUN, base + QUP_ERROR_FLAGS_EN); @@ -508,7 +508,7 @@ Signed-off-by: Andy Gross <agross@codeaurora.org> writel_relaxed(0, base + SPI_CONFIG); writel_relaxed(SPI_IO_C_NO_TRI_STATE, base + SPI_IO_CONTROL); -@@ -730,6 +1044,11 @@ static int spi_qup_remove(struct platfor +@@ -731,6 +1045,11 @@ static int spi_qup_remove(struct platfor if (ret) return ret; diff --git a/target/linux/ipq806x/patches-3.18/011-watchdog-qcom-use-timer-devicetree-binding.patch b/target/linux/ipq806x/patches-3.18/011-watchdog-qcom-use-timer-devicetree-binding.patch index 0cd7da1f6d..68489a83b5 100644 --- a/target/linux/ipq806x/patches-3.18/011-watchdog-qcom-use-timer-devicetree-binding.patch +++ b/target/linux/ipq806x/patches-3.18/011-watchdog-qcom-use-timer-devicetree-binding.patch @@ -14,8 +14,6 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> drivers/watchdog/qcom-wdt.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) -diff --git a/drivers/watchdog/qcom-wdt.c b/drivers/watchdog/qcom-wdt.c -index aa85618..aa03ca8 100644 --- a/drivers/watchdog/qcom-wdt.c +++ b/drivers/watchdog/qcom-wdt.c @@ -20,9 +20,9 @@ @@ -31,7 +29,7 @@ index aa85618..aa03ca8 100644 struct qcom_wdt { struct watchdog_device wdd; -@@ -117,6 +117,8 @@ static int qcom_wdt_probe(struct platform_device *pdev) +@@ -117,6 +117,8 @@ static int qcom_wdt_probe(struct platfor { struct qcom_wdt *wdt; struct resource *res; @@ -40,7 +38,7 @@ index aa85618..aa03ca8 100644 int ret; wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL); -@@ -124,6 +126,14 @@ static int qcom_wdt_probe(struct platform_device *pdev) +@@ -124,6 +126,14 @@ static int qcom_wdt_probe(struct platfor return -ENOMEM; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -55,7 +53,7 @@ index aa85618..aa03ca8 100644 wdt->base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(wdt->base)) return PTR_ERR(wdt->base); -@@ -203,9 +213,8 @@ static int qcom_wdt_remove(struct platform_device *pdev) +@@ -203,9 +213,8 @@ static int qcom_wdt_remove(struct platfo } static const struct of_device_id qcom_wdt_of_table[] = { @@ -67,6 +65,3 @@ index aa85618..aa03ca8 100644 { }, }; MODULE_DEVICE_TABLE(of, qcom_wdt_of_table); --- -1.9.1 - diff --git a/target/linux/ipq806x/patches-3.18/012-ARM-qcom-add-description-of-KPSS-WDT-for-IPQ8064.patch b/target/linux/ipq806x/patches-3.18/012-ARM-qcom-add-description-of-KPSS-WDT-for-IPQ8064.patch index 24a093a812..ae9677656e 100644 --- a/target/linux/ipq806x/patches-3.18/012-ARM-qcom-add-description-of-KPSS-WDT-for-IPQ8064.patch +++ b/target/linux/ipq806x/patches-3.18/012-ARM-qcom-add-description-of-KPSS-WDT-for-IPQ8064.patch @@ -13,8 +13,6 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> arch/arm/boot/dts/qcom-ipq8064.dtsi | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) -diff --git a/arch/arm/boot/dts/qcom-ipq8064.dtsi b/arch/arm/boot/dts/qcom-ipq8064.dtsi -index cb225da..d01f618 100644 --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi @@ -60,6 +60,14 @@ @@ -48,6 +46,3 @@ index cb225da..d01f618 100644 cpu-offset = <0x80000>; }; --- -1.9.1 - diff --git a/target/linux/ipq806x/patches-3.18/022-add-db149-dts.patch b/target/linux/ipq806x/patches-3.18/022-add-db149-dts.patch index 9a036fb451..85a0f7246a 100644 --- a/target/linux/ipq806x/patches-3.18/022-add-db149-dts.patch +++ b/target/linux/ipq806x/patches-3.18/022-add-db149-dts.patch @@ -13,8 +13,6 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> 2 files changed, 258 insertions(+) create mode 100644 arch/arm/boot/dts/qcom-ipq8064-db149.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 38c89ca..745360a 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -360,6 +360,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \ @@ -25,9 +23,6 @@ index 38c89ca..745360a 100644 qcom-msm8660-surf.dtb \ qcom-msm8960-cdp.dtb \ qcom-msm8974-sony-xperia-honami.dtb -diff --git a/arch/arm/boot/dts/qcom-ipq8064-db149.dts b/arch/arm/boot/dts/qcom-ipq8064-db149.dts -new file mode 100644 -index 0000000..224c54f --- /dev/null +++ b/arch/arm/boot/dts/qcom-ipq8064-db149.dts @@ -0,0 +1,257 @@ @@ -288,6 +283,3 @@ index 0000000..224c54f + }; + }; +}; --- -1.9.1 - diff --git a/target/linux/ipq806x/patches-3.18/102-soc-qcom-gsbi-Add-support-for-ADM-CRCI-muxing.patch b/target/linux/ipq806x/patches-3.18/102-soc-qcom-gsbi-Add-support-for-ADM-CRCI-muxing.patch index f37ebeb486..752f3f74d5 100644 --- a/target/linux/ipq806x/patches-3.18/102-soc-qcom-gsbi-Add-support-for-ADM-CRCI-muxing.patch +++ b/target/linux/ipq806x/patches-3.18/102-soc-qcom-gsbi-Add-support-for-ADM-CRCI-muxing.patch @@ -1,8 +1,6 @@ -diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt -index 4ce24d4..186e5f4 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt -@@ -6,7 +6,8 @@ configuration settings. The mode setting will govern the input/output mode of +@@ -6,7 +6,8 @@ configuration settings. The mode settin the 4 GSBI IOs. Required properties: @@ -48,8 +46,6 @@ index 4ce24d4..186e5f4 100644 + }; + + -diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig -index 7bd2c94..460b2db 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -4,6 +4,7 @@ @@ -60,8 +56,6 @@ index 7bd2c94..460b2db 100644 help Say y here to enable GSBI support. The GSBI provides control functions for connecting the underlying serial UART, SPI, and I2C -diff --git a/drivers/soc/qcom/qcom_gsbi.c b/drivers/soc/qcom/qcom_gsbi.c -index 729425d..09c669e 100644 --- a/drivers/soc/qcom/qcom_gsbi.c +++ b/drivers/soc/qcom/qcom_gsbi.c @@ -18,22 +18,129 @@ @@ -194,7 +188,7 @@ index 729425d..09c669e 100644 gsbi = devm_kzalloc(&pdev->dev, sizeof(*gsbi), GFP_KERNEL); -@@ -45,6 +152,32 @@ static int gsbi_probe(struct platform_device *pdev) +@@ -45,6 +152,32 @@ static int gsbi_probe(struct platform_de if (IS_ERR(base)) return PTR_ERR(base); @@ -227,7 +221,7 @@ index 729425d..09c669e 100644 if (of_property_read_u32(node, "qcom,mode", &gsbi->mode)) { dev_err(&pdev->dev, "missing mode configuration\n"); return -EINVAL; -@@ -64,6 +197,25 @@ static int gsbi_probe(struct platform_device *pdev) +@@ -64,6 +197,25 @@ static int gsbi_probe(struct platform_de writel_relaxed((gsbi->mode << GSBI_PROTOCOL_SHIFT) | gsbi->crci, base + GSBI_CTRL_REG); @@ -253,6 +247,3 @@ index 729425d..09c669e 100644 /* make sure the gsbi control write is not reordered */ wmb(); --- -1.9.1 - diff --git a/target/linux/ipq806x/patches-3.18/110-DT-PCI-qcom-Document-PCIe-devicetree-bindings.patch b/target/linux/ipq806x/patches-3.18/110-DT-PCI-qcom-Document-PCIe-devicetree-bindings.patch index 95398e0ce8..41f91fae7c 100644 --- a/target/linux/ipq806x/patches-3.18/110-DT-PCI-qcom-Document-PCIe-devicetree-bindings.patch +++ b/target/linux/ipq806x/patches-3.18/110-DT-PCI-qcom-Document-PCIe-devicetree-bindings.patch @@ -27,9 +27,6 @@ Signed-off-by: Stanimir Varbanov <svarbanov@mm-sol.com> 1 files changed, 231 insertions(+), 0 deletions(-) create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie.txt -diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.txt b/Documentation/devicetree/bindings/pci/qcom,pcie.txt -new file mode 100644 -index 0000000..dcf7348 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.txt @@ -0,0 +1,231 @@ diff --git a/target/linux/ipq806x/patches-3.18/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch b/target/linux/ipq806x/patches-3.18/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch index 82170cde80..cb740dedcc 100644 --- a/target/linux/ipq806x/patches-3.18/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch +++ b/target/linux/ipq806x/patches-3.18/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch @@ -31,8 +31,6 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 arch/arm/mach-qcom/Makefile.boot -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 89c4b5c..4583ea5 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -311,7 +311,7 @@ config ARCH_MULTIPLATFORM @@ -44,11 +42,9 @@ index 89c4b5c..4583ea5 100644 select CLKSRC_OF select COMMON_CLK select GENERIC_CLOCKEVENTS -diff --git a/arch/arm/Makefile b/arch/arm/Makefile -index 7453352..5d6f8ac 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile -@@ -240,9 +240,11 @@ MACHINE := arch/arm/mach-$(word 1,$(machine-y))/ +@@ -240,9 +240,11 @@ MACHINE := arch/arm/mach-$(word 1,$(mac else MACHINE := endif @@ -60,13 +56,7 @@ index 7453352..5d6f8ac 100644 machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y)) platdirs := $(patsubst %,arch/arm/plat-%/,$(sort $(plat-y))) -diff --git a/arch/arm/mach-qcom/Makefile.boot b/arch/arm/mach-qcom/Makefile.boot -new file mode 100644 -index 0000000..67a6d5a --- /dev/null +++ b/arch/arm/mach-qcom/Makefile.boot @@ -0,0 +1 @@ +zreladdr-y+= 0x42208000 --- -1.9.1 - diff --git a/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch b/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch index 495df07f42..3ca3eb76a6 100644 --- a/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch +++ b/target/linux/ixp4xx/patches-3.18/001-arm-ixp4xx-set-cohorent_dma_mask-for-ethernet-platfo.patch @@ -18,11 +18,9 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> arch/arm/mach-ixp4xx/vulcan-setup.c | 2 ++ 7 files changed, 14 insertions(+) -Index: linux-3.18.5/arch/arm/mach-ixp4xx/fsg-setup.c -=================================================================== ---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/fsg-setup.c 2015-02-09 13:54:27.000000000 +0100 -+++ linux-3.18.5/arch/arm/mach-ixp4xx/fsg-setup.c 2015-02-09 13:54:43.025969682 +0100 -@@ -142,12 +142,14 @@ +--- a/arch/arm/mach-ixp4xx/fsg-setup.c ++++ b/arch/arm/mach-ixp4xx/fsg-setup.c +@@ -142,12 +142,14 @@ static struct platform_device fsg_eth[] .id = IXP4XX_ETH_NPEB, .dev = { .platform_data = fsg_plat_eth, @@ -37,11 +35,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/fsg-setup.c }, } }; -Index: linux-3.18.5/arch/arm/mach-ixp4xx/goramo_mlr.c -=================================================================== ---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/goramo_mlr.c 2015-02-09 13:54:27.000000000 +0100 -+++ linux-3.18.5/arch/arm/mach-ixp4xx/goramo_mlr.c 2015-02-09 13:54:43.025969682 +0100 -@@ -295,10 +295,12 @@ +--- a/arch/arm/mach-ixp4xx/goramo_mlr.c ++++ b/arch/arm/mach-ixp4xx/goramo_mlr.c +@@ -295,10 +295,12 @@ static struct platform_device device_eth .name = "ixp4xx_eth", .id = IXP4XX_ETH_NPEB, .dev.platform_data = eth_plat, @@ -54,10 +50,8 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/goramo_mlr.c } }; -Index: linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c -=================================================================== ---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c 2015-02-09 13:54:27.000000000 +0100 -+++ linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c 2015-02-09 13:54:43.025969682 +0100 +--- a/arch/arm/mach-ixp4xx/ixdp425-setup.c ++++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c @@ -20,6 +20,7 @@ #include <linux/mtd/nand.h> #include <linux/mtd/partitions.h> @@ -66,7 +60,7 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c #include <linux/gpio.h> #include <asm/types.h> #include <asm/setup.h> -@@ -196,10 +197,12 @@ +@@ -196,10 +197,12 @@ static struct platform_device ixdp425_et .name = "ixp4xx_eth", .id = IXP4XX_ETH_NPEB, .dev.platform_data = ixdp425_plat_eth, @@ -79,11 +73,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/ixdp425-setup.c } }; -Index: linux-3.18.5/arch/arm/mach-ixp4xx/nas100d-setup.c -=================================================================== ---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/nas100d-setup.c 2015-02-09 13:54:27.000000000 +0100 -+++ linux-3.18.5/arch/arm/mach-ixp4xx/nas100d-setup.c 2015-02-09 13:54:43.025969682 +0100 -@@ -170,6 +170,7 @@ +--- a/arch/arm/mach-ixp4xx/nas100d-setup.c ++++ b/arch/arm/mach-ixp4xx/nas100d-setup.c +@@ -170,6 +170,7 @@ static struct platform_device nas100d_et .name = "ixp4xx_eth", .id = IXP4XX_ETH_NPEB, .dev.platform_data = nas100d_plat_eth, @@ -91,11 +83,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/nas100d-setup.c } }; -Index: linux-3.18.5/arch/arm/mach-ixp4xx/nslu2-setup.c -=================================================================== ---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/nslu2-setup.c 2015-02-09 13:54:27.000000000 +0100 -+++ linux-3.18.5/arch/arm/mach-ixp4xx/nslu2-setup.c 2015-02-09 13:54:43.025969682 +0100 -@@ -182,6 +182,7 @@ +--- a/arch/arm/mach-ixp4xx/nslu2-setup.c ++++ b/arch/arm/mach-ixp4xx/nslu2-setup.c +@@ -182,6 +182,7 @@ static struct platform_device nslu2_eth[ .name = "ixp4xx_eth", .id = IXP4XX_ETH_NPEB, .dev.platform_data = nslu2_plat_eth, @@ -103,10 +93,8 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/nslu2-setup.c } }; -Index: linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c -=================================================================== ---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/omixp-setup.c 2015-02-09 13:54:27.000000000 +0100 -+++ linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c 2015-02-09 13:55:01.150008153 +0100 +--- a/arch/arm/mach-ixp4xx/omixp-setup.c ++++ b/arch/arm/mach-ixp4xx/omixp-setup.c @@ -17,6 +17,7 @@ #include <linux/serial_8250.h> #include <linux/mtd/mtd.h> @@ -115,7 +103,7 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c #include <linux/leds.h> #include <asm/setup.h> -@@ -188,10 +189,12 @@ +@@ -188,10 +189,12 @@ static struct platform_device ixdp425_et .name = "ixp4xx_eth", .id = IXP4XX_ETH_NPEB, .dev.platform_data = ixdp425_plat_eth, @@ -128,11 +116,9 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/omixp-setup.c }, }; -Index: linux-3.18.5/arch/arm/mach-ixp4xx/vulcan-setup.c -=================================================================== ---- linux-3.18.5.orig/arch/arm/mach-ixp4xx/vulcan-setup.c 2015-02-09 13:54:27.000000000 +0100 -+++ linux-3.18.5/arch/arm/mach-ixp4xx/vulcan-setup.c 2015-02-09 13:54:43.025969682 +0100 -@@ -139,6 +139,7 @@ +--- a/arch/arm/mach-ixp4xx/vulcan-setup.c ++++ b/arch/arm/mach-ixp4xx/vulcan-setup.c +@@ -139,6 +139,7 @@ static struct platform_device vulcan_eth .id = IXP4XX_ETH_NPEB, .dev = { .platform_data = &vulcan_plat_eth[0], @@ -140,7 +126,7 @@ Index: linux-3.18.5/arch/arm/mach-ixp4xx/vulcan-setup.c }, }, [1] = { -@@ -146,6 +147,7 @@ +@@ -146,6 +147,7 @@ static struct platform_device vulcan_eth .id = IXP4XX_ETH_NPEC, .dev = { .platform_data = &vulcan_plat_eth[1], diff --git a/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch b/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch index 702d1822f7..ceaf21b32c 100644 --- a/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch +++ b/target/linux/ixp4xx/patches-3.18/002-ixp4xx_eth-use-parent-device-for-dma-allocations.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> --- a/drivers/net/ethernet/xscale/ixp4xx_eth.c +++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c -@@ -661,10 +661,10 @@ static inline void queue_put_desc(unsign +@@ -657,10 +657,10 @@ static inline void queue_put_desc(unsign static inline void dma_unmap_tx(struct port *port, struct desc *desc) { #ifdef __ARMEB__ @@ -28,7 +28,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> ALIGN((desc->data & 3) + desc->buf_len, 4), DMA_TO_DEVICE); #endif -@@ -731,9 +731,9 @@ static int eth_poll(struct napi_struct * +@@ -727,9 +727,9 @@ static int eth_poll(struct napi_struct * #ifdef __ARMEB__ if ((skb = netdev_alloc_skb(dev, RX_BUFF_SIZE))) { @@ -40,7 +40,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> dev_kfree_skb(skb); skb = NULL; } -@@ -756,10 +756,11 @@ static int eth_poll(struct napi_struct * +@@ -752,10 +752,11 @@ static int eth_poll(struct napi_struct * #ifdef __ARMEB__ temp = skb; skb = port->rx_buff_tab[n]; @@ -54,7 +54,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> RX_BUFF_SIZE, DMA_FROM_DEVICE); memcpy_swab32((u32 *)skb->data, (u32 *)port->rx_buff_tab[n], ALIGN(NET_IP_ALIGN + desc->pkt_len, 4) / 4); -@@ -878,7 +879,7 @@ static int eth_xmit(struct sk_buff *skb, +@@ -874,7 +875,7 @@ static int eth_xmit(struct sk_buff *skb, memcpy_swab32(mem, (u32 *)((int)skb->data & ~3), bytes / 4); #endif @@ -63,7 +63,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> if (dma_mapping_error(&dev->dev, phys)) { dev_kfree_skb(skb); #ifndef __ARMEB__ -@@ -1128,7 +1129,7 @@ static int init_queues(struct port *port +@@ -1124,7 +1125,7 @@ static int init_queues(struct port *port int i; if (!ports_open) { @@ -72,7 +72,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> POOL_ALLOC_SIZE, 32, 0); if (!dma_pool) return -ENOMEM; -@@ -1156,9 +1157,9 @@ static int init_queues(struct port *port +@@ -1152,9 +1153,9 @@ static int init_queues(struct port *port data = buff; #endif desc->buf_len = MAX_MRU; @@ -84,7 +84,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> free_buffer(buff); return -EIO; } -@@ -1178,7 +1179,7 @@ static void destroy_queues(struct port * +@@ -1174,7 +1175,7 @@ static void destroy_queues(struct port * struct desc *desc = rx_desc_ptr(port, i); buffer_t *buff = port->rx_buff_tab[i]; if (buff) { diff --git a/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch b/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch index 00b7b0cd90..4732d163a4 100644 --- a/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch +++ b/target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch @@ -1,8 +1,6 @@ -Index: linux-3.18.5/drivers/gpio/Kconfig -=================================================================== ---- linux-3.18.5.orig/drivers/gpio/Kconfig 2015-01-30 02:41:03.000000000 +0100 -+++ linux-3.18.5/drivers/gpio/Kconfig 2015-02-09 13:55:16.942041668 +0100 -@@ -794,6 +794,14 @@ +--- a/drivers/gpio/Kconfig ++++ b/drivers/gpio/Kconfig +@@ -794,6 +794,14 @@ config GPIO_RDC321X Support for the RDC R321x SoC GPIOs over southbridge PCI configuration space. @@ -17,19 +15,15 @@ Index: linux-3.18.5/drivers/gpio/Kconfig comment "SPI GPIO expanders:" config GPIO_MAX7301 -Index: linux-3.18.5/drivers/gpio/Makefile -=================================================================== ---- linux-3.18.5.orig/drivers/gpio/Makefile 2015-01-30 02:41:03.000000000 +0100 -+++ linux-3.18.5/drivers/gpio/Makefile 2015-02-09 13:56:05.990145732 +0100 -@@ -106,3 +106,4 @@ +--- a/drivers/gpio/Makefile ++++ b/drivers/gpio/Makefile +@@ -106,3 +106,4 @@ obj-$(CONFIG_GPIO_XILINX) += gpio-xilinx obj-$(CONFIG_GPIO_XTENSA) += gpio-xtensa.o obj-$(CONFIG_GPIO_ZEVIO) += gpio-zevio.o obj-$(CONFIG_GPIO_ZYNQ) += gpio-zynq.o +obj-$(CONFIG_GPIO_GW_I2C_PLD) += gw_i2c_pld.o -Index: linux-3.18.5/drivers/gpio/gw_i2c_pld.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-3.18.5/drivers/gpio/gw_i2c_pld.c 2015-02-09 14:02:00.146895858 +0100 +--- /dev/null ++++ b/drivers/gpio/gw_i2c_pld.c @@ -0,0 +1,371 @@ +/* + * Gateworks I2C PLD GPIO expander @@ -402,10 +396,8 @@ Index: linux-3.18.5/drivers/gpio/gw_i2c_pld.c + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Chris Lang"); -Index: linux-3.18.5/include/linux/i2c/gw_i2c_pld.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-3.18.5/include/linux/i2c/gw_i2c_pld.h 2015-02-09 13:55:16.946041675 +0100 +--- /dev/null ++++ b/include/linux/i2c/gw_i2c_pld.h @@ -0,0 +1,20 @@ +#ifndef __LINUX_GW_I2C_PLD_H +#define __LINUX_GW_I2C_PLD_H diff --git a/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch b/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch index c71ffd6b76..0e51793273 100644 --- a/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch +++ b/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch @@ -1,6 +1,6 @@ --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c -@@ -93,22 +93,7 @@ +@@ -93,22 +93,7 @@ void __init ixp4xx_map_io(void) /* * GPIO-functions */ @@ -24,7 +24,7 @@ { if (direction == IXP4XX_GPIO_IN) *IXP4XX_GPIO_GPOER |= (1 << line); -@@ -116,17 +101,17 @@ +@@ -116,17 +101,17 @@ static void gpio_line_config(u8 line, u3 *IXP4XX_GPIO_GPOER &= ~(1 << line); } @@ -49,7 +49,7 @@ /************************************************************************* --- a/arch/arm/mach-ixp4xx/include/mach/platform.h +++ b/arch/arm/mach-ixp4xx/include/mach/platform.h -@@ -131,5 +131,21 @@ +@@ -131,5 +131,21 @@ struct pci_sys_data; extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); extern struct pci_ops ixp4xx_ops; diff --git a/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch b/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch index 991b8d1e73..285505c7f8 100644 --- a/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch +++ b/target/linux/ixp4xx/patches-3.18/090-increase_entropy_pools.patch @@ -1,6 +1,6 @@ --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -280,11 +280,11 @@ +@@ -285,11 +285,11 @@ /* * Configuration information */ diff --git a/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch b/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch index 1c80d16bf0..54dc905468 100644 --- a/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch +++ b/target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch @@ -1,6 +1,6 @@ --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c -@@ -410,6 +410,20 @@ static void mem_serial_out(struct uart_p +@@ -416,6 +416,20 @@ static void mem_serial_out(struct uart_p writeb(value, p->membase + offset); } @@ -21,7 +21,7 @@ static void mem32_serial_out(struct uart_port *p, int offset, int value) { offset = offset << p->regshift; -@@ -461,6 +475,11 @@ static void set_io_from_upio(struct uart +@@ -466,6 +480,11 @@ static void set_io_from_upio(struct uart p->serial_out = mem32_serial_out; break; @@ -33,7 +33,7 @@ #if defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_SERIAL_8250_RT288X) case UPIO_AU: p->serial_in = au_serial_in; -@@ -486,6 +505,7 @@ serial_port_out_sync(struct uart_port *p +@@ -491,6 +510,7 @@ serial_port_out_sync(struct uart_port *p switch (p->iotype) { case UPIO_MEM: case UPIO_MEM32: @@ -41,7 +41,7 @@ case UPIO_AU: p->serial_out(p, offset, value); p->serial_in(p, UART_LCR); /* safe, no side-effects */ -@@ -2538,6 +2558,7 @@ static int serial8250_request_std_resour +@@ -2655,6 +2675,7 @@ static int serial8250_request_std_resour case UPIO_TSI: case UPIO_MEM32: case UPIO_MEM: @@ -49,7 +49,7 @@ if (!port->mapbase) break; -@@ -2574,6 +2595,7 @@ static void serial8250_release_std_resou +@@ -2691,6 +2712,7 @@ static void serial8250_release_std_resou case UPIO_TSI: case UPIO_MEM32: case UPIO_MEM: @@ -57,7 +57,7 @@ if (!port->mapbase) break; -@@ -3113,6 +3135,7 @@ static int serial8250_probe(struct platf +@@ -3424,6 +3446,7 @@ static int serial8250_probe(struct platf uart.port.set_termios = p->set_termios; uart.port.pm = p->pm; uart.port.dev = &dev->dev; @@ -65,7 +65,7 @@ uart.port.irqflags |= irqflag; ret = serial8250_register_8250_port(&uart); if (ret < 0) { -@@ -3264,6 +3287,7 @@ int serial8250_register_8250_port(struct +@@ -3580,6 +3603,7 @@ int serial8250_register_8250_port(struct uart->port.flags = up->port.flags | UPF_BOOT_AUTOCONF; uart->bugs = up->bugs; uart->port.mapbase = up->port.mapbase; @@ -83,7 +83,7 @@ case UPIO_MEM: case UPIO_MEM32: case UPIO_AU: -@@ -2711,6 +2712,7 @@ int uart_match_port(struct uart_port *po +@@ -2736,6 +2737,7 @@ int uart_match_port(struct uart_port *po case UPIO_HUB6: return (port1->iobase == port2->iobase) && (port1->hub6 == port2->hub6); @@ -103,7 +103,7 @@ unsigned int type; /* If UPF_FIXED_TYPE */ --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h -@@ -141,6 +141,7 @@ struct uart_port { +@@ -146,6 +146,7 @@ struct uart_port { #define UPIO_MEM32 (3) #define UPIO_AU (4) /* Au1x00 and RT288x type IO */ #define UPIO_TSI (5) /* Tsi108/109 type IO */ @@ -111,8 +111,8 @@ unsigned int read_status_mask; /* driver specific */ unsigned int ignore_status_mask; /* driver specific */ -@@ -189,6 +190,7 @@ struct uart_port { - +@@ -202,6 +203,7 @@ struct uart_port { + int hw_stopped; /* sw-assisted CTS flow state */ unsigned int mctrl; /* current modem ctrl settings */ unsigned int timeout; /* character-based timeout */ + unsigned int rw_delay; /* udelay for slow busses, IXP4XX Expansion Bus */ diff --git a/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch b/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch index ac198519cc..92342bf782 100644 --- a/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch +++ b/target/linux/ixp4xx/patches-3.18/175-avila_hss_audio_support.patch @@ -1,6 +1,6 @@ --- a/sound/soc/Kconfig +++ b/sound/soc/Kconfig -@@ -54,6 +54,7 @@ source "sound/soc/spear/Kconfig" +@@ -55,6 +55,7 @@ source "sound/soc/spear/Kconfig" source "sound/soc/tegra/Kconfig" source "sound/soc/txx9/Kconfig" source "sound/soc/ux500/Kconfig" @@ -10,7 +10,7 @@ source "sound/soc/codecs/Kconfig" --- a/sound/soc/Makefile +++ b/sound/soc/Makefile -@@ -31,3 +31,4 @@ obj-$(CONFIG_SND_SOC) += spear/ +@@ -32,3 +32,4 @@ obj-$(CONFIG_SND_SOC) += spear/ obj-$(CONFIG_SND_SOC) += tegra/ obj-$(CONFIG_SND_SOC) += txx9/ obj-$(CONFIG_SND_SOC) += ux500/ diff --git a/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch b/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch index 7d35781403..359873d7d9 100644 --- a/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch +++ b/target/linux/ixp4xx/patches-3.18/203-npe_driver_mask_phy_features.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/xscale/ixp4xx_eth.c +++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c -@@ -1483,6 +1483,10 @@ static int eth_init_one(struct platform_ +@@ -1474,6 +1474,10 @@ static int eth_init_one(struct platform_ goto err_free_mem; } diff --git a/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch b/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch index fa577e2b9e..6d1eb7bfbb 100644 --- a/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch +++ b/target/linux/ixp4xx/patches-3.18/205-npe_driver_separate_phy_functions.patch @@ -9,7 +9,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch --- a/drivers/net/ethernet/xscale/ixp4xx_eth.c +++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c -@@ -593,6 +593,51 @@ static void ixp4xx_adjust_link(struct ne +@@ -589,6 +589,51 @@ static void ixp4xx_adjust_link(struct ne dev->name, port->speed, port->duplex ? "full" : "half"); } @@ -61,7 +61,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch static inline void debug_pkt(struct net_device *dev, const char *func, u8 *data, int len) -@@ -1263,8 +1308,7 @@ static int eth_open(struct net_device *d +@@ -1259,8 +1304,7 @@ static int eth_open(struct net_device *d return err; } @@ -71,7 +71,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch for (i = 0; i < ETH_ALEN; i++) __raw_writel(dev->dev_addr[i], &port->regs->hw_addr[i]); -@@ -1385,7 +1429,7 @@ static int eth_close(struct net_device * +@@ -1381,7 +1425,7 @@ static int eth_close(struct net_device * printk(KERN_CRIT "%s: unable to disable loopback\n", dev->name); @@ -80,15 +80,15 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch if (!ports_open) qmgr_disable_irq(TXDONE_QUEUE); -@@ -1411,7 +1455,6 @@ static int eth_init_one(struct platform_ +@@ -1407,7 +1451,6 @@ static int eth_init_one(struct platform_ struct net_device *dev; struct eth_plat_info *plat = dev_get_platdata(&pdev->dev); u32 regs_phys; - char phy_id[MII_BUS_ID_SIZE + 3]; int err; - if (ptp_filter_init(ptp_filter, ARRAY_SIZE(ptp_filter))) { -@@ -1474,20 +1517,9 @@ static int eth_init_one(struct platform_ + if (!(dev = alloc_etherdev(sizeof(struct port)))) +@@ -1465,20 +1508,9 @@ static int eth_init_one(struct platform_ __raw_writel(DEFAULT_CORE_CNTRL, &port->regs->core_control); udelay(50); @@ -111,7 +111,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch if ((err = register_netdev(dev))) goto err_phy_dis; -@@ -1498,7 +1530,7 @@ static int eth_init_one(struct platform_ +@@ -1489,7 +1521,7 @@ static int eth_init_one(struct platform_ return 0; err_phy_dis: @@ -120,7 +120,7 @@ Subject: [PATCH 23/36] 205-npe_driver_separate_phy_functions.patch err_free_mem: npe_port_tab[NPE_ID(port->id)] = NULL; release_resource(port->mem_res); -@@ -1515,7 +1547,7 @@ static int eth_remove_one(struct platfor +@@ -1506,7 +1538,7 @@ static int eth_remove_one(struct platfor struct port *port = netdev_priv(dev); unregister_netdev(dev); diff --git a/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch b/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch index cb06069d85..f1a77078c4 100644 --- a/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch +++ b/target/linux/ixp4xx/patches-3.18/206-npe_driver_add_update_link_function.patch @@ -9,7 +9,7 @@ u8 firmware[4]; int hwts_tx_en; int hwts_rx_en; -@@ -562,37 +562,52 @@ static void ixp4xx_mdio_remove(void) +@@ -558,37 +558,52 @@ static void ixp4xx_mdio_remove(void) mdiobus_free(mdio_bus); } @@ -77,7 +77,7 @@ static int ixp4xx_phy_connect(struct net_device *dev) { struct port *port = netdev_priv(dev); -@@ -628,7 +643,6 @@ static void ixp4xx_phy_start(struct net_ +@@ -624,7 +639,6 @@ static void ixp4xx_phy_start(struct net_ { struct port *port = netdev_priv(dev); @@ -85,7 +85,7 @@ phy_start(port->phydev); } -@@ -1524,6 +1538,10 @@ static int eth_init_one(struct platform_ +@@ -1515,6 +1529,10 @@ static int eth_init_one(struct platform_ if ((err = register_netdev(dev))) goto err_phy_dis; diff --git a/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch b/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch index c1dda695ce..32035ab56a 100644 --- a/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch +++ b/target/linux/ixp4xx/patches-3.18/207-npe_driver_multiphy_support.patch @@ -37,7 +37,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer /* Information about built-in HSS (synchronous serial) interfaces */ --- a/drivers/net/ethernet/xscale/ixp4xx_eth.c +++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c -@@ -614,6 +614,37 @@ static int ixp4xx_phy_connect(struct net +@@ -610,6 +610,37 @@ static int ixp4xx_phy_connect(struct net struct eth_plat_info *plat = port->plat; char phy_id[MII_BUS_ID_SIZE + 3]; @@ -75,7 +75,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT, mdio_bus->id, plat->phy); port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, -@@ -636,21 +667,32 @@ static void ixp4xx_phy_disconnect(struct +@@ -632,21 +663,32 @@ static void ixp4xx_phy_disconnect(struct { struct port *port = netdev_priv(dev); @@ -111,7 +111,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer } static inline void debug_pkt(struct net_device *dev, const char *func, -@@ -1052,6 +1094,9 @@ static int eth_ioctl(struct net_device * +@@ -1048,6 +1090,9 @@ static int eth_ioctl(struct net_device * return hwtstamp_get(dev, req); } @@ -121,7 +121,7 @@ TODO: take care of additional PHYs through the PHY abstraction layer return phy_mii_ioctl(port->phydev, req, cmd); } -@@ -1072,18 +1117,30 @@ static void ixp4xx_get_drvinfo(struct ne +@@ -1068,18 +1113,30 @@ static void ixp4xx_get_drvinfo(struct ne static int ixp4xx_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) { struct port *port = netdev_priv(dev); diff --git a/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch b/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch index 0d5119d624..97d4445334 100644 --- a/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch +++ b/target/linux/ixp4xx/patches-3.18/295-latch_led_driver.patch @@ -1,6 +1,6 @@ --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig -@@ -251,6 +251,12 @@ config LEDS_LP8788 +@@ -250,6 +250,12 @@ config LEDS_LP8788 help This option enables support for the Keyboard LEDs on the LP8788 PMIC. @@ -15,7 +15,7 @@ depends on LEDS_CLASS --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile -@@ -22,6 +22,7 @@ obj-$(CONFIG_LEDS_SUNFIRE) += leds-sunf +@@ -21,6 +21,7 @@ obj-$(CONFIG_LEDS_SUNFIRE) += leds-sunf obj-$(CONFIG_LEDS_PCA9532) += leds-pca9532.o obj-$(CONFIG_LEDS_GPIO_REGISTER) += leds-gpio-register.o obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o @@ -180,7 +180,7 @@ +MODULE_DESCRIPTION("Latch LED driver"); --- a/include/linux/leds.h +++ b/include/linux/leds.h -@@ -285,4 +285,18 @@ static inline void ledtrig_cpu(enum cpu_ +@@ -297,4 +297,18 @@ static inline void ledtrig_cpu(enum cpu_ } #endif diff --git a/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch b/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch index 0ac595cfe4..b16086bbc4 100644 --- a/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch +++ b/target/linux/ixp4xx/patches-3.18/304-ixp4xx_eth_jumboframe.patch @@ -9,7 +9,7 @@ #define RX_BUFF_SIZE ALIGN((NET_IP_ALIGN) + MAX_MRU, 4) #define NAPI_WEIGHT 16 -@@ -1319,6 +1319,32 @@ static void destroy_queues(struct port * +@@ -1315,6 +1315,32 @@ static void destroy_queues(struct port * } } @@ -42,7 +42,7 @@ static int eth_open(struct net_device *dev) { struct port *port = netdev_priv(dev); -@@ -1370,6 +1396,8 @@ static int eth_open(struct net_device *d +@@ -1366,6 +1392,8 @@ static int eth_open(struct net_device *d if (npe_send_recv_message(port->npe, &msg, "ETH_SET_FIREWALL_MODE")) return -EIO; @@ -51,7 +51,7 @@ if ((err = request_queues(port)) != 0) return err; -@@ -1509,7 +1537,26 @@ static int eth_close(struct net_device * +@@ -1505,7 +1533,26 @@ static int eth_close(struct net_device * return 0; } diff --git a/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch b/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch index 2e4c75ec52..65b1c1f51e 100644 --- a/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch +++ b/target/linux/ixp4xx/patches-3.18/600-skb_avoid_dmabounce.patch @@ -10,7 +10,7 @@ /* Get the HEAD */ skb = kmem_cache_alloc_node(cache, gfp_mask & ~__GFP_DMA, node); -@@ -1057,6 +1060,10 @@ int pskb_expand_head(struct sk_buff *skb +@@ -1096,6 +1099,10 @@ int pskb_expand_head(struct sk_buff *skb if (skb_shared(skb)) BUG(); diff --git a/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch b/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch index 970ee49fd4..06e09f469d 100644 --- a/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch +++ b/target/linux/ixp4xx/patches-3.18/910-ixp4xx-nr_irq_lines.patch @@ -1,6 +1,6 @@ --- a/arch/arm/mach-ixp4xx/ixdp425-pci.c +++ b/arch/arm/mach-ixp4xx/ixdp425-pci.c -@@ -53,7 +53,7 @@ static int __init ixdp425_map_irq(const +@@ -53,7 +53,7 @@ static int __init ixdp425_map_irq(const }; if (slot >= 1 && slot <= MAX_DEV && pin >= 1 && pin <= IRQ_LINES) diff --git a/target/linux/lantiq/patches-3.18/0026-NET-multi-phy-support.patch b/target/linux/lantiq/patches-3.18/0026-NET-multi-phy-support.patch index 3b8ff0c1c6..5943602adb 100644 --- a/target/linux/lantiq/patches-3.18/0026-NET-multi-phy-support.patch +++ b/target/linux/lantiq/patches-3.18/0026-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -819,7 +819,8 @@ void phy_state_machine(struct work_struc +@@ -838,7 +838,8 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> phydev->adjust_link(phydev->attached_dev); break; } -@@ -892,7 +893,8 @@ void phy_state_machine(struct work_struc +@@ -911,7 +912,8 @@ void phy_state_machine(struct work_struc netif_carrier_on(phydev->attached_dev); } else { phydev->state = PHY_NOLINK; @@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> } phydev->adjust_link(phydev->attached_dev); -@@ -904,7 +906,8 @@ void phy_state_machine(struct work_struc +@@ -923,7 +925,8 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; diff --git a/target/linux/lantiq/patches-3.18/0030-GPIO-add-named-gpio-exports.patch b/target/linux/lantiq/patches-3.18/0030-GPIO-add-named-gpio-exports.patch index 534d8c18fc..307a99ab60 100644 --- a/target/linux/lantiq/patches-3.18/0030-GPIO-add-named-gpio-exports.patch +++ b/target/linux/lantiq/patches-3.18/0030-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #include "gpiolib.h" -@@ -315,3 +317,69 @@ void of_gpiochip_remove(struct gpio_chip +@@ -316,3 +318,69 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } diff --git a/target/linux/lantiq/patches-3.18/0101-mtd-split.patch b/target/linux/lantiq/patches-3.18/0101-mtd-split.patch index 69c632314c..6753a2156c 100644 --- a/target/linux/lantiq/patches-3.18/0101-mtd-split.patch +++ b/target/linux/lantiq/patches-3.18/0101-mtd-split.patch @@ -164,7 +164,7 @@ enum mtd_parser_type type, --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -630,7 +630,7 @@ out_register: +@@ -627,7 +627,7 @@ out_register: } @@ -173,7 +173,7 @@ __mtd_add_partition(struct mtd_info *master, const char *name, long long offset, long long length, bool dup_check) { -@@ -751,7 +751,7 @@ run_parsers_by_type(struct mtd_part *sla +@@ -748,7 +748,7 @@ run_parsers_by_type(struct mtd_part *sla return nr_parts; } @@ -182,7 +182,7 @@ mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len) { unsigned long mask = mtd->erasesize - 1; -@@ -821,7 +821,6 @@ static void split_uimage(struct mtd_info +@@ -818,7 +818,6 @@ static void split_uimage(struct mtd_info return; len = be32_to_cpu(hdr.size) + 0x40; diff --git a/target/linux/malta/patches/330-MIPS-Malta-Mark-kernel-code-and-kernel-data-segments.patch b/target/linux/malta/patches/330-MIPS-Malta-Mark-kernel-code-and-kernel-data-segments.patch index 4457d75e29..789be50313 100644 --- a/target/linux/malta/patches/330-MIPS-Malta-Mark-kernel-code-and-kernel-data-segments.patch +++ b/target/linux/malta/patches/330-MIPS-Malta-Mark-kernel-code-and-kernel-data-segments.patch @@ -13,11 +13,9 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> arch/mips/mti-malta/malta-memory.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) -diff --git a/arch/mips/mti-malta/malta-memory.c b/arch/mips/mti-malta/malta-memory.c -index 8fddd2cd..1d562f0 100644 --- a/arch/mips/mti-malta/malta-memory.c +++ b/arch/mips/mti-malta/malta-memory.c -@@ -106,14 +106,9 @@ fw_memblock_t * __init fw_getmdesc(int eva) +@@ -112,14 +112,9 @@ fw_memblock_t * __init fw_getmdesc(int e mdesc[2].base = mdesc[0].base + 0x000f0000UL; mdesc[2].size = 0x00010000; @@ -34,6 +32,3 @@ index 8fddd2cd..1d562f0 100644 return &mdesc[0]; } --- -1.7.10.4 - diff --git a/target/linux/mcs814x/patches-3.18/001-platform.patch b/target/linux/mcs814x/patches-3.18/001-platform.patch index 25369b8b69..221209f286 100644 --- a/target/linux/mcs814x/patches-3.18/001-platform.patch +++ b/target/linux/mcs814x/patches-3.18/001-platform.patch @@ -32,7 +32,7 @@ endchoice menu "Multiple platform selection" -@@ -927,6 +944,8 @@ source "arch/arm/mach-picoxcell/Kconfig" +@@ -927,6 +943,8 @@ source "arch/arm/mach-picoxcell/Kconfig" source "arch/arm/mach-pxa/Kconfig" source "arch/arm/plat-pxa/Kconfig" diff --git a/target/linux/mpc85xx/patches-3.18/150-powerpc-85xx-fix-etsec-ranges.patch b/target/linux/mpc85xx/patches-3.18/150-powerpc-85xx-fix-etsec-ranges.patch deleted file mode 100644 index 1b93356bc8..0000000000 --- a/target/linux/mpc85xx/patches-3.18/150-powerpc-85xx-fix-etsec-ranges.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi -+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi -@@ -50,6 +50,7 @@ ethernet@b0000 { - fsl,num_tx_queues = <0x8>; - fsl,magic-packet; - local-mac-address = [ 00 00 00 00 00 00 ]; -+ ranges; - - queue-group@b0000 { - #address-cells = <1>; ---- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi -+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi -@@ -50,6 +50,7 @@ ethernet@b1000 { - fsl,num_tx_queues = <0x8>; - fsl,magic-packet; - local-mac-address = [ 00 00 00 00 00 00 ]; -+ ranges; - - queue-group@b1000 { - #address-cells = <1>; ---- a/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi -+++ b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi -@@ -49,6 +49,7 @@ ethernet@b2000 { - fsl,num_tx_queues = <0x8>; - fsl,magic-packet; - local-mac-address = [ 00 00 00 00 00 00 ]; -+ ranges; - - queue-group@b2000 { - #address-cells = <1>; diff --git a/target/linux/mvebu/patches-3.18/031-disable_cpu_idle_on_armada_38x.patch b/target/linux/mvebu/patches-3.18/031-disable_cpu_idle_on_armada_38x.patch deleted file mode 100644 index 31a73a504c..0000000000 --- a/target/linux/mvebu/patches-3.18/031-disable_cpu_idle_on_armada_38x.patch +++ /dev/null @@ -1,62 +0,0 @@ -On Armada 38x SoCs, under heavy I/O load, the system hangs when CPU -Idle is enabled. Waiting for a solution to this issue, this patch -disables the CPU Idle support for this SoC. - -As CPU Hot plug support also uses some of the CPU Idle functions it is -also affected by the same issue. This patch disables it also for the -Armada 38x SoCs. - -Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> -Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Cc: <stable@vger.kernel.org> # v3.17 + ---- -Hi, - -In this version I removed the unneeded initialization of the ret -variable, I also fixed the warning message, and finally I added the -Tested-by from Thomas. - -Gregory - - arch/arm/mach-mvebu/pmsu.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - ---- a/arch/arm/mach-mvebu/pmsu.c -+++ b/arch/arm/mach-mvebu/pmsu.c -@@ -415,6 +415,9 @@ static __init int armada_38x_cpuidle_ini - void __iomem *mpsoc_base; - u32 reg; - -+ pr_warn("CPU idle is currently broken on Armada 38x: disabling"); -+ return 0; -+ - np = of_find_compatible_node(NULL, NULL, - "marvell,armada-380-coherency-fabric"); - if (!np) -@@ -476,6 +479,16 @@ static int __init mvebu_v7_cpu_pm_init(v - return 0; - of_node_put(np); - -+ /* -+ * Currently the CPU idle support for Armada 38x is broken, as -+ * the CPU hotplug uses some of the CPU idle functions it is -+ * broken too, so let's disable it -+ */ -+ if (of_machine_is_compatible("marvell,armada380")) { -+ cpu_hotplug_disable(); -+ pr_warn("CPU hotplug support is currently broken on Armada 38x: disabling"); -+ } -+ - if (of_machine_is_compatible("marvell,armadaxp")) - ret = armada_xp_cpuidle_init(); - else if (of_machine_is_compatible("marvell,armada370")) -@@ -489,7 +502,8 @@ static int __init mvebu_v7_cpu_pm_init(v - return ret; - - mvebu_v7_pmsu_enable_l2_powerdown_onidle(); -- platform_device_register(&mvebu_v7_cpuidle_device); -+ if (mvebu_v7_cpuidle_device.name) -+ platform_device_register(&mvebu_v7_cpuidle_device); - cpu_pm_register_notifier(&mvebu_v7_cpu_pm_notifier); - - return 0; diff --git a/target/linux/mvebu/patches-3.18/060-cpuidle-mvebu-Fix-the-CPU-PM-notifier-usage.patch b/target/linux/mvebu/patches-3.18/060-cpuidle-mvebu-Fix-the-CPU-PM-notifier-usage.patch deleted file mode 100644 index afd66179a4..0000000000 --- a/target/linux/mvebu/patches-3.18/060-cpuidle-mvebu-Fix-the-CPU-PM-notifier-usage.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 43b68879de27b1993518687fbc6013da80cdcbfe Mon Sep 17 00:00:00 2001 -From: Gregory CLEMENT <gregory.clement@free-electrons.com> -Date: Thu, 26 Feb 2015 18:20:48 +0100 -Subject: [PATCH] cpuidle: mvebu: Fix the CPU PM notifier usage - -As stated in kernel/cpu_pm.c, "Platform is responsible for ensuring -that cpu_pm_enter is not called twice on the same CPU before -cpu_pm_exit is called.". In the current code in case of failure when -calling mvebu_v7_cpu_suspend, the function cpu_pm_exit() is never -called whereas cpu_pm_enter() was called just before. - -This patch moves the cpu_pm_exit() in order to balance the -cpu_pm_enter() calls. - -Cc: stable@vger.kernel.org -Reported-by: Fulvio Benini <fbf@libero.it> -Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> -Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> ---- - drivers/cpuidle/cpuidle-mvebu-v7.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/cpuidle/cpuidle-mvebu-v7.c -+++ b/drivers/cpuidle/cpuidle-mvebu-v7.c -@@ -37,11 +37,11 @@ static int mvebu_v7_enter_idle(struct cp - deepidle = true; - - ret = mvebu_v7_cpu_suspend(deepidle); -+ cpu_pm_exit(); -+ - if (ret) - return ret; - -- cpu_pm_exit(); -- - return index; - } - diff --git a/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch b/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch index 7a5c0b6ba6..9ef1815035 100644 --- a/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch +++ b/target/linux/mvebu/patches-3.18/198-gpio_mvebu_suspend.patch @@ -24,7 +24,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org> }; /* -@@ -554,6 +562,93 @@ static const struct of_device_id mvebu_g +@@ -562,6 +570,93 @@ static const struct of_device_id mvebu_g }; MODULE_DEVICE_TABLE(of, mvebu_gpio_of_match); @@ -118,7 +118,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org> static int mvebu_gpio_probe(struct platform_device *pdev) { struct mvebu_gpio_chip *mvchip; -@@ -577,6 +672,8 @@ static int mvebu_gpio_probe(struct platf +@@ -585,6 +680,8 @@ static int mvebu_gpio_probe(struct platf if (!mvchip) return -ENOMEM; @@ -127,7 +127,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org> if (of_property_read_u32(pdev->dev.of_node, "ngpios", &ngpios)) { dev_err(&pdev->dev, "Missing ngpios OF property\n"); return -ENODEV; -@@ -735,5 +832,7 @@ static struct platform_driver mvebu_gpio +@@ -743,5 +840,7 @@ static struct platform_driver mvebu_gpio .of_match_table = mvebu_gpio_of_match, }, .probe = mvebu_gpio_probe, diff --git a/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch b/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch index c52e85e762..fe74199dcc 100644 --- a/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch +++ b/target/linux/mvebu/patches-3.18/199-gpio_mvebu_drop_owner.patch @@ -5,7 +5,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de> --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c -@@ -828,7 +828,6 @@ static int mvebu_gpio_probe(struct platf +@@ -836,7 +836,6 @@ static int mvebu_gpio_probe(struct platf static struct platform_driver mvebu_gpio_driver = { .driver = { .name = "mvebu-gpio", diff --git a/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch b/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch index 844df4f6f5..48ab67df3f 100644 --- a/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch +++ b/target/linux/mvebu/patches-3.18/200-gpio_mvebu_checkpatch_fixes.patch @@ -111,7 +111,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> default: BUG(); } -@@ -364,22 +371,22 @@ static void mvebu_gpio_level_irq_unmask( +@@ -372,22 +379,22 @@ static void mvebu_gpio_level_irq_unmask( * value of the line or the opposite value. * * Level IRQ handlers: DATA_IN is used directly as cause register. @@ -144,7 +144,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> * ****************************************************************************/ -@@ -394,9 +401,8 @@ static int mvebu_gpio_irq_set_type(struc +@@ -402,9 +409,8 @@ static int mvebu_gpio_irq_set_type(struc pin = d->hwirq; u = readl_relaxed(mvebu_gpioreg_io_conf(mvchip)) & (1 << pin); @@ -155,7 +155,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> type &= IRQ_TYPE_SENSE_MASK; if (type == IRQ_TYPE_NONE) -@@ -529,13 +535,13 @@ static void mvebu_gpio_dbg_show(struct s +@@ -537,13 +543,13 @@ static void mvebu_gpio_dbg_show(struct s (data_in ^ in_pol) & msk ? "hi" : "lo", in_pol & msk ? "lo" : "hi"); if (!((edg_msk | lvl_msk) & msk)) { @@ -172,7 +172,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> seq_printf(s, " (%s)\n", cause & msk ? "pending" : "clear "); } } -@@ -546,15 +552,15 @@ static void mvebu_gpio_dbg_show(struct s +@@ -554,15 +560,15 @@ static void mvebu_gpio_dbg_show(struct s static const struct of_device_id mvebu_gpio_of_match[] = { { .compatible = "marvell,orion-gpio", @@ -191,7 +191,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> }, { /* sentinel */ -@@ -668,7 +674,8 @@ static int mvebu_gpio_probe(struct platf +@@ -676,7 +682,8 @@ static int mvebu_gpio_probe(struct platf else soc_variant = MVEBU_GPIO_SOC_VARIANT_ORION; @@ -201,7 +201,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> if (!mvchip) return -ENOMEM; -@@ -767,8 +774,8 @@ static int mvebu_gpio_probe(struct platf +@@ -775,8 +782,8 @@ static int mvebu_gpio_probe(struct platf * interrupt handlers, with each handler dealing with 8 GPIO * pins. */ for (i = 0; i < 4; i++) { @@ -212,7 +212,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> if (irq < 0) continue; irq_set_handler_data(irq, mvchip); -@@ -827,7 +834,7 @@ static int mvebu_gpio_probe(struct platf +@@ -835,7 +842,7 @@ static int mvebu_gpio_probe(struct platf static struct platform_driver mvebu_gpio_driver = { .driver = { diff --git a/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch b/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch index aecf8e3c12..aeb884a381 100644 --- a/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch +++ b/target/linux/mvebu/patches-3.18/201-gpio_mvebu_fix_probe_cleanup_on_error.patch @@ -8,7 +8,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c -@@ -667,6 +667,7 @@ static int mvebu_gpio_probe(struct platf +@@ -675,6 +675,7 @@ static int mvebu_gpio_probe(struct platf unsigned int ngpios; int soc_variant; int i, cpu, id; @@ -16,7 +16,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> match = of_match_device(mvebu_gpio_of_match, &pdev->dev); if (match) -@@ -785,14 +786,16 @@ static int mvebu_gpio_probe(struct platf +@@ -793,14 +794,16 @@ static int mvebu_gpio_probe(struct platf mvchip->irqbase = irq_alloc_descs(-1, 0, ngpios, -1); if (mvchip->irqbase < 0) { dev_err(&pdev->dev, "no irqs\n"); @@ -35,7 +35,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> } gc->private = mvchip; -@@ -823,13 +826,21 @@ static int mvebu_gpio_probe(struct platf +@@ -831,13 +834,21 @@ static int mvebu_gpio_probe(struct platf if (!mvchip->domain) { dev_err(&pdev->dev, "couldn't allocate irq domain %s (DT).\n", mvchip->chip.label); diff --git a/target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch b/target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch index 52ae90bb2d..49a8c0aec1 100644 --- a/target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch +++ b/target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch @@ -299,7 +299,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> { struct mvebu_gpio_chip *mvchip = container_of(chip, struct mvebu_gpio_chip, chip); -@@ -609,6 +592,8 @@ static int mvebu_gpio_suspend(struct pla +@@ -617,6 +600,8 @@ static int mvebu_gpio_suspend(struct pla BUG(); } @@ -308,7 +308,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> return 0; } -@@ -652,6 +637,8 @@ static int mvebu_gpio_resume(struct plat +@@ -660,6 +645,8 @@ static int mvebu_gpio_resume(struct plat BUG(); } @@ -317,7 +317,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> return 0; } -@@ -663,7 +650,6 @@ static int mvebu_gpio_probe(struct platf +@@ -671,7 +658,6 @@ static int mvebu_gpio_probe(struct platf struct resource *res; struct irq_chip_generic *gc; struct irq_chip_type *ct; @@ -325,7 +325,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> unsigned int ngpios; int soc_variant; int i, cpu, id; -@@ -693,10 +679,10 @@ static int mvebu_gpio_probe(struct platf +@@ -701,10 +687,10 @@ static int mvebu_gpio_probe(struct platf return id; } @@ -339,7 +339,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> mvchip->soc_variant = soc_variant; mvchip->chip.label = dev_name(&pdev->dev); -@@ -830,7 +816,8 @@ static int mvebu_gpio_probe(struct platf +@@ -838,7 +824,8 @@ static int mvebu_gpio_probe(struct platf goto err_generic_chip; } diff --git a/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch b/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch index dddd67a95a..58d8280c3e 100644 --- a/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch +++ b/target/linux/mvebu/patches-3.18/206-mvebu_wrt1900ac_use_pwm-fan_rather_than_gpio-fan.patch @@ -9,7 +9,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> --- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts +++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts -@@ -407,13 +407,11 @@ +@@ -412,13 +412,11 @@ }; }; diff --git a/target/linux/mxs/patches-3.18/001-soc-audio-support.patch b/target/linux/mxs/patches-3.18/001-soc-audio-support.patch index 8928fd8ed7..65c3438fc3 100644 --- a/target/linux/mxs/patches-3.18/001-soc-audio-support.patch +++ b/target/linux/mxs/patches-3.18/001-soc-audio-support.patch @@ -22,11 +22,9 @@ Subject: [PATCH 1/2] Added ASoC driver for i.MX233's builtin ADC/DAC codec. create mode 100644 sound/soc/mxs/mxs-builtin-pcm.c create mode 100644 sound/soc/mxs/mxs-builtin-pcm.h -diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index badb6fb..dc1f4ac 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig -@@ -127,6 +127,7 @@ config SND_SOC_ALL_CODECS +@@ -164,6 +164,7 @@ config SND_SOC_ALL_CODECS select SND_SOC_WM9705 if SND_SOC_AC97_BUS select SND_SOC_WM9712 if SND_SOC_AC97_BUS select SND_SOC_WM9713 if SND_SOC_AC97_BUS @@ -34,7 +32,7 @@ index badb6fb..dc1f4ac 100644 help Normally ASoC codec drivers are only built if a machine driver which uses them is also built since they are only usable with a machine -@@ -515,6 +516,9 @@ config SND_SOC_WM9712 +@@ -789,6 +790,9 @@ config SND_SOC_WM9712 config SND_SOC_WM9713 tristate @@ -44,11 +42,9 @@ index badb6fb..dc1f4ac 100644 # Amp config SND_SOC_LM4857 tristate -diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile -index 70fd806..9c3b73a 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile -@@ -120,6 +120,7 @@ snd-soc-wm9705-objs := wm9705.o +@@ -166,6 +166,7 @@ snd-soc-wm9705-objs := wm9705.o snd-soc-wm9712-objs := wm9712.o snd-soc-wm9713-objs := wm9713.o snd-soc-wm-hubs-objs := wm_hubs.o @@ -56,7 +52,7 @@ index 70fd806..9c3b73a 100644 # Amp snd-soc-max9877-objs := max9877.o -@@ -246,6 +247,7 @@ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o +@@ -339,6 +340,7 @@ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc- obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o obj-$(CONFIG_SND_SOC_WM_ADSP) += snd-soc-wm-adsp.o obj-$(CONFIG_SND_SOC_WM_HUBS) += snd-soc-wm-hubs.o @@ -64,9 +60,6 @@ index 70fd806..9c3b73a 100644 # Amp obj-$(CONFIG_SND_SOC_MAX9877) += snd-soc-max9877.o -diff --git a/sound/soc/codecs/mxs-builtin-codec.c b/sound/soc/codecs/mxs-builtin-codec.c -new file mode 100644 -index 0000000..e5dcb4e --- /dev/null +++ b/sound/soc/codecs/mxs-builtin-codec.c @@ -0,0 +1,1128 @@ @@ -1198,9 +1191,6 @@ index 0000000..e5dcb4e +MODULE_DESCRIPTION("Freescale MXS ADC/DAC SoC Codec Driver"); +MODULE_AUTHOR("Michal Ulianko <michal.ulianko@gmail.com>"); +MODULE_LICENSE("GPL"); -diff --git a/sound/soc/codecs/mxs-builtin-codec.h b/sound/soc/codecs/mxs-builtin-codec.h -new file mode 100644 -index 0000000..75dee0b --- /dev/null +++ b/sound/soc/codecs/mxs-builtin-codec.h @@ -0,0 +1,825 @@ @@ -2029,11 +2019,9 @@ index 0000000..75dee0b +#define BV_AUDIOIN_ADCVOL_SELECT__MIC 0x00 + +#endif /* __MXS_ADC_CODEC_H */ -diff --git a/sound/soc/mxs/Kconfig b/sound/soc/mxs/Kconfig -index 78d321c..9b8dd7d 100644 --- a/sound/soc/mxs/Kconfig +++ b/sound/soc/mxs/Kconfig -@@ -18,3 +18,13 @@ config SND_SOC_MXS_SGTL5000 +@@ -19,3 +19,13 @@ config SND_SOC_MXS_SGTL5000 a sgtl5000 codec. endif # SND_MXS_SOC @@ -2047,11 +2035,9 @@ index 78d321c..9b8dd7d 100644 + help + Say Y or M if you want to add support for codecs attached to + the MXS SAIF interface. -diff --git a/sound/soc/mxs/Makefile b/sound/soc/mxs/Makefile -index 565b5b5..cd0cf16 100644 --- a/sound/soc/mxs/Makefile +++ b/sound/soc/mxs/Makefile -@@ -8,3 +8,12 @@ obj-$(CONFIG_SND_MXS_SOC) += snd-soc-mxs.o snd-soc-mxs-pcm.o +@@ -8,3 +8,12 @@ obj-$(CONFIG_SND_MXS_SOC) += snd-soc-mxs snd-soc-mxs-sgtl5000-objs := mxs-sgtl5000.o obj-$(CONFIG_SND_SOC_MXS_SGTL5000) += snd-soc-mxs-sgtl5000.o @@ -2064,9 +2050,6 @@ index 565b5b5..cd0cf16 100644 +obj-$(CONFIG_SND_MXS_SOC_BUILTIN) += snd-soc-mxs-builtin-pcm.o +obj-$(CONFIG_SND_MXS_SOC_BUILTIN) += snd-soc-mxs-builtin-dai.o +obj-$(CONFIG_SND_MXS_SOC_BUILTIN) += snd-soc-mxs-builtin-audio.o -diff --git a/sound/soc/mxs/mxs-builtin-audio.c b/sound/soc/mxs/mxs-builtin-audio.c -new file mode 100644 -index 0000000..7a27c63 --- /dev/null +++ b/sound/soc/mxs/mxs-builtin-audio.c @@ -0,0 +1,120 @@ @@ -2190,9 +2173,6 @@ index 0000000..7a27c63 +MODULE_DESCRIPTION("Freescale MXS ADC/DAC SoC Machine Driver"); +MODULE_AUTHOR("Michal Ulianko <michal.ulianko@gmail.com>"); +MODULE_LICENSE("GPL"); -diff --git a/sound/soc/mxs/mxs-builtin-dai.c b/sound/soc/mxs/mxs-builtin-dai.c -new file mode 100644 -index 0000000..cc81f9a --- /dev/null +++ b/sound/soc/mxs/mxs-builtin-dai.c @@ -0,0 +1,588 @@ @@ -2784,9 +2764,6 @@ index 0000000..cc81f9a +MODULE_DESCRIPTION("Freescale MXS ADC/DAC SoC Codec DAI Driver"); +MODULE_AUTHOR("Michal Ulianko <michal.ulianko@gmail.com>"); +MODULE_LICENSE("GPL"); -diff --git a/sound/soc/mxs/mxs-builtin-pcm.c b/sound/soc/mxs/mxs-builtin-pcm.c -new file mode 100644 -index 0000000..9f155df --- /dev/null +++ b/sound/soc/mxs/mxs-builtin-pcm.c @@ -0,0 +1,69 @@ @@ -2859,9 +2836,6 @@ index 0000000..9f155df +EXPORT_SYMBOL_GPL(mxs_adc_pcm_platform_unregister); + +MODULE_LICENSE("GPL"); -diff --git a/sound/soc/mxs/mxs-builtin-pcm.h b/sound/soc/mxs/mxs-builtin-pcm.h -new file mode 100644 -index 0000000..2fba109 --- /dev/null +++ b/sound/soc/mxs/mxs-builtin-pcm.h @@ -0,0 +1,25 @@ @@ -2890,6 +2864,3 @@ index 0000000..2fba109 +void mxs_adc_pcm_platform_unregister(struct device *dev); + +#endif --- -1.7.10.4 - diff --git a/target/linux/mxs/patches-3.18/101-soc-audio-dts.patch b/target/linux/mxs/patches-3.18/101-soc-audio-dts.patch index 99bdf5f6fc..36ae89ceca 100644 --- a/target/linux/mxs/patches-3.18/101-soc-audio-dts.patch +++ b/target/linux/mxs/patches-3.18/101-soc-audio-dts.patch @@ -26,7 +26,7 @@ }; }; -@@ -122,4 +141,10 @@ +@@ -125,4 +144,10 @@ gpios = <&gpio2 1 1>; }; }; diff --git a/target/linux/mxs/patches-3.18/120-dt-add-i2c.patch b/target/linux/mxs/patches-3.18/120-dt-add-i2c.patch index 50bd8666b4..43a07e8f16 100644 --- a/target/linux/mxs/patches-3.18/120-dt-add-i2c.patch +++ b/target/linux/mxs/patches-3.18/120-dt-add-i2c.patch @@ -1,6 +1,6 @@ --- a/arch/arm/boot/dts/imx23.dtsi +++ b/arch/arm/boot/dts/imx23.dtsi -@@ -146,6 +146,39 @@ +@@ -147,6 +147,39 @@ fsl,pull-up = <MXS_PULL_DISABLE>; }; @@ -40,7 +40,7 @@ auart0_pins_a: auart0@0 { reg = <0>; fsl,pinmux-ids = < -@@ -444,7 +477,12 @@ +@@ -445,7 +478,12 @@ }; i2c@80058000 { diff --git a/target/linux/octeon/patches-3.18/130-MIPS-octeon-add-semaphore-to-serialize-bootbus-access.patch b/target/linux/octeon/patches-3.18/130-MIPS-octeon-add-semaphore-to-serialize-bootbus-access.patch index 6650c5b75d..bfbb4a5fd1 100644 --- a/target/linux/octeon/patches-3.18/130-MIPS-octeon-add-semaphore-to-serialize-bootbus-access.patch +++ b/target/linux/octeon/patches-3.18/130-MIPS-octeon-add-semaphore-to-serialize-bootbus-access.patch @@ -1,25 +1,21 @@ -diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c -index a42110e..01130e9 100644 --- a/arch/mips/cavium-octeon/setup.c +++ b/arch/mips/cavium-octeon/setup.c -@@ -51,6 +51,9 @@ extern void pci_console_init(const char *arg); - +@@ -50,6 +50,9 @@ extern void pci_console_init(const char + static unsigned long long MAX_MEMORY = 512ull << 20; - + +DEFINE_SEMAPHORE(octeon_bootbus_sem); +EXPORT_SYMBOL(octeon_bootbus_sem); + struct octeon_boot_descriptor *octeon_boot_desc_ptr; - + struct cvmx_bootinfo *octeon_bootinfo; -diff --git a/arch/mips/include/asm/octeon/octeon.h b/arch/mips/include/asm/octeon/octeon.h -index 0415965..de9f74e 100644 --- a/arch/mips/include/asm/octeon/octeon.h +++ b/arch/mips/include/asm/octeon/octeon.h -@@ -335,4 +335,6 @@ void octeon_irq_set_ip4_handler(octeon_irq_ip4_handler_t); - +@@ -252,4 +252,6 @@ void octeon_irq_set_ip4_handler(octeon_i + extern void octeon_fixup_irqs(void); - + +extern struct semaphore octeon_bootbus_sem; + #endif /* __ASM_OCTEON_OCTEON_H */ diff --git a/target/linux/octeon/patches-3.18/140-MIPS-OCTEON-Update-octeon-model.h-code-for-new-SoCs.patch b/target/linux/octeon/patches-3.18/140-MIPS-OCTEON-Update-octeon-model.h-code-for-new-SoCs.patch index c4d7347e56..d3986c7aa1 100644 --- a/target/linux/octeon/patches-3.18/140-MIPS-OCTEON-Update-octeon-model.h-code-for-new-SoCs.patch +++ b/target/linux/octeon/patches-3.18/140-MIPS-OCTEON-Update-octeon-model.h-code-for-new-SoCs.patch @@ -1,5 +1,3 @@ -diff --git a/arch/mips/include/asm/octeon/octeon-model.h b/arch/mips/include/asm/octeon/octeon-model.h -index e2c122c..35d7cbd 100644 --- a/arch/mips/include/asm/octeon/octeon-model.h +++ b/arch/mips/include/asm/octeon/octeon-model.h @@ -45,6 +45,7 @@ @@ -68,7 +66,7 @@ index e2c122c..35d7cbd 100644 /* These are used to cover entire families of OCTEON processors */ #define OCTEON_FAM_1 (OCTEON_CN3XXX) -@@ -288,9 +333,16 @@ static inline uint64_t cvmx_read_csr(uint64_t csr_addr); +@@ -288,9 +333,16 @@ static inline uint64_t cvmx_read_csr(uin ((((arg_model) & (OM_FLAG_MASK)) == OM_CHECK_SUBMODEL) \ && __OCTEON_MATCH_MASK__((chip_model), (arg_model), OCTEON_58XX_MODEL_REV_MASK)) || \ ((((arg_model) & (OM_MATCH_5XXX_FAMILY_MODELS)) == OM_MATCH_5XXX_FAMILY_MODELS) \ @@ -87,7 +85,7 @@ index e2c122c..35d7cbd 100644 ((((arg_model) & (OM_MATCH_PREVIOUS_MODELS)) == OM_MATCH_PREVIOUS_MODELS) \ && (((chip_model) & OCTEON_58XX_MODEL_MASK) < ((arg_model) & OCTEON_58XX_MODEL_MASK))) \ ))) -@@ -326,6 +378,15 @@ static inline int __octeon_is_model_runtime__(uint32_t model) +@@ -326,6 +378,15 @@ static inline int __octeon_is_model_runt #define OCTEON_IS_COMMON_BINARY() 1 #undef OCTEON_MODEL diff --git a/target/linux/octeon/patches-3.18/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch b/target/linux/octeon/patches-3.18/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch index f2e3b5841c..599d4e2364 100644 --- a/target/linux/octeon/patches-3.18/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch +++ b/target/linux/octeon/patches-3.18/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch @@ -1,6 +1,3 @@ -diff --git a/Documentation/devicetree/bindings/mmc/octeon-mmc.txt b/Documentation/devicetree/bindings/mmc/octeon-mmc.txt -new file mode 100644 -index 0000000..40dd7f1 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/octeon-mmc.txt @@ -0,0 +1,69 @@ @@ -73,11 +70,9 @@ index 0000000..40dd7f1 + power-gpios = <&gpio 8 0>; + }; + }; -diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig -index 2d6fbdd..5077dfa 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig -@@ -338,6 +338,16 @@ +@@ -405,6 +405,16 @@ config MMC_MXS If unsure, say N. @@ -94,11 +89,9 @@ index 2d6fbdd..5077dfa 100644 config MMC_TIFM_SD tristate "TI Flash Media MMC/SD Interface support" depends on PCI -diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile -index f7b0a77..448bbc9 100644 --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile -@@ -19,6 +19,7 @@ obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o +@@ -19,6 +19,7 @@ obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci obj-$(CONFIG_MMC_SDHCI_SPEAR) += sdhci-spear.o obj-$(CONFIG_MMC_WBSD) += wbsd.o obj-$(CONFIG_MMC_AU1X) += au1xmmc.o @@ -106,9 +99,6 @@ index f7b0a77..448bbc9 100644 obj-$(CONFIG_MMC_OMAP) += omap.o obj-$(CONFIG_MMC_OMAP_HS) += omap_hsmmc.o obj-$(CONFIG_MMC_ATMELMCI) += atmel-mci.o -diff --git a/drivers/mmc/host/octeon_mmc.c b/drivers/mmc/host/octeon_mmc.c -new file mode 100644 -index 0000000..baba5a0 --- /dev/null +++ b/drivers/mmc/host/octeon_mmc.c @@ -0,0 +1,1518 @@ diff --git a/target/linux/octeon/patches-3.18/160-cmdline-hack.patch b/target/linux/octeon/patches-3.18/160-cmdline-hack.patch index 39b8a99ae5..8ef73a12b2 100644 --- a/target/linux/octeon/patches-3.18/160-cmdline-hack.patch +++ b/target/linux/octeon/patches-3.18/160-cmdline-hack.patch @@ -1,6 +1,6 @@ --- a/arch/mips/cavium-octeon/setup.c +++ b/arch/mips/cavium-octeon/setup.c -@@ -609,6 +609,35 @@ +@@ -609,6 +609,35 @@ void octeon_user_io_init(void) write_c0_derraddr1(0); } @@ -36,7 +36,7 @@ /** * Early entry point for arch setup */ -@@ -798,6 +827,8 @@ +@@ -798,6 +827,8 @@ void __init prom_init(void) } } diff --git a/target/linux/oxnas/patches-3.18/010-arm_introduce-dma-fiq-irq-broadcast.patch b/target/linux/oxnas/patches-3.18/010-arm_introduce-dma-fiq-irq-broadcast.patch index fb7547f96b..1ce68e8276 100644 --- a/target/linux/oxnas/patches-3.18/010-arm_introduce-dma-fiq-irq-broadcast.patch +++ b/target/linux/oxnas/patches-3.18/010-arm_introduce-dma-fiq-irq-broadcast.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/arch/arm/include/asm/glue-cache.h -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/include/asm/glue-cache.h -+++ linux-3.18-rc4/arch/arm/include/asm/glue-cache.h +--- a/arch/arm/include/asm/glue-cache.h ++++ b/arch/arm/include/asm/glue-cache.h @@ -156,11 +156,19 @@ static inline void nop_dma_unmap_area(co #define __cpuc_flush_user_range __glue(_CACHE,_flush_user_cache_range) #define __cpuc_coherent_kern_range __glue(_CACHE,_coherent_kern_range) @@ -22,11 +20,9 @@ Index: linux-3.18-rc4/arch/arm/include/asm/glue-cache.h #endif #endif -Index: linux-3.18-rc4/arch/arm/mm/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/mm/Kconfig -+++ linux-3.18-rc4/arch/arm/mm/Kconfig -@@ -843,6 +843,17 @@ config DMA_CACHE_RWFO +--- a/arch/arm/mm/Kconfig ++++ b/arch/arm/mm/Kconfig +@@ -844,6 +844,17 @@ config DMA_CACHE_RWFO in hardware, other workarounds are needed (e.g. cache maintenance broadcasting in software via FIQ). @@ -44,10 +40,8 @@ Index: linux-3.18-rc4/arch/arm/mm/Kconfig config OUTER_CACHE bool -Index: linux-3.18-rc4/arch/arm/mm/flush.c -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/mm/flush.c -+++ linux-3.18-rc4/arch/arm/mm/flush.c +--- a/arch/arm/mm/flush.c ++++ b/arch/arm/mm/flush.c @@ -314,7 +314,11 @@ void flush_dcache_page(struct page *page mapping = page_mapping(page); diff --git a/target/linux/oxnas/patches-3.18/250-add-plxtech-vendor-prefix.patch b/target/linux/oxnas/patches-3.18/250-add-plxtech-vendor-prefix.patch index c495258d30..1645c883d3 100644 --- a/target/linux/oxnas/patches-3.18/250-add-plxtech-vendor-prefix.patch +++ b/target/linux/oxnas/patches-3.18/250-add-plxtech-vendor-prefix.patch @@ -1,8 +1,6 @@ -Index: linux-3.18-rc4/Documentation/devicetree/bindings/vendor-prefixes.txt -=================================================================== ---- linux-3.18-rc4.orig/Documentation/devicetree/bindings/vendor-prefixes.txt -+++ linux-3.18-rc4/Documentation/devicetree/bindings/vendor-prefixes.txt -@@ -113,6 +113,7 @@ panasonic Panasonic Corporation +--- a/Documentation/devicetree/bindings/vendor-prefixes.txt ++++ b/Documentation/devicetree/bindings/vendor-prefixes.txt +@@ -115,6 +115,7 @@ panasonic Panasonic Corporation phytec PHYTEC Messtechnik GmbH picochip Picochip Ltd plathome Plat'Home Co., Ltd. diff --git a/target/linux/oxnas/patches-3.18/300-introduce-oxnas-platform.patch b/target/linux/oxnas/patches-3.18/300-introduce-oxnas-platform.patch index 17ec83b63f..5724263d3f 100644 --- a/target/linux/oxnas/patches-3.18/300-introduce-oxnas-platform.patch +++ b/target/linux/oxnas/patches-3.18/300-introduce-oxnas-platform.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/arch/arm/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/Kconfig -+++ linux-3.18-rc4/arch/arm/Kconfig +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig @@ -369,6 +369,17 @@ config ARCH_VERSATILE help This enables support for ARM Ltd Versatile board. @@ -29,10 +27,8 @@ Index: linux-3.18-rc4/arch/arm/Kconfig source "arch/arm/mach-picoxcell/Kconfig" source "arch/arm/mach-pxa/Kconfig" -Index: linux-3.18-rc4/arch/arm/Makefile -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/Makefile -+++ linux-3.18-rc4/arch/arm/Makefile +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile @@ -187,6 +187,7 @@ machine-$(CONFIG_ARCH_NSPIRE) += nspire machine-$(CONFIG_ARCH_OMAP1) += omap1 machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2 @@ -41,10 +37,8 @@ Index: linux-3.18-rc4/arch/arm/Makefile machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell machine-$(CONFIG_ARCH_PXA) += pxa machine-$(CONFIG_ARCH_QCOM) += qcom -Index: linux-3.18-rc4/arch/arm/boot/dts/Makefile -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/boot/dts/Makefile -+++ linux-3.18-rc4/arch/arm/boot/dts/Makefile +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile @@ -352,6 +352,7 @@ dtb-$(CONFIG_ARCH_ORION5X) += orion5x-la orion5x-lacie-ethernet-disk-mini-v2.dtb \ orion5x-maxtor-shared-storage-2.dtb \ @@ -53,10 +47,8 @@ Index: linux-3.18-rc4/arch/arm/boot/dts/Makefile dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8064-cm-qs600.dtb \ -Index: linux-3.18-rc4/arch/arm/tools/mach-types -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/tools/mach-types -+++ linux-3.18-rc4/arch/arm/tools/mach-types +--- a/arch/arm/tools/mach-types ++++ b/arch/arm/tools/mach-types @@ -228,6 +228,7 @@ edb9302a MACH_EDB9302A EDB9302A 1127 edb9307a MACH_EDB9307A EDB9307A 1128 omap_3430sdp MACH_OMAP_3430SDP OMAP_3430SDP 1138 @@ -65,10 +57,8 @@ Index: linux-3.18-rc4/arch/arm/tools/mach-types micro9m MACH_MICRO9M MICRO9M 1169 bug MACH_BUG BUG 1179 at91sam9263ek MACH_AT91SAM9263EK AT91SAM9263EK 1202 -Index: linux-3.18-rc4/drivers/clk/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/clk/Makefile -+++ linux-3.18-rc4/drivers/clk/Makefile +--- a/drivers/clk/Makefile ++++ b/drivers/clk/Makefile @@ -29,6 +29,7 @@ obj-$(CONFIG_COMMON_CLK_MAX77802) += clk obj-$(CONFIG_ARCH_MOXART) += clk-moxart.o obj-$(CONFIG_ARCH_NOMADIK) += clk-nomadik.o diff --git a/target/linux/oxnas/patches-3.18/310-oxnas-clocksource.patch b/target/linux/oxnas/patches-3.18/310-oxnas-clocksource.patch index 0959e53648..e10b38c192 100644 --- a/target/linux/oxnas/patches-3.18/310-oxnas-clocksource.patch +++ b/target/linux/oxnas/patches-3.18/310-oxnas-clocksource.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/drivers/clocksource/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/clocksource/Kconfig -+++ linux-3.18-rc4/drivers/clocksource/Kconfig +--- a/drivers/clocksource/Kconfig ++++ b/drivers/clocksource/Kconfig @@ -156,6 +156,12 @@ config VF_PIT_TIMER help Support for Period Interrupt Timer on Freescale Vybrid Family SoCs. @@ -15,10 +13,8 @@ Index: linux-3.18-rc4/drivers/clocksource/Kconfig config SYS_SUPPORTS_SH_CMT bool -Index: linux-3.18-rc4/drivers/clocksource/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/clocksource/Makefile -+++ linux-3.18-rc4/drivers/clocksource/Makefile +--- a/drivers/clocksource/Makefile ++++ b/drivers/clocksource/Makefile @@ -36,6 +36,7 @@ obj-$(CONFIG_CLKSRC_EFM32) += time-efm32 obj-$(CONFIG_CLKSRC_EXYNOS_MCT) += exynos_mct.o obj-$(CONFIG_CLKSRC_SAMSUNG_PWM) += samsung_pwm_timer.o diff --git a/target/linux/oxnas/patches-3.18/320-oxnas-irqchip.patch b/target/linux/oxnas/patches-3.18/320-oxnas-irqchip.patch index e6262da78d..5e130bea81 100644 --- a/target/linux/oxnas/patches-3.18/320-oxnas-irqchip.patch +++ b/target/linux/oxnas/patches-3.18/320-oxnas-irqchip.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/drivers/irqchip/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/irqchip/Kconfig -+++ linux-3.18-rc4/drivers/irqchip/Kconfig +--- a/drivers/irqchip/Kconfig ++++ b/drivers/irqchip/Kconfig @@ -15,6 +15,11 @@ config ARM_GIC_V3 select IRQ_DOMAIN select MULTI_IRQ_HANDLER @@ -14,10 +12,8 @@ Index: linux-3.18-rc4/drivers/irqchip/Kconfig config ARM_NVIC bool select IRQ_DOMAIN -Index: linux-3.18-rc4/drivers/irqchip/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/irqchip/Makefile -+++ linux-3.18-rc4/drivers/irqchip/Makefile +--- a/drivers/irqchip/Makefile ++++ b/drivers/irqchip/Makefile @@ -28,6 +28,7 @@ obj-$(CONFIG_IMGPDC_IRQ) += irq-imgpdc. obj-$(CONFIG_SIRF_IRQ) += irq-sirfsoc.o obj-$(CONFIG_RENESAS_INTC_IRQPIN) += irq-renesas-intc-irqpin.o @@ -26,10 +22,8 @@ Index: linux-3.18-rc4/drivers/irqchip/Makefile obj-$(CONFIG_VERSATILE_FPGA_IRQ) += irq-versatile-fpga.o obj-$(CONFIG_ARCH_NSPIRE) += irq-zevio.o obj-$(CONFIG_ARCH_VT8500) += irq-vt8500.o -Index: linux-3.18-rc4/drivers/irqchip/irq-gic.c -=================================================================== ---- linux-3.18-rc4.orig/drivers/irqchip/irq-gic.c -+++ linux-3.18-rc4/drivers/irqchip/irq-gic.c +--- a/drivers/irqchip/irq-gic.c ++++ b/drivers/irqchip/irq-gic.c @@ -1044,6 +1044,7 @@ IRQCHIP_DECLARE(gic_400, "arm,gic-400", IRQCHIP_DECLARE(cortex_a15_gic, "arm,cortex-a15-gic", gic_of_init); IRQCHIP_DECLARE(cortex_a9_gic, "arm,cortex-a9-gic", gic_of_init); diff --git a/target/linux/oxnas/patches-3.18/330-oxnas-pinctrl.patch b/target/linux/oxnas/patches-3.18/330-oxnas-pinctrl.patch index 3ecc6ebe77..1bca799b8a 100644 --- a/target/linux/oxnas/patches-3.18/330-oxnas-pinctrl.patch +++ b/target/linux/oxnas/patches-3.18/330-oxnas-pinctrl.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/drivers/pinctrl/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/pinctrl/Kconfig -+++ linux-3.18-rc4/drivers/pinctrl/Kconfig +--- a/drivers/pinctrl/Kconfig ++++ b/drivers/pinctrl/Kconfig @@ -67,6 +67,15 @@ config PINCTRL_AT91 help Say Y here to enable the at91 pinctrl driver @@ -18,10 +16,8 @@ Index: linux-3.18-rc4/drivers/pinctrl/Kconfig config PINCTRL_BAYTRAIL bool "Intel Baytrail GPIO pin control" depends on GPIOLIB && ACPI && X86 -Index: linux-3.18-rc4/drivers/pinctrl/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/pinctrl/Makefile -+++ linux-3.18-rc4/drivers/pinctrl/Makefile +--- a/drivers/pinctrl/Makefile ++++ b/drivers/pinctrl/Makefile @@ -18,6 +18,7 @@ obj-$(CONFIG_PINCTRL_BCM2835) += pinctrl obj-$(CONFIG_PINCTRL_BAYTRAIL) += pinctrl-baytrail.o obj-$(CONFIG_PINCTRL_BCM281XX) += pinctrl-bcm281xx.o diff --git a/target/linux/oxnas/patches-3.18/340-oxnas-pcie.patch b/target/linux/oxnas/patches-3.18/340-oxnas-pcie.patch index 6549db01a9..b54f00e38a 100644 --- a/target/linux/oxnas/patches-3.18/340-oxnas-pcie.patch +++ b/target/linux/oxnas/patches-3.18/340-oxnas-pcie.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/drivers/pci/host/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/pci/host/Kconfig -+++ linux-3.18-rc4/drivers/pci/host/Kconfig +--- a/drivers/pci/host/Kconfig ++++ b/drivers/pci/host/Kconfig @@ -91,4 +91,9 @@ config PCI_XGENE There are 5 internal PCIe ports available. Each port is GEN3 capable and have varied lanes from x1 to x8. @@ -12,10 +10,8 @@ Index: linux-3.18-rc4/drivers/pci/host/Kconfig + select PCIEPORTBUS + endmenu -Index: linux-3.18-rc4/drivers/pci/host/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/pci/host/Makefile -+++ linux-3.18-rc4/drivers/pci/host/Makefile +--- a/drivers/pci/host/Makefile ++++ b/drivers/pci/host/Makefile @@ -3,6 +3,7 @@ obj-$(CONFIG_PCI_DRA7XX) += pci-dra7xx.o obj-$(CONFIG_PCI_EXYNOS) += pci-exynos.o obj-$(CONFIG_PCI_IMX6) += pci-imx6.o diff --git a/target/linux/oxnas/patches-3.18/350-oxnas-reset.patch b/target/linux/oxnas/patches-3.18/350-oxnas-reset.patch index 5540920414..c29423756f 100644 --- a/target/linux/oxnas/patches-3.18/350-oxnas-reset.patch +++ b/target/linux/oxnas/patches-3.18/350-oxnas-reset.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/drivers/reset/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/reset/Kconfig -+++ linux-3.18-rc4/drivers/reset/Kconfig +--- a/drivers/reset/Kconfig ++++ b/drivers/reset/Kconfig @@ -12,4 +12,9 @@ menuconfig RESET_CONTROLLER If unsure, say no. @@ -12,10 +10,8 @@ Index: linux-3.18-rc4/drivers/reset/Kconfig + source "drivers/reset/sti/Kconfig" + -Index: linux-3.18-rc4/drivers/reset/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/reset/Makefile -+++ linux-3.18-rc4/drivers/reset/Makefile +--- a/drivers/reset/Makefile ++++ b/drivers/reset/Makefile @@ -1,4 +1,5 @@ obj-$(CONFIG_RESET_CONTROLLER) += core.o +obj-$(CONFIG_RESET_CONTROLLER_OXNAS) += reset-ox820.o diff --git a/target/linux/oxnas/patches-3.18/400-oxnas-nand.patch b/target/linux/oxnas/patches-3.18/400-oxnas-nand.patch index 90827e5b8a..779e74b87e 100644 --- a/target/linux/oxnas/patches-3.18/400-oxnas-nand.patch +++ b/target/linux/oxnas/patches-3.18/400-oxnas-nand.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/drivers/mtd/nand/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/mtd/nand/Kconfig -+++ linux-3.18-rc4/drivers/mtd/nand/Kconfig +--- a/drivers/mtd/nand/Kconfig ++++ b/drivers/mtd/nand/Kconfig @@ -516,4 +516,12 @@ config MTD_NAND_XWAY Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached to the External Bus Unit (EBU). @@ -15,10 +13,8 @@ Index: linux-3.18-rc4/drivers/mtd/nand/Kconfig + to the STATIC Unit. + endif # MTD_NAND -Index: linux-3.18-rc4/drivers/mtd/nand/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/mtd/nand/Makefile -+++ linux-3.18-rc4/drivers/mtd/nand/Makefile +--- a/drivers/mtd/nand/Makefile ++++ b/drivers/mtd/nand/Makefile @@ -50,5 +50,6 @@ obj-$(CONFIG_MTD_NAND_JZ4740) += jz4740 obj-$(CONFIG_MTD_NAND_GPMI_NAND) += gpmi-nand/ obj-$(CONFIG_MTD_NAND_XWAY) += xway_nand.o diff --git a/target/linux/oxnas/patches-3.18/500-oxnas-sata.patch b/target/linux/oxnas/patches-3.18/500-oxnas-sata.patch index 94b792b136..af5e66ff03 100644 --- a/target/linux/oxnas/patches-3.18/500-oxnas-sata.patch +++ b/target/linux/oxnas/patches-3.18/500-oxnas-sata.patch @@ -1,8 +1,6 @@ -Index: linux-3.18-rc4/drivers/ata/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/ata/Kconfig -+++ linux-3.18-rc4/drivers/ata/Kconfig -@@ -385,6 +385,13 @@ config SATA_VITESSE +--- a/drivers/ata/Kconfig ++++ b/drivers/ata/Kconfig +@@ -401,6 +401,13 @@ config SATA_VITESSE If unsure, say N. @@ -16,10 +14,8 @@ Index: linux-3.18-rc4/drivers/ata/Kconfig comment "PATA SFF controllers with BMDMA" config PATA_ALI -Index: linux-3.18-rc4/drivers/ata/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/ata/Makefile -+++ linux-3.18-rc4/drivers/ata/Makefile +--- a/drivers/ata/Makefile ++++ b/drivers/ata/Makefile @@ -37,6 +37,7 @@ obj-$(CONFIG_SATA_SVW) += sata_svw.o obj-$(CONFIG_SATA_ULI) += sata_uli.o obj-$(CONFIG_SATA_VIA) += sata_via.o diff --git a/target/linux/oxnas/patches-3.18/800-oxnas-ehci.patch b/target/linux/oxnas/patches-3.18/800-oxnas-ehci.patch index f2221dda88..b9be0c6127 100644 --- a/target/linux/oxnas/patches-3.18/800-oxnas-ehci.patch +++ b/target/linux/oxnas/patches-3.18/800-oxnas-ehci.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/drivers/usb/host/Kconfig -=================================================================== ---- linux-3.18-rc4.orig/drivers/usb/host/Kconfig -+++ linux-3.18-rc4/drivers/usb/host/Kconfig +--- a/drivers/usb/host/Kconfig ++++ b/drivers/usb/host/Kconfig @@ -302,6 +302,13 @@ config USB_OCTEON_EHCI USB 2.0 device support. All CN6XXX based chips with USB are supported. @@ -16,10 +14,8 @@ Index: linux-3.18-rc4/drivers/usb/host/Kconfig endif # USB_EHCI_HCD config USB_OXU210HP_HCD -Index: linux-3.18-rc4/drivers/usb/host/Makefile -=================================================================== ---- linux-3.18-rc4.orig/drivers/usb/host/Makefile -+++ linux-3.18-rc4/drivers/usb/host/Makefile +--- a/drivers/usb/host/Makefile ++++ b/drivers/usb/host/Makefile @@ -44,6 +44,7 @@ obj-$(CONFIG_USB_EHCI_HCD_AT91) += ehci- obj-$(CONFIG_USB_EHCI_MSM) += ehci-msm.o obj-$(CONFIG_USB_EHCI_TEGRA) += ehci-tegra.o diff --git a/target/linux/oxnas/patches-3.18/900-more-boards.patch b/target/linux/oxnas/patches-3.18/900-more-boards.patch index b31967ad81..fab6936576 100644 --- a/target/linux/oxnas/patches-3.18/900-more-boards.patch +++ b/target/linux/oxnas/patches-3.18/900-more-boards.patch @@ -1,7 +1,5 @@ -Index: linux-3.18-rc4/arch/arm/boot/dts/Makefile -=================================================================== ---- linux-3.18-rc4.orig/arch/arm/boot/dts/Makefile -+++ linux-3.18-rc4/arch/arm/boot/dts/Makefile +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile @@ -352,7 +352,10 @@ dtb-$(CONFIG_ARCH_ORION5X) += orion5x-la orion5x-lacie-ethernet-disk-mini-v2.dtb \ orion5x-maxtor-shared-storage-2.dtb \ diff --git a/target/linux/oxnas/patches-3.18/999-libata-hacks.patch b/target/linux/oxnas/patches-3.18/999-libata-hacks.patch index a1c80d89eb..741dddff40 100644 --- a/target/linux/oxnas/patches-3.18/999-libata-hacks.patch +++ b/target/linux/oxnas/patches-3.18/999-libata-hacks.patch @@ -1,8 +1,6 @@ -Index: linux-3.18-rc7/drivers/ata/libata-core.c -=================================================================== ---- linux-3.18-rc7.orig/drivers/ata/libata-core.c -+++ linux-3.18-rc7/drivers/ata/libata-core.c -@@ -1568,6 +1568,14 @@ unsigned ata_exec_internal_sg(struct ata +--- a/drivers/ata/libata-core.c ++++ b/drivers/ata/libata-core.c +@@ -1581,6 +1581,14 @@ unsigned ata_exec_internal_sg(struct ata return AC_ERR_SYSTEM; } @@ -17,7 +15,7 @@ Index: linux-3.18-rc7/drivers/ata/libata-core.c /* initialize internal qc */ /* XXX: Tag 0 is used for drivers with legacy EH as some -@@ -4739,6 +4747,9 @@ static struct ata_queued_cmd *ata_qc_new +@@ -4752,6 +4760,9 @@ static struct ata_queued_cmd *ata_qc_new if (unlikely(ap->pflags & ATA_PFLAG_FROZEN)) return NULL; @@ -25,9 +23,9 @@ Index: linux-3.18-rc7/drivers/ata/libata-core.c + return NULL; + for (i = 0, tag = ap->last_tag + 1; i < max_queue; i++, tag++) { - tag = tag < max_queue ? tag : 0; - -@@ -4805,6 +4816,8 @@ void ata_qc_free(struct ata_queued_cmd * + if (ap->flags & ATA_FLAG_LOWTAG) + tag = i; +@@ -4824,6 +4835,8 @@ void ata_qc_free(struct ata_queued_cmd * if (likely(ata_tag_valid(tag))) { qc->tag = ATA_TAG_POISON; clear_bit(tag, &ap->qc_allocated); @@ -36,11 +34,9 @@ Index: linux-3.18-rc7/drivers/ata/libata-core.c } } -Index: linux-3.18-rc7/include/linux/libata.h -=================================================================== ---- linux-3.18-rc7.orig/include/linux/libata.h -+++ linux-3.18-rc7/include/linux/libata.h -@@ -884,6 +884,8 @@ struct ata_port_operations { +--- a/include/linux/libata.h ++++ b/include/linux/libata.h +@@ -891,6 +891,8 @@ struct ata_port_operations { void (*qc_prep)(struct ata_queued_cmd *qc); unsigned int (*qc_issue)(struct ata_queued_cmd *qc); bool (*qc_fill_rtf)(struct ata_queued_cmd *qc); @@ -49,7 +45,7 @@ Index: linux-3.18-rc7/include/linux/libata.h /* * Configuration and exception handling -@@ -974,6 +976,9 @@ struct ata_port_operations { +@@ -981,6 +983,9 @@ struct ata_port_operations { void (*phy_reset)(struct ata_port *ap); void (*eng_timeout)(struct ata_port *ap); diff --git a/target/linux/ramips/patches-3.18/0012-MIPS-ralink-add-MT7621-support.patch b/target/linux/ramips/patches-3.18/0012-MIPS-ralink-add-MT7621-support.patch index 0eebadb849..771de12f17 100644 --- a/target/linux/ramips/patches-3.18/0012-MIPS-ralink-add-MT7621-support.patch +++ b/target/linux/ramips/patches-3.18/0012-MIPS-ralink-add-MT7621-support.patch @@ -78,7 +78,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> +#endif --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S -@@ -51,6 +51,7 @@ +@@ -51,6 +51,7 @@ SECTIONS /* read-only */ _text = .; /* Text and read-only data */ .text : { @@ -88,9 +88,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org> LOCK_TEXT --- a/arch/mips/ralink/Kconfig +++ b/arch/mips/ralink/Kconfig -@@ -7,6 +7,11 @@ - select CLKSRC_OF - select CLKSRC_MMIO +@@ -12,6 +12,11 @@ config RALINK_ILL_ACC + depends on SOC_RT305X + default y +config IRQ_INTC + bool @@ -100,7 +100,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> choice prompt "Ralink SoC selection" default SOC_RT305X -@@ -28,6 +33,15 @@ +@@ -33,6 +38,15 @@ choice config SOC_MT7620 bool "MT7620" @@ -116,7 +116,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> endchoice choice -@@ -59,6 +73,10 @@ +@@ -64,6 +78,10 @@ choice depends on SOC_MT7620 select BUILTIN_DTB @@ -154,7 +154,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> --- a/arch/mips/ralink/Platform +++ b/arch/mips/ralink/Platform -@@ -27,3 +27,8 @@ +@@ -27,3 +27,8 @@ cflags-$(CONFIG_SOC_RT3883) += -I$(srctr # load-$(CONFIG_SOC_MT7620) += 0xffffffff80000000 cflags-$(CONFIG_SOC_MT7620) += -I$(srctree)/arch/mips/include/asm/mach-ralink/mt7620 @@ -715,7 +715,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> +} --- a/arch/mips/kernel/mips-cm.c +++ b/arch/mips/kernel/mips-cm.c -@@ -105,7 +105,7 @@ +@@ -105,7 +105,7 @@ int mips_cm_probe(void) write_gcr_base(base_reg); /* disable CM regions */ @@ -724,7 +724,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> write_gcr_reg0_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); write_gcr_reg1_base(CM_GCR_REGn_BASE_BASEADDR_MSK); write_gcr_reg1_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); -@@ -113,7 +113,7 @@ +@@ -113,7 +113,7 @@ int mips_cm_probe(void) write_gcr_reg2_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); write_gcr_reg3_base(CM_GCR_REGn_BASE_BASEADDR_MSK); write_gcr_reg3_mask(CM_GCR_REGn_MASK_ADDRMASK_MSK); diff --git a/target/linux/ramips/patches-3.18/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch b/target/linux/ramips/patches-3.18/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch index 955550a422..310d362016 100644 --- a/target/linux/ramips/patches-3.18/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch +++ b/target/linux/ramips/patches-3.18/0017-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> --- a/arch/mips/kernel/cevt-r4k.c +++ b/arch/mips/kernel/cevt-r4k.c -@@ -29,12 +29,6 @@ +@@ -29,12 +29,6 @@ static int mips_next_event(unsigned long return res; } @@ -24,7 +24,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device); int cp0_timer_irq_installed; -@@ -75,9 +69,38 @@ +@@ -75,9 +69,38 @@ struct irqaction c0_compare_irqaction = .name = "timer", }; @@ -63,7 +63,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> } /* -@@ -198,12 +221,14 @@ +@@ -198,12 +221,14 @@ int r4k_clockevent_init(void) clockevents_register_device(cd); @@ -95,5 +95,5 @@ Signed-off-by: John Crispin <blogic@openwrt.org> select CLKSRC_MMIO + select CEVT_SYSTICK_QUIRK - config IRQ_INTC + config RALINK_ILL_ACC bool diff --git a/target/linux/ramips/patches-3.18/0026-MIPS-ralink-add-mt7628an-support.patch b/target/linux/ramips/patches-3.18/0026-MIPS-ralink-add-mt7628an-support.patch index 043e4a39e2..cdfb4c0f62 100644 --- a/target/linux/ramips/patches-3.18/0026-MIPS-ralink-add-mt7628an-support.patch +++ b/target/linux/ramips/patches-3.18/0026-MIPS-ralink-add-mt7628an-support.patch @@ -46,7 +46,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #define MT7620_SDRAM_SIZE_MAX 64 --- a/arch/mips/ralink/Kconfig +++ b/arch/mips/ralink/Kconfig -@@ -31,7 +31,7 @@ choice +@@ -41,7 +41,7 @@ choice select HW_HAS_PCI config SOC_MT7620 diff --git a/target/linux/ramips/patches-3.18/0028-serial-ralink-the-core-has-a-size-of-0x100-and-not-0.patch b/target/linux/ramips/patches-3.18/0028-serial-ralink-the-core-has-a-size-of-0x100-and-not-0.patch index 82473d2f53..ab60f2d549 100644 --- a/target/linux/ramips/patches-3.18/0028-serial-ralink-the-core-has-a-size-of-0x100-and-not-0.patch +++ b/target/linux/ramips/patches-3.18/0028-serial-ralink-the-core-has-a-size-of-0x100-and-not-0.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c -@@ -2635,7 +2635,7 @@ serial8250_pm(struct uart_port *port, un +@@ -2634,7 +2634,7 @@ serial8250_pm(struct uart_port *port, un static unsigned int serial8250_port_size(struct uart_8250_port *pt) { if (pt->port.iotype == UPIO_AU) diff --git a/target/linux/ramips/patches-3.18/0030-GPIO-add-named-gpio-exports.patch b/target/linux/ramips/patches-3.18/0030-GPIO-add-named-gpio-exports.patch index 534d8c18fc..307a99ab60 100644 --- a/target/linux/ramips/patches-3.18/0030-GPIO-add-named-gpio-exports.patch +++ b/target/linux/ramips/patches-3.18/0030-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #include "gpiolib.h" -@@ -315,3 +317,69 @@ void of_gpiochip_remove(struct gpio_chip +@@ -316,3 +318,69 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } diff --git a/target/linux/ramips/patches-3.18/0031-PCI-MIPS-adds-rt2880-pci-support.patch b/target/linux/ramips/patches-3.18/0031-PCI-MIPS-adds-rt2880-pci-support.patch index d3f16f4fac..193f1c28b4 100644 --- a/target/linux/ramips/patches-3.18/0031-PCI-MIPS-adds-rt2880-pci-support.patch +++ b/target/linux/ramips/patches-3.18/0031-PCI-MIPS-adds-rt2880-pci-support.patch @@ -309,7 +309,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> +arch_initcall(pcibios_init); --- a/arch/mips/ralink/Kconfig +++ b/arch/mips/ralink/Kconfig -@@ -21,6 +21,7 @@ choice +@@ -31,6 +31,7 @@ choice config SOC_RT288X bool "RT288x" select MIPS_L1_CACHE_SHIFT_4 diff --git a/target/linux/ramips/patches-3.18/0032-PCI-MIPS-adds-mt7620a-pcie-driver.patch b/target/linux/ramips/patches-3.18/0032-PCI-MIPS-adds-mt7620a-pcie-driver.patch index 03f8a92c8d..c20a5df55e 100644 --- a/target/linux/ramips/patches-3.18/0032-PCI-MIPS-adds-mt7620a-pcie-driver.patch +++ b/target/linux/ramips/patches-3.18/0032-PCI-MIPS-adds-mt7620a-pcie-driver.patch @@ -422,7 +422,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> +arch_initcall(mt7620_pci_init); --- a/arch/mips/ralink/Kconfig +++ b/arch/mips/ralink/Kconfig -@@ -33,6 +33,7 @@ choice +@@ -43,6 +43,7 @@ choice config SOC_MT7620 bool "MT7620/8" diff --git a/target/linux/ramips/patches-3.18/0033-NET-multi-phy-support.patch b/target/linux/ramips/patches-3.18/0033-NET-multi-phy-support.patch index 2cd8633288..f6d2456bad 100644 --- a/target/linux/ramips/patches-3.18/0033-NET-multi-phy-support.patch +++ b/target/linux/ramips/patches-3.18/0033-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -819,7 +819,8 @@ void phy_state_machine(struct work_struc +@@ -838,7 +838,8 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> phydev->adjust_link(phydev->attached_dev); break; } -@@ -892,7 +893,8 @@ void phy_state_machine(struct work_struc +@@ -911,7 +912,8 @@ void phy_state_machine(struct work_struc netif_carrier_on(phydev->attached_dev); } else { phydev->state = PHY_NOLINK; @@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> } phydev->adjust_link(phydev->attached_dev); -@@ -904,7 +906,8 @@ void phy_state_machine(struct work_struc +@@ -923,7 +925,8 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; diff --git a/target/linux/ramips/patches-3.18/0037-USB-phy-add-ralink-SoC-driver.patch b/target/linux/ramips/patches-3.18/0037-USB-phy-add-ralink-SoC-driver.patch index a27002a769..1dd866103a 100644 --- a/target/linux/ramips/patches-3.18/0037-USB-phy-add-ralink-SoC-driver.patch +++ b/target/linux/ramips/patches-3.18/0037-USB-phy-add-ralink-SoC-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig -@@ -239,6 +239,11 @@ +@@ -239,6 +239,11 @@ config PHY_XGENE help This option enables support for APM X-Gene SoC multi-purpose PHY. @@ -14,7 +14,7 @@ depends on RESET_CONTROLLER --- a/drivers/phy/Makefile +++ b/drivers/phy/Makefile -@@ -31,3 +31,4 @@ +@@ -31,3 +31,4 @@ obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY) += obj-$(CONFIG_PHY_XGENE) += phy-xgene.o obj-$(CONFIG_PHY_STIH407_USB) += phy-stih407-usb.o obj-$(CONFIG_PHY_STIH41X_USB) += phy-stih41x-usb.o diff --git a/target/linux/ramips/patches-3.18/0038-USB-add-OHCI-EHCI-OF-binding.patch b/target/linux/ramips/patches-3.18/0038-USB-add-OHCI-EHCI-OF-binding.patch index 3012c1c9b5..a5fb5aba44 100644 --- a/target/linux/ramips/patches-3.18/0038-USB-add-OHCI-EHCI-OF-binding.patch +++ b/target/linux/ramips/patches-3.18/0038-USB-add-OHCI-EHCI-OF-binding.patch @@ -14,7 +14,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> --- a/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c -@@ -359,6 +373,7 @@ static int ehci_platform_resume(struct d +@@ -359,6 +359,7 @@ static int ehci_platform_resume(struct d static const struct of_device_id vt8500_ehci_ids[] = { { .compatible = "via,vt8500-ehci", }, { .compatible = "wm,prizm-ehci", }, @@ -24,7 +24,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> }; --- a/drivers/usb/host/ohci-platform.c +++ b/drivers/usb/host/ohci-platform.c -@@ -342,6 +358,7 @@ static int ohci_platform_resume(struct d +@@ -342,6 +342,7 @@ static int ohci_platform_resume(struct d #endif /* CONFIG_PM */ static const struct of_device_id ohci_platform_ids[] = { diff --git a/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch b/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch index b014c3e847..2bffa1f696 100644 --- a/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch +++ b/target/linux/ramips/patches-3.18/0044-mtd-add-chunked-read-io-to-m25p80.patch @@ -8,7 +8,7 @@ #include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> -@@ -32,6 +33,7 @@ +@@ -32,6 +33,7 @@ struct m25p { struct spi_device *spi; struct spi_nor spi_nor; struct mtd_info mtd; @@ -16,7 +16,7 @@ u8 command[MAX_CMD_SIZE]; }; -@@ -157,6 +159,58 @@ +@@ -157,6 +159,58 @@ static int m25p80_read(struct spi_nor *n return 0; } @@ -75,7 +75,7 @@ static int m25p80_erase(struct spi_nor *nor, loff_t offset) { struct m25p *flash = nor->priv; -@@ -197,6 +251,7 @@ +@@ -197,6 +251,7 @@ static int m25p_probe(struct spi_device struct spi_nor *nor; enum read_mode mode = SPI_NOR_NORMAL; char *flash_name = NULL; @@ -83,7 +83,7 @@ int ret; data = dev_get_platdata(&spi->dev); -@@ -244,6 +299,14 @@ +@@ -244,6 +299,14 @@ static int m25p_probe(struct spi_device if (ret) return ret; diff --git a/target/linux/ramips/patches-3.18/0060-soc_type.patch b/target/linux/ramips/patches-3.18/0060-soc_type.patch index 23ce6cf121..60d301405b 100644 --- a/target/linux/ramips/patches-3.18/0060-soc_type.patch +++ b/target/linux/ramips/patches-3.18/0060-soc_type.patch @@ -219,7 +219,7 @@ { --- a/arch/mips/ralink/mt7621.c +++ b/arch/mips/ralink/mt7621.c -@@ -175,6 +175,7 @@ void prom_soc_init(struct ralink_soc_inf +@@ -176,6 +176,7 @@ void prom_soc_init(struct ralink_soc_inf soc_info->mem_size_min = MT7621_DDR2_SIZE_MIN; soc_info->mem_size_max = MT7621_DDR2_SIZE_MAX; soc_info->mem_base = MT7621_DRAM_BASE; diff --git a/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch b/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch index f13691ad1b..fb9b9f3e88 100644 --- a/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch +++ b/target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch @@ -1,6 +1,6 @@ --- a/drivers/usb/core/hcd-pci.c +++ b/drivers/usb/core/hcd-pci.c -@@ -214,8 +214,13 @@ +@@ -214,8 +214,13 @@ int usb_hcd_pci_probe(struct pci_dev *de goto disable_pci; } @@ -16,7 +16,7 @@ /* EHCI, OHCI */ --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -1286,7 +1286,7 @@ +@@ -1286,7 +1286,7 @@ static void hub_quiesce(struct usb_hub * if (type != HUB_SUSPEND) { /* Disconnect all the children */ for (i = 0; i < hdev->maxchild; ++i) { @@ -27,7 +27,7 @@ } --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c -@@ -480,8 +480,10 @@ +@@ -480,8 +480,10 @@ void usb_hub_remove_port_device(struct u struct usb_port *port_dev = hub->ports[port1 - 1]; struct usb_port *peer; @@ -44,7 +44,7 @@ } --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig -@@ -32,7 +32,13 @@ +@@ -32,7 +32,13 @@ config USB_XHCI_PCI default y config USB_XHCI_PLATFORM @@ -59,7 +59,7 @@ config USB_XHCI_MVEBU tristate "xHCI support for Marvell Armada 375/38x" -@@ -589,7 +595,7 @@ +@@ -589,7 +595,7 @@ endif # USB_OHCI_HCD config USB_UHCI_HCD tristate "UHCI HCD (most Intel and VIA) support" @@ -70,7 +70,7 @@ accessing the USB hardware in the PC (which is also called the USB --- a/drivers/usb/host/Makefile +++ b/drivers/usb/host/Makefile -@@ -16,7 +16,12 @@ +@@ -16,7 +16,12 @@ xhci-hcd-y := xhci.o xhci-mem.o xhci-hcd-y += xhci-ring.o xhci-hub.o xhci-dbg.o xhci-hcd-y += xhci-trace.o @@ -83,7 +83,7 @@ ifneq ($(CONFIG_USB_XHCI_MVEBU), ) xhci-plat-hcd-y += xhci-mvebu.o endif -@@ -26,9 +31,14 @@ +@@ -26,9 +31,14 @@ endif obj-$(CONFIG_USB_WHCI_HCD) += whci/ @@ -3793,7 +3793,7 @@ --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -67,6 +67,9 @@ +@@ -67,6 +67,9 @@ static struct xhci_segment *xhci_segment static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg) { @@ -3803,7 +3803,7 @@ if (seg->trbs) { dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma); seg->trbs = NULL; -@@ -1475,9 +1478,17 @@ +@@ -1475,9 +1478,17 @@ int xhci_endpoint_init(struct xhci_hcd * max_burst = (usb_endpoint_maxp(&ep->desc) & 0x1800) >> 11; } @@ -5039,7 +5039,7 @@ +#endif --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -33,6 +33,13 @@ +@@ -33,6 +33,13 @@ static void xhci_plat_quirks(struct devi * dev struct in order to setup MSI */ xhci->quirks |= XHCI_PLAT; @@ -5053,7 +5053,7 @@ } /* called during probe() after chip reset completes */ -@@ -79,7 +86,11 @@ +@@ -79,7 +86,11 @@ static int xhci_plat_probe(struct platfo driver = &xhci_plat_hc_driver; @@ -5067,7 +5067,7 @@ --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -254,16 +254,20 @@ +@@ -254,16 +254,20 @@ static void inc_enq(struct xhci_hcd *xhc static inline int room_on_ring(struct xhci_hcd *xhci, struct xhci_ring *ring, unsigned int num_trbs) { @@ -5088,7 +5088,7 @@ return 1; } -@@ -2799,6 +2803,7 @@ +@@ -2805,6 +2809,7 @@ static int prepare_ring(struct xhci_hcd next = ring->enqueue; while (last_trb(xhci, ring, ring->enq_seg, next)) { @@ -5096,7 +5096,7 @@ /* If we're not dealing with 0.95 hardware or isoc rings * on AMD 0.96 host, clear the chain bit. */ -@@ -2808,6 +2813,9 @@ +@@ -2814,6 +2819,9 @@ static int prepare_ring(struct xhci_hcd next->link.control &= cpu_to_le32(~TRB_CHAIN); else next->link.control |= cpu_to_le32(TRB_CHAIN); @@ -5106,7 +5106,7 @@ wmb(); next->link.control ^= cpu_to_le32(TRB_CYCLE); -@@ -2938,6 +2946,9 @@ +@@ -2944,6 +2952,9 @@ static void giveback_first_trb(struct xh start_trb->field[3] |= cpu_to_le32(start_cycle); else start_trb->field[3] &= cpu_to_le32(~TRB_CYCLE); @@ -5116,7 +5116,7 @@ xhci_ring_ep_doorbell(xhci, slot_id, ep_index, stream_id); } -@@ -2993,6 +3004,29 @@ +@@ -2999,6 +3010,29 @@ static u32 xhci_td_remainder(unsigned in return (remainder >> 10) << 17; } @@ -5146,7 +5146,7 @@ /* * For xHCI 1.0 host controllers, TD size is the number of max packet sized * packets remaining in the TD (*not* including this TRB). -@@ -3130,6 +3164,7 @@ +@@ -3136,6 +3170,7 @@ static int queue_bulk_sg_tx(struct xhci_ } /* Set the TRB length, TD size, and interrupter fields. */ @@ -5154,7 +5154,7 @@ if (xhci->hci_version < 0x100) { remainder = xhci_td_remainder( urb->transfer_buffer_length - -@@ -3139,6 +3174,12 @@ +@@ -3145,6 +3180,12 @@ static int queue_bulk_sg_tx(struct xhci_ trb_buff_len, total_packet_count, urb, num_trbs - 1); } @@ -5167,7 +5167,7 @@ length_field = TRB_LEN(trb_buff_len) | remainder | TRB_INTR_TARGET(0); -@@ -3201,6 +3242,9 @@ +@@ -3207,6 +3248,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd * int running_total, trb_buff_len, ret; unsigned int total_packet_count; u64 addr; @@ -5177,7 +5177,7 @@ if (urb->num_sgs) return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index); -@@ -3226,6 +3270,25 @@ +@@ -3232,6 +3276,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd * running_total += TRB_MAX_BUFF_SIZE; } /* FIXME: this doesn't deal with URB_ZERO_PACKET - need one more */ @@ -5203,7 +5203,7 @@ ret = prepare_transfer(xhci, xhci->devs[slot_id], ep_index, urb->stream_id, -@@ -3285,6 +3348,7 @@ +@@ -3291,6 +3354,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd * field |= TRB_ISP; /* Set the TRB length, TD size, and interrupter fields. */ @@ -5211,7 +5211,7 @@ if (xhci->hci_version < 0x100) { remainder = xhci_td_remainder( urb->transfer_buffer_length - -@@ -3294,6 +3358,10 @@ +@@ -3300,6 +3364,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd * trb_buff_len, total_packet_count, urb, num_trbs - 1); } @@ -5222,7 +5222,7 @@ length_field = TRB_LEN(trb_buff_len) | remainder | TRB_INTR_TARGET(0); -@@ -3383,7 +3451,11 @@ +@@ -3389,7 +3457,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * field |= 0x1; /* xHCI 1.0 6.4.1.2.1: Transfer Type field */ @@ -5234,7 +5234,7 @@ if (urb->transfer_buffer_length > 0) { if (setup->bRequestType & USB_DIR_IN) field |= TRB_TX_TYPE(TRB_DATA_IN); -@@ -3407,7 +3479,12 @@ +@@ -3413,7 +3485,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * field = TRB_TYPE(TRB_DATA); length_field = TRB_LEN(urb->transfer_buffer_length) | @@ -5247,7 +5247,7 @@ TRB_INTR_TARGET(0); if (urb->transfer_buffer_length > 0) { if (setup->bRequestType & USB_DIR_IN) -@@ -3530,6 +3607,9 @@ +@@ -3536,6 +3613,9 @@ static int xhci_queue_isoc_tx(struct xhc u64 start_addr, addr; int i, j; bool more_trbs_coming; @@ -5257,7 +5257,7 @@ ep_ring = xhci->devs[slot_id]->eps[ep_index].ring; -@@ -3543,6 +3623,21 @@ +@@ -3549,6 +3629,21 @@ static int xhci_queue_isoc_tx(struct xhc start_trb = &ep_ring->enqueue->generic; start_cycle = ep_ring->cycle_state; @@ -5279,7 +5279,7 @@ urb_priv = urb->hcpriv; /* Queue the first TRB, even if it's zero-length */ for (i = 0; i < num_tds; i++) { -@@ -3614,9 +3709,13 @@ +@@ -3620,9 +3715,13 @@ static int xhci_queue_isoc_tx(struct xhc } else { td->last_trb = ep_ring->enqueue; field |= TRB_IOC; @@ -5293,7 +5293,7 @@ /* Set BEI bit except for the last td */ if (i < num_tds - 1) field |= TRB_BEI; -@@ -3631,6 +3730,7 @@ +@@ -3637,6 +3736,7 @@ static int xhci_queue_isoc_tx(struct xhc trb_buff_len = td_remain_len; /* Set the TRB length, TD size, & interrupter fields. */ @@ -5301,7 +5301,7 @@ if (xhci->hci_version < 0x100) { remainder = xhci_td_remainder( td_len - running_total); -@@ -3640,6 +3740,10 @@ +@@ -3646,6 +3746,10 @@ static int xhci_queue_isoc_tx(struct xhc total_packet_count, urb, (trbs_per_td - j - 1)); } @@ -5331,7 +5331,7 @@ #define DRIVER_AUTHOR "Sarah Sharp" #define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver" -@@ -46,6 +56,18 @@ +@@ -46,6 +56,18 @@ static unsigned int quirks; module_param(quirks, uint, S_IRUGO); MODULE_PARM_DESC(quirks, "Bit flags for quirks to be enabled as default"); @@ -5350,7 +5350,7 @@ /* TODO: copied from ehci-hcd.c - can this be refactored? */ /* * xhci_handshake - spin reading hc until handshake completes or fails -@@ -198,7 +220,7 @@ +@@ -198,7 +220,7 @@ int xhci_reset(struct xhci_hcd *xhci) return ret; } @@ -5359,7 +5359,7 @@ static int xhci_free_msi(struct xhci_hcd *xhci) { int i; -@@ -448,6 +470,11 @@ +@@ -448,6 +470,11 @@ static void compliance_mode_recovery(uns "Attempting compliance mode recovery"); hcd = xhci->shared_hcd; @@ -5371,7 +5371,7 @@ if (hcd->state == HC_STATE_SUSPENDED) usb_hcd_resume_root_hub(hcd); -@@ -497,6 +524,9 @@ +@@ -497,6 +524,9 @@ static bool xhci_compliance_mode_recover { const char *dmi_product_name, *dmi_sys_vendor; @@ -5381,7 +5381,7 @@ dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME); dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR); if (!dmi_product_name || !dmi_sys_vendor) -@@ -542,6 +572,10 @@ +@@ -542,6 +572,10 @@ int xhci_init(struct usb_hcd *hcd) xhci_dbg_trace(xhci, trace_xhci_dbg_init, "xHCI doesn't need link TRB QUIRK"); } @@ -5392,7 +5392,7 @@ retval = xhci_mem_init(xhci, GFP_KERNEL); xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_init"); -@@ -626,7 +660,11 @@ +@@ -626,7 +660,11 @@ int xhci_run(struct usb_hcd *hcd) "// Set the interrupt modulation register"); temp = readl(&xhci->ir_set->irq_control); temp &= ~ER_IRQ_INTERVAL_MASK; @@ -5404,7 +5404,7 @@ writel(temp, &xhci->ir_set->irq_control); /* Set the HCD state before we enable the irqs */ -@@ -651,6 +689,9 @@ +@@ -651,6 +689,9 @@ int xhci_run(struct usb_hcd *hcd) xhci_queue_vendor_command(xhci, command, 0, 0, 0, TRB_TYPE(TRB_NEC_GET_FW)); } @@ -5414,7 +5414,7 @@ xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_run for USB2 roothub"); return 0; -@@ -1642,6 +1683,14 @@ +@@ -1642,6 +1683,14 @@ int xhci_drop_endpoint(struct usb_hcd *h u32 drop_flag; u32 new_add_flags, new_drop_flags; int ret; @@ -5429,7 +5429,7 @@ ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); if (ret <= 0) -@@ -1689,6 +1738,40 @@ +@@ -1689,6 +1738,40 @@ int xhci_drop_endpoint(struct usb_hcd *h xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep); @@ -5470,7 +5470,7 @@ xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n", (unsigned int) ep->desc.bEndpointAddress, udev->slot_id, -@@ -1721,6 +1804,19 @@ +@@ -1721,6 +1804,19 @@ int xhci_add_endpoint(struct usb_hcd *hc u32 new_add_flags, new_drop_flags; struct xhci_virt_device *virt_dev; int ret = 0; @@ -5490,7 +5490,7 @@ ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); if (ret <= 0) { -@@ -1787,6 +1883,56 @@ +@@ -1787,6 +1883,56 @@ int xhci_add_endpoint(struct usb_hcd *hc return -ENOMEM; } @@ -5547,7 +5547,7 @@ ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs); new_add_flags = le32_to_cpu(ctrl_ctx->add_flags); -@@ -4451,8 +4597,14 @@ +@@ -4451,8 +4597,14 @@ static u16 xhci_call_host_update_timeout u16 *timeout) { if (state == USB3_LPM_U1) @@ -5562,7 +5562,7 @@ return xhci_calculate_u2_timeout(xhci, udev, desc); return USB3_LPM_DISABLED; -@@ -4837,7 +4989,9 @@ +@@ -4837,7 +4989,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, hcd->self.no_sg_constraint = 1; /* XHCI controllers don't stop the ep queue on short packets :| */ @@ -5572,7 +5572,7 @@ if (usb_hcd_is_primary_hcd(hcd)) { xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL); -@@ -4900,6 +5054,10 @@ +@@ -4900,6 +5054,10 @@ int xhci_gen_setup(struct usb_hcd *hcd, goto error; xhci_dbg(xhci, "Reset complete\n"); @@ -5583,7 +5583,7 @@ /* Set dma_mask and coherent_dma_mask to 64-bits, * if xHC supports 64-bit addressing */ if (HCC_64BIT_ADDR(xhci->hcc_params) && -@@ -4994,8 +5152,57 @@ +@@ -4994,8 +5152,57 @@ MODULE_DESCRIPTION(DRIVER_DESC); MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_LICENSE("GPL"); @@ -5643,7 +5643,7 @@ * out in specific ways for hardware access. --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h -@@ -32,6 +32,21 @@ +@@ -33,6 +33,21 @@ #include "xhci-ext-caps.h" #include "pci-quirks.h" @@ -5665,7 +5665,7 @@ /* xHCI PCI Configuration Registers */ #define XHCI_SBRN_OFFSET (0x60) -@@ -1582,8 +1597,12 @@ +@@ -1587,8 +1602,12 @@ struct xhci_hcd { /* Compliance Mode Recovery Data */ struct timer_list comp_mode_recovery_timer; u32 port_status_u0; @@ -5678,7 +5678,7 @@ }; /* convert between an HCD pointer and the corresponding EHCI_HCD */ -@@ -1731,6 +1750,26 @@ +@@ -1736,6 +1755,26 @@ void xhci_urb_free_priv(struct xhci_hcd void xhci_free_command(struct xhci_hcd *xhci, struct xhci_command *command); diff --git a/target/linux/ramips/patches-3.18/0063-cevt-rt3352.patch b/target/linux/ramips/patches-3.18/0063-cevt-rt3352.patch index daf8be1360..749701f2e5 100644 --- a/target/linux/ramips/patches-3.18/0063-cevt-rt3352.patch +++ b/target/linux/ramips/patches-3.18/0063-cevt-rt3352.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ralink/cevt-rt3352.c +++ b/arch/mips/ralink/cevt-rt3352.c -@@ -54,7 +54,7 @@ +@@ -54,7 +54,7 @@ static int systick_next_event(unsigned l sdev = container_of(evt, struct systick_device, dev); count = ioread32(sdev->membase + SYSTICK_COUNT); count = (count + delta) % SYSTICK_FREQ; diff --git a/target/linux/ramips/patches-3.18/0100-mtd-split-remove-padding.patch b/target/linux/ramips/patches-3.18/0100-mtd-split-remove-padding.patch index 9ee55d5d4d..32cea7ded9 100644 --- a/target/linux/ramips/patches-3.18/0100-mtd-split-remove-padding.patch +++ b/target/linux/ramips/patches-3.18/0100-mtd-split-remove-padding.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -821,9 +821,6 @@ static void split_uimage(struct mtd_info +@@ -818,9 +818,6 @@ static void split_uimage(struct mtd_info return; len = be32_to_cpu(hdr.size) + 0x40; diff --git a/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch b/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch index c3012fb933..6f6458fc1c 100644 --- a/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch +++ b/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c -@@ -809,8 +809,11 @@ static void split_uimage(struct mtd_info +@@ -806,8 +806,11 @@ static void split_uimage(struct mtd_info { struct { __be32 magic; @@ -13,7 +13,7 @@ } hdr; size_t len; -@@ -820,7 +823,10 @@ static void split_uimage(struct mtd_info +@@ -817,7 +820,10 @@ static void split_uimage(struct mtd_info if (len != sizeof(hdr) || hdr.magic != cpu_to_be32(UBOOT_MAGIC)) return; diff --git a/target/linux/ramips/patches-3.18/0111-i2c-MIPS-add-mt7621-I2C-driver.patch b/target/linux/ramips/patches-3.18/0111-i2c-MIPS-add-mt7621-I2C-driver.patch index 5df95f40bb..b34581ed63 100755..100644 --- a/target/linux/ramips/patches-3.18/0111-i2c-MIPS-add-mt7621-I2C-driver.patch +++ b/target/linux/ramips/patches-3.18/0111-i2c-MIPS-add-mt7621-I2C-driver.patch @@ -1,8 +1,6 @@ -Index: linux-3.18.9/drivers/i2c/busses/Kconfig -=================================================================== ---- linux-3.18.9.orig/drivers/i2c/busses/Kconfig 2015-03-23 15:00:11.730403938 +0800 -+++ linux-3.18.9/drivers/i2c/busses/Kconfig 2015-03-23 15:00:11.982403926 +0800 -@@ -714,6 +714,10 @@ +--- a/drivers/i2c/busses/Kconfig ++++ b/drivers/i2c/busses/Kconfig +@@ -714,6 +714,10 @@ config I2C_RALINK tristate "Ralink I2C Controller" select OF_I2C @@ -13,11 +11,9 @@ Index: linux-3.18.9/drivers/i2c/busses/Kconfig config HAVE_S3C2410_I2C bool help -Index: linux-3.18.9/drivers/i2c/busses/Makefile -=================================================================== ---- linux-3.18.9.orig/drivers/i2c/busses/Makefile 2015-03-23 15:00:11.730403938 +0800 -+++ linux-3.18.9/drivers/i2c/busses/Makefile 2015-03-23 15:00:11.982403926 +0800 -@@ -67,6 +67,7 @@ +--- a/drivers/i2c/busses/Makefile ++++ b/drivers/i2c/busses/Makefile +@@ -67,6 +67,7 @@ obj-$(CONFIG_I2C_PUV3) += i2c-puv3.o obj-$(CONFIG_I2C_PXA) += i2c-pxa.o obj-$(CONFIG_I2C_PXA_PCI) += i2c-pxa-pci.o obj-$(CONFIG_I2C_RALINK) += i2c-ralink.o @@ -25,10 +21,8 @@ Index: linux-3.18.9/drivers/i2c/busses/Makefile obj-$(CONFIG_I2C_QUP) += i2c-qup.o obj-$(CONFIG_I2C_RIIC) += i2c-riic.o obj-$(CONFIG_I2C_RK3X) += i2c-rk3x.o -Index: linux-3.18.9/drivers/i2c/busses/i2c-mt7621.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-3.18.9/drivers/i2c/busses/i2c-mt7621.c 2015-03-23 16:31:42.684747034 +0800 +--- /dev/null ++++ b/drivers/i2c/busses/i2c-mt7621.c @@ -0,0 +1,303 @@ +/* + * drivers/i2c/busses/i2c-mt7621.c diff --git a/target/linux/rb532/patches-3.18/001-cmdline_hack.patch b/target/linux/rb532/patches-3.18/001-cmdline_hack.patch index eacb8e0a40..a39da9c14a 100644 --- a/target/linux/rb532/patches-3.18/001-cmdline_hack.patch +++ b/target/linux/rb532/patches-3.18/001-cmdline_hack.patch @@ -1,6 +1,6 @@ --- a/arch/mips/rb532/prom.c +++ b/arch/mips/rb532/prom.c -@@ -67,6 +67,7 @@ static inline unsigned long tag2ul(char +@@ -67,6 +67,7 @@ static inline unsigned long tag2ul(char return simple_strtoul(num, 0, 10); } diff --git a/target/linux/rb532/patches-3.18/002-rb532_nand_fixup.patch b/target/linux/rb532/patches-3.18/002-rb532_nand_fixup.patch index 2202b02c6d..6f885997fc 100644 --- a/target/linux/rb532/patches-3.18/002-rb532_nand_fixup.patch +++ b/target/linux/rb532/patches-3.18/002-rb532_nand_fixup.patch @@ -20,7 +20,7 @@ static int rb532_dev_ready(struct mtd_info *mtd) { return gpio_get_value(GPIO_RDY); -@@ -254,6 +267,16 @@ static void __init parse_mac_addr(char * +@@ -254,6 +267,16 @@ static struct platform_device *rb532_dev /* NAND definitions */ #define NAND_CHIP_DELAY 25 diff --git a/target/linux/sunxi/patches-3.18/100-dt-sun7i-add_spi0_pins_a.patch b/target/linux/sunxi/patches-3.18/100-dt-sun7i-add_spi0_pins_a.patch index f0e3eea186..b81ed449fb 100644 --- a/target/linux/sunxi/patches-3.18/100-dt-sun7i-add_spi0_pins_a.patch +++ b/target/linux/sunxi/patches-3.18/100-dt-sun7i-add_spi0_pins_a.patch @@ -8,8 +8,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi -index 82097c9..4fb8930 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi @@ -784,6 +784,13 @@ diff --git a/target/linux/sunxi/patches-3.18/101-dt-sun7i-add-uart3_pins.patch b/target/linux/sunxi/patches-3.18/101-dt-sun7i-add-uart3_pins.patch index 8f9c0e88bd..284537af92 100644 --- a/target/linux/sunxi/patches-3.18/101-dt-sun7i-add-uart3_pins.patch +++ b/target/linux/sunxi/patches-3.18/101-dt-sun7i-add-uart3_pins.patch @@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi -index 4fb8930..cecf32c 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi @@ -677,6 +677,13 @@ diff --git a/target/linux/sunxi/patches-3.18/102-dt-sun7i-add_mmc2_pins.patch b/target/linux/sunxi/patches-3.18/102-dt-sun7i-add_mmc2_pins.patch index 6a5878e5ac..28128db5e1 100644 --- a/target/linux/sunxi/patches-3.18/102-dt-sun7i-add_mmc2_pins.patch +++ b/target/linux/sunxi/patches-3.18/102-dt-sun7i-add_mmc2_pins.patch @@ -8,8 +8,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi -index cecf32c..f0a75c6 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi @@ -833,6 +833,13 @@ diff --git a/target/linux/sunxi/patches-3.18/110-input-add-sun4i-lradc.patch b/target/linux/sunxi/patches-3.18/110-input-add-sun4i-lradc.patch index 0772f1572d..12b4628f04 100644 --- a/target/linux/sunxi/patches-3.18/110-input-add-sun4i-lradc.patch +++ b/target/linux/sunxi/patches-3.18/110-input-add-sun4i-lradc.patch @@ -27,9 +27,6 @@ Changes in v2: create mode 100644 Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt create mode 100644 drivers/input/keyboard/sun4i-lradc-keys.c -diff --git a/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt b/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt -new file mode 100644 -index 0000000..b9c32f6 --- /dev/null +++ b/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt @@ -0,0 +1,62 @@ @@ -95,11 +92,9 @@ index 0000000..b9c32f6 + voltage = <987387>; + }; + }; -diff --git a/MAINTAINERS b/MAINTAINERS -index a20df9b..73d1aef 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -8932,6 +8932,13 @@ F: arch/m68k/sun3*/ +@@ -9002,6 +9002,13 @@ F: arch/m68k/sun3*/ F: arch/m68k/include/asm/sun3* F: drivers/net/ethernet/i825xx/sun3* @@ -113,8 +108,6 @@ index a20df9b..73d1aef 100644 SUNDANCE NETWORK DRIVER M: Denis Kirjanov <kda@linux-powerpc.org> L: netdev@vger.kernel.org -diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig -index a3958c6..2d11b44 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig @@ -567,6 +567,16 @@ config KEYBOARD_STMPE @@ -134,11 +127,9 @@ index a3958c6..2d11b44 100644 config KEYBOARD_DAVINCI tristate "TI DaVinci Key Scan" depends on ARCH_DAVINCI_DM365 -diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile -index 0a33456..a35269a 100644 --- a/drivers/input/keyboard/Makefile +++ b/drivers/input/keyboard/Makefile -@@ -53,6 +53,7 @@ obj-$(CONFIG_KEYBOARD_SPEAR) += spear-keyboard.o +@@ -53,6 +53,7 @@ obj-$(CONFIG_KEYBOARD_SPEAR) += spear-k obj-$(CONFIG_KEYBOARD_STMPE) += stmpe-keypad.o obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o obj-$(CONFIG_KEYBOARD_ST_KEYSCAN) += st-keyscan.o @@ -146,9 +137,6 @@ index 0a33456..a35269a 100644 obj-$(CONFIG_KEYBOARD_SUNKBD) += sunkbd.o obj-$(CONFIG_KEYBOARD_TC3589X) += tc3589x-keypad.o obj-$(CONFIG_KEYBOARD_TEGRA) += tegra-kbc.o -diff --git a/drivers/input/keyboard/sun4i-lradc-keys.c b/drivers/input/keyboard/sun4i-lradc-keys.c -new file mode 100644 -index 0000000..f11f002 --- /dev/null +++ b/drivers/input/keyboard/sun4i-lradc-keys.c @@ -0,0 +1,258 @@ diff --git a/target/linux/sunxi/patches-3.18/111-dt-sun4i-add-lradc.patch b/target/linux/sunxi/patches-3.18/111-dt-sun4i-add-lradc.patch index 0ffe4e8020..d2298a4826 100644 --- a/target/linux/sunxi/patches-3.18/111-dt-sun4i-add-lradc.patch +++ b/target/linux/sunxi/patches-3.18/111-dt-sun4i-add-lradc.patch @@ -8,8 +8,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun4i-a10.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi -index 380f914..1ef7d57 100644 --- a/arch/arm/boot/dts/sun4i-a10.dtsi +++ b/arch/arm/boot/dts/sun4i-a10.dtsi @@ -669,6 +669,13 @@ diff --git a/target/linux/sunxi/patches-3.18/112-dt-sun5i-add-lradc.patch b/target/linux/sunxi/patches-3.18/112-dt-sun5i-add-lradc.patch index 22dfe51be7..edc9016aa9 100644 --- a/target/linux/sunxi/patches-3.18/112-dt-sun5i-add-lradc.patch +++ b/target/linux/sunxi/patches-3.18/112-dt-sun5i-add-lradc.patch @@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun5i-a13.dtsi | 7 ++++ 4 files changed, 100 insertions(+), 4 deletions(-) -diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts -index ea9519d..0b82d20 100644 --- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts +++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts @@ -12,8 +12,9 @@ @@ -74,8 +72,6 @@ index ea9519d..0b82d20 100644 uart0: serial@01c28000 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins_a>; -diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi -index 531272c..7c6c883 100644 --- a/arch/arm/boot/dts/sun5i-a10s.dtsi +++ b/arch/arm/boot/dts/sun5i-a10s.dtsi @@ -520,6 +520,13 @@ @@ -92,8 +88,6 @@ index 531272c..7c6c883 100644 sid: eeprom@01c23800 { compatible = "allwinner,sun4i-a10-sid"; reg = <0x01c23800 0x10>; -diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts -index 429994e..b4ec8eb 100644 --- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts +++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts @@ -12,8 +12,9 @@ @@ -155,8 +149,6 @@ index 429994e..b4ec8eb 100644 uart1: serial@01c28400 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins_b>; -diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi -index b131068..aa0482c 100644 --- a/arch/arm/boot/dts/sun5i-a13.dtsi +++ b/arch/arm/boot/dts/sun5i-a13.dtsi @@ -468,6 +468,13 @@ diff --git a/target/linux/sunxi/patches-3.18/113-dt-sun7i-add-lradc.patch b/target/linux/sunxi/patches-3.18/113-dt-sun7i-add-lradc.patch index 50a66b6a81..ae2c383069 100644 --- a/target/linux/sunxi/patches-3.18/113-dt-sun7i-add-lradc.patch +++ b/target/linux/sunxi/patches-3.18/113-dt-sun7i-add-lradc.patch @@ -9,8 +9,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++ 2 files changed, 64 insertions(+), 2 deletions(-) -diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts -index 9d669cdf..c00badd 100644 --- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts +++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts @@ -12,8 +12,9 @@ @@ -86,8 +84,6 @@ index 9d669cdf..c00badd 100644 uart0: serial@01c28000 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins_a>; -diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi -index f0a75c6..9174423 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi @@ -911,6 +911,13 @@ diff --git a/target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch b/target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch index bff74e468f..331c93b5a8 100644 --- a/target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch +++ b/target/linux/sunxi/patches-3.18/115-input-sun4i-ts-update-temp-curve.patch @@ -23,8 +23,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> drivers/input/touchscreen/sun4i-ts.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) -diff --git a/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt b/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt -index aef5779..5106709 100644 --- a/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt +++ b/Documentation/devicetree/bindings/input/touchscreen/sun4i.txt @@ -2,7 +2,7 @@ sun4i resistive touchscreen controller @@ -36,8 +34,6 @@ index aef5779..5106709 100644 - reg: mmio address range of the chip - interrupts: interrupt to which the chip is connected -diff --git a/drivers/input/touchscreen/sun4i-ts.c b/drivers/input/touchscreen/sun4i-ts.c -index 2ba8260..52b7114 100644 --- a/drivers/input/touchscreen/sun4i-ts.c +++ b/drivers/input/touchscreen/sun4i-ts.c @@ -111,6 +111,8 @@ struct sun4i_ts_data { @@ -49,7 +45,7 @@ index 2ba8260..52b7114 100644 }; static void sun4i_ts_irq_handle_input(struct sun4i_ts_data *ts, u32 reg_val) -@@ -189,7 +191,8 @@ static ssize_t show_temp(struct device *dev, struct device_attribute *devattr, +@@ -189,7 +191,8 @@ static ssize_t show_temp(struct device * if (ts->temp_data == -1) return -EAGAIN; @@ -59,7 +55,7 @@ index 2ba8260..52b7114 100644 } static ssize_t show_temp_label(struct device *dev, -@@ -224,6 +227,13 @@ static int sun4i_ts_probe(struct platform_device *pdev) +@@ -224,6 +227,13 @@ static int sun4i_ts_probe(struct platfor ts->dev = dev; ts->ignore_fifo_data = true; ts->temp_data = -1; @@ -73,7 +69,7 @@ index 2ba8260..52b7114 100644 ts_attached = of_property_read_bool(np, "allwinner,ts-attached"); if (ts_attached) { -@@ -318,6 +328,7 @@ static int sun4i_ts_remove(struct platform_device *pdev) +@@ -318,6 +328,7 @@ static int sun4i_ts_remove(struct platfo static const struct of_device_id sun4i_ts_of_match[] = { { .compatible = "allwinner,sun4i-a10-ts", }, diff --git a/target/linux/sunxi/patches-3.18/116-dt-sunxi-update-compats-for-tempcurves.patch b/target/linux/sunxi/patches-3.18/116-dt-sunxi-update-compats-for-tempcurves.patch index 861538fed2..fe8dcdbc0a 100644 --- a/target/linux/sunxi/patches-3.18/116-dt-sunxi-update-compats-for-tempcurves.patch +++ b/target/linux/sunxi/patches-3.18/116-dt-sunxi-update-compats-for-tempcurves.patch @@ -16,8 +16,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun7i-a20.dtsi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi -index 7c6c883..7089284 100644 --- a/arch/arm/boot/dts/sun5i-a10s.dtsi +++ b/arch/arm/boot/dts/sun5i-a10s.dtsi @@ -533,7 +533,7 @@ @@ -29,8 +27,6 @@ index 7c6c883..7089284 100644 reg = <0x01c25000 0x100>; interrupts = <29>; }; -diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi -index aa0482c..b05ab04 100644 --- a/arch/arm/boot/dts/sun5i-a13.dtsi +++ b/arch/arm/boot/dts/sun5i-a13.dtsi @@ -481,7 +481,7 @@ @@ -42,8 +38,6 @@ index aa0482c..b05ab04 100644 reg = <0x01c25000 0x100>; interrupts = <29>; }; -diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi -index 9174423..81d4e55 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi @@ -924,7 +924,7 @@ diff --git a/target/linux/sunxi/patches-3.18/130-input-add-axp20x-pek.patch b/target/linux/sunxi/patches-3.18/130-input-add-axp20x-pek.patch index 537ba365f1..28ed6a3b2d 100644 --- a/target/linux/sunxi/patches-3.18/130-input-add-axp20x-pek.patch +++ b/target/linux/sunxi/patches-3.18/130-input-add-axp20x-pek.patch @@ -16,8 +16,6 @@ Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> 3 files changed, 293 insertions(+) create mode 100644 drivers/input/misc/axp20x-pek.c -diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig -index 23297ab..a49bcd3 100644 --- a/drivers/input/misc/Kconfig +++ b/drivers/input/misc/Kconfig @@ -404,6 +404,17 @@ config INPUT_RETU_PWRBUTTON @@ -38,11 +36,9 @@ index 23297ab..a49bcd3 100644 config INPUT_TWL4030_PWRBUTTON tristate "TWL4030 Power button Driver" depends on TWL4030_CORE -diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile -index 19c7603..04ea87f 100644 --- a/drivers/input/misc/Makefile +++ b/drivers/input/misc/Makefile -@@ -54,6 +54,7 @@ obj-$(CONFIG_INPUT_POWERMATE) += powermate.o +@@ -54,6 +54,7 @@ obj-$(CONFIG_INPUT_POWERMATE) += powerm obj-$(CONFIG_INPUT_PWM_BEEPER) += pwm-beeper.o obj-$(CONFIG_INPUT_RB532_BUTTON) += rb532_button.o obj-$(CONFIG_INPUT_RETU_PWRBUTTON) += retu-pwrbutton.o @@ -50,9 +46,6 @@ index 19c7603..04ea87f 100644 obj-$(CONFIG_INPUT_GPIO_ROTARY_ENCODER) += rotary_encoder.o obj-$(CONFIG_INPUT_SGI_BTNS) += sgi_btns.o obj-$(CONFIG_INPUT_SIRFSOC_ONKEY) += sirfsoc-onkey.o -diff --git a/drivers/input/misc/axp20x-pek.c b/drivers/input/misc/axp20x-pek.c -new file mode 100644 -index 0000000..0fba252 --- /dev/null +++ b/drivers/input/misc/axp20x-pek.c @@ -0,0 +1,281 @@ diff --git a/target/linux/sunxi/patches-3.18/150-pwm-add-sunxi-driver.patch b/target/linux/sunxi/patches-3.18/150-pwm-add-sunxi-driver.patch index 2d467c08de..49560c39a4 100644 --- a/target/linux/sunxi/patches-3.18/150-pwm-add-sunxi-driver.patch +++ b/target/linux/sunxi/patches-3.18/150-pwm-add-sunxi-driver.patch @@ -1,8 +1,6 @@ -diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig -index 3865dfb9ed08..424359d3cbb1 100644 --- a/drivers/pwm/Kconfig +++ b/drivers/pwm/Kconfig -@@ -262,6 +262,15 @@ config PWM_STI +@@ -263,6 +263,15 @@ config PWM_STI To compile this driver as a module, choose M here: the module will be called pwm-sti. @@ -18,11 +16,9 @@ index 3865dfb9ed08..424359d3cbb1 100644 config PWM_TEGRA tristate "NVIDIA Tegra PWM support" depends on ARCH_TEGRA -diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile -index c458606c3755..d607804deea1 100644 --- a/drivers/pwm/Makefile +++ b/drivers/pwm/Makefile -@@ -24,6 +24,7 @@ obj-$(CONFIG_PWM_ROCKCHIP) += pwm-rockchip.o +@@ -24,6 +24,7 @@ obj-$(CONFIG_PWM_ROCKCHIP) += pwm-rockch obj-$(CONFIG_PWM_SAMSUNG) += pwm-samsung.o obj-$(CONFIG_PWM_SPEAR) += pwm-spear.o obj-$(CONFIG_PWM_STI) += pwm-sti.o @@ -30,9 +26,6 @@ index c458606c3755..d607804deea1 100644 obj-$(CONFIG_PWM_TEGRA) += pwm-tegra.o obj-$(CONFIG_PWM_TIECAP) += pwm-tiecap.o obj-$(CONFIG_PWM_TIEHRPWM) += pwm-tiehrpwm.o -diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c -new file mode 100644 -index 000000000000..918f8ee79b51 --- /dev/null +++ b/drivers/pwm/pwm-sun4i.c @@ -0,0 +1,371 @@ diff --git a/target/linux/sunxi/patches-3.18/200-mmc-add-sdio-function-subnode.patch b/target/linux/sunxi/patches-3.18/200-mmc-add-sdio-function-subnode.patch index 6427df5cc1..d2a1504728 100644 --- a/target/linux/sunxi/patches-3.18/200-mmc-add-sdio-function-subnode.patch +++ b/target/linux/sunxi/patches-3.18/200-mmc-add-sdio-function-subnode.patch @@ -20,8 +20,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> drivers/mmc/core/sdio_bus.c | 11 +++++++++++ 4 files changed, 46 insertions(+) -diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c -index 8a1f124..7868565 100644 --- a/drivers/mmc/core/bus.c +++ b/drivers/mmc/core/bus.c @@ -16,6 +16,7 @@ @@ -41,7 +39,7 @@ index 8a1f124..7868565 100644 ret = device_add(&card->dev); if (ret) return ret; -@@ -380,6 +383,7 @@ void mmc_remove_card(struct mmc_card *card) +@@ -380,6 +383,7 @@ void mmc_remove_card(struct mmc_card *ca mmc_hostname(card->host), card->rca); } device_del(&card->dev); @@ -49,8 +47,6 @@ index 8a1f124..7868565 100644 } put_device(&card->dev); -diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c -index f26a5f1..7f7f66c 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -1205,6 +1205,34 @@ EXPORT_SYMBOL(mmc_of_parse_voltage); @@ -88,8 +84,6 @@ index f26a5f1..7f7f66c 100644 #ifdef CONFIG_REGULATOR /** -diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h -index 443a5846..f712f6e 100644 --- a/drivers/mmc/core/core.h +++ b/drivers/mmc/core/core.h @@ -32,6 +32,9 @@ struct mmc_bus_ops { @@ -102,8 +96,6 @@ index 443a5846..f712f6e 100644 void mmc_init_erase(struct mmc_card *card); void mmc_set_chip_select(struct mmc_host *host, int mode); -diff --git a/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c -index 6da97b1..f63223a 100644 --- a/drivers/mmc/core/sdio_bus.c +++ b/drivers/mmc/core/sdio_bus.c @@ -22,7 +22,9 @@ @@ -116,7 +108,7 @@ index 6da97b1..f63223a 100644 #include "sdio_cis.h" #include "sdio_bus.h" -@@ -303,6 +305,13 @@ static void sdio_acpi_set_handle(struct sdio_func *func) +@@ -303,6 +305,13 @@ static void sdio_acpi_set_handle(struct static inline void sdio_acpi_set_handle(struct sdio_func *func) {} #endif @@ -130,7 +122,7 @@ index 6da97b1..f63223a 100644 /* * Register a new SDIO function with the driver model. */ -@@ -312,6 +321,7 @@ int sdio_add_func(struct sdio_func *func) +@@ -312,6 +321,7 @@ int sdio_add_func(struct sdio_func *func dev_set_name(&func->dev, "%s:%d", mmc_card_id(func->card), func->num); @@ -138,7 +130,7 @@ index 6da97b1..f63223a 100644 sdio_acpi_set_handle(func); ret = device_add(&func->dev); if (ret == 0) { -@@ -335,6 +345,7 @@ void sdio_remove_func(struct sdio_func *func) +@@ -335,6 +345,7 @@ void sdio_remove_func(struct sdio_func * dev_pm_domain_detach(&func->dev, false); device_del(&func->dev); diff --git a/target/linux/sunxi/patches-3.18/201-dt-sun7i-add-oob-irq-to-bcm-sdio-wifi.patch b/target/linux/sunxi/patches-3.18/201-dt-sun7i-add-oob-irq-to-bcm-sdio-wifi.patch index c6790b7432..e2cfeb711c 100644 --- a/target/linux/sunxi/patches-3.18/201-dt-sun7i-add-oob-irq-to-bcm-sdio-wifi.patch +++ b/target/linux/sunxi/patches-3.18/201-dt-sun7i-add-oob-irq-to-bcm-sdio-wifi.patch @@ -10,8 +10,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 11 +++++++++++ 2 files changed, 22 insertions(+) -diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts -index a6c1a3c..f9ab5d4 100644 --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts @@ -31,12 +31,23 @@ @@ -38,8 +36,6 @@ index a6c1a3c..f9ab5d4 100644 }; usbphy: phy@01c13400 { -diff --git a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts -index 6a67712d..f620aea 100644 --- a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts +++ b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts @@ -29,12 +29,23 @@ diff --git a/target/linux/sunxi/patches-3.18/202-dt-sun7i-add-bluetooth-to-cubietruck.patch b/target/linux/sunxi/patches-3.18/202-dt-sun7i-add-bluetooth-to-cubietruck.patch index f819849448..9c0d969232 100644 --- a/target/linux/sunxi/patches-3.18/202-dt-sun7i-add-bluetooth-to-cubietruck.patch +++ b/target/linux/sunxi/patches-3.18/202-dt-sun7i-add-bluetooth-to-cubietruck.patch @@ -14,8 +14,6 @@ GPIO, but this is not supported in this patch. arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) -diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts -index f9ab5d4..69d8c4c 100644 --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts @@ -103,6 +103,20 @@ diff --git a/target/linux/sunxi/patches-3.18/270-dt-sun7i-add-ss-to-a20.patch b/target/linux/sunxi/patches-3.18/270-dt-sun7i-add-ss-to-a20.patch index 11a6ed03f5..f03e2d9df3 100644 --- a/target/linux/sunxi/patches-3.18/270-dt-sun7i-add-ss-to-a20.patch +++ b/target/linux/sunxi/patches-3.18/270-dt-sun7i-add-ss-to-a20.patch @@ -1,6 +1,6 @@ --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi -@@ -529,6 +529,14 @@ +@@ -577,6 +577,14 @@ status = "disabled"; }; diff --git a/target/linux/sunxi/patches-3.18/271-crypto-add-ss.patch b/target/linux/sunxi/patches-3.18/271-crypto-add-ss.patch index 090624de96..0788c6f84c 100644 --- a/target/linux/sunxi/patches-3.18/271-crypto-add-ss.patch +++ b/target/linux/sunxi/patches-3.18/271-crypto-add-ss.patch @@ -1,8 +1,6 @@ -diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig -index 2fb0fdf..9ba9759 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig -@@ -436,4 +436,21 @@ config CRYPTO_DEV_QCE +@@ -437,4 +437,21 @@ config CRYPTO_DEV_QCE hardware. To compile this driver as a module, choose M here. The module will be called qcrypto. @@ -24,26 +22,18 @@ index 2fb0fdf..9ba9759 100644 + will be called sunxi-ss. + endif # CRYPTO_HW -diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile -index 3924f93..856545c 100644 --- a/drivers/crypto/Makefile +++ b/drivers/crypto/Makefile -@@ -25,3 +25,4 @@ obj-$(CONFIG_CRYPTO_DEV_TALITOS) += talitos.o +@@ -25,3 +25,4 @@ obj-$(CONFIG_CRYPTO_DEV_TALITOS) += tali obj-$(CONFIG_CRYPTO_DEV_UX500) += ux500/ obj-$(CONFIG_CRYPTO_DEV_QAT) += qat/ obj-$(CONFIG_CRYPTO_DEV_QCE) += qce/ +obj-$(CONFIG_CRYPTO_DEV_SUNXI_SS) += sunxi-ss/ -diff --git a/drivers/crypto/sunxi-ss/Makefile b/drivers/crypto/sunxi-ss/Makefile -new file mode 100644 -index 0000000..8bb287d --- /dev/null +++ b/drivers/crypto/sunxi-ss/Makefile @@ -0,0 +1,2 @@ +obj-$(CONFIG_CRYPTO_DEV_SUNXI_SS) += sunxi-ss.o +sunxi-ss-y += sunxi-ss-core.o sunxi-ss-hash.o sunxi-ss-cipher.o -diff --git a/drivers/crypto/sunxi-ss/sunxi-ss-cipher.c b/drivers/crypto/sunxi-ss/sunxi-ss-cipher.c -new file mode 100644 -index 0000000..8d0416e --- /dev/null +++ b/drivers/crypto/sunxi-ss/sunxi-ss-cipher.c @@ -0,0 +1,489 @@ @@ -536,9 +526,6 @@ index 0000000..8d0416e + memcpy(op->key, key, keylen); + return 0; +} -diff --git a/drivers/crypto/sunxi-ss/sunxi-ss-core.c b/drivers/crypto/sunxi-ss/sunxi-ss-core.c -new file mode 100644 -index 0000000..e66d7e2 --- /dev/null +++ b/drivers/crypto/sunxi-ss/sunxi-ss-core.c @@ -0,0 +1,318 @@ @@ -860,9 +847,6 @@ index 0000000..e66d7e2 +MODULE_DESCRIPTION("Allwinner Security System cryptographic accelerator"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Corentin LABBE <clabbe.montjoie@gmail.com>"); -diff --git a/drivers/crypto/sunxi-ss/sunxi-ss-hash.c b/drivers/crypto/sunxi-ss/sunxi-ss-hash.c -new file mode 100644 -index 0000000..ec8758f --- /dev/null +++ b/drivers/crypto/sunxi-ss/sunxi-ss-hash.c @@ -0,0 +1,445 @@ @@ -1311,9 +1295,6 @@ index 0000000..ec8758f + + return sunxi_hash_final(areq); +} -diff --git a/drivers/crypto/sunxi-ss/sunxi-ss.h b/drivers/crypto/sunxi-ss/sunxi-ss.h -new file mode 100644 -index 0000000..331e75b --- /dev/null +++ b/drivers/crypto/sunxi-ss/sunxi-ss.h @@ -0,0 +1,193 @@ diff --git a/target/linux/sunxi/patches-3.18/300-dt-sun7i-add-bananapi.patch b/target/linux/sunxi/patches-3.18/300-dt-sun7i-add-bananapi.patch index 0ee3195d06..c60b1fe013 100644 --- a/target/linux/sunxi/patches-3.18/300-dt-sun7i-add-bananapi.patch +++ b/target/linux/sunxi/patches-3.18/300-dt-sun7i-add-bananapi.patch @@ -16,8 +16,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> 2 files changed, 215 insertions(+) create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 38c89ca..63422bd 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -435,6 +435,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ @@ -28,9 +26,6 @@ index 38c89ca..63422bd 100644 sun7i-a20-cubieboard2.dtb \ sun7i-a20-cubietruck.dtb \ sun7i-a20-hummingbird.dtb \ -diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts -new file mode 100644 -index 0000000..0e7c9f5 --- /dev/null +++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts @@ -0,0 +1,214 @@ diff --git a/target/linux/sunxi/patches-3.18/301-dt-sun7i-add-bananapro.patch b/target/linux/sunxi/patches-3.18/301-dt-sun7i-add-bananapro.patch index 70283a5f7b..c8cdb1d191 100644 --- a/target/linux/sunxi/patches-3.18/301-dt-sun7i-add-bananapro.patch +++ b/target/linux/sunxi/patches-3.18/301-dt-sun7i-add-bananapro.patch @@ -15,21 +15,16 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com> 2 files changed, 262 insertions(+) create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapro.dts -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 40d2901..b3dcf3f 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -466,6 +466,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ - sun6i-a31s-cs908.dtb +@@ -436,6 +436,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \ + sun6i-a31-m9.dtb dtb-$(CONFIG_MACH_SUN7I) += \ sun7i-a20-bananapi.dtb \ + sun7i-a20-bananapro.dtb \ sun7i-a20-cubieboard2.dtb \ sun7i-a20-cubietruck.dtb \ sun7i-a20-hummingbird.dtb \ -diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts -new file mode 100644 -index 0000000..3b4764d --- /dev/null +++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts @@ -0,0 +1,261 @@ diff --git a/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch b/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch index 82c8bd5a47..5d5ba11e63 100644 --- a/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch +++ b/target/linux/sunxi/patches-3.18/302-dt-sun7i-add-lamobo-r1.patch @@ -1,7 +1,5 @@ -Index: linux-3.18.2/arch/arm/boot/dts/Makefile -=================================================================== ---- linux-3.18.2.orig/arch/arm/boot/dts/Makefile -+++ linux-3.18.2/arch/arm/boot/dts/Makefile +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile @@ -441,6 +441,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \ sun7i-a20-cubietruck.dtb \ sun7i-a20-hummingbird.dtb \ @@ -10,10 +8,8 @@ Index: linux-3.18.2/arch/arm/boot/dts/Makefile sun7i-a20-olinuxino-lime.dtb \ sun7i-a20-olinuxino-micro.dtb \ sun7i-a20-pcduino3.dtb -Index: linux-3.18.2/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts -=================================================================== --- /dev/null -+++ linux-3.18.2/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts ++++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts @@ -0,0 +1,235 @@ +/* + * Copyright 2015 Daniel Golle <daniel@makrotopia.org> diff --git a/target/linux/x86/patches-3.18/011-tune_lzma_options.patch b/target/linux/x86/patches-3.18/011-tune_lzma_options.patch index 4bb7b7bf45..cea644da10 100644 --- a/target/linux/x86/patches-3.18/011-tune_lzma_options.patch +++ b/target/linux/x86/patches-3.18/011-tune_lzma_options.patch @@ -1,6 +1,6 @@ --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib -@@ -325,7 +325,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) +@@ -325,7 +325,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) quiet_cmd_lzma = LZMA $@ cmd_lzma = (cat $(filter-out FORCE,$^) | \ diff --git a/target/linux/xburst/patches-3.18/001-ubi-Read-only-the-vid-header-instead-of-the-whole-pa.patch b/target/linux/xburst/patches-3.18/001-ubi-Read-only-the-vid-header-instead-of-the-whole-pa.patch index 180fa1dd9e..19eaf3af3e 100644 --- a/target/linux/xburst/patches-3.18/001-ubi-Read-only-the-vid-header-instead-of-the-whole-pa.patch +++ b/target/linux/xburst/patches-3.18/001-ubi-Read-only-the-vid-header-instead-of-the-whole-pa.patch @@ -7,11 +7,9 @@ Subject: [PATCH 1/7] ubi: Read only the vid header instead of the whole page drivers/mtd/ubi/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/mtd/ubi/io.c b/drivers/mtd/ubi/io.c -index d361349..596b568 100644 --- a/drivers/mtd/ubi/io.c +++ b/drivers/mtd/ubi/io.c -@@ -1009,7 +1009,7 @@ int ubi_io_read_vid_hdr(struct ubi_device *ubi, int pnum, +@@ -1009,7 +1009,7 @@ int ubi_io_read_vid_hdr(struct ubi_devic p = (char *)vid_hdr - ubi->vid_hdr_shift; read_err = ubi_io_read(ubi, p, pnum, ubi->vid_hdr_aloffset, @@ -20,6 +18,3 @@ index d361349..596b568 100644 if (read_err && read_err != UBI_IO_BITFLIPS && !mtd_is_eccerr(read_err)) return read_err; --- -1.7.10.4 - diff --git a/target/linux/xburst/patches-3.18/002-NAND-Optimize-NAND_ECC_HW_OOB_FIRST-read.patch b/target/linux/xburst/patches-3.18/002-NAND-Optimize-NAND_ECC_HW_OOB_FIRST-read.patch index bba9f0bb50..046da51912 100644 --- a/target/linux/xburst/patches-3.18/002-NAND-Optimize-NAND_ECC_HW_OOB_FIRST-read.patch +++ b/target/linux/xburst/patches-3.18/002-NAND-Optimize-NAND_ECC_HW_OOB_FIRST-read.patch @@ -8,11 +8,9 @@ Avoid sending unnecessary READ commands to the chip. drivers/mtd/nand/nand_base.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) -diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c -index 5b5c627..4c8d646 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c -@@ -1360,9 +1360,16 @@ static int nand_read_page_hwecc_oob_first(struct mtd_info *mtd, +@@ -1360,9 +1360,16 @@ static int nand_read_page_hwecc_oob_firs unsigned int max_bitflips = 0; /* Read the OOB area first */ @@ -32,7 +30,7 @@ index 5b5c627..4c8d646 100644 for (i = 0; i < chip->ecc.total; i++) ecc_code[i] = chip->oob_poi[eccpos[i]]; -@@ -1575,7 +1582,9 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from, +@@ -1575,7 +1582,9 @@ static int nand_do_read_ops(struct mtd_i __func__, buf); read_retry: @@ -43,6 +41,3 @@ index 5b5c627..4c8d646 100644 /* * Now read the page into the buffer. Absent an error, --- -1.7.10.4 - diff --git a/target/linux/xburst/patches-3.18/003-NAND-Add-support-for-subpage-reads-for-NAND_ECC_HW_O.patch b/target/linux/xburst/patches-3.18/003-NAND-Add-support-for-subpage-reads-for-NAND_ECC_HW_O.patch index f3f6ca968e..974eb7a5db 100644 --- a/target/linux/xburst/patches-3.18/003-NAND-Add-support-for-subpage-reads-for-NAND_ECC_HW_O.patch +++ b/target/linux/xburst/patches-3.18/003-NAND-Add-support-for-subpage-reads-for-NAND_ECC_HW_O.patch @@ -8,11 +8,9 @@ Subject: [PATCH 3/7] NAND: Add support for subpage reads for drivers/mtd/nand/nand_base.c | 77 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) -diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c -index 4c8d646..9809059 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c -@@ -1393,6 +1393,75 @@ static int nand_read_page_hwecc_oob_first(struct mtd_info *mtd, +@@ -1393,6 +1393,75 @@ static int nand_read_page_hwecc_oob_firs } /** @@ -104,6 +102,3 @@ index 4c8d646..9809059 100644 case NAND_ECC_HW: /* Use standard hwecc read page function? */ --- -1.7.10.4 - diff --git a/target/linux/xburst/patches-3.18/004-ASoC-JZ4740-delay-activation-of-the-DAC-to-work-arou.patch b/target/linux/xburst/patches-3.18/004-ASoC-JZ4740-delay-activation-of-the-DAC-to-work-arou.patch index 3de6ee0952..f2c26ade09 100644 --- a/target/linux/xburst/patches-3.18/004-ASoC-JZ4740-delay-activation-of-the-DAC-to-work-arou.patch +++ b/target/linux/xburst/patches-3.18/004-ASoC-JZ4740-delay-activation-of-the-DAC-to-work-arou.patch @@ -10,11 +10,9 @@ which (I hope) will be done eventually. sound/soc/codecs/jz4740.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -diff --git a/sound/soc/codecs/jz4740.c b/sound/soc/codecs/jz4740.c -index df7c01c..6939444 100644 --- a/sound/soc/codecs/jz4740.c +++ b/sound/soc/codecs/jz4740.c -@@ -249,12 +249,15 @@ static int jz4740_codec_set_bias_level(struct snd_soc_codec *codec, +@@ -249,12 +249,15 @@ static int jz4740_codec_set_bias_level(s case SND_SOC_BIAS_ON: break; case SND_SOC_BIAS_PREPARE: @@ -33,6 +31,3 @@ index df7c01c..6939444 100644 break; case SND_SOC_BIAS_STANDBY: /* The only way to clear the suspend flag is to reset the codec */ --- -1.7.10.4 - diff --git a/target/linux/xburst/patches-3.18/005-RTC-JZ4740-Init-the-regulator-register-on-startup.patch b/target/linux/xburst/patches-3.18/005-RTC-JZ4740-Init-the-regulator-register-on-startup.patch index 2dd8858d4b..f38483ab5c 100644 --- a/target/linux/xburst/patches-3.18/005-RTC-JZ4740-Init-the-regulator-register-on-startup.patch +++ b/target/linux/xburst/patches-3.18/005-RTC-JZ4740-Init-the-regulator-register-on-startup.patch @@ -13,8 +13,6 @@ Signed-off-by: Paul Cercueil <paul@crapouillou.net> drivers/rtc/rtc-jz4740.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) -diff --git a/drivers/rtc/rtc-jz4740.c b/drivers/rtc/rtc-jz4740.c -index 08f5160..5f027dc 100644 --- a/drivers/rtc/rtc-jz4740.c +++ b/drivers/rtc/rtc-jz4740.c @@ -15,6 +15,7 @@ @@ -25,7 +23,7 @@ index 08f5160..5f027dc 100644 #include <linux/kernel.h> #include <linux/module.h> #include <linux/platform_device.h> -@@ -216,6 +217,7 @@ static int jz4740_rtc_probe(struct platform_device *pdev) +@@ -216,6 +217,7 @@ static int jz4740_rtc_probe(struct platf struct jz4740_rtc *rtc; uint32_t scratchpad; struct resource *mem; @@ -33,7 +31,7 @@ index 08f5160..5f027dc 100644 rtc = devm_kzalloc(&pdev->dev, sizeof(*rtc), GFP_KERNEL); if (!rtc) -@@ -263,6 +265,21 @@ static int jz4740_rtc_probe(struct platform_device *pdev) +@@ -263,6 +265,21 @@ static int jz4740_rtc_probe(struct platf } } @@ -55,6 +53,3 @@ index 08f5160..5f027dc 100644 return 0; } --- -1.7.10.4 - diff --git a/target/linux/xburst/patches-3.18/006-Add-ili8960-lcd-driver.patch b/target/linux/xburst/patches-3.18/006-Add-ili8960-lcd-driver.patch index 906b9968e7..dc12d93409 100644 --- a/target/linux/xburst/patches-3.18/006-Add-ili8960-lcd-driver.patch +++ b/target/linux/xburst/patches-3.18/006-Add-ili8960-lcd-driver.patch @@ -16,8 +16,6 @@ Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> 3 files changed, 270 insertions(+) create mode 100644 drivers/video/backlight/ili8960.c -diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig -index 8d03924..14adcc6 100644 --- a/drivers/video/backlight/Kconfig +++ b/drivers/video/backlight/Kconfig @@ -59,6 +59,13 @@ config LCD_LTV350QV @@ -34,8 +32,6 @@ index 8d03924..14adcc6 100644 config LCD_ILI922X tristate "ILI Technology ILI9221/ILI9222 support" depends on SPI -diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile -index fcd50b73..1f89974 100644 --- a/drivers/video/backlight/Makefile +++ b/drivers/video/backlight/Makefile @@ -5,6 +5,7 @@ obj-$(CONFIG_LCD_CLASS_DEVICE) += lcd.o @@ -46,9 +42,6 @@ index fcd50b73..1f89974 100644 obj-$(CONFIG_LCD_ILI922X) += ili922x.o obj-$(CONFIG_LCD_ILI9320) += ili9320.o obj-$(CONFIG_LCD_L4F00242T03) += l4f00242t03.o -diff --git a/drivers/video/backlight/ili8960.c b/drivers/video/backlight/ili8960.c -new file mode 100644 -index 0000000..61eb815 --- /dev/null +++ b/drivers/video/backlight/ili8960.c @@ -0,0 +1,262 @@ @@ -314,6 +307,3 @@ index 0000000..61eb815 +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("LCD driver for Ilitek ili8960"); +MODULE_ALIAS("spi:ili8960"); --- -1.7.10.4 - diff --git a/target/linux/xburst/patches-3.18/007-qi_lb60-Don-t-use-3-wire-spi-mode-for-the-display-fo.patch b/target/linux/xburst/patches-3.18/007-qi_lb60-Don-t-use-3-wire-spi-mode-for-the-display-fo.patch index aa8a4769d5..b8aac66b3e 100644 --- a/target/linux/xburst/patches-3.18/007-qi_lb60-Don-t-use-3-wire-spi-mode-for-the-display-fo.patch +++ b/target/linux/xburst/patches-3.18/007-qi_lb60-Don-t-use-3-wire-spi-mode-for-the-display-fo.patch @@ -9,11 +9,9 @@ The spi_gpio driver does not support 3-wire mode. arch/mips/jz4740/board-qi_lb60.c | 1 - 1 file changed, 1 deletion(-) -diff --git a/arch/mips/jz4740/board-qi_lb60.c b/arch/mips/jz4740/board-qi_lb60.c -index c454525..04cf890 100644 --- a/arch/mips/jz4740/board-qi_lb60.c +++ b/arch/mips/jz4740/board-qi_lb60.c -@@ -312,7 +312,6 @@ static struct spi_board_info qi_lb60_spi_board_info[] = { +@@ -312,7 +312,6 @@ static struct spi_board_info qi_lb60_spi .chip_select = 0, .bus_num = 1, .max_speed_hz = 30 * 1000, @@ -21,6 +19,3 @@ index c454525..04cf890 100644 }, }; --- -1.7.10.4 - |