ath79: refresh patches and configs to introduce kernel 6.1 support

All kernel configs are refreshed by
'make kernel_oldconfig CONFIG_TARGET=target' and
'make kernel_oldconfig CONFIG_TARGET=subtarget'.

upstreamed patches:
010-v5.17-spi-ar934x-fix-transfer-and-word-delays.patch
011-v5.17-spi-ar934x-fix-transfer-size.patch
020-v5.18-spi-ath79-Implement-the-spi_mem-interface.patch
030-v5.18-ath79-add-support-for-booting-QCN550x.patch

build and run tested on:
ath79/generic/ar7241
ath79/generic/qca9563
ath79/nand/ar9344

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
This commit is contained in:
Shiji Yang 2023-05-31 11:14:04 +08:00 committed by David Bauer
parent d9a9caf352
commit 5f59d28bc3
18 changed files with 95 additions and 288 deletions

View File

@ -9,6 +9,7 @@ SUBTARGETS:=generic mikrotik nand tiny
FEATURES:=ramdisk squashfs usbgadget FEATURES:=ramdisk squashfs usbgadget
KERNEL_PATCHVER:=5.15 KERNEL_PATCHVER:=5.15
KERNEL_TESTING_PATCHVER:=6.1
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk

View File

@ -13,12 +13,15 @@ CONFIG_AT803X_PHY=y
CONFIG_ATH79=y CONFIG_ATH79=y
CONFIG_ATH79_WDT=y CONFIG_ATH79_WDT=y
CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_PCI=y
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_CEVT_R4K=y CONFIG_CEVT_R4K=y
CONFIG_CLONE_BACKWARDS=y CONFIG_CLONE_BACKWARDS=y
CONFIG_CMDLINE="rootfstype=squashfs,jffs2" CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE_BOOL=y
# CONFIG_CMDLINE_OVERRIDE is not set # CONFIG_CMDLINE_OVERRIDE is not set
CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_COMPAT_32BIT_TIME=y CONFIG_COMPAT_32BIT_TIME=y
CONFIG_CPU_BIG_ENDIAN=y CONFIG_CPU_BIG_ENDIAN=y
CONFIG_CPU_GENERIC_DUMP_TLB=y CONFIG_CPU_GENERIC_DUMP_TLB=y
@ -36,24 +39,28 @@ CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_CPU_SUPPORTS_MSA=y CONFIG_CPU_SUPPORTS_MSA=y
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2 CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG2=y
CONFIG_CSRC_R4K=y CONFIG_CSRC_R4K=y
CONFIG_DEBUG_INFO=y
CONFIG_DMA_NONCOHERENT=y CONFIG_DMA_NONCOHERENT=y
CONFIG_DTC=y CONFIG_DTC=y
CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK=y
CONFIG_ETHERNET_PACKET_MANGLE=y CONFIG_ETHERNET_PACKET_MANGLE=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_FIXED_PHY=y CONFIG_FIXED_PHY=y
CONFIG_FWNODE_MDIO=y CONFIG_FWNODE_MDIO=y
CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_FW_LOADER_PAGED_BUF=y
CONFIG_FW_LOADER_SYSFS=y
CONFIG_GCC11_NO_ARRAY_BOUNDS=y
CONFIG_GENERIC_ATOMIC64=y CONFIG_GENERIC_ATOMIC64=y
CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IRQ_CHIP=y CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_LIB_ASHLDI3=y CONFIG_GENERIC_LIB_ASHLDI3=y
CONFIG_GENERIC_LIB_ASHRDI3=y CONFIG_GENERIC_LIB_ASHRDI3=y
@ -75,7 +82,6 @@ CONFIG_GPIO_CDEV=y
CONFIG_GPIO_GENERIC=y CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_LATCH is not set # CONFIG_GPIO_LATCH is not set
# CONFIG_GPIO_RB91X_KEY is not set # CONFIG_GPIO_RB91X_KEY is not set
CONFIG_HANDLE_DOMAIN_IRQ=y
CONFIG_HARDWARE_WATCHPOINTS=y CONFIG_HARDWARE_WATCHPOINTS=y
CONFIG_HAS_DMA=y CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y CONFIG_HAS_IOMEM=y
@ -107,7 +113,6 @@ CONFIG_MIPS_CLOCK_VSYSCALL=y
# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set # CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set
# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set # CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set
CONFIG_MIPS_CMDLINE_FROM_DTB=y CONFIG_MIPS_CMDLINE_FROM_DTB=y
CONFIG_MIPS_EBPF_JIT=y
CONFIG_MIPS_L1_CACHE_SHIFT=5 CONFIG_MIPS_L1_CACHE_SHIFT=5
CONFIG_MIPS_LD_CAN_LINK_VDSO=y CONFIG_MIPS_LD_CAN_LINK_VDSO=y
# CONFIG_MIPS_NO_APPENDED_DTB is not set # CONFIG_MIPS_NO_APPENDED_DTB is not set
@ -145,6 +150,9 @@ CONFIG_OF_GPIO=y
CONFIG_OF_IRQ=y CONFIG_OF_IRQ=y
CONFIG_OF_KOBJ=y CONFIG_OF_KOBJ=y
CONFIG_OF_MDIO=y CONFIG_OF_MDIO=y
CONFIG_PAGE_POOL=y
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
CONFIG_PCI=y CONFIG_PCI=y
CONFIG_PCI_AR71XX=y CONFIG_PCI_AR71XX=y
CONFIG_PCI_AR724X=y CONFIG_PCI_AR724X=y
@ -158,7 +166,9 @@ CONFIG_PHYLIB=y
# CONFIG_PHY_AR7200_USB is not set # CONFIG_PHY_AR7200_USB is not set
# CONFIG_PHY_ATH79_USB is not set # CONFIG_PHY_ATH79_USB is not set
CONFIG_PINCTRL=y CONFIG_PINCTRL=y
CONFIG_PREEMPT_NONE_BUILD=y
CONFIG_PTP_1588_CLOCK_OPTIONAL=y CONFIG_PTP_1588_CLOCK_OPTIONAL=y
CONFIG_RANDSTRUCT_NONE=y
CONFIG_RATIONAL=y CONFIG_RATIONAL=y
CONFIG_REGMAP=y CONFIG_REGMAP=y
CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_MMIO=y
@ -198,3 +208,4 @@ CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_TINY_SRCU=y CONFIG_TINY_SRCU=y
CONFIG_USB_SUPPORT=y CONFIG_USB_SUPPORT=y
CONFIG_USE_OF=y CONFIG_USE_OF=y
CONFIG_ZBOOT_LOAD_ADDRESS=0x0

