Merge pull request #264 from wigyori/cc-dm9601
authorZoltan Herpai <wigyori@uid0.hu>
Sun, 18 Dec 2016 11:36:52 +0000 (12:36 +0100)
committerGitHub <noreply@github.com>
Sun, 18 Dec 2016 11:36:52 +0000 (12:36 +0100)
CC: brcm2708: Fix Kernel Panic: DM9601 Fast Ethernet Adapter
67 files changed:
include/kernel-version.mk
target/linux/ar71xx/base-files/etc/diag.sh
target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
target/linux/ar71xx/base-files/etc/uci-defaults/02_network
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
target/linux/ar71xx/config-3.18
target/linux/ar71xx/files/arch/mips/ath79/mach-domywifi-dw33d.c [new file with mode: 0644]
target/linux/ar71xx/files/arch/mips/ath79/mach-e2100l.c [new file with mode: 0644]
target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c
target/linux/ar71xx/generic/profiles/domywifi.mk [new file with mode: 0644]
target/linux/ar71xx/generic/profiles/linksys.mk
target/linux/ar71xx/image/Makefile
target/linux/ar71xx/patches-3.18/450-gpio-nxp-74hc153-gpio-chip-driver.patch
target/linux/ar71xx/patches-3.18/451-gpio-74x164-improve-platform-device-support.patch
target/linux/ar71xx/patches-3.18/452-gpio-add-gpio-latch-driver.patch
target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch
target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch
target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch
target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch
target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch
target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch
target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch
target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch
target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-WPN824N.patch
target/linux/ar71xx/patches-3.18/907-MIPS-ath79-add-tl-wa901nd-v4-support.patch
target/linux/ar71xx/patches-3.18/908-MIPS-ath79-add-domywifi-dw33d-support.patch [new file with mode: 0644]
target/linux/ath25/patches-3.18/107-ar5312_gpio.patch
target/linux/ath25/patches-3.18/108-ar2315_gpio.patch
target/linux/brcm2708/patches-3.18/0024-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
target/linux/brcm2708/patches-3.18/0055-usb-core-make-overcurrent-messages-more-prominent.patch
target/linux/brcm63xx/patches-3.18/374-gpio-add-a-simple-GPIO-driver-for-bcm63xx.patch
target/linux/generic/patches-3.18/025-bcma_backport.patch
target/linux/generic/patches-3.18/026-bcma-from-3.20.patch
target/linux/generic/patches-3.18/027-bcma-from-4.1.patch
target/linux/generic/patches-3.18/032-bcma-from-4.6.patch
target/linux/generic/patches-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch
target/linux/generic/patches-3.18/090-overlayfs-fallback-to-readonly-when-full.patch
target/linux/generic/patches-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch
target/linux/generic/patches-3.18/204-module_strip.patch
target/linux/generic/patches-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
target/linux/generic/patches-3.18/550-ubifs-symlink-xattr-support.patch
target/linux/generic/patches-3.18/610-netfilter_match_bypass_default_checks.patch
target/linux/generic/patches-3.18/630-packet_socket_type.patch
target/linux/generic/patches-3.18/643-bridge_remove_ipv6_dependency.patch
target/linux/generic/patches-3.18/657-qdisc_reduce_truesize.patch
target/linux/generic/patches-3.18/660-fq_codel_defaults.patch
target/linux/generic/patches-3.18/662-use_fq_codel_by_default.patch
target/linux/generic/patches-3.18/663-remove_pfifo_fast.patch
target/linux/generic/patches-3.18/810-pci_disable_common_quirks.patch
target/linux/generic/patches-3.18/863-gpiommc.patch
target/linux/generic/patches-3.18/904-debloat_dma_buf.patch
target/linux/ixp4xx/patches-3.18/020-gateworks_i2c_pld.patch
target/linux/ixp4xx/patches-3.18/160-delayed_uart_io.patch
target/linux/lantiq/patches-3.18/0032-USB-fix-roothub-for-IFXHCD.patch
target/linux/mvebu/patches-3.18/025-ARM-mvebu-Use-arm_coherent_dma_ops.patch
target/linux/mvebu/patches-3.18/202-gpio_mvebu_add_limited_pwm_support.patch
target/linux/mvebu/patches-3.18/209-solidrun_clearfog.patch
target/linux/mvebu/patches-3.18/700-usb_xhci_plat_phy_support.patch
target/linux/ramips/patches-3.18/0028-serial-ralink-the-core-has-a-size-of-0x100-and-not-0.patch
target/linux/ramips/patches-3.18/0047-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch
target/linux/ramips/patches-3.18/0048-GPIO-ralink-add-mt7621-gpio-controller.patch
target/linux/ramips/patches-3.18/0062-mt7621-add-ECHI-OCHI-XCHI-support.patch
target/linux/sunxi/patches-3.18/110-input-add-sun4i-lradc.patch
tools/firmware-utils/src/addpattern.c

index 81cd123..861fbbf 100644 (file)
@@ -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)))
index c5e39d0..623e2a4 100644 (file)
@@ -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"
                ;;
