diff options
67 files changed, 641 insertions, 135 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 81cd12355e..861fbbf426 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -2,9 +2,9 @@ LINUX_RELEASE?=1 -LINUX_VERSION-3.18 = .36 +LINUX_VERSION-3.18 = .44 -LINUX_KERNEL_MD5SUM-3.18.36 = 31b1699c1285aeeb81fb25750baa50d9 +LINUX_KERNEL_MD5SUM-3.18.44 = 7c52da2f54381a84960118b5bf23381a ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index c5e39d0949..623e2a43b5 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -86,6 +86,9 @@ get_status_led() { dragino2) status_led="dragino2:red:system" ;; + dw33d) + status_led="dw33d:blue:status" + ;; eap300v2) status_led="engenius:blue:power" ;; @@ -274,6 +277,7 @@ get_status_led() { tl-wr841n-v1 | \ tl-wr841n-v7 | \ tl-wr841n-v8 | \ + tl-wr841n-v11 | \ tl-wa830re-v2 | \ tl-wr842n-v2 | \ tl-wr941nd | \ @@ -354,6 +358,9 @@ get_status_led() { wrt400n) status_led="wrt400n:blue:wps" ;; + e2100l) + status_led="e2100l:blue:wps" + ;; wrt160nl) status_led="wrt160nl:blue:wps" ;; diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index f01c6d3964..ab7d93c693 100644 --- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -50,6 +50,10 @@ case "$FIRMWARE" in dlan-pro-1200-ac) ath10kcal_extract "art" 20480 2116 ;; + dw33d) + ath10kcal_extract "art" 20480 2116 + ath10kcal_patch_mac $(mtd_get_mac_binary art 18) + ;; mc-mac1200r) ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1) diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds index d7dc9a15ed..91f5875c2f 100644 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds @@ -98,6 +98,13 @@ dragino2) ucidef_set_led_netdev "wan" "WAN" "dragino2:red:wan" "eth1" ;; +dw33d) + ucidef_set_led_usbdev "mmc" "MMC" "dw33d:blue:mmc" "1-1" + ucidef_set_led_usbdev "usb" "USB" "dw33d:blue:usb" "2-1" + ucidef_set_led_netdev "internet" "INTERNET" "dw33d:blue:internet" "eth0" + ucidef_set_led_wlan "wlan2g" "WLAN-2.4G" "dw33d:blue:wlan-2g" "phy1tpt" + ;; + eap300v2) ucidef_set_led_netdev "lan" "LAN" "engenius:blue:lan" "eth0" ucidef_set_led_wlan "wlan" "WLAN" "engenius:blue:wlan" "phy0tpt" @@ -492,7 +499,8 @@ tl-wa830re-v2) ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" ;; -tl-wr841n-v9) +tl-wr841n-v9 | \ +tl-wr841n-v11) ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1" ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10" ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08" diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network index b2b182e300..032c671341 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network @@ -57,6 +57,7 @@ wzr-450hp2) archer-c5 |\ archer-c7 |\ +dw33d |\ tl-wdr4900-v2) ucidef_set_interfaces_lan_wan "eth1" "eth0" ucidef_add_switch "switch0" "1" "1" @@ -438,6 +439,7 @@ tl-wr741nd |\ tl-wr741nd-v4 |\ tl-wr841n-v7 |\ tl-wr841n-v9 |\ +tl-wr841n-v11 |\ whr-g301n |\ whr-hp-g300n |\ whr-hp-gn |\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 2f4b11240d..1eb6999908 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -442,6 +442,9 @@ ar71xx_board_detect() { *"Dragino v2") name="dragino2" ;; + *"DW33D") + name="dw33d" + ;; *"EAP300 v2") name="eap300v2" ;; @@ -812,6 +815,9 @@ ar71xx_board_detect() { *"TL-WR841N/ND v9") name="tl-wr841n-v9" ;; + *"TL-WR841N/ND v11") + name="tl-wr841n-v11" + ;; *"TL-WR842N/ND v2") name="tl-wr842n-v2" ;; @@ -926,6 +932,9 @@ ar71xx_board_detect() { *WRT160NL) name="wrt160nl" ;; + *E2100L) + name="e2100l" + ;; *WRT400N) name="wrt400n" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index bf53169d58..fda7bc417c 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -182,6 +182,7 @@ platform_check_image() { ap96 | \ bxu2000n-2-a1 | \ db120 | \ + dw33d | \ f9k1115v2 |\ hornet-ub | \ mr12 | \ @@ -269,6 +270,7 @@ platform_check_image() { ;; mynet-rext|\ + e2100l|\ wrt160nl) cybertan_check_image "$1" && return 0 return 1 @@ -357,6 +359,7 @@ platform_check_image() { tl-wr841n-v7 | \ tl-wr841n-v8 | \ tl-wr841n-v9 | \ + tl-wr841n-v11 | \ tl-wr842n-v2 | \ tl-wr941nd | \ tl-wr941nd-v5 | \ diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18 index e4bed085ec..22faed440e 100644 --- a/target/linux/ar71xx/config-3.18 +++ b/target/linux/ar71xx/config-3.18 @@ -59,6 +59,7 @@ CONFIG_ATH79_MACH_DIR_825_B1=y CONFIG_ATH79_MACH_DIR_825_C1=y CONFIG_ATH79_MACH_DLAN_PRO_1200_AC=y CONFIG_ATH79_MACH_DLAN_PRO_500_WP=y +CONFIG_ATH79_MACH_DOMYWIFI_DW33D=y CONFIG_ATH79_MACH_DRAGINO2=y CONFIG_ATH79_MACH_EAP300V2=y CONFIG_ATH79_MACH_EAP7660D=y @@ -158,6 +159,7 @@ CONFIG_ATH79_MACH_WPJ344=y CONFIG_ATH79_MACH_WPJ531=y CONFIG_ATH79_MACH_WPJ558=y CONFIG_ATH79_MACH_WRT160NL=y +CONFIG_ATH79_MACH_E2100L=y CONFIG_ATH79_MACH_WRT400N=y CONFIG_ATH79_MACH_WZR_450HP2=y CONFIG_ATH79_MACH_WZR_HP_AG300H=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-domywifi-dw33d.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-domywifi-dw33d.c new file mode 100644 index 0000000000..019f273ebf --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-domywifi-dw33d.c @@ -0,0 +1,187 @@ +/* + * DomyWifi DW33D support + * + * Copyright (c) 2012 Qualcomm Atheros + * Copyright (c) 2012-2013 Gabor Juhos <juhosg@openwrt.org> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include <linux/platform_device.h> +#include <linux/ar8216_platform.h> +#include <linux/mtd/mtd.h> +#include <linux/mtd/nand.h> +#include <linux/platform/ar934x_nfc.h> + +#include <asm/mach-ath79/ar71xx_regs.h> + +#include "common.h" +#include "pci.h" +#include "dev-ap9x-pci.h" +#include "dev-gpio-buttons.h" +#include "dev-eth.h" +#include "dev-leds-gpio.h" +#include "dev-m25p80.h" +#include "dev-nfc.h" +#include "dev-usb.h" +#include "dev-wmac.h" +#include "machtypes.h" + +#define DW33D_GPIO_LED_MMC 4 +#define DW33D_GPIO_LED_WLAN_2G 13 +#define DW33D_GPIO_LED_STATUS 14 +#define DW33D_GPIO_LED_USB 15 +#define DW33D_GPIO_LED_INTERNET 22 + +#define DW33D_GPIO_BTN_RESET 17 + +#define DW33D_KEYS_POLL_INTERVAL 20 /* msecs */ +#define DW33D_KEYS_DEBOUNCE_INTERVAL (3 * DW33D_KEYS_POLL_INTERVAL) + +#define DW33D_MAC0_OFFSET 0 +#define DW33D_MAC1_OFFSET 6 +#define DW33D_WMAC_OFFSET 12 +#define DW33D_WMAC_CALDATA_OFFSET 0x1000 +#define DW33D_PCIE_CALDATA_OFFSET 0x5000 + +static struct gpio_led dw33d_leds_gpio[] __initdata = { + { + .name = "dw33d:blue:status", + .gpio = DW33D_GPIO_LED_STATUS, + .active_low = 1, + }, + { + .name = "dw33d:blue:mmc", + .gpio = DW33D_GPIO_LED_MMC, + .active_low = 1, + }, + { + .name = "dw33d:blue:usb", + .gpio = DW33D_GPIO_LED_USB, + .active_low = 1, + }, + { + .name = "dw33d:blue:wlan-2g", + .gpio = DW33D_GPIO_LED_WLAN_2G, + .active_low = 1, + }, + { + .name = "dw33d:blue:internet", + .gpio = DW33D_GPIO_LED_INTERNET, + .active_low = 1, + } +}; + +static struct gpio_keys_button dw33d_gpio_keys[] __initdata = { + { + .desc = "Reset button", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = DW33D_KEYS_DEBOUNCE_INTERVAL, + .gpio = DW33D_GPIO_BTN_RESET, + .active_low = 1, + } +}; + +/* GMAC0 of the QCA8337 switch is connected to the QCA9558 SoC via SGMII */ +static struct ar8327_pad_cfg dw33d_qca8337_pad0_cfg = { + .mode = AR8327_PAD_MAC_SGMII, + .sgmii_delay_en = true, +}; + +/* GMAC6 of the QCA8337 switch is connected to the QCA9558 SoC via RGMII */ +static struct ar8327_pad_cfg dw33d_qca8337_pad6_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 ar8327_platform_data dw33d_qca8337_data = { + .pad0_cfg = &dw33d_qca8337_pad0_cfg, + .pad6_cfg = &dw33d_qca8337_pad6_cfg, + .port0_cfg = { + .force_link = 1, + .speed = AR8327_PORT_SPEED_1000, + .duplex = 1, + .txpause = 1, + .rxpause = 1, + }, + .port6_cfg = { + .force_link = 1, + .speed = AR8327_PORT_SPEED_1000, + .duplex = 1, + .txpause = 1, + .rxpause = 1, + }, +}; + +static struct mdio_board_info dw33d_mdio0_info[] = { + { + .bus_id = "ag71xx-mdio.0", + .phy_addr = 0, + .platform_data = &dw33d_qca8337_data, + }, +}; + +static void __init dw33d_setup(void) +{ + u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); + + ath79_register_m25p80(NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(dw33d_leds_gpio), + dw33d_leds_gpio); + ath79_register_gpio_keys_polled(-1, DW33D_KEYS_POLL_INTERVAL, + ARRAY_SIZE(dw33d_gpio_keys), + dw33d_gpio_keys); + + ath79_register_usb(); + ath79_nfc_set_ecc_mode(AR934X_NFC_ECC_HW); + ath79_register_nfc(); + ath79_register_pci(); + + ath79_register_wmac(art + DW33D_WMAC_CALDATA_OFFSET, art + DW33D_WMAC_OFFSET); + + ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN); + + ath79_register_mdio(0, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, art + DW33D_MAC0_OFFSET, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, art + DW33D_MAC1_OFFSET, 0); + + mdiobus_register_board_info(dw33d_mdio0_info, + ARRAY_SIZE(dw33d_mdio0_info)); + + /* GMAC0 is connected to the RMGII interface */ + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ath79_eth0_data.phy_mask = BIT(0); + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; + ath79_eth0_pll_data.pll_1000 = 0x56000000; + + ath79_register_eth(0); + + /* GMAC1 is connected tot eh SGMII interface */ + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_SGMII; + ath79_eth1_data.speed = SPEED_1000; + ath79_eth1_data.duplex = DUPLEX_FULL; + ath79_eth1_pll_data.pll_1000 = 0x03000101; + + ath79_register_eth(1); +} + +MIPS_MACHINE(ATH79_MACH_DOMYWIFI_DW33D, "DW33D", + "DomyWifi DW33D", + dw33d_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-e2100l.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-e2100l.c new file mode 100644 index 0000000000..c09083460e --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-e2100l.c @@ -0,0 +1,126 @@ +/* + * Linksys E2100L board support + * + * Copyright (C) 2009-2012 Gabor Juhos <juhosg@openwrt.org> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include <asm/mach-ath79/ath79.h> + +#include "dev-eth.h" +#include "dev-gpio-buttons.h" +#include "dev-leds-gpio.h" +#include "dev-m25p80.h" +#include "dev-usb.h" +#include "dev-wmac.h" +#include "nvram.h" +#include "machtypes.h" + +#define E2100L_GPIO_LED_POWER 14 +#define E2100L_GPIO_LED_WPS_AMBER 9 +#define E2100L_GPIO_LED_WPS_BLUE 8 +#define E2100L_GPIO_LED_WLAN 6 + +#define E2100L_GPIO_BTN_WPS 7 +#define E2100L_GPIO_BTN_RESET 21 + +#define E2100L_KEYS_POLL_INTERVAL 20 /* msecs */ +#define E2100L_KEYS_DEBOUNCE_INTERVAL (3 * E2100L_KEYS_POLL_INTERVAL) + +#define E2100L_NVRAM_ADDR 0x1f7e0000 +#define E2100L_NVRAM_SIZE 0x10000 + +static const char *e2100l_part_probes[] = { + "cybertan", + NULL, +}; + +static struct flash_platform_data e2100l_flash_data = { + .part_probes = e2100l_part_probes, +}; + +static struct gpio_led e2100l_leds_gpio[] __initdata = { + { + .name = "e2100l:blue:power", + .gpio = E2100L_GPIO_LED_POWER, + .active_low = 1, + .default_trigger = "default-on", + }, { + .name = "e2100l:amber:wps", + .gpio = E2100L_GPIO_LED_WPS_AMBER, + .active_low = 1, + }, { + .name = "e2100l:blue:wps", + .gpio = E2100L_GPIO_LED_WPS_BLUE, + .active_low = 1, + }, { + .name = "e2100l:blue:wlan", + .gpio = E2100L_GPIO_LED_WLAN, + .active_low = 1, + } +}; + +static struct gpio_keys_button e2100l_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = E2100L_KEYS_DEBOUNCE_INTERVAL, + .gpio = E2100L_GPIO_BTN_RESET, + .active_low = 1, + }, { + .desc = "wps", + .type = EV_KEY, + .code = KEY_WPS_BUTTON, + .debounce_interval = E2100L_KEYS_DEBOUNCE_INTERVAL, + .gpio = E2100L_GPIO_BTN_WPS, + .active_low = 1, + } +}; + +static void __init e2100l_setup(void) +{ + const char *nvram = (char *) KSEG1ADDR(E2100L_NVRAM_ADDR); + u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000); + u8 mac[6]; + + if (ath79_nvram_parse_mac_addr(nvram, E2100L_NVRAM_SIZE, + "lan_hwaddr=", mac) == 0) { + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1); + } + + ath79_register_mdio(0, 0x0); + + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; + ath79_eth0_data.phy_mask = 0x01; + + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; + ath79_eth1_data.phy_mask = 0x10; + + ath79_register_eth(0); + ath79_register_eth(1); + + ath79_register_m25p80(&e2100l_flash_data); + + ath79_register_usb(); + + if (ath79_nvram_parse_mac_addr(nvram, E2100L_NVRAM_SIZE, + "wl0_hwaddr=", mac) == 0) + ath79_register_wmac(eeprom, mac); + else + ath79_register_wmac(eeprom, NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(e2100l_leds_gpio), + e2100l_leds_gpio); + + ath79_register_gpio_keys_polled(-1, E2100L_KEYS_POLL_INTERVAL, + ARRAY_SIZE(e2100l_gpio_keys), + e2100l_gpio_keys); +} + +MIPS_MACHINE(ATH79_MACH_E2100L, "E2100L", "Linksys E2100L", + e2100l_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c index 3e5c2a2522..004f719613 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c @@ -1,7 +1,9 @@ /* - * TP-LINK TL-WR841N/ND v9 + * TP-LINK TL-WR841N/ND v9/v11 * * Copyright (C) 2014 Matthias Schiffer <mschiffer@universe-factory.net> + * Copyright (C) 2016 Cezary Jackiewicz <cezary@eko.one.pl> + * Copyright (C) 2016 Stijn Segers <francesco.borromini@gmail.com> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published @@ -19,6 +21,7 @@ #include "dev-gpio-buttons.h" #include "dev-leds-gpio.h" #include "dev-m25p80.h" +#include "dev-usb.h" #include "dev-wmac.h" #include "machtypes.h" @@ -33,6 +36,19 @@ #define TL_WR841NV9_GPIO_BTN_RESET 12 #define TL_WR841NV9_GPIO_BTN_WIFI 17 +#define TL_WR841NV11_GPIO_LED_SYSTEM 1 +#define TL_WR841NV11_GPIO_LED_QSS 3 +#define TL_WR841NV11_GPIO_LED_WAN 4 +#define TL_WR841NV11_GPIO_LED_WAN_STATUS 2 +#define TL_WR841NV11_GPIO_LED_WLAN 13 +#define TL_WR841NV11_GPIO_LED_LAN1 16 +#define TL_WR841NV11_GPIO_LED_LAN2 15 +#define TL_WR841NV11_GPIO_LED_LAN3 14 +#define TL_WR841NV11_GPIO_LED_LAN4 11 + +#define TL_WR841NV11_GPIO_BTN_RESET 12 +#define TL_WR841NV11_GPIO_BTN_WIFI 17 + #define TL_WR841NV9_KEYS_POLL_INTERVAL 20 /* msecs */ #define TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR841NV9_KEYS_POLL_INTERVAL) @@ -95,6 +111,45 @@ static struct gpio_keys_button tl_wr841n_v9_gpio_keys[] __initdata = { } }; +static struct gpio_led tl_wr841n_v11_leds_gpio[] __initdata = { + { + .name = "tp-link:green:lan1", + .gpio = TL_WR841NV9_GPIO_LED_LAN1, + .active_low = 1, + }, { + .name = "tp-link:green:lan2", + .gpio = TL_WR841NV9_GPIO_LED_LAN2, + .active_low = 1, + }, { + .name = "tp-link:green:lan3", + .gpio = TL_WR841NV9_GPIO_LED_LAN3, + .active_low = 1, + }, { + .name = "tp-link:green:lan4", + .gpio = TL_WR841NV9_GPIO_LED_LAN4, + .active_low = 1, + }, { + .name = "tp-link:green:qss", + .gpio = TL_WR841NV9_GPIO_LED_QSS, + .active_low = 1, + }, { + .name = "tp-link:green:system", + .gpio = TL_WR841NV11_GPIO_LED_SYSTEM, + .active_low = 1, + }, { + .name = "tp-link:green:wan", + .gpio = TL_WR841NV9_GPIO_LED_WAN, + .active_low = 1, + }, { + .name = "tp-link:green:wan_status", + .gpio = TL_WR841NV11_GPIO_LED_WAN_STATUS, + .active_low = 1, + }, { + .name = "tp-link:green:wlan", + .gpio = TL_WR841NV9_GPIO_LED_WLAN, + .active_low = 1, + }, +}; static void __init tl_ap143_setup(void) { @@ -142,3 +197,18 @@ static void __init tl_wr841n_v9_setup(void) MIPS_MACHINE(ATH79_MACH_TL_WR841N_V9, "TL-WR841N-v9", "TP-LINK TL-WR841N/ND v9", tl_wr841n_v9_setup); + +static void __init tl_wr841n_v11_setup(void) +{ + tl_ap143_setup(); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr841n_v11_leds_gpio), + tl_wr841n_v11_leds_gpio); + + ath79_register_gpio_keys_polled(1, TL_WR841NV9_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_wr841n_v9_gpio_keys), + tl_wr841n_v9_gpio_keys); +} + +MIPS_MACHINE(ATH79_MACH_TL_WR841N_V11, "TL-WR841N-v11", "TP-LINK TL-WR841N/ND v11", + tl_wr841n_v11_setup); diff --git a/target/linux/ar71xx/generic/profiles/domywifi.mk b/target/linux/ar71xx/generic/profiles/domywifi.mk new file mode 100644 index 0000000000..15ce79be14 --- /dev/null +++ b/target/linux/ar71xx/generic/profiles/domywifi.mk @@ -0,0 +1,17 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/DW33D + NAME:=DomyWifi DW33D + PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev kmod-ath10k +endef + +define Profile/DW33D/Description + Package set optimized for the DomyWifi DW33D. +endef + +$(eval $(call Profile,DW33D)) diff --git a/target/linux/ar71xx/generic/profiles/linksys.mk b/target/linux/ar71xx/generic/profiles/linksys.mk index bedf3a3d49..973eb6e24a 100644 --- a/target/linux/ar71xx/generic/profiles/linksys.mk +++ b/target/linux/ar71xx/generic/profiles/linksys.mk @@ -14,6 +14,15 @@ define Profile/WRT160NL/Description Package set optimized for the Linksys WRT160NL. endef +define Profile/E2100L + NAME:=Linksys E2100L + PACKAGES:=kmod-usb-core kmod-usb2 +endef + +define Profile/E2100L/Description + Package set optimized for the Linksys E2100L +endef + define Profile/WRT400N NAME:=Linksys WRT400N PACKAGES:= @@ -24,4 +33,5 @@ define Profile/WRT400N/Description endef $(eval $(call Profile,WRT160NL)) +$(eval $(call Profile,E2100L)) $(eval $(call Profile,WRT400N)) diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index 8551399d59..6cbaf380d9 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -578,7 +578,7 @@ endef define Device/tl-wr841n-v11 $(Device/tplink-4mlzma) - BOARDNAME := TL-WR841N-v9 + BOARDNAME := TL-WR841N-v11 DEVICE_PROFILE := TLWR841 TPLINK_HWID := 0x08410011 endef @@ -1036,6 +1036,7 @@ f9k1115v2_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),14464k(rootfs dlrtdev_mtdlayout=mtdparts=spi0.0:256k(uboot)ro,64k(config)ro,6208k(firmware),64k(caldata)ro,640k(certs),960k(unknown)ro,64k@0x7f0000(caldata_copy) dlrtdev_mtdlayout_fat=mtdparts=spi0.0:256k(uboot)ro,64k(config)ro,7168k(firmware),640k(certs),64k(caldata)ro,64k@0x660000(caldata_orig),6208k@0x50000(firmware_orig) dragino2_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,16000k(firmware),64k(config)ro,64k(art)ro +dw33d_mtdlayout=mtdparts=spi0.0:256k(u-boot),64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware);ar934x-nfc:96m(rootfs_data),32m(backup)ro hiwifi_hc6361_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(bdinfo)ro,1280k(kernel),14848k(rootfs),64k(backup)ro,64k(art)ro,16128k@0x20000(firmware) mr12_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2304k(kernel),128k(art)ro,15744k@0x80000(firmware) mr16_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2304k(kernel),128k(art)ro,15744k@0x80000(firmware) @@ -1934,6 +1935,7 @@ $(eval $(call SingleProfile,AthLzma,64k,BXU2000N2,bxu2000n-2-a1,BXU2000n-2-A1,tt $(eval $(call SingleProfile,AthLzma,64k,CAP4200AG,cap4200ag,CAP4200AG,ttyS0,115200,$$(cap4200ag_mtdlayout),KRuImage)) $(eval $(call SingleProfile,AthLzma,64k,DB120,db120,DB120,ttyS0,115200,$$(db120_mtdlayout),RKuImage)) $(eval $(call SingleProfile,AthLzma,64k,DRAGINO2,dragino2,DRAGINO2,ttyATH0,115200,$$(dragino2_mtdlayout),KRuImage,65536)) +$(eval $(call SingleProfile,AthLzma,64k,DW33D,domywifi-dw33d,DW33D,ttyS0,115200,$$(dw33d_mtdlayout) mem=256M,RKuImage)) $(eval $(call SingleProfile,AthLzma,64k,EWDORINAP,ew-dorin,EW-DORIN,ttyATH0,115200,$$(ew-dorin_mtdlayout_4M),KRuImage,65536)) $(eval $(call SingleProfile,AthLzma,64k,EWDORINRT,ew-dorin-router,EW-DORIN-ROUTER,ttyATH0,115200,$$(ew-dorin_mtdlayout_4M),KRuImage,65536)) $(eval $(call SingleProfile,AthLzma,64k,EWDORIN16M,ew-dorin-16M,EW-DORIN,ttyATH0,115200,$$(ew-dorin_mtdlayout_16M),KRuImage,65536)) @@ -1979,6 +1981,8 @@ $(eval $(call SingleProfile,CameoDB120_8M,64kraw,TEW732BR,tew-732br,TEW-732BR,tt $(eval $(call SingleProfile,CyberTANGZIP,64k,WRT160NL,wrt160nl,WRT160NL,ttyS0,115200,,1.00.01)) +$(eval $(call SingleProfile,CyberTANGZIP,64k,E2100L,e2100l,E2100L,ttyS0,115200,,1.00.01)) + $(eval $(call SingleProfile,CyberTANLZMA,64k,MYNETREXT,mynet-rext,MYNET-REXT,ttyS0,115200,$$(mynet_rext_mtdlayout) root=31:2,1.00.01)) $(eval $(call SingleProfile,CameoAP94,64kraw,DIR825B1,dir-825-b1,DIR-825-B1,ttyS0,115200,$$(cameo_ap94_mtdlayout),$$(cameo_ap94_mtdlayout_fat),01AP94-AR7161-RT-080619-00,00AP94-AR7161-RT-080619-00)) diff --git a/target/linux/ar71xx/patches-3.18/450-gpio-nxp-74hc153-gpio-chip-driver.patch b/target/linux/ar71xx/patches-3.18/450-gpio-nxp-74hc153-gpio-chip-driver.patch index 3cf5755dfc..c49f1743da 100644 --- a/target/linux/ar71xx/patches-3.18/450-gpio-nxp-74hc153-gpio-chip-driver.patch +++ b/target/linux/ar71xx/patches-3.18/450-gpio-nxp-74hc153-gpio-chip-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -905,4 +905,12 @@ config GPIO_VIPERBOARD +@@ -906,4 +906,12 @@ config GPIO_VIPERBOARD River Tech's viperboard.h for detailed meaning of the module parameters. diff --git a/target/linux/ar71xx/patches-3.18/451-gpio-74x164-improve-platform-device-support.patch b/target/linux/ar71xx/patches-3.18/451-gpio-74x164-improve-platform-device-support.patch index 5d29fae222..20b2c44909 100644 --- a/target/linux/ar71xx/patches-3.18/451-gpio-74x164-improve-platform-device-support.patch +++ b/target/linux/ar71xx/patches-3.18/451-gpio-74x164-improve-platform-device-support.patch @@ -100,7 +100,7 @@ +#endif --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -821,7 +821,7 @@ config GPIO_MC33880 +@@ -822,7 +822,7 @@ config GPIO_MC33880 config GPIO_74X164 tristate "74x164 serial-in/parallel-out 8-bits shift register" diff --git a/target/linux/ar71xx/patches-3.18/452-gpio-add-gpio-latch-driver.patch b/target/linux/ar71xx/patches-3.18/452-gpio-add-gpio-latch-driver.patch index 405923a91e..378dc8759a 100644 --- a/target/linux/ar71xx/patches-3.18/452-gpio-add-gpio-latch-driver.patch +++ b/target/linux/ar71xx/patches-3.18/452-gpio-add-gpio-latch-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -913,4 +913,9 @@ config GPIO_NXP_74HC153 +@@ -914,4 +914,9 @@ config GPIO_NXP_74HC153 Platform driver for NXP 74HC153 Dual 4-input Multiplexer. This provides a GPIO interface supporting input mode only. diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch index d6e786dd62..ae8d9ffb12 100644 --- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch +++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -16,22 +16,199 @@ +@@ -16,22 +16,201 @@ enum ath79_mach_type { ATH79_MACH_GENERIC = 0, @@ -146,6 +146,7 @@ + ATH79_MACH_TL_WR841N_V7, /* TP-LINK TL-WR841N/ND v7 */ + ATH79_MACH_TL_WR841N_V8, /* TP-LINK TL-WR841N/ND v8 */ + ATH79_MACH_TL_WR841N_V9, /* TP-LINK TL-WR841N/ND v9 */ ++ ATH79_MACH_TL_WR841N_V11, /* TP-LINK TL-WR841N/ND v11 */ + ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */ + ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */ + ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */ @@ -189,6 +190,7 @@ + ATH79_MACH_WPJ531, /* Compex WPJ531 */ + ATH79_MACH_WPJ558, /* Compex WPJ558 */ + ATH79_MACH_WRT160NL, /* Linksys WRT160NL */ ++ ATH79_MACH_E2100L, /* Linksys E2100L */ + ATH79_MACH_WRT400N, /* Linksys WRT400N */ + ATH79_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */ + ATH79_MACH_WZR_HP_G300NH, /* Buffalo WZR-HP-G300NH */ @@ -282,7 +284,7 @@ config ATH79_MACH_AP121 bool "Atheros AP121 reference board" select SOC_AR933X -@@ -11,62 +84,1050 @@ config ATH79_MACH_AP121 +@@ -11,62 +84,1061 @@ config ATH79_MACH_AP121 select ATH79_DEV_M25P80 select ATH79_DEV_USB select ATH79_DEV_WMAC @@ -773,6 +775,17 @@ + select ATH79_DEV_WMAC + select ATH79_NVRAM + ++config ATH79_MACH_E2100L ++ bool "Linksys E2100L board support" ++ select SOC_AR913X ++ select ATH79_DEV_ETH ++ select ATH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_M25P80 ++ select ATH79_DEV_USB ++ select ATH79_DEV_WMAC ++ select ATH79_NVRAM ++ +config ATH79_MACH_WRT400N + bool "Linksys WRT400N board support" + select SOC_AR71XX @@ -1494,7 +1507,7 @@ endif --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -38,9 +38,128 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route +@@ -38,9 +38,129 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route # # Machines # @@ -1614,6 +1627,7 @@ +obj-$(CONFIG_ATH79_MACH_WPJ531) += mach-wpj531.o +obj-$(CONFIG_ATH79_MACH_WPJ558) += mach-wpj558.o +obj-$(CONFIG_ATH79_MACH_WRT160NL) += mach-wrt160nl.o ++obj-$(CONFIG_ATH79_MACH_E2100L) += mach-e2100l.o +obj-$(CONFIG_ATH79_MACH_WRT400N) += mach-wrt400n.o +obj-$(CONFIG_ATH79_MACH_WZR_HP_G300NH) += mach-wzr-hp-g300nh.o +obj-$(CONFIG_ATH79_MACH_WZR_HP_G300NH2) += mach-wzr-hp-g300nh2.o diff --git a/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch b/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch index e432c6f3b6..813d7f8534 100644 --- a/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch +++ b/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch @@ -626,9 +626,9 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed. #define QCA955X_REV_ID_REVISION_MASK 0xf /* -@@ -634,12 +747,32 @@ - #define AR934X_GPIO_REG_OUT_FUNC5 0x40 - #define AR934X_GPIO_REG_FUNC 0x6c +@@ -642,12 +755,32 @@ + #define QCA955X_GPIO_REG_OUT_FUNC5 0x40 + #define QCA955X_GPIO_REG_FUNC 0x6c +#define QCA953X_GPIO_REG_OUT_FUNC0 0x2c +#define QCA953X_GPIO_REG_OUT_FUNC1 0x30 @@ -659,7 +659,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed. #define QCA955X_GPIO_COUNT 24 /* -@@ -663,6 +796,24 @@ +@@ -671,6 +804,24 @@ #define AR934X_SRIF_DPLL2_OUTDIV_SHIFT 13 #define AR934X_SRIF_DPLL2_OUTDIV_MASK 0x7 @@ -684,7 +684,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed. #define AR71XX_GPIO_FUNC_STEREO_EN BIT(17) #define AR71XX_GPIO_FUNC_SLIC_EN BIT(16) #define AR71XX_GPIO_FUNC_SPI_CS2_EN BIT(13) -@@ -804,6 +955,16 @@ +@@ -877,6 +1028,16 @@ #define AR934X_ETH_CFG_RDV_DELAY_SHIFT 16 /* diff --git a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch index b5c88e9b99..0da81426ca 100644 --- a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch +++ b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch @@ -638,7 +638,7 @@ /* * SPI block */ -@@ -766,6 +868,19 @@ +@@ -774,6 +876,19 @@ #define QCA953X_GPIO_OUT_MUX_LED_LINK4 44 #define QCA953X_GPIO_OUT_MUX_LED_LINK5 45 @@ -658,7 +658,7 @@ #define AR71XX_GPIO_COUNT 16 #define AR7240_GPIO_COUNT 18 #define AR7241_GPIO_COUNT 20 -@@ -774,6 +889,7 @@ +@@ -782,6 +897,7 @@ #define AR934X_GPIO_COUNT 23 #define QCA953X_GPIO_COUNT 18 #define QCA955X_GPIO_COUNT 24 diff --git a/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch index d802a12d60..d34712b71e 100644 --- a/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch +++ b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -763,6 +763,16 @@ config ATH79_MACH_CAP4200AG +@@ -858,6 +858,16 @@ config ATH79_MACH_CAP4200AG select ATH79_DEV_M25P80 select ATH79_DEV_WMAC @@ -19,7 +19,7 @@ select SOC_QCA955X --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -80,6 +80,7 @@ obj-$(CONFIG_ATH79_MACH_HORNET_UB) += ma +@@ -86,6 +86,7 @@ obj-$(CONFIG_ATH79_MACH_HORNET_UB) += ma obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o obj-$(CONFIG_ATH79_MACH_MR12) += mach-mr12.o obj-$(CONFIG_ATH79_MACH_MR16) += mach-mr16.o @@ -29,7 +29,7 @@ obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -69,6 +69,7 @@ enum ath79_mach_type { +@@ -75,6 +75,7 @@ enum ath79_mach_type { ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */ ATH79_MACH_MR12, /* Cisco Meraki MR12 */ ATH79_MACH_MR16, /* Cisco Meraki MR16 */ diff --git a/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch index 4accd030be..4eea429e55 100644 --- a/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch +++ b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -799,6 +799,15 @@ config ATH79_MACH_OM5P +@@ -779,6 +779,15 @@ config ATH79_MACH_OM5P select ATH79_DEV_M25P80 select ATH79_DEV_WMAC @@ -18,7 +18,7 @@ select SOC_AR933X --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -100,6 +100,7 @@ obj-$(CONFIG_ATH79_MACH_MZK_W300NH) += m +@@ -97,6 +97,7 @@ obj-$(CONFIG_ATH79_MACH_MZK_W300NH) += m obj-$(CONFIG_ATH79_MACH_NBG460N) += mach-nbg460n.o obj-$(CONFIG_ATH79_MACH_OM2P) += mach-om2p.o obj-$(CONFIG_ATH79_MACH_OM5P) += mach-om5p.o @@ -28,7 +28,7 @@ obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -95,6 +95,7 @@ enum ath79_mach_type { +@@ -92,6 +92,7 @@ enum ath79_mach_type { ATH79_MACH_OM2P_LC, /* OpenMesh OM2P-LC */ ATH79_MACH_OM2Pv2, /* OpenMesh OM2Pv2 */ ATH79_MACH_OM2P, /* OpenMesh OM2P */ diff --git a/target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch b/target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch index fbbf171599..aca37c9657 100644 --- a/target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch +++ b/target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -808,6 +808,16 @@ config ATH79_MACH_OM5P_AC +@@ -788,6 +788,16 @@ config ATH79_MACH_OM5P_AC select ATH79_DEV_M25P80 select ATH79_DEV_WMAC @@ -19,7 +19,7 @@ select SOC_AR933X --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -101,6 +101,7 @@ obj-$(CONFIG_ATH79_MACH_NBG460N) += mach +@@ -98,6 +98,7 @@ obj-$(CONFIG_ATH79_MACH_NBG460N) += mach obj-$(CONFIG_ATH79_MACH_OM2P) += mach-om2p.o obj-$(CONFIG_ATH79_MACH_OM5P) += mach-om5p.o obj-$(CONFIG_ATH79_MACH_OM5P_AC) += mach-om5pac.o @@ -29,7 +29,7 @@ obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -96,6 +96,7 @@ enum ath79_mach_type { +@@ -93,6 +93,7 @@ enum ath79_mach_type { ATH79_MACH_OM2Pv2, /* OpenMesh OM2Pv2 */ ATH79_MACH_OM2P, /* OpenMesh OM2P */ ATH79_MACH_OM5P_AC, /* OpenMesh OM5P-AC */ 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 dc0476919e..bf03545e43 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 @@ -840,7 +840,7 @@ --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3678,14 +3678,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -3683,14 +3683,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 7c187ce950..bab5cc75b1 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 -@@ -179,6 +179,7 @@ enum ath79_mach_type { +@@ -184,6 +184,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 */ diff --git a/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch b/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch index e12f22813e..5cb5db1b74 100644 --- a/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch +++ b/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -896,6 +896,16 @@ config ATH79_MACH_EAP7660D +@@ -925,6 +925,16 @@ config ATH79_MACH_EAP7660D select ATH79_DEV_LEDS_GPIO select ATH79_DEV_M25P80 diff --git a/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-WPN824N.patch b/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-WPN824N.patch index d58a26fe5c..8921fb7036 100644 --- a/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-WPN824N.patch +++ b/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-WPN824N.patch @@ -11,7 +11,7 @@ select ATH79_DEV_ETH --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -206,6 +206,7 @@ enum ath79_mach_type { +@@ -211,6 +211,7 @@ enum ath79_mach_type { ATH79_MACH_WNR2200, /* NETGEAR WNR2200 */ ATH79_MACH_WNR612_V2, /* NETGEAR WNR612 v2 */ ATH79_MACH_WNR1000_V2, /* NETGEAR WNR1000 v2 */ diff --git a/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-tl-wa901nd-v4-support.patch b/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-tl-wa901nd-v4-support.patch index 37312adeb8..f84bce646d 100644 --- a/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-tl-wa901nd-v4-support.patch +++ b/target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-tl-wa901nd-v4-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -152,6 +152,7 @@ enum ath79_mach_type { +@@ -157,6 +157,7 @@ enum ath79_mach_type { ATH79_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */ ATH79_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */ ATH79_MACH_TL_WA901ND_V3, /* TP-LINK TL-WA901ND v3 */ @@ -10,7 +10,7 @@ ATH79_MACH_TL_WDR4900_V2, /* TP-LINK TL-WDR4900 v2 */ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -1023,6 +1023,15 @@ config ATH79_MACH_TL_WA901ND_V2 +@@ -1052,6 +1052,15 @@ config ATH79_MACH_TL_WA901ND_V2 select ATH79_DEV_M25P80 select ATH79_DEV_WMAC @@ -28,7 +28,7 @@ select SOC_AR934X --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -128,6 +128,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WA7210N_V2) + +@@ -131,6 +131,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WA7210N_V2) + obj-$(CONFIG_ATH79_MACH_TL_WA830RE_V2) += mach-tl-wa830re-v2.o obj-$(CONFIG_ATH79_MACH_TL_WA901ND) += mach-tl-wa901nd.o obj-$(CONFIG_ATH79_MACH_TL_WA901ND_V2) += mach-tl-wa901nd-v2.o diff --git a/target/linux/ar71xx/patches-3.18/908-MIPS-ath79-add-domywifi-dw33d-support.patch b/target/linux/ar71xx/patches-3.18/908-MIPS-ath79-add-domywifi-dw33d-support.patch new file mode 100644 index 0000000000..ee575d54f9 --- /dev/null +++ b/target/linux/ar71xx/patches-3.18/908-MIPS-ath79-add-domywifi-dw33d-support.patch @@ -0,0 +1,45 @@ +--- a/arch/mips/ath79/Kconfig ++++ b/arch/mips/ath79/Kconfig +@@ -480,6 +480,22 @@ + select ATH79_DEV_NFC + select ATH79_DEV_USB + ++config ATH79_MACH_DOMYWIFI_DW33D ++ bool "DomyWifi DW33D support" ++ select SOC_QCA955X ++ select ATH79_DEV_AP9X_PCI if PCI ++ select ATH79_DEV_ETH ++ select ATH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_M25P80 ++ select ATH79_DEV_NFC ++ select ATH79_DEV_WMAC ++ select ATH79_DEV_USB ++ select MTD_NAND ++ select MTD_NAND_AR934X ++ select MTD_NAND_AR934X_HW_ECC ++ select MTD_NAND_ECC ++ + config ATH79_MACH_DRAGINO2 + bool "DRAGINO V2 support" + select SOC_AR933X +--- a/arch/mips/ath79/Makefile ++++ b/arch/mips/ath79/Makefile +@@ -69,6 +69,7 @@ + obj-$(CONFIG_ATH79_MACH_DIR_615_I1) += mach-dir-615-i1.o + obj-$(CONFIG_ATH79_MACH_DIR_825_B1) += mach-dir-825-b1.o + obj-$(CONFIG_ATH79_MACH_DIR_825_C1) += mach-dir-825-c1.o ++obj-$(CONFIG_ATH79_MACH_DOMYWIFI_DW33D) += mach-domywifi-dw33d.o + obj-$(CONFIG_ATH79_MACH_DRAGINO2) += mach-dragino2.o + obj-$(CONFIG_ATH79_MACH_ESR900) += mach-esr900.o + obj-$(CONFIG_ATH79_MACH_EW_DORIN) += mach-ew-dorin.o +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -57,6 +57,7 @@ + ATH79_MACH_DIR_835_A1, /* D-Link DIR-835 rev. A1 */ + ATH79_MACH_DLAN_PRO_500_WP, /* devolo dLAN pro 500 Wireless+ */ + ATH79_MACH_DLAN_PRO_1200_AC, /* devolo dLAN pro 1200+ WiFi ac*/ ++ ATH79_MACH_DOMYWIFI_DW33D, /* DomyWifi DW33D */ + ATH79_MACH_DRAGINO2, /* Dragino Version 2 */ + ATH79_MACH_ESR900, /* EnGenius ESR900 */ + ATH79_MACH_EW_DORIN, /* embedded wireless Dorin Platform */ diff --git a/target/linux/ath25/patches-3.18/107-ar5312_gpio.patch b/target/linux/ath25/patches-3.18/107-ar5312_gpio.patch index a6d0a88355..14dd4c1866 100644 --- a/target/linux/ath25/patches-3.18/107-ar5312_gpio.patch +++ b/target/linux/ath25/patches-3.18/107-ar5312_gpio.patch @@ -52,7 +52,7 @@ if (!ath25_board.radio) --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -112,6 +112,13 @@ config GPIO_MAX730X +@@ -113,6 +113,13 @@ config GPIO_MAX730X comment "Memory mapped GPIO drivers:" diff --git a/target/linux/ath25/patches-3.18/108-ar2315_gpio.patch b/target/linux/ath25/patches-3.18/108-ar2315_gpio.patch index 5d9785346d..3266427974 100644 --- a/target/linux/ath25/patches-3.18/108-ar2315_gpio.patch +++ b/target/linux/ath25/patches-3.18/108-ar2315_gpio.patch @@ -75,7 +75,7 @@ * workaround. Attempt to jump to the mips reset location - --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -112,6 +112,13 @@ config GPIO_MAX730X +@@ -113,6 +113,13 @@ config GPIO_MAX730X comment "Memory mapped GPIO drivers:" diff --git a/target/linux/brcm2708/patches-3.18/0024-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch b/target/linux/brcm2708/patches-3.18/0024-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch index e67b4714f5..b51b89db7a 100644 --- a/target/linux/brcm2708/patches-3.18/0024-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch +++ b/target/linux/brcm2708/patches-3.18/0024-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch @@ -22,7 +22,7 @@ Subject: [PATCH 024/114] config: Enable CONFIG_MEMCG, but leave it disabled CONFIG_SCHED_AUTOGROUP=y --- a/kernel/cgroup.c +++ b/kernel/cgroup.c -@@ -5322,6 +5322,29 @@ static int __init cgroup_disable(char *s +@@ -5319,6 +5319,29 @@ static int __init cgroup_disable(char *s } __setup("cgroup_disable=", cgroup_disable); diff --git a/target/linux/brcm2708/patches-3.18/0055-usb-core-make-overcurrent-messages-more-prominent.patch b/target/linux/brcm2708/patches-3.18/0055-usb-core-make-overcurrent-messages-more-prominent.patch index 1f4ad1bab9..316f80eb87 100644 --- a/target/linux/brcm2708/patches-3.18/0055-usb-core-make-overcurrent-messages-more-prominent.patch +++ b/target/linux/brcm2708/patches-3.18/0055-usb-core-make-overcurrent-messages-more-prominent.patch @@ -10,7 +10,7 @@ Hub overcurrent messages are more serious than "debug". Increase loglevel. --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -4934,7 +4934,7 @@ static void port_event(struct usb_hub *h +@@ -4932,7 +4932,7 @@ static void port_event(struct usb_hub *h if (portchange & USB_PORT_STAT_C_OVERCURRENT) { u16 status = 0, unused; diff --git a/target/linux/brcm63xx/patches-3.18/374-gpio-add-a-simple-GPIO-driver-for-bcm63xx.patch b/target/linux/brcm63xx/patches-3.18/374-gpio-add-a-simple-GPIO-driver-for-bcm63xx.patch index 3e53c80606..2406042cea 100644 --- a/target/linux/brcm63xx/patches-3.18/374-gpio-add-a-simple-GPIO-driver-for-bcm63xx.patch +++ b/target/linux/brcm63xx/patches-3.18/374-gpio-add-a-simple-GPIO-driver-for-bcm63xx.patch @@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -892,6 +892,14 @@ config GPIO_BCM_KONA +@@ -893,6 +893,14 @@ config GPIO_BCM_KONA help Turn on GPIO support for Broadcom "Kona" chips. diff --git a/target/linux/generic/patches-3.18/025-bcma_backport.patch b/target/linux/generic/patches-3.18/025-bcma_backport.patch index ca24e86133..ec1cb004b7 100644 --- a/target/linux/generic/patches-3.18/025-bcma_backport.patch +++ b/target/linux/generic/patches-3.18/025-bcma_backport.patch @@ -1,6 +1,6 @@ --- a/drivers/bcma/bcma_private.h +++ b/drivers/bcma/bcma_private.h -@@ -24,6 +24,7 @@ struct bcma_bus; +@@ -22,6 +22,7 @@ struct bcma_bus; /* main.c */ bool bcma_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, int timeout); @@ -223,7 +223,7 @@ core->core_index, bcma_device_name(&core->id), --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h -@@ -447,4 +447,6 @@ extern u32 bcma_chipco_pll_read(struct b +@@ -448,4 +448,6 @@ extern u32 bcma_chipco_pll_read(struct b #define BCMA_DMA_TRANSLATION_DMA64_CMT 0x80000000 /* Client Mode Translation for 64-bit DMA */ extern u32 bcma_core_dma_translation(struct bcma_device *core); diff --git a/target/linux/generic/patches-3.18/026-bcma-from-3.20.patch b/target/linux/generic/patches-3.18/026-bcma-from-3.20.patch index 17c06b001f..628b0bd389 100644 --- a/target/linux/generic/patches-3.18/026-bcma-from-3.20.patch +++ b/target/linux/generic/patches-3.18/026-bcma-from-3.20.patch @@ -1,6 +1,6 @@ --- a/drivers/bcma/bcma_private.h +++ b/drivers/bcma/bcma_private.h -@@ -25,22 +25,18 @@ struct bcma_bus; +@@ -23,22 +23,18 @@ struct bcma_bus; bool bcma_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, int timeout); void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core); @@ -26,7 +26,7 @@ /* sprom.c */ int bcma_sprom_get(struct bcma_bus *bus); -@@ -111,6 +107,14 @@ extern int bcma_chipco_watchdog_register +@@ -109,6 +105,14 @@ extern int bcma_chipco_watchdog_register #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE bool bcma_core_pci_is_in_hostmode(struct bcma_drv_pci *pc); void bcma_core_pci_hostmode_init(struct bcma_drv_pci *pc); @@ -467,7 +467,7 @@ if (!bus->drv_cc.core) --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h -@@ -318,6 +318,7 @@ struct bcma_bus { +@@ -319,6 +319,7 @@ struct bcma_bus { const struct bcma_host_ops *ops; enum bcma_hosttype hosttype; diff --git a/target/linux/generic/patches-3.18/027-bcma-from-4.1.patch b/target/linux/generic/patches-3.18/027-bcma-from-4.1.patch index 1d751a0c6d..c88a816fef 100644 --- a/target/linux/generic/patches-3.18/027-bcma-from-4.1.patch +++ b/target/linux/generic/patches-3.18/027-bcma-from-4.1.patch @@ -1,6 +1,6 @@ --- a/drivers/bcma/bcma_private.h +++ b/drivers/bcma/bcma_private.h -@@ -26,6 +26,7 @@ bool bcma_wait_value(struct bcma_device +@@ -24,6 +24,7 @@ bool bcma_wait_value(struct bcma_device int timeout); void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core); void bcma_init_bus(struct bcma_bus *bus); @@ -8,7 +8,7 @@ int bcma_bus_register(struct bcma_bus *bus); void bcma_bus_unregister(struct bcma_bus *bus); int __init bcma_bus_early_register(struct bcma_bus *bus); -@@ -42,6 +43,9 @@ int bcma_bus_scan(struct bcma_bus *bus); +@@ -40,6 +41,9 @@ int bcma_bus_scan(struct bcma_bus *bus); int bcma_sprom_get(struct bcma_bus *bus); /* driver_chipcommon.c */ @@ -18,7 +18,7 @@ #ifdef CONFIG_BCMA_DRIVER_MIPS void bcma_chipco_serial_init(struct bcma_drv_cc *cc); extern struct platform_device bcma_pflash_dev; -@@ -52,6 +56,8 @@ int bcma_core_chipcommon_b_init(struct b +@@ -50,6 +54,8 @@ int bcma_core_chipcommon_b_init(struct b void bcma_core_chipcommon_b_free(struct bcma_drv_cc_b *ccb); /* driver_chipcommon_pmu.c */ @@ -27,7 +27,7 @@ u32 bcma_pmu_get_alp_clock(struct bcma_drv_cc *cc); u32 bcma_pmu_get_cpu_clock(struct bcma_drv_cc *cc); -@@ -100,7 +106,35 @@ static inline void __exit bcma_host_soc_ +@@ -98,7 +104,35 @@ static inline void __exit bcma_host_soc_ #endif /* CONFIG_BCMA_HOST_SOC && CONFIG_OF */ /* driver_pci.c */ @@ -63,7 +63,7 @@ extern int bcma_chipco_watchdog_register(struct bcma_drv_cc *cc); -@@ -117,6 +151,39 @@ static inline void bcma_core_pci_hostmod +@@ -115,6 +149,39 @@ static inline void bcma_core_pci_hostmod } #endif /* CONFIG_BCMA_DRIVER_PCI_HOSTMODE */ @@ -500,7 +500,7 @@ } --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h -@@ -434,6 +434,27 @@ static inline struct bcma_device *bcma_f +@@ -435,6 +435,27 @@ static inline struct bcma_device *bcma_f return bcma_find_core_unit(bus, coreid, 0); } diff --git a/target/linux/generic/patches-3.18/032-bcma-from-4.6.patch b/target/linux/generic/patches-3.18/032-bcma-from-4.6.patch index a74d9eead9..0f8c362e94 100644 --- a/target/linux/generic/patches-3.18/032-bcma-from-4.6.patch +++ b/target/linux/generic/patches-3.18/032-bcma-from-4.6.patch @@ -327,7 +327,7 @@ #define BCMA_CORE_ARM_CA7 0x847 #define BCMA_CORE_SYS_MEM 0x849 #define BCMA_CORE_DEFAULT 0xFFF -@@ -199,6 +201,7 @@ struct bcma_host_ops { +@@ -200,6 +202,7 @@ struct bcma_host_ops { #define BCMA_PKG_ID_BCM4707 1 #define BCMA_PKG_ID_BCM4708 2 #define BCMA_PKG_ID_BCM4709 0 @@ -398,7 +398,7 @@ extern u32 bcma_chipco_get_alp_clock(struct bcma_drv_cc *cc); --- a/drivers/bcma/bcma_private.h +++ b/drivers/bcma/bcma_private.h -@@ -47,7 +47,6 @@ void bcma_core_chipcommon_early_init(str +@@ -45,7 +45,6 @@ void bcma_core_chipcommon_early_init(str void bcma_core_chipcommon_init(struct bcma_drv_cc *cc); void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable); #ifdef CONFIG_BCMA_DRIVER_MIPS diff --git a/target/linux/generic/patches-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch b/target/linux/generic/patches-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch index b36bcd8167..fe55323a50 100644 --- a/target/linux/generic/patches-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch +++ b/target/linux/generic/patches-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch @@ -134,7 +134,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> return ret; } -@@ -919,7 +918,7 @@ void fib_del_ifaddr(struct in_ifaddr *if +@@ -923,7 +922,7 @@ no_promotions: #undef BRD1_OK } @@ -143,7 +143,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> { struct fib_result res; -@@ -929,6 +928,11 @@ static void nl_fib_lookup(struct fib_res +@@ -933,6 +932,11 @@ static void nl_fib_lookup(struct fib_res .flowi4_tos = frn->fl_tos, .flowi4_scope = frn->fl_scope, }; @@ -155,7 +155,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> frn->err = -ENOENT; if (tb) { -@@ -945,6 +949,8 @@ static void nl_fib_lookup(struct fib_res +@@ -949,6 +953,8 @@ static void nl_fib_lookup(struct fib_res } local_bh_enable(); } @@ -164,7 +164,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> } static void nl_fib_input(struct sk_buff *skb) -@@ -952,7 +958,6 @@ static void nl_fib_input(struct sk_buff +@@ -956,7 +962,6 @@ static void nl_fib_input(struct sk_buff struct net *net; struct fib_result_nl *frn; struct nlmsghdr *nlh; @@ -172,7 +172,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> u32 portid; net = sock_net(skb->sk); -@@ -967,9 +972,7 @@ static void nl_fib_input(struct sk_buff +@@ -971,9 +976,7 @@ static void nl_fib_input(struct sk_buff nlh = nlmsg_hdr(skb); frn = (struct fib_result_nl *) nlmsg_data(nlh); diff --git a/target/linux/generic/patches-3.18/090-overlayfs-fallback-to-readonly-when-full.patch b/target/linux/generic/patches-3.18/090-overlayfs-fallback-to-readonly-when-full.patch index 1bcd5159db..c75af99c60 100644 --- a/target/linux/generic/patches-3.18/090-overlayfs-fallback-to-readonly-when-full.patch +++ b/target/linux/generic/patches-3.18/090-overlayfs-fallback-to-readonly-when-full.patch @@ -44,7 +44,7 @@ Miklos --- a/fs/overlayfs/copy_up.c +++ b/fs/overlayfs/copy_up.c -@@ -311,6 +311,9 @@ int ovl_copy_up_one(struct dentry *paren +@@ -313,6 +313,9 @@ int ovl_copy_up_one(struct dentry *paren struct cred *override_cred; char *link = NULL; @@ -76,9 +76,9 @@ Miklos err = ovl_lock_rename_workdir(workdir, upperdir); if (err) goto out; -@@ -506,6 +512,9 @@ static int ovl_remove_and_whiteout(struc - struct dentry *opaquedir = NULL; +@@ -507,6 +513,9 @@ static int ovl_remove_and_whiteout(struc int err; + int flags = 0; + if (WARN_ON(!workdir)) + return -EROFS; @@ -88,7 +88,7 @@ Miklos err = PTR_ERR(opaquedir); --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c -@@ -741,9 +741,15 @@ static int ovl_fill_super(struct super_b +@@ -760,9 +760,15 @@ static int ovl_fill_super(struct super_b ufs->workdir = ovl_workdir_create(ufs->upper_mnt, workpath.dentry); err = PTR_ERR(ufs->workdir); if (IS_ERR(ufs->workdir)) { diff --git a/target/linux/generic/patches-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch b/target/linux/generic/patches-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch index 2e66de29df..352bf6de15 100644 --- a/target/linux/generic/patches-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch +++ b/target/linux/generic/patches-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch @@ -164,7 +164,7 @@ Origin: backport, https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.gi module_free(mod, mod->module_init); kfree(mod->args); percpu_modfree(mod); -@@ -2978,6 +2983,7 @@ static struct module *layout_and_allocat +@@ -2983,6 +2988,7 @@ static struct module *layout_and_allocat static void module_deallocate(struct module *mod, struct load_info *info) { percpu_modfree(mod); @@ -172,7 +172,7 @@ Origin: backport, https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.gi module_free(mod, mod->module_init); module_free(mod, mod->module_core); } -@@ -3100,6 +3106,7 @@ static int do_init_module(struct module +@@ -3105,6 +3111,7 @@ static int do_init_module(struct module rcu_assign_pointer(mod->kallsyms, &mod->core_kallsyms); #endif unset_module_init_ro_nx(mod); diff --git a/target/linux/generic/patches-3.18/204-module_strip.patch b/target/linux/generic/patches-3.18/204-module_strip.patch index f58e0e8c5c..7c4006913f 100644 --- a/target/linux/generic/patches-3.18/204-module_strip.patch +++ b/target/linux/generic/patches-3.18/204-module_strip.patch @@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> config INIT_ALL_POSSIBLE --- a/kernel/module.c +++ b/kernel/module.c -@@ -2694,6 +2694,7 @@ static struct module *setup_load_info(st +@@ -2699,6 +2699,7 @@ static struct module *setup_load_info(st static int check_modinfo(struct module *mod, struct load_info *info, int flags) { @@ -117,7 +117,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> const char *modmagic = get_modinfo(info, "vermagic"); int err; -@@ -2719,6 +2720,7 @@ static int check_modinfo(struct module * +@@ -2724,6 +2725,7 @@ static int check_modinfo(struct module * pr_warn("%s: module is from the staging directory, the quality " "is unknown, you have been warned.\n", mod->name); } diff --git a/target/linux/generic/patches-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/target/linux/generic/patches-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch index d7b20b81f5..bca3487d18 100644 --- a/target/linux/generic/patches-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch +++ b/target/linux/generic/patches-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch @@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c -@@ -1209,6 +1209,49 @@ static struct mtd_info * __init open_mtd +@@ -1212,6 +1212,49 @@ static struct mtd_info * __init open_mtd return mtd; } @@ -61,7 +61,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> static int __init ubi_init(void) { int err, i, k; -@@ -1298,6 +1341,12 @@ static int __init ubi_init(void) +@@ -1301,6 +1344,12 @@ static int __init ubi_init(void) } } diff --git a/target/linux/generic/patches-3.18/550-ubifs-symlink-xattr-support.patch b/target/linux/generic/patches-3.18/550-ubifs-symlink-xattr-support.patch index d3f2ccca36..42ae9cb84a 100644 --- a/target/linux/generic/patches-3.18/550-ubifs-symlink-xattr-support.patch +++ b/target/linux/generic/patches-3.18/550-ubifs-symlink-xattr-support.patch @@ -1,6 +1,6 @@ --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c -@@ -1573,6 +1573,10 @@ const struct inode_operations ubifs_syml +@@ -1597,6 +1597,10 @@ const struct inode_operations ubifs_syml .follow_link = ubifs_follow_link, .setattr = ubifs_setattr, .getattr = ubifs_getattr, diff --git a/target/linux/generic/patches-3.18/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/patches-3.18/610-netfilter_match_bypass_default_checks.patch index 358d64b1a1..74be425049 100644 --- a/target/linux/generic/patches-3.18/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/patches-3.18/610-netfilter_match_bypass_default_checks.patch @@ -50,25 +50,16 @@ static bool ip_checkentry(const struct ipt_ip *ip) { -@@ -565,7 +591,7 @@ static void cleanup_match(struct xt_entr - } - - static int --check_entry(const struct ipt_entry *e, const char *name) -+check_entry(struct ipt_entry *e, const char *name) - { - const struct xt_entry_target *t; - -@@ -574,6 +600,8 @@ check_entry(const struct ipt_entry *e, c - return -EINVAL; - } +@@ -650,6 +676,8 @@ find_check_entry(struct ipt_entry *e, st + struct xt_mtchk_param mtpar; + struct xt_entry_match *ematch; + ip_checkdefault(&e->ip); + - if (e->target_offset + sizeof(struct xt_entry_target) > - e->next_offset) - return -EINVAL; -@@ -935,6 +963,7 @@ copy_entries_to_user(unsigned int total_ + j = 0; + mtpar.net = net; + mtpar.table = name; +@@ -942,6 +970,7 @@ copy_entries_to_user(unsigned int total_ const struct xt_table_info *private = table->private; int ret = 0; const void *loc_cpu_entry; @@ -76,7 +67,7 @@ counters = alloc_counters(table); if (IS_ERR(counters)) -@@ -965,6 +994,14 @@ copy_entries_to_user(unsigned int total_ +@@ -972,6 +1001,14 @@ copy_entries_to_user(unsigned int total_ ret = -EFAULT; goto free_counters; } diff --git a/target/linux/generic/patches-3.18/630-packet_socket_type.patch b/target/linux/generic/patches-3.18/630-packet_socket_type.patch index c3c0fe4664..68a42362dd 100644 --- a/target/linux/generic/patches-3.18/630-packet_socket_type.patch +++ b/target/linux/generic/patches-3.18/630-packet_socket_type.patch @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3408,6 +3411,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3409,6 +3412,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> default: return -ENOPROTOOPT; } -@@ -3459,6 +3472,13 @@ static int packet_getsockopt(struct sock +@@ -3460,6 +3473,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/patches-3.18/643-bridge_remove_ipv6_dependency.patch b/target/linux/generic/patches-3.18/643-bridge_remove_ipv6_dependency.patch index aef3832b0f..5181806497 100644 --- a/target/linux/generic/patches-3.18/643-bridge_remove_ipv6_dependency.patch +++ b/target/linux/generic/patches-3.18/643-bridge_remove_ipv6_dependency.patch @@ -52,7 +52,7 @@ int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr, u32 banned_flags) -@@ -5467,6 +5466,9 @@ int __init addrconf_init(void) +@@ -5469,6 +5468,9 @@ int __init addrconf_init(void) ipv6_addr_label_rtnl_register(); @@ -62,7 +62,7 @@ return 0; errout: rtnl_af_unregister(&inet6_ops); -@@ -5486,6 +5488,9 @@ void addrconf_cleanup(void) +@@ -5488,6 +5490,9 @@ void addrconf_cleanup(void) struct net_device *dev; int i; diff --git a/target/linux/generic/patches-3.18/657-qdisc_reduce_truesize.patch b/target/linux/generic/patches-3.18/657-qdisc_reduce_truesize.patch index 6777eecf5a..410e0b763d 100644 --- a/target/linux/generic/patches-3.18/657-qdisc_reduce_truesize.patch +++ b/target/linux/generic/patches-3.18/657-qdisc_reduce_truesize.patch @@ -13,7 +13,7 @@ commont qdiscs. --- a/net/sched/sch_codel.c +++ b/net/sched/sch_codel.c -@@ -96,6 +96,8 @@ static int codel_qdisc_enqueue(struct sk +@@ -97,6 +97,8 @@ static int codel_qdisc_enqueue(struct sk struct codel_sched_data *q; if (likely(qdisc_qlen(sch) < sch->limit)) { diff --git a/target/linux/generic/patches-3.18/660-fq_codel_defaults.patch b/target/linux/generic/patches-3.18/660-fq_codel_defaults.patch index f7f4659efc..f67b4be174 100644 --- a/target/linux/generic/patches-3.18/660-fq_codel_defaults.patch +++ b/target/linux/generic/patches-3.18/660-fq_codel_defaults.patch @@ -1,6 +1,6 @@ --- a/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c -@@ -387,9 +387,9 @@ static int fq_codel_init(struct Qdisc *s +@@ -394,9 +394,9 @@ static int fq_codel_init(struct Qdisc *s struct fq_codel_sched_data *q = qdisc_priv(sch); int i; diff --git a/target/linux/generic/patches-3.18/662-use_fq_codel_by_default.patch b/target/linux/generic/patches-3.18/662-use_fq_codel_by_default.patch index 5caf933764..39abfaabea 100644 --- a/target/linux/generic/patches-3.18/662-use_fq_codel_by_default.patch +++ b/target/linux/generic/patches-3.18/662-use_fq_codel_by_default.patch @@ -13,7 +13,7 @@ device, it has to decide which ones to send first, which ones to --- a/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c -@@ -592,7 +592,7 @@ static const struct Qdisc_class_ops fq_c +@@ -599,7 +599,7 @@ static const struct Qdisc_class_ops fq_c .walk = fq_codel_walk, }; @@ -22,7 +22,7 @@ .cl_ops = &fq_codel_class_ops, .id = "fq_codel", .priv_size = sizeof(struct fq_codel_sched_data), -@@ -608,6 +608,7 @@ static struct Qdisc_ops fq_codel_qdisc_o +@@ -615,6 +615,7 @@ static struct Qdisc_ops fq_codel_qdisc_o .dump_stats = fq_codel_dump_stats, .owner = THIS_MODULE, }; @@ -51,7 +51,7 @@ EXPORT_SYMBOL(default_qdisc_ops); /* Main transmission queue. */ -@@ -739,7 +739,7 @@ static void attach_one_default_qdisc(str +@@ -742,7 +742,7 @@ static void attach_one_default_qdisc(str if (dev->tx_queue_len) { qdisc = qdisc_create_dflt(dev_queue, @@ -84,7 +84,7 @@ if (qdisc == NULL) { --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c -@@ -1947,7 +1947,7 @@ static int __init pktsched_init(void) +@@ -1949,7 +1949,7 @@ static int __init pktsched_init(void) return err; } diff --git a/target/linux/generic/patches-3.18/663-remove_pfifo_fast.patch b/target/linux/generic/patches-3.18/663-remove_pfifo_fast.patch index 5b26ca3515..50b90b375f 100644 --- a/target/linux/generic/patches-3.18/663-remove_pfifo_fast.patch +++ b/target/linux/generic/patches-3.18/663-remove_pfifo_fast.patch @@ -1,6 +1,6 @@ --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c -@@ -442,140 +442,6 @@ static struct Qdisc noqueue_qdisc = { +@@ -445,140 +445,6 @@ static struct Qdisc noqueue_qdisc = { .busylock = __SPIN_LOCK_UNLOCKED(noqueue_qdisc.busylock), }; diff --git a/target/linux/generic/patches-3.18/810-pci_disable_common_quirks.patch b/target/linux/generic/patches-3.18/810-pci_disable_common_quirks.patch index 1b7bead486..5155bcdadf 100644 --- a/target/linux/generic/patches-3.18/810-pci_disable_common_quirks.patch +++ b/target/linux/generic/patches-3.18/810-pci_disable_common_quirks.patch @@ -23,7 +23,7 @@ /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. -@@ -2917,6 +2918,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I +@@ -2929,6 +2930,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); @@ -31,7 +31,7 @@ /* * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To -@@ -2973,6 +2975,8 @@ static void fixup_debug_report(struct pc +@@ -2985,6 +2987,8 @@ static void fixup_debug_report(struct pc } } @@ -40,7 +40,7 @@ /* * Some BIOS implementations leave the Intel GPU interrupts enabled, * even though no one is handling them (f.e. i915 driver is never loaded). -@@ -3007,6 +3011,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN +@@ -3019,6 +3023,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); diff --git a/target/linux/generic/patches-3.18/863-gpiommc.patch b/target/linux/generic/patches-3.18/863-gpiommc.patch index 2929333334..3ed4d34fc6 100644 --- a/target/linux/generic/patches-3.18/863-gpiommc.patch +++ b/target/linux/generic/patches-3.18/863-gpiommc.patch @@ -830,7 +830,7 @@ +be done automatically. --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -4279,6 +4279,11 @@ T: git git://linuxtv.org/anttip/media_tr +@@ -4289,6 +4289,11 @@ T: git git://linuxtv.org/anttip/media_tr S: Maintained F: drivers/media/usb/hackrf/ diff --git a/target/linux/generic/patches-3.18/904-debloat_dma_buf.patch b/target/linux/generic/patches-3.18/904-debloat_dma_buf.patch index 3faf97a880..a5e0be2496 100644 --- a/target/linux/generic/patches-3.18/904-debloat_dma_buf.patch +++ b/target/linux/generic/patches-3.18/904-debloat_dma_buf.patch @@ -34,7 +34,7 @@ +MODULE_LICENSE("GPL"); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1801,6 +1801,7 @@ int wake_up_state(struct task_struct *p, +@@ -1823,6 +1823,7 @@ int wake_up_state(struct task_struct *p, { return try_to_wake_up(p, state, 0); } 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 4732d163a4..0c8c29711a 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,6 +1,6 @@ --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -794,6 +794,14 @@ config GPIO_RDC321X +@@ -795,6 +795,14 @@ config GPIO_RDC321X Support for the RDC R321x SoC GPIOs over southbridge PCI configuration space. 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 54dc905468..4207e67a6f 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 @@ -41,7 +41,7 @@ case UPIO_AU: p->serial_out(p, offset, value); p->serial_in(p, UART_LCR); /* safe, no side-effects */ -@@ -2655,6 +2675,7 @@ static int serial8250_request_std_resour +@@ -2649,6 +2669,7 @@ static int serial8250_request_std_resour case UPIO_TSI: case UPIO_MEM32: case UPIO_MEM: @@ -49,7 +49,7 @@ if (!port->mapbase) break; -@@ -2691,6 +2712,7 @@ static void serial8250_release_std_resou +@@ -2685,6 +2706,7 @@ static void serial8250_release_std_resou case UPIO_TSI: case UPIO_MEM32: case UPIO_MEM: @@ -57,7 +57,7 @@ if (!port->mapbase) break; -@@ -3424,6 +3446,7 @@ static int serial8250_probe(struct platf +@@ -3418,6 +3440,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) { -@@ -3580,6 +3603,7 @@ int serial8250_register_8250_port(struct +@@ -3574,6 +3597,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; diff --git a/target/linux/lantiq/patches-3.18/0032-USB-fix-roothub-for-IFXHCD.patch b/target/linux/lantiq/patches-3.18/0032-USB-fix-roothub-for-IFXHCD.patch index dcd8461a0e..4278669dda 100644 --- a/target/linux/lantiq/patches-3.18/0032-USB-fix-roothub-for-IFXHCD.patch +++ b/target/linux/lantiq/patches-3.18/0032-USB-fix-roothub-for-IFXHCD.patch @@ -20,7 +20,7 @@ Subject: [PATCH 32/36] USB: fix roothub for IFXHCD choice --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -4323,7 +4323,7 @@ hub_port_init (struct usb_hub *hub, stru +@@ -4321,7 +4321,7 @@ hub_port_init (struct usb_hub *hub, stru udev->ttport = hdev->ttport; } else if (udev->speed != USB_SPEED_HIGH && hdev->speed == USB_SPEED_HIGH) { diff --git a/target/linux/mvebu/patches-3.18/025-ARM-mvebu-Use-arm_coherent_dma_ops.patch b/target/linux/mvebu/patches-3.18/025-ARM-mvebu-Use-arm_coherent_dma_ops.patch index e3d1415ede..4c2ba2322f 100644 --- a/target/linux/mvebu/patches-3.18/025-ARM-mvebu-Use-arm_coherent_dma_ops.patch +++ b/target/linux/mvebu/patches-3.18/025-ARM-mvebu-Use-arm_coherent_dma_ops.patch @@ -93,7 +93,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> return NOTIFY_OK; } -@@ -405,14 +353,9 @@ static int coherency_type(void) +@@ -399,14 +347,9 @@ static int coherency_type(void) return type; } 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 49a8c0aec1..57c67d169a 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 @@ -23,7 +23,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -223,6 +223,11 @@ config GPIO_MVEBU +@@ -224,6 +224,11 @@ config GPIO_MVEBU select GPIO_GENERIC select GENERIC_IRQ_CHIP diff --git a/target/linux/mvebu/patches-3.18/209-solidrun_clearfog.patch b/target/linux/mvebu/patches-3.18/209-solidrun_clearfog.patch index ff6c2179bc..6df56883ea 100644 --- a/target/linux/mvebu/patches-3.18/209-solidrun_clearfog.patch +++ b/target/linux/mvebu/patches-3.18/209-solidrun_clearfog.patch @@ -1,8 +1,8 @@ --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -504,6 +504,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \ - armada-385-linksys-caiman.dtb \ +@@ -505,6 +505,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \ armada-385-linksys-cobra.dtb \ + armada-385-linksys-rango.dtb \ armada-385-linksys-shelby.dtb \ + armada-388-clearfog.dtb \ armada-385-rd.dtb diff --git a/target/linux/mvebu/patches-3.18/700-usb_xhci_plat_phy_support.patch b/target/linux/mvebu/patches-3.18/700-usb_xhci_plat_phy_support.patch index 3ee9f5c990..7631b6c5cd 100644 --- a/target/linux/mvebu/patches-3.18/700-usb_xhci_plat_phy_support.patch +++ b/target/linux/mvebu/patches-3.18/700-usb_xhci_plat_phy_support.patch @@ -8,7 +8,7 @@ #include <linux/slab.h> #include <linux/usb/xhci_pdriver.h> -@@ -158,12 +159,27 @@ static int xhci_plat_probe(struct platfo +@@ -161,12 +162,27 @@ static int xhci_plat_probe(struct platfo if (HCC_MAX_PSA(xhci->hcc_params) >= 4) xhci->shared_hcd->can_do_streams = 1; @@ -37,7 +37,7 @@ put_usb3_hcd: usb_put_hcd(xhci->shared_hcd); -@@ -187,6 +203,7 @@ static int xhci_plat_remove(struct platf +@@ -190,6 +206,7 @@ static int xhci_plat_remove(struct platf struct clk *clk = xhci->clk; usb_remove_hcd(xhci->shared_hcd); 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 ab60f2d549..b93507c38d 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 -@@ -2634,7 +2634,7 @@ serial8250_pm(struct uart_port *port, un +@@ -2628,7 +2628,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/0047-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch b/target/linux/ramips/patches-3.18/0047-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch index a742e0b10d..ddbdc811a9 100644 --- a/target/linux/ramips/patches-3.18/0047-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch +++ b/target/linux/ramips/patches-3.18/0047-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch @@ -47,7 +47,7 @@ Cc: linux-gpio@vger.kernel.org +#endif /* __ASM_MACH_RALINK_GPIO_H */ --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -288,6 +288,12 @@ config GPIO_SCH311X +@@ -289,6 +289,12 @@ config GPIO_SCH311X To compile this driver as a module, choose M here: the module will be called gpio-sch311x. diff --git a/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch b/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch index 429af73b39..19afd8a4d2 100644 --- a/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch +++ b/target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch @@ -26,7 +26,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> bool "SGI IP22 (Indy/Indigo2)" --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -898,6 +898,12 @@ config GPIO_BCM_KONA +@@ -899,6 +899,12 @@ config GPIO_BCM_KONA help Turn on GPIO support for Broadcom "Kona" chips. 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 3a8f47b104..a5e46659f9 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 @@ -16,7 +16,7 @@ /* EHCI, OHCI */ --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -1306,7 +1306,7 @@ static void hub_quiesce(struct usb_hub * +@@ -1304,7 +1304,7 @@ static void hub_quiesce(struct usb_hub * if (type != HUB_SUSPEND) { /* Disconnect all the children */ for (i = 0; i < hdev->maxchild; ++i) { @@ -5087,7 +5087,7 @@ return 1; } -@@ -2820,6 +2824,7 @@ static int prepare_ring(struct xhci_hcd +@@ -2843,6 +2847,7 @@ static int prepare_ring(struct xhci_hcd next = ring->enqueue; while (last_trb(xhci, ring, ring->enq_seg, next)) { @@ -5095,7 +5095,7 @@ /* If we're not dealing with 0.95 hardware or isoc rings * on AMD 0.96 host, clear the chain bit. */ -@@ -2829,6 +2834,9 @@ static int prepare_ring(struct xhci_hcd +@@ -2852,6 +2857,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); @@ -5105,7 +5105,7 @@ wmb(); next->link.control ^= cpu_to_le32(TRB_CYCLE); -@@ -2959,6 +2967,9 @@ static void giveback_first_trb(struct xh +@@ -2982,6 +2990,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); @@ -5115,7 +5115,7 @@ xhci_ring_ep_doorbell(xhci, slot_id, ep_index, stream_id); } -@@ -3014,6 +3025,29 @@ static u32 xhci_td_remainder(unsigned in +@@ -3037,6 +3048,29 @@ static u32 xhci_td_remainder(unsigned in return (remainder >> 10) << 17; } @@ -5145,7 +5145,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). -@@ -3171,6 +3205,7 @@ static int queue_bulk_sg_tx(struct xhci_ +@@ -3194,6 +3228,7 @@ static int queue_bulk_sg_tx(struct xhci_ } /* Set the TRB length, TD size, and interrupter fields. */ @@ -5153,7 +5153,7 @@ if (xhci->hci_version < 0x100) { remainder = xhci_td_remainder( urb->transfer_buffer_length - -@@ -3180,6 +3215,12 @@ static int queue_bulk_sg_tx(struct xhci_ +@@ -3203,6 +3238,12 @@ static int queue_bulk_sg_tx(struct xhci_ trb_buff_len, total_packet_count, urb, num_trbs - 1); } @@ -5166,7 +5166,7 @@ length_field = TRB_LEN(trb_buff_len) | remainder | TRB_INTR_TARGET(0); -@@ -3244,6 +3285,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3267,6 +3308,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd * int running_total, trb_buff_len, ret; unsigned int total_packet_count; u64 addr; @@ -5176,7 +5176,7 @@ if (urb->num_sgs) return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index); -@@ -3268,6 +3312,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3291,6 +3335,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd * num_trbs++; running_total += TRB_MAX_BUFF_SIZE; } @@ -5202,7 +5202,7 @@ ret = prepare_transfer(xhci, xhci->devs[slot_id], ep_index, urb->stream_id, -@@ -3344,6 +3407,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3367,6 +3430,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd * field |= TRB_ISP; /* Set the TRB length, TD size, and interrupter fields. */ @@ -5210,7 +5210,7 @@ if (xhci->hci_version < 0x100) { remainder = xhci_td_remainder( urb->transfer_buffer_length - -@@ -3353,6 +3417,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3376,6 +3440,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd * trb_buff_len, total_packet_count, urb, num_trbs - 1); } @@ -5221,7 +5221,7 @@ length_field = TRB_LEN(trb_buff_len) | remainder | TRB_INTR_TARGET(0); -@@ -3442,7 +3510,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3465,7 +3533,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * field |= 0x1; /* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */ @@ -5233,7 +5233,7 @@ if (urb->transfer_buffer_length > 0) { if (setup->bRequestType & USB_DIR_IN) field |= TRB_TX_TYPE(TRB_DATA_IN); -@@ -3466,7 +3538,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3489,7 +3561,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * field = TRB_TYPE(TRB_DATA); length_field = TRB_LEN(urb->transfer_buffer_length) | @@ -5246,7 +5246,7 @@ TRB_INTR_TARGET(0); if (urb->transfer_buffer_length > 0) { if (setup->bRequestType & USB_DIR_IN) -@@ -3589,6 +3666,9 @@ static int xhci_queue_isoc_tx(struct xhc +@@ -3612,6 +3689,9 @@ static int xhci_queue_isoc_tx(struct xhc u64 start_addr, addr; int i, j; bool more_trbs_coming; @@ -5256,7 +5256,7 @@ ep_ring = xhci->devs[slot_id]->eps[ep_index].ring; -@@ -3602,6 +3682,21 @@ static int xhci_queue_isoc_tx(struct xhc +@@ -3625,6 +3705,21 @@ static int xhci_queue_isoc_tx(struct xhc start_trb = &ep_ring->enqueue->generic; start_cycle = ep_ring->cycle_state; @@ -5278,7 +5278,7 @@ urb_priv = urb->hcpriv; /* Queue the first TRB, even if it's zero-length */ for (i = 0; i < num_tds; i++) { -@@ -3673,9 +3768,13 @@ static int xhci_queue_isoc_tx(struct xhc +@@ -3696,9 +3791,13 @@ static int xhci_queue_isoc_tx(struct xhc } else { td->last_trb = ep_ring->enqueue; field |= TRB_IOC; @@ -5292,7 +5292,7 @@ /* Set BEI bit except for the last td */ if (i < num_tds - 1) field |= TRB_BEI; -@@ -3690,6 +3789,7 @@ static int xhci_queue_isoc_tx(struct xhc +@@ -3713,6 +3812,7 @@ static int xhci_queue_isoc_tx(struct xhc trb_buff_len = td_remain_len; /* Set the TRB length, TD size, & interrupter fields. */ @@ -5300,7 +5300,7 @@ if (xhci->hci_version < 0x100) { remainder = xhci_td_remainder( td_len - running_total); -@@ -3699,6 +3799,10 @@ static int xhci_queue_isoc_tx(struct xhc +@@ -3722,6 +3822,10 @@ static int xhci_queue_isoc_tx(struct xhc total_packet_count, urb, (trbs_per_td - j - 1)); } 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 12b4628f04..168e9f82b0 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 @@ -94,7 +94,7 @@ Changes in v2: + }; --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -9002,6 +9002,13 @@ F: arch/m68k/sun3*/ +@@ -9015,6 +9015,13 @@ F: arch/m68k/sun3*/ F: arch/m68k/include/asm/sun3* F: drivers/net/ethernet/i825xx/sun3* diff --git a/tools/firmware-utils/src/addpattern.c b/tools/firmware-utils/src/addpattern.c index 1d72285610..29ec99396a 100644 --- a/tools/firmware-utils/src/addpattern.c +++ b/tools/firmware-utils/src/addpattern.c @@ -113,6 +113,13 @@ struct board_info boards[] = { .flags = {0x3f, 0x00}, }, { + .id = "E2100L", + .pattern = "NL1X", + .hw_ver = 0x00, + .sn = 0x0f, + .flags = {0x3f, 0x00}, + }, + { .id = "mynet-rext", .pattern = "WDHNSTFH", .hw_ver = 0x00, |