View File

@ -45,5 +45,6 @@ CONFIG_WATCHDOG_CORE=y
CONFIG_XXHASH=y CONFIG_XXHASH=y
CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_INFLATE=y
CONFIG_ZSTD_COMMON=y
CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y CONFIG_ZSTD_DECOMPRESS=y

View File

@ -25,5 +25,6 @@ CONFIG_UBIFS_FS=y
CONFIG_XXHASH=y CONFIG_XXHASH=y
CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_INFLATE=y
CONFIG_ZSTD_COMMON=y
CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y CONFIG_ZSTD_DECOMPRESS=y

View File

@ -1,27 +0,0 @@
From c70282457c380db7deb57c81a6894debc8f88efa Mon Sep 17 00:00:00 2001
From: Oskari Lemmela <oskari@lemmela.net>
Date: Wed, 22 Dec 2021 07:59:58 +0200
Subject: [PATCH] spi: ar934x: fix transfer and word delays
Add missing delay between transferred messages and words.
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Link: https://lore.kernel.org/r/20211222055958.1383233-3-oskari@lemmela.net
Signed-off-by: Mark Brown <broonie@kernel.org>
---
drivers/spi/spi-ar934x.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/spi/spi-ar934x.c
+++ b/drivers/spi/spi-ar934x.c
@@ -137,8 +137,10 @@ static int ar934x_spi_transfer_one_messa
reg >>= 8;
}
}
+ spi_delay_exec(&t->word_delay, t);
}
m->actual_length += t->len;
+ spi_transfer_delay_exec(t);
}
msg_done:

View File