index f01c6d3..ab7d93c 100644 (file)
@@ -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)
index d7dc9a1..91f5875 100644 (file)
@@ -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"
index b2b182e..032c671 100755 (executable)
@@ -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 |\
index 2f4b112..1eb6999 100755 (executable)
@@ -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"
                ;;
index bf53169..fda7bc4 100755 (executable)
@@ -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 | \
index e4bed08..22faed4 100644 (file)
@@ -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 (file)
index 0000000..019f273
--- /dev/null
@@ -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 (file)
index 0000000..c090834
--- /dev/null
@@ -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);
index 3e5c2a2..004f719 100644 (file)
@@ -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"
 
 #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 (file)
index 0000000..15ce79b
--- /dev/null
@@ -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))
index bedf3a3..973eb6e 100644 (file)
@@ -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))
index 8551399..6cbaf38 100644 (file)
@@ -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))
index 3cf5755..c49f174 100644 (file)
@@ -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.
  
index 5d29fae..20b2c44 100644 (file)
 +#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"
index 405923a..378dc87 100644 (file)
@@ -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.
  
index d6e786d..ae8d9ff 100644 (file)
@@ -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,
 +      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 */
 +      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 */
  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
 +      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
  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
  #
 +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
index e432c6f..813d7f8 100644 (file)
@@ -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
  
  /*
index b5c88e9..0da8142 100644 (file)
  /*
   * 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
  
  #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
index d802a12..d34712b 100644 (file)
@@ -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 */
index 4accd03..4eea429 100644 (file)
@@ -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 */
index fbbf171..aca37c9 100644 (file)
@@ -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 */
index dc04769..bf03545 100644 (file)
  
 --- 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);
  
index 7c187ce..bab5cc7 100644 (file)
@@ -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 */
index e12f228..5cb5db1 100644 (file)
@@ -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
  
index d58a26f..8921fb7 100644 (file)
@@ -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 */
index 37312ad..f84bce6 100644 (file)
@@ -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 (file)
index 0000000..ee575d5
--- /dev/null
@@ -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 */
index a6d0a88..14dd4c1 100644 (file)
@@ -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:"
  
index 5d97853..3266427 100644 (file)
@@ -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:"
  
index e67b471..b51b89d 100644 (file)
@@ -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);
  
index 1f4ad1b..316f80e 100644 (file)
@@ -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;
  
index 3e53c80..2406042 100644 (file)
@@ -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.
  
index ca24e86..ec1cb00 100644 (file)
@@ -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);
                          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);
  
index 17c06b0..628b0bd 100644 (file)
@@ -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);
        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;
index 1d751a0..c88a816 100644 (file)
@@ -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 */
  
        }
 --- 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);
  }
  
index a74d9ee..0f8c362 100644 (file)
  #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
  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
index b36bcd8..fe55323 100644 (file)
@@ -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);
index 1bcd515..c75af99 100644 (file)
@@ -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)) {
index 2e66de2..352bf6d 100644 (file)
@@ -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);
index f58e0e8..7c40069 100644 (file)
@@ -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);
        }
index d7b20b8..bca3487 100644 (file)
@@ -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)
                }
        }
  
index d3f2ccc..42ae9cb 100644 (file)
@@ -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,
index 358d64b..74be425 100644 (file)
  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;
                }
index c3c0fe4..68a4236 100644 (file)
@@ -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;
index aef3832..5181806 100644 (file)
@@ -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;
  
index 6777eec..410e0b7 100644 (file)
@@ -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)) {
index f7f4659..f67b4be 100644 (file)
@@ -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;
  
index 5caf933..39abfaa 100644 (file)
@@ -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;
        }
  
index 5b26ca3..50b90b3 100644 (file)
@@ -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),
  };
  
index 1b7bead..5155bcd 100644 (file)
@@ -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);
  
index 2929333..3ed4d34 100644 (file)
 +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/
  
index 3faf97a..a5e0be2 100644 (file)
@@ -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);
  }
index 4732d16..0c8c297 100644 (file)
@@ -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.
  
index 54dc905..4207e67 100644 (file)
@@ -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;
index dcd8461..4278669 100644 (file)
@@ -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) {
index e3d1415..4c2ba23 100644 (file)
@@ -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;
  }
  
index 49a8c0a..57c67d1 100644 (file)
@@ -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
  
index ff6c217..6df5688 100644 (file)
@@ -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
index 3ee9f5c..7631b6c 100644 (file)
@@ -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);
index ab60f2d..b93507c 100644 (file)
@@ -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)
index a742e0b..ddbdc81 100644 (file)
@@ -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.
  
index 429af73..19afd8a 100644 (file)
@@ -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.
  
index 3a8f47b..a5e4665 100644 (file)
@@ -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) {
  
        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)) {
                        /* 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);
  
                        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);
        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;
  }
  
  /*
   * 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. */
                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);
                }
                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;
  
        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;
        }
  
        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. */
                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);
                }
                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 */
                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) |
                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;
  
        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;
  
        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;
                                        /* 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. */
                        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));
                        }
index 12b4628..168e9f8 100644 (file)
@@ -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*
  
index 1d72285..29ec993 100644 (file)
@@ -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,