@ -1,62 +0,0 @@
From ebe33e5a98dcf14a9630845f3f10c193584ac054 Mon Sep 17 00:00:00 2001
From: Oskari Lemmela <oskari@lemmela.net>
Date: Wed, 22 Dec 2021 07:59:57 +0200
Subject: [PATCH] spi: ar934x: fix transfer size
If bits_per_word is configured, transfer only word amount
of data per iteration.
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Link: https://lore.kernel.org/r/20211222055958.1383233-2-oskari@lemmela.net
Signed-off-by: Mark Brown <broonie@kernel.org>
---
drivers/spi/spi-ar934x.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
--- a/drivers/spi/spi-ar934x.c
+++ b/drivers/spi/spi-ar934x.c
@@ -82,7 +82,7 @@ static int ar934x_spi_transfer_one_messa
struct spi_device *spi = m->spi;
unsigned long trx_done, trx_cur;
int stat = 0;
- u8 term = 0;
+ u8 bpw, term = 0;
int div, i;
u32 reg;
const u8 *tx_buf;
@@ -90,6 +90,11 @@ static int ar934x_spi_transfer_one_messa
m->actual_length = 0;
list_for_each_entry(t, &m->transfers, transfer_list) {
+ if (t->bits_per_word >= 8 && t->bits_per_word < 32)
+ bpw = t->bits_per_word >> 3;
+ else
+ bpw = 4;
+
if (t->speed_hz)
div = ar934x_spi_clk_div(sp, t->speed_hz);
else
@@ -105,10 +110,10 @@ static int ar934x_spi_transfer_one_messa
iowrite32(reg, sp->base + AR934X_SPI_REG_CTRL);
iowrite32(0, sp->base + AR934X_SPI_DATAOUT);
- for (trx_done = 0; trx_done < t->len; trx_done += 4) {
+ for (trx_done = 0; trx_done < t->len; trx_done += bpw) {
trx_cur = t->len - trx_done;
- if (trx_cur > 4)
- trx_cur = 4;
+ if (trx_cur > bpw)
+ trx_cur = bpw;
else if (list_is_last(&t->transfer_list, &m->transfers))
term = 1;
@@ -193,7 +198,8 @@ static int ar934x_spi_probe(struct platf
ctlr->mode_bits = SPI_LSB_FIRST;
ctlr->setup = ar934x_spi_setup;
ctlr->transfer_one_message = ar934x_spi_transfer_one_message;
- ctlr->bits_per_word_mask = SPI_BPW_MASK(8);
+ ctlr->bits_per_word_mask = SPI_BPW_MASK(32) | SPI_BPW_MASK(24) |
+ SPI_BPW_MASK(16) | SPI_BPW_MASK(8);
ctlr->dev.of_node = pdev->dev.of_node;
ctlr->num_chipselect = 3;

View File

@ -1,68 +0,0 @@
From 8d8cdb4a6ccee5b62cc0dc64651c3946364514dc Mon Sep 17 00:00:00 2001
From: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Date: Mon, 10 Feb 2020 16:11:27 -0300
Subject: [PATCH] spi: ath79: Implement the spi_mem interface
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
---
drivers/spi/spi-ath79.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
--- a/drivers/spi/spi-ath79.c
+++ b/drivers/spi/spi-ath79.c
@@ -15,6 +15,7 @@
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/spi/spi.h>
+#include <linux/spi/spi-mem.h>
#include <linux/spi/spi_bitbang.h>
#include <linux/bitops.h>
#include <linux/clk.h>
@@ -133,6 +134,39 @@ static u32 ath79_spi_txrx_mode0(struct s
return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS);
}
+static int ath79_exec_mem_op(struct spi_mem *mem,
+ const struct spi_mem_op *op)
+{
+ struct ath79_spi *sp = ath79_spidev_to_sp(mem->spi);
+
+ /* Ensures that reading is performed on device connected
+ to hardware cs0 */
+ if (mem->spi->chip_select || mem->spi->cs_gpiod)
+ return -ENOTSUPP;
+
+ /* Only use for fast-read op. */
+ if (op->cmd.opcode != 0x0b || op->data.dir != SPI_MEM_DATA_IN ||
+ op->addr.nbytes != 3 || op->dummy.nbytes != 1)
+ return -ENOTSUPP;
+
+ /* disable GPIO mode */
+ ath79_spi_wr(sp, AR71XX_SPI_REG_FS, 0);
+
+ memcpy_fromio(op->data.buf.in, sp->base + op->addr.val, op->data.nbytes);
+
+ /* enable GPIO mode */
+ ath79_spi_wr(sp, AR71XX_SPI_REG_FS, AR71XX_SPI_FS_GPIO);
+
+ /* restore IOC register */
+ ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, sp->ioc_base);
+
+ return 0;
+}
+
+static const struct spi_controller_mem_ops ath79_mem_ops = {
+ .exec_op = ath79_exec_mem_op,
+};
+
static int ath79_spi_probe(struct platform_device *pdev)
{
struct spi_master *master;
@@ -165,6 +199,7 @@ static int ath79_spi_probe(struct platfo
ret = PTR_ERR(sp->base);
goto err_put_master;
}
+ master->mem_ops = &ath79_mem_ops;
sp->clk = devm_clk_get(&pdev->dev, "ahb");
if (IS_ERR(sp->clk)) {

View File

@ -1,48 +0,0 @@
From: Wenli Looi <wlooi@ucalgary.ca>
Date: Sun, 20 Jun 2021 23:32:28 -0700
Subject: [PATCH] ath79: add support for booting QCN550x
Based on wikidevi, QCN550x is a "Dragonfly" like QCA9561 and QCA9563.
Treating it as QCA956x seems to work.
Tested on Netgear EX7300v2 which boots successfully with
the same CPU clock as the stock firmware.
Link: https://wikidevi.wi-cat.ru/Qualcomm#bgn
Link: https://wikidevi.wi-cat.ru/Qualcomm_Atheros#.28a.29bgn_2
Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
--- a/arch/mips/ath79/early_printk.c
+++ b/arch/mips/ath79/early_printk.c
@@ -121,6 +121,7 @@ static void prom_putchar_init(void)
case REV_ID_MAJOR_QCA9558:
case REV_ID_MAJOR_TP9343:
case REV_ID_MAJOR_QCA956X:
+ case REV_ID_MAJOR_QCN550X:
_prom_putchar = prom_putchar_ar71xx;
break;
--- a/arch/mips/ath79/setup.c
+++ b/arch/mips/ath79/setup.c
@@ -168,6 +168,12 @@ static void __init ath79_detect_sys_type
rev = id & QCA956X_REV_ID_REVISION_MASK;
break;
+ case REV_ID_MAJOR_QCN550X:
+ ath79_soc = ATH79_SOC_QCA956X;
+ chip = "550X";
+ rev = id & QCA956X_REV_ID_REVISION_MASK;
+ break;
+
case REV_ID_MAJOR_TP9343:
ath79_soc = ATH79_SOC_TP9343;
chip = "9343";
--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
@@ -862,6 +862,7 @@
#define REV_ID_MAJOR_QCA9558 0x1130
#define REV_ID_MAJOR_TP9343 0x0150
#define REV_ID_MAJOR_QCA956X 0x1150
+#define REV_ID_MAJOR_QCN550X 0x2170
#define AR71XX_REV_ID_MINOR_MASK 0x3
#define AR71XX_REV_ID_MINOR_AR7130 0x0

View File

@ -11,7 +11,7 @@ Submitted-by: John Crispin <john@phrozen.org>
--- a/drivers/gpio/gpio-ath79.c --- a/drivers/gpio/gpio-ath79.c
+++ b/drivers/gpio/gpio-ath79.c +++ b/drivers/gpio/gpio-ath79.c
@@ -297,7 +297,11 @@ static struct platform_driver ath79_gpio @@ -301,7 +301,11 @@ static struct platform_driver ath79_gpio
.probe = ath79_gpio_probe, .probe = ath79_gpio_probe,
}; };

View File

@ -82,7 +82,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
endif endif
--- a/arch/mips/pci/Makefile --- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile +++ b/arch/mips/pci/Makefile
@@ -21,7 +21,7 @@ obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o @@ -19,7 +19,7 @@ obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o
ops-bcm63xx.o ops-bcm63xx.o
obj-$(CONFIG_MIPS_ALCHEMY) += pci-alchemy.o obj-$(CONFIG_MIPS_ALCHEMY) += pci-alchemy.o
obj-$(CONFIG_PCI_AR2315) += pci-ar2315.o obj-$(CONFIG_PCI_AR2315) += pci-ar2315.o

View File

@ -10,18 +10,17 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
--- a/drivers/mtd/spi-nor/core.c --- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c
@@ -3107,6 +3107,7 @@ int spi_nor_scan(struct spi_nor *nor, co @@ -2941,12 +2941,19 @@ static void spi_nor_set_mtd_info(struct
struct device *dev = nor->dev; {
struct mtd_info *mtd = &nor->mtd; struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor); struct device *dev = nor->dev;
+ struct device_node *np = spi_nor_get_flash_node(nor);
+ const char __maybe_unused *of_mtd_name = NULL; + const char __maybe_unused *of_mtd_name = NULL;
int ret;
int i;
@@ -3161,7 +3162,12 @@ int spi_nor_scan(struct spi_nor *nor, co spi_nor_set_mtd_locking_ops(nor);
if (ret) spi_nor_set_mtd_otp_ops(nor);
return ret;
mtd->dev.parent = dev;
- if (!mtd->name) - if (!mtd->name)
+#ifdef CONFIG_MTD_OF_PARTS +#ifdef CONFIG_MTD_OF_PARTS
+ of_property_read_string(np, "linux,mtd-name", &of_mtd_name); + of_property_read_string(np, "linux,mtd-name", &of_mtd_name);
@ -30,11 +29,11 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
+ mtd->name = of_mtd_name; + mtd->name = of_mtd_name;
+ else if (!mtd->name) + else if (!mtd->name)
mtd->name = dev_name(dev); mtd->name = dev_name(dev);
mtd->priv = nor;
mtd->type = MTD_NORFLASH; mtd->type = MTD_NORFLASH;
mtd->flags = MTD_CAP_NORFLASH;
--- a/drivers/mtd/mtdcore.c --- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c
@@ -847,6 +847,17 @@ out_error: @@ -840,6 +840,17 @@ out_error:
*/ */
static void mtd_set_dev_defaults(struct mtd_info *mtd) static void mtd_set_dev_defaults(struct mtd_info *mtd)
{ {

View File

@ -18,7 +18,7 @@ Submitted-by: Christian Lamparter <chunkeey@gmail.com>
--- a/drivers/mtd/parsers/Makefile --- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile +++ b/drivers/mtd/parsers/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o @@ -9,6 +9,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
ofpart-y += ofpart_core.o ofpart-y += ofpart_core.o
ofpart-$(CONFIG_MTD_OF_PARTS_BCM4908) += ofpart_bcm4908.o ofpart-$(CONFIG_MTD_OF_PARTS_BCM4908) += ofpart_bcm4908.o
ofpart-$(CONFIG_MTD_OF_PARTS_LINKSYS_NS)+= ofpart_linksys_ns.o ofpart-$(CONFIG_MTD_OF_PARTS_LINKSYS_NS)+= ofpart_linksys_ns.o
@ -28,7 +28,7 @@ Submitted-by: Christian Lamparter <chunkeey@gmail.com>
obj-$(CONFIG_MTD_PARSER_TPLINK_SAFELOADER) += tplink_safeloader.o obj-$(CONFIG_MTD_PARSER_TPLINK_SAFELOADER) += tplink_safeloader.o
--- a/drivers/mtd/parsers/Kconfig --- a/drivers/mtd/parsers/Kconfig
+++ b/drivers/mtd/parsers/Kconfig +++ b/drivers/mtd/parsers/Kconfig
@@ -102,6 +102,14 @@ config MTD_OF_PARTS_LINKSYS_NS @@ -112,6 +112,14 @@ config MTD_OF_PARTS_LINKSYS_NS
two "firmware" partitions. Currently used firmware has to be detected two "firmware" partitions. Currently used firmware has to be detected
using CFE environment variable. using CFE environment variable.

View File

@ -9,7 +9,7 @@ SVN-Revision: 33385
--- a/drivers/mtd/nand/raw/Kconfig --- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig
@@ -555,4 +555,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE @@ -557,4 +557,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE
load time (assuming you build diskonchip as a module) with the module load time (assuming you build diskonchip as a module) with the module
parameter "inftl_bbt_write=1". parameter "inftl_bbt_write=1".
@ -24,10 +24,10 @@ SVN-Revision: 33385
endif # MTD_RAW_NAND endif # MTD_RAW_NAND
--- a/drivers/mtd/nand/raw/Makefile --- a/drivers/mtd/nand/raw/Makefile
+++ b/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile
@@ -58,6 +58,7 @@ obj-$(CONFIG_MTD_NAND_ARASAN) += arasan @@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM) += inte
obj-$(CONFIG_MTD_NAND_INTEL_LGM) += intel-nand-controller.o
obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o
obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o
obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o
+obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o +obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o
nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o

View File

@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/drivers/usb/host/ehci-platform.c --- a/drivers/usb/host/ehci-platform.c
+++ b/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c
@@ -277,6 +277,11 @@ static int ehci_platform_probe(struct pl @@ -274,6 +274,11 @@ static int ehci_platform_probe(struct pl
ehci = hcd_to_ehci(hcd); ehci = hcd_to_ehci(hcd);
if (pdata == &ehci_platform_defaults && dev->dev.of_node) { if (pdata == &ehci_platform_defaults && dev->dev.of_node) {

View File

@ -13,9 +13,9 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/drivers/leds/Kconfig --- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig
@@ -876,6 +876,17 @@ source "drivers/leds/blink/Kconfig" @@ -872,6 +872,17 @@ source "drivers/leds/flash/Kconfig"
comment "Flash and Torch LED drivers" comment "RGB LED drivers"
source "drivers/leds/flash/Kconfig" source "drivers/leds/rgb/Kconfig"
+config LEDS_RESET +config LEDS_RESET
+ tristate "LED support for reset-controller API" + tristate "LED support for reset-controller API"
@ -176,7 +176,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
+MODULE_ALIAS("platform:leds-reset"); +MODULE_ALIAS("platform:leds-reset");
--- a/drivers/leds/Makefile --- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile +++ b/drivers/leds/Makefile
@@ -87,6 +87,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds @@ -86,6 +86,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds
obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o

View File

@ -86,7 +86,7 @@ SVN-Revision: 35130
} while (word != stop); } while (word != stop);
return csum_fold(csum); return csum_fold(csum);
@@ -182,73 +186,6 @@ static inline __sum16 ip_compute_csum(co @@ -179,73 +183,6 @@ static inline __sum16 ip_compute_csum(co
return csum_fold(csum_partial(buff, len, 0)); return csum_fold(csum_partial(buff, len, 0));
} }
@ -258,7 +258,7 @@ SVN-Revision: 35130
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/ipv6.h> #include <linux/ipv6.h>
#include <linux/icmpv6.h> #include <linux/icmpv6.h>
@@ -944,10 +945,10 @@ static void tcp_v6_send_response(const s @@ -901,10 +902,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1); topt = (__be32 *)(t1 + 1);
if (tsecr) { if (tsecr) {
@ -285,7 +285,7 @@ SVN-Revision: 35130
*/ */
--- a/net/ipv6/datagram.c --- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c
@@ -492,7 +492,7 @@ int ipv6_recv_error(struct sock *sk, str @@ -497,7 +497,7 @@ int ipv6_recv_error(struct sock *sk, str
ipv6_iface_scope_id(&sin->sin6_addr, ipv6_iface_scope_id(&sin->sin6_addr,
IP6CB(skb)->iif); IP6CB(skb)->iif);
} else { } else {
@ -294,7 +294,7 @@ SVN-Revision: 35130
&sin->sin6_addr); &sin->sin6_addr);
sin->sin6_scope_id = 0; sin->sin6_scope_id = 0;
} }
@@ -846,12 +846,12 @@ int ip6_datagram_send_ctl(struct net *ne @@ -851,12 +851,12 @@ int ip6_datagram_send_ctl(struct net *ne
} }
if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@ -311,18 +311,18 @@ SVN-Revision: 35130
case IPV6_2292HOPOPTS: case IPV6_2292HOPOPTS:
--- a/net/ipv6/exthdrs.c --- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c
@@ -1002,7 +1002,7 @@ static bool ipv6_hop_jumbo(struct sk_buf @@ -1003,7 +1003,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
goto drop; goto drop;
} }
- pkt_len = ntohl(*(__be32 *)(nh + optoff + 2)); - pkt_len = ntohl(*(__be32 *)(nh + optoff + 2));
+ pkt_len = ntohl(net_hdr_word(nh + optoff + 2)); + pkt_len = ntohl(net_hdr_word(nh + optoff + 2));
if (pkt_len <= IPV6_MAXPLEN) { if (pkt_len <= IPV6_MAXPLEN) {
__IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS); icmpv6_param_prob_reason(skb, ICMPV6_HDR_FIELD, optoff + 2,
icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, optoff+2); SKB_DROP_REASON_IP_INHDR);
--- a/include/linux/types.h --- a/include/linux/types.h
+++ b/include/linux/types.h +++ b/include/linux/types.h
@@ -231,5 +231,11 @@ typedef void (*swap_func_t)(void *a, voi @@ -232,5 +232,11 @@ typedef void (*swap_func_t)(void *a, voi
typedef int (*cmp_r_func_t)(const void *a, const void *b, const void *priv); typedef int (*cmp_r_func_t)(const void *a, const void *b, const void *priv);
typedef int (*cmp_func_t)(const void *a, const void *b); typedef int (*cmp_func_t)(const void *a, const void *b);
@ -336,9 +336,9 @@ SVN-Revision: 35130
#endif /* _LINUX_TYPES_H */ #endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c --- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c
@@ -1477,8 +1477,8 @@ struct sk_buff *inet_gro_receive(struct @@ -1488,8 +1488,8 @@ struct sk_buff *inet_gro_receive(struct
if (unlikely(ip_fast_csum((u8 *)iph, 5))) if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock; goto out;
- id = ntohl(*(__be32 *)&iph->id); - id = ntohl(*(__be32 *)&iph->id);
- flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF)); - flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF));
@ -349,7 +349,7 @@ SVN-Revision: 35130
list_for_each_entry(p, head, list) { list_for_each_entry(p, head, list) {
--- a/net/ipv4/tcp_output.c --- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c
@@ -610,48 +610,53 @@ static void tcp_options_write(__be32 *pt @@ -611,48 +611,53 @@ static void tcp_options_write(struct tcp
u16 options = opts->options; /* mungable copy */ u16 options = opts->options; /* mungable copy */
if (unlikely(OPTION_MD5 & options)) { if (unlikely(OPTION_MD5 & options)) {
@ -426,7 +426,7 @@ SVN-Revision: 35130
} }
if (unlikely(opts->num_sack_blocks)) { if (unlikely(opts->num_sack_blocks)) {
@@ -659,16 +664,17 @@ static void tcp_options_write(__be32 *pt @@ -660,16 +665,17 @@ static void tcp_options_write(struct tcp
tp->duplicate_sack : tp->selective_acks; tp->duplicate_sack : tp->selective_acks;
int this_sack; int this_sack;
@ -450,7 +450,7 @@ SVN-Revision: 35130
} }
tp->rx_opt.dsack = 0; tp->rx_opt.dsack = 0;
@@ -681,13 +687,14 @@ static void tcp_options_write(__be32 *pt @@ -682,13 +688,14 @@ static void tcp_options_write(struct tcp
if (foc->exp) { if (foc->exp) {
len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len; len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
@ -482,7 +482,7 @@ SVN-Revision: 35130
@@ -49,7 +49,7 @@ struct igmpv3_grec { @@ -49,7 +49,7 @@ struct igmpv3_grec {
__be16 grec_nsrcs; __be16 grec_nsrcs;
__be32 grec_mca; __be32 grec_mca;
__be32 grec_src[0]; __be32 grec_src[];
-}; -};
+} __attribute__((packed, aligned(2))); +} __attribute__((packed, aligned(2)));
@ -491,7 +491,7 @@ SVN-Revision: 35130
@@ -58,7 +58,7 @@ struct igmpv3_report { @@ -58,7 +58,7 @@ struct igmpv3_report {
__be16 resv2; __be16 resv2;
__be16 ngrec; __be16 ngrec;
struct igmpv3_grec grec[0]; struct igmpv3_grec grec[];
-}; -};
+} __attribute__((packed, aligned(2))); +} __attribute__((packed, aligned(2)));
@ -500,7 +500,7 @@ SVN-Revision: 35130
@@ -79,7 +79,7 @@ struct igmpv3_query { @@ -79,7 +79,7 @@ struct igmpv3_query {
__u8 qqic; __u8 qqic;
__be16 nsrcs; __be16 nsrcs;
__be32 srcs[0]; __be32 srcs[];
-}; -};
+} __attribute__((packed, aligned(2))); +} __attribute__((packed, aligned(2)));
@ -508,7 +508,7 @@ SVN-Revision: 35130
#define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */ #define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */
--- a/net/core/flow_dissector.c --- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c
@@ -129,7 +129,7 @@ __be32 __skb_flow_get_ports(const struct @@ -131,7 +131,7 @@ __be32 __skb_flow_get_ports(const struct
ports = __skb_header_pointer(skb, thoff + poff, ports = __skb_header_pointer(skb, thoff + poff,
sizeof(_ports), data, hlen, &_ports); sizeof(_ports), data, hlen, &_ports);
if (ports) if (ports)
@ -578,7 +578,7 @@ SVN-Revision: 35130
goto next_ht; goto next_ht;
--- a/net/ipv6/ip6_offload.c --- a/net/ipv6/ip6_offload.c
+++ b/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c
@@ -241,7 +241,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * @@ -259,7 +259,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff *
continue; continue;
iph2 = (struct ipv6hdr *)(p->data + off); iph2 = (struct ipv6hdr *)(p->data + off);
@ -614,16 +614,16 @@ SVN-Revision: 35130
(__force __wsum)to); (__force __wsum)to);
--- a/include/net/ipv6.h --- a/include/net/ipv6.h
+++ b/include/net/ipv6.h +++ b/include/net/ipv6.h
@@ -147,7 +147,7 @@ struct frag_hdr { @@ -149,7 +149,7 @@ struct frag_hdr {
__u8 reserved; __u8 reserved;
__be16 frag_off; __be16 frag_off;
__be32 identification; __be32 identification;
-}; -};
+} __attribute__((packed, aligned(2))); +} __attribute__((packed, aligned(2)));
#define IP6_MF 0x0001 /*
#define IP6_OFFSET 0xFFF8 * Jumbo payload option, as described in RFC 2675 2.
@@ -561,8 +561,8 @@ static inline void __ipv6_addr_set_half( @@ -615,8 +615,8 @@ static inline void __ipv6_addr_set_half(
} }
#endif #endif
#endif #endif
@ -634,7 +634,7 @@ SVN-Revision: 35130
} }
static inline void ipv6_addr_set(struct in6_addr *addr, static inline void ipv6_addr_set(struct in6_addr *addr,
@@ -621,6 +621,8 @@ static inline bool ipv6_prefix_equal(con @@ -675,6 +675,8 @@ static inline bool ipv6_prefix_equal(con
const __be32 *a1 = addr1->s6_addr32; const __be32 *a1 = addr1->s6_addr32;
const __be32 *a2 = addr2->s6_addr32; const __be32 *a2 = addr2->s6_addr32;
unsigned int pdw, pbi; unsigned int pdw, pbi;
@ -643,7 +643,7 @@ SVN-Revision: 35130
/* check complete u32 in prefix */ /* check complete u32 in prefix */
pdw = prefixlen >> 5; pdw = prefixlen >> 5;
@@ -629,7 +631,9 @@ static inline bool ipv6_prefix_equal(con @@ -683,7 +685,9 @@ static inline bool ipv6_prefix_equal(con
/* check incomplete u32 in prefix */ /* check incomplete u32 in prefix */
pbi = prefixlen & 0x1f; pbi = prefixlen & 0x1f;
@ -654,7 +654,7 @@ SVN-Revision: 35130
return false; return false;
return true; return true;
@@ -746,13 +750,13 @@ static inline void ipv6_addr_set_v4mappe @@ -800,13 +804,13 @@ static inline void ipv6_addr_set_v4mappe
*/ */
static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
{ {
@ -670,7 +670,7 @@ SVN-Revision: 35130
if (xb) if (xb)
return i * 32 + 31 - __fls(ntohl(xb)); return i * 32 + 31 - __fls(ntohl(xb));
} }
@@ -946,17 +950,18 @@ static inline u32 ip6_multipath_hash_fie @@ -1000,17 +1004,18 @@ static inline u32 ip6_multipath_hash_fie
static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
__be32 flowlabel) __be32 flowlabel)
{ {
@ -700,11 +700,11 @@ SVN-Revision: 35130
#include <linux/types.h> #include <linux/types.h>
+#include <linux/in6.h> +#include <linux/in6.h>
u64 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport); struct net;
u64 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
--- a/include/uapi/linux/in.h --- a/include/uapi/linux/in.h
+++ b/include/uapi/linux/in.h +++ b/include/uapi/linux/in.h
@@ -88,7 +88,7 @@ enum { @@ -91,7 +91,7 @@ enum {
/* Internet address. */ /* Internet address. */
struct in_addr { struct in_addr {
__be32 s_addr; __be32 s_addr;
@ -715,7 +715,7 @@ SVN-Revision: 35130
#define IP_TOS 1 #define IP_TOS 1
--- a/net/ipv6/ip6_fib.c --- a/net/ipv6/ip6_fib.c
+++ b/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c
@@ -141,7 +141,7 @@ static __be32 addr_bit_set(const void *t @@ -142,7 +142,7 @@ static __be32 addr_bit_set(const void *t
* See include/asm-generic/bitops/le.h. * See include/asm-generic/bitops/le.h.
*/ */
return (__force __be32)(1 << ((~fn_bit ^ BITOP_BE32_SWIZZLE) & 0x1f)) & return (__force __be32)(1 << ((~fn_bit ^ BITOP_BE32_SWIZZLE) & 0x1f)) &
@ -726,7 +726,7 @@ SVN-Revision: 35130
struct fib6_info *fib6_info_alloc(gfp_t gfp_flags, bool with_fib6_nh) struct fib6_info *fib6_info_alloc(gfp_t gfp_flags, bool with_fib6_nh)
--- a/net/netfilter/nf_conntrack_proto_tcp.c --- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -400,7 +400,7 @@ static void tcp_sack(const struct sk_buf @@ -406,7 +406,7 @@ static void tcp_sack(const struct sk_buf
/* Fast path for timestamp-only option */ /* Fast path for timestamp-only option */
if (length == TCPOLEN_TSTAMP_ALIGNED if (length == TCPOLEN_TSTAMP_ALIGNED
@ -737,7 +737,7 @@ SVN-Revision: 35130
| TCPOLEN_TIMESTAMP)) | TCPOLEN_TIMESTAMP))
--- a/net/xfrm/xfrm_input.c --- a/net/xfrm/xfrm_input.c
+++ b/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c
@@ -167,8 +167,8 @@ int xfrm_parse_spi(struct sk_buff *skb, @@ -168,8 +168,8 @@ int xfrm_parse_spi(struct sk_buff *skb,
if (!pskb_may_pull(skb, hlen)) if (!pskb_may_pull(skb, hlen))
return -EINVAL; return -EINVAL;
@ -750,7 +750,7 @@ SVN-Revision: 35130
EXPORT_SYMBOL(xfrm_parse_spi); EXPORT_SYMBOL(xfrm_parse_spi);
--- a/net/ipv4/tcp_input.c --- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c
@@ -4158,14 +4158,16 @@ static bool tcp_parse_aligned_timestamp( @@ -4166,14 +4166,16 @@ static bool tcp_parse_aligned_timestamp(
{ {
const __be32 *ptr = (const __be32 *)(th + 1); const __be32 *ptr = (const __be32 *)(th + 1);
@ -784,7 +784,7 @@ SVN-Revision: 35130
--- a/include/net/neighbour.h --- a/include/net/neighbour.h
+++ b/include/net/neighbour.h +++ b/include/net/neighbour.h
@@ -270,8 +270,10 @@ static inline bool neigh_key_eq128(const @@ -286,8 +286,10 @@ static inline bool neigh_key_eq128(const
const u32 *n32 = (const u32 *)n->primary_key; const u32 *n32 = (const u32 *)n->primary_key;
const u32 *p32 = pkey; const u32 *p32 = pkey;
@ -829,7 +829,7 @@ SVN-Revision: 35130
*sum = csum_fold(csum_partial(diff, sizeof(diff), *sum = csum_fold(csum_partial(diff, sizeof(diff),
--- a/include/linux/etherdevice.h --- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h
@@ -525,7 +525,7 @@ static inline bool is_etherdev_addr(cons @@ -555,7 +555,7 @@ static inline bool is_etherdev_addr(cons
* @b: Pointer to Ethernet header * @b: Pointer to Ethernet header
* *
* Compare two Ethernet headers, returns 0 if equal. * Compare two Ethernet headers, returns 0 if equal.
@ -838,7 +838,7 @@ SVN-Revision: 35130
* aligned OR the platform can handle unaligned access. This is the * aligned OR the platform can handle unaligned access. This is the
* case for all packets coming into netif_receive_skb or similar * case for all packets coming into netif_receive_skb or similar
* entry points. * entry points.
@@ -548,11 +548,12 @@ static inline unsigned long compare_ethe @@ -578,11 +578,12 @@ static inline unsigned long compare_ethe
fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6); fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6);
return fold; return fold;
#else #else
@ -857,7 +857,7 @@ SVN-Revision: 35130
--- a/net/ipv4/tcp_offload.c --- a/net/ipv4/tcp_offload.c
+++ b/net/ipv4/tcp_offload.c +++ b/net/ipv4/tcp_offload.c
@@ -223,7 +223,7 @@ struct sk_buff *tcp_gro_receive(struct l @@ -220,7 +220,7 @@ struct sk_buff *tcp_gro_receive(struct l
th2 = tcp_hdr(p); th2 = tcp_hdr(p);
@ -866,7 +866,7 @@ SVN-Revision: 35130
NAPI_GRO_CB(p)->same_flow = 0; NAPI_GRO_CB(p)->same_flow = 0;
continue; continue;
} }
@@ -241,8 +241,8 @@ found: @@ -238,8 +238,8 @@ found:
~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH)); ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH));
flush |= (__force int)(th->ack_seq ^ th2->ack_seq); flush |= (__force int)(th->ack_seq ^ th2->ack_seq);
for (i = sizeof(*th); i < thlen; i += 4) for (i = sizeof(*th); i < thlen; i += 4)
@ -879,16 +879,16 @@ SVN-Revision: 35130
* continue this flow as an atomic flow with a fixed ID or if we use * continue this flow as an atomic flow with a fixed ID or if we use
--- a/net/ipv6/netfilter/ip6table_mangle.c --- a/net/ipv6/netfilter/ip6table_mangle.c
+++ b/net/ipv6/netfilter/ip6table_mangle.c +++ b/net/ipv6/netfilter/ip6table_mangle.c
@@ -44,7 +44,7 @@ ip6t_mangle_out(struct sk_buff *skb, con @@ -44,7 +44,7 @@ ip6t_mangle_out(void *priv, struct sk_bu
hop_limit = ipv6_hdr(skb)->hop_limit; hop_limit = ipv6_hdr(skb)->hop_limit;
/* flowlabel and prio (includes version, which shouldn't change either */ /* flowlabel and prio (includes version, which shouldn't change either */
- flowlabel = *((u_int32_t *)ipv6_hdr(skb)); - flowlabel = *((u_int32_t *)ipv6_hdr(skb));
+ flowlabel = net_hdr_word(ipv6_hdr(skb)); + flowlabel = net_hdr_word(ipv6_hdr(skb));
ret = ip6t_do_table(skb, state, priv); ret = ip6t_do_table(priv, skb, state);
@@ -53,7 +53,7 @@ ip6t_mangle_out(struct sk_buff *skb, con @@ -53,7 +53,7 @@ ip6t_mangle_out(void *priv, struct sk_bu
!ipv6_addr_equal(&ipv6_hdr(skb)->daddr, &daddr) || !ipv6_addr_equal(&ipv6_hdr(skb)->daddr, &daddr) ||
skb->mark != mark || skb->mark != mark ||
ipv6_hdr(skb)->hop_limit != hop_limit || ipv6_hdr(skb)->hop_limit != hop_limit ||

View File

@ -45,7 +45,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
--- a/drivers/mfd/Kconfig --- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig
@@ -2176,6 +2176,14 @@ config RAVE_SP_CORE @@ -2208,6 +2208,14 @@ config RAVE_SP_CORE
Select this to get support for the Supervisory Processor Select this to get support for the Supervisory Processor
device found on several devices in RAVE line of hardware. device found on several devices in RAVE line of hardware.
@ -62,7 +62,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
depends on PCI && MIPS && 64BIT depends on PCI && MIPS && 64BIT
--- a/drivers/mfd/Makefile --- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile
@@ -267,6 +267,7 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas- @@ -269,6 +269,7 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas-
obj-$(CONFIG_MFD_ACER_A500_EC) += acer-ec-a500.o obj-$(CONFIG_MFD_ACER_A500_EC) += acer-ec-a500.o
obj-$(CONFIG_MFD_QCOM_PM8008) += qcom-pm8008.o obj-$(CONFIG_MFD_QCOM_PM8008) += qcom-pm8008.o
@ -72,7 +72,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
obj-$(CONFIG_MFD_INTEL_M10_BMC) += intel-m10-bmc.o obj-$(CONFIG_MFD_INTEL_M10_BMC) += intel-m10-bmc.o
--- a/drivers/gpio/Kconfig --- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig
@@ -1574,6 +1574,12 @@ config GPIO_SODAVILLE @@ -1593,6 +1593,12 @@ config GPIO_SODAVILLE
help help
Say Y here to support Intel Sodaville GPIO. Say Y here to support Intel Sodaville GPIO.
@ -87,7 +87,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
menu "SPI GPIO expanders" menu "SPI GPIO expanders"
--- a/drivers/gpio/Makefile --- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile
@@ -122,6 +122,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061. @@ -123,6 +123,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061.
obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o
obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o
obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o
@ -97,7 +97,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
obj-$(CONFIG_GPIO_RDA) += gpio-rda.o obj-$(CONFIG_GPIO_RDA) += gpio-rda.o
--- a/drivers/mtd/nand/raw/Kconfig --- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig
@@ -563,4 +563,11 @@ config MTD_NAND_AR934X @@ -565,4 +565,11 @@ config MTD_NAND_AR934X
Enables support for NAND controller on Qualcomm Atheros SoCs. Enables support for NAND controller on Qualcomm Atheros SoCs.
This controller is found on AR934x and QCA955x SoCs. This controller is found on AR934x and QCA955x SoCs.
@ -111,9 +111,9 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
endif # MTD_RAW_NAND endif # MTD_RAW_NAND
--- a/drivers/mtd/nand/raw/Makefile --- a/drivers/mtd/nand/raw/Makefile
+++ b/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile
@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM) += inte @@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rock
obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o
obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o
obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o
obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o
+obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o +obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o

View File

@ -29,11 +29,10 @@ Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
--- a/drivers/gpio/Kconfig --- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig
@@ -353,6 +353,13 @@ config GPIO_IXP4XX @@ -368,6 +368,12 @@ config GPIO_IXP4XX
IXP4xx series of chips.
If unsure, say N. If unsure, say N.
+
+config GPIO_LATCH +config GPIO_LATCH
+ tristate "MikroTik RouterBOARD GPIO latch support" + tristate "MikroTik RouterBOARD GPIO latch support"
+ depends on ATH79 + depends on ATH79
@ -43,7 +42,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
config GPIO_LOGICVC config GPIO_LOGICVC
tristate "Xylon LogiCVC GPIO support" tristate "Xylon LogiCVC GPIO support"
depends on MFD_SYSCON && OF depends on MFD_SYSCON && OF
@@ -529,6 +536,10 @@ config GPIO_ROCKCHIP @@ -544,6 +550,10 @@ config GPIO_ROCKCHIP
help help
Say yes here to support GPIO on Rockchip SoCs. Say yes here to support GPIO on Rockchip SoCs.
@ -56,7 +55,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
depends on MFD_SYSCON depends on MFD_SYSCON
--- a/drivers/gpio/Makefile --- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile
@@ -75,6 +75,7 @@ obj-$(CONFIG_GPIO_IT87) += gpio-it87.o @@ -76,6 +76,7 @@ obj-$(CONFIG_GPIO_IT87) += gpio-it87.o
obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4xx.o obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4xx.o
obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o
obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o
@ -64,7 +63,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o
obj-$(CONFIG_GPIO_LOONGSON1) += gpio-loongson1.o obj-$(CONFIG_GPIO_LOONGSON1) += gpio-loongson1.o
obj-$(CONFIG_GPIO_LOONGSON) += gpio-loongson.o obj-$(CONFIG_GPIO_LOONGSON) += gpio-loongson.o
@@ -123,6 +124,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio @@ -124,6 +125,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio
obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o
obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o
obj-$(CONFIG_GPIO_RB4XX) += gpio-rb4xx.o obj-$(CONFIG_GPIO_RB4XX) += gpio-rb4xx.o
@ -74,7 +73,7 @@ Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
obj-$(CONFIG_GPIO_RDA) += gpio-rda.o obj-$(CONFIG_GPIO_RDA) += gpio-rda.o
--- a/drivers/mtd/nand/raw/Kconfig --- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig
@@ -570,4 +570,10 @@ config MTD_NAND_RB4XX @@ -572,4 +572,10 @@ config MTD_NAND_RB4XX
Enables support for the NAND flash chip on Mikrotik Routerboard Enables support for the NAND flash chip on Mikrotik Routerboard
RB4xx series. RB4xx series.
@ -87,8 +86,8 @@ Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
endif # MTD_RAW_NAND endif # MTD_RAW_NAND
--- a/drivers/mtd/nand/raw/Makefile --- a/drivers/mtd/nand/raw/Makefile
+++ b/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile
@@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rock @@ -61,6 +61,7 @@ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-n
obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o
obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o
obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o
+obj-$(CONFIG_MTD_NAND_RB91X) += rb91x_nand.o +obj-$(CONFIG_MTD_NAND_RB91X) += rb91x_nand.o