kernel: bump 4.19 to 4.19.88
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Fri, 6 Dec 2019 15:25:06 +0000 (16:25 +0100)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Tue, 10 Dec 2019 08:50:42 +0000 (09:50 +0100)
Refreshed all patches.

Remove upstreamed:
- 0004-boot-sq201-from-sda1.patch
- 500-v4.20-ubifs-Fix-default-compression-selection-in-ubifs.patch
- 0003-usb-dwc2-use-a-longer-core-rest-timeout-in-dwc2_core.patch

Altered patches:
- 0011-ARM-dts-Fix-up-SQ201-flash-access.patch
- 400-mtd-add-rootfs-split-support.patch
- 0101-pci-mediatek-backport-fix-pcie.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
26 files changed:
include/kernel-version.mk
target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch
target/linux/brcm2708/patches-4.19/950-0030-mm-Remove-the-PFN-busy-warning.patch
target/linux/brcm2708/patches-4.19/950-0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch
target/linux/brcm2708/patches-4.19/950-0093-brcm-adds-support-for-BCM43341-wifi.patch
target/linux/brcm2708/patches-4.19/950-0094-brcmfmac-Mute-expected-startup-errors.patch
target/linux/brcm2708/patches-4.19/950-0349-Revert-brcmfmac-Mute-expected-startup-errors.patch
target/linux/brcm2708/patches-4.19/950-0541-bcmgenet-Better-coalescing-parameter-defaults.patch
target/linux/brcm2708/patches-4.19/950-0542-net-genet-enable-link-energy-detect-powerdown-for-ex.patch
target/linux/brcm2708/patches-4.19/950-0549-pinctrl-bcm2835-Add-support-for-BCM2838.patch
target/linux/gemini/patches-4.19/0004-boot-sq201-from-sda1.patch [deleted file]
target/linux/gemini/patches-4.19/0008-ARM-dts-Enable-Gemini-flash-access.patch
target/linux/gemini/patches-4.19/0011-ARM-dts-Fix-up-SQ201-flash-access.patch
target/linux/generic/backport-4.19/500-v4.20-ubifs-Fix-default-compression-selection-in-ubifs.patch [deleted file]
target/linux/generic/hack-4.19/902-debloat_proc.patch
target/linux/generic/hack-4.19/930-crashlog.patch
target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
target/linux/generic/pending-4.19/400-mtd-add-rootfs-split-support.patch
target/linux/generic/pending-4.19/401-mtd-add-support-for-different-partition-parser-types.patch
target/linux/generic/pending-4.19/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
target/linux/generic/pending-4.19/404-mtd-add-more-helper-functions.patch
target/linux/generic/pending-4.19/920-mangle_bootargs.patch
target/linux/lantiq/patches-4.19/0003-usb-dwc2-use-a-longer-core-rest-timeout-in-dwc2_core.patch [deleted file]
target/linux/mediatek/patches-4.19/0101-pci-mediatek-backport-fix-pcie.patch
target/linux/mvebu/patches-4.19/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch

index 9a70b4cdd813e3d2ef2ae3a532e863df1392bf5e..1bb0fe99119703dda7dc6d172c0164b43a6cd45b 100644 (file)
@@ -8,11 +8,11 @@ endif
 
 LINUX_VERSION-4.9 = .206
 LINUX_VERSION-4.14 = .158
-LINUX_VERSION-4.19 = .86
+LINUX_VERSION-4.19 = .88
 
 LINUX_KERNEL_HASH-4.9.206 = 1df27899a9bc4dd874f3830ab9e7b638f0026dffd67a2e230444e5d2805ccad6
 LINUX_KERNEL_HASH-4.14.158 = 0d49ec72e273f6fc7462ad56849b2285f13fd5f4185e8f932a0074fc2eca1bb3
-LINUX_KERNEL_HASH-4.19.86 = bf2cbba319d43d1bd9e876ac0b55ab83118d1a1e61cce3c929d5371f7567bff6
+LINUX_KERNEL_HASH-4.19.88 = c1923b6bd166e6dd07be860c15f59e8273aaa8692bc2a1fce1d31b826b9b3fbe
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index ad7b12d650cc31d94cdf5da032c67023ee904e05..7784801c8cbfdcdf3a2c2353a31c7bfea9bd58b5 100644 (file)
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
-@@ -836,10 +837,10 @@ static void tcp_v6_send_response(const s
+@@ -837,10 +838,10 @@ static void tcp_v6_send_response(const s
        topt = (__be32 *)(t1 + 1);
  
        if (tsecr) {
index cfc52ead26ae7a6bc30697f6ded9032ede9cac61..f08379057f9bbd65c15b2ff51f16967a7a8905d6 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -7980,8 +7980,6 @@ int alloc_contig_range(unsigned long sta
+@@ -7977,8 +7977,6 @@ int alloc_contig_range(unsigned long sta
  
        /* Make sure the range is really isolated. */
        if (test_pages_isolated(outer_start, end, false)) {
index e3aeded95cb7c3843120852bec92206d3741bdb3..307e82ede4e1fd3d8a3c76d439ef15f8b1d408ca 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Noralf Tronnes <notro@tronnes.org>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -352,7 +352,7 @@ static const struct gpio_chip bcm2835_gp
+@@ -350,7 +350,7 @@ static const struct gpio_chip bcm2835_gp
        .get_direction = bcm2835_gpio_get_direction,
        .get = bcm2835_gpio_get,
        .set = bcm2835_gpio_set,
index af67d42f8d01bcedfe3c59963b9a4cd490d0cfcf..25f587b2d7081ed072cb7c7172d9ea5359b25b5d 100644 (file)
@@ -125,7 +125,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  static inline int mmc_blk_part_switch(struct mmc_card *card,
                                      unsigned int part_type);
  
-@@ -2919,6 +2926,7 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2913,6 +2920,7 @@ static int mmc_blk_probe(struct mmc_card
  {
        struct mmc_blk_data *md, *part_md;
        char cap_str[10];
@@ -133,7 +133,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
        /*
         * Check that the card supports the command class(es) we need.
-@@ -2926,7 +2934,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2920,7 +2928,16 @@ static int mmc_blk_probe(struct mmc_card
        if (!(card->csd.cmdclass & CCC_BLOCK_READ))
                return -ENODEV;
  
@@ -151,7 +151,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
        card->complete_wq = alloc_workqueue("mmc_complete",
                                        WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -2941,9 +2958,14 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2935,9 +2952,14 @@ static int mmc_blk_probe(struct mmc_card
  
        string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
                        cap_str, sizeof(cap_str));
index d61948995cf1d00c940998447886e7e9976520ba..4251ecafefcbcb17cc8be03b779eba50fa4934d7 100644 (file)
@@ -57,7 +57,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        cfg->pwr_save = enabled;
        if (!check_vif_up(ifp->vif)) {
  
-@@ -6776,12 +6778,18 @@ static s32 brcmf_translate_country_code(
+@@ -6786,12 +6788,18 @@ static s32 brcmf_translate_country_code(
        struct brcmfmac_pd_cc *country_codes;
        struct brcmfmac_pd_cc_entry *cc;
        s32 found_index;
@@ -78,7 +78,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        }
  
        if ((alpha2[0] == ccreq->country_abbrev[0]) &&
-@@ -6805,10 +6813,14 @@ static s32 brcmf_translate_country_code(
+@@ -6815,10 +6823,14 @@ static s32 brcmf_translate_country_code(
                brcmf_dbg(TRACE, "No country code match found\n");
                return -EINVAL;
        }
@@ -109,7 +109,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-@@ -608,6 +608,7 @@ BRCMF_FW_DEF(4329, "brcmfmac4329-sdio");
+@@ -614,6 +614,7 @@ BRCMF_FW_DEF(4329, "brcmfmac4329-sdio");
  BRCMF_FW_DEF(4330, "brcmfmac4330-sdio");
  BRCMF_FW_DEF(4334, "brcmfmac4334-sdio");
  BRCMF_FW_DEF(43340, "brcmfmac43340-sdio");
@@ -117,7 +117,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  BRCMF_FW_DEF(4335, "brcmfmac4335-sdio");
  BRCMF_FW_DEF(43362, "brcmfmac43362-sdio");
  BRCMF_FW_DEF(4339, "brcmfmac4339-sdio");
-@@ -628,7 +629,7 @@ static const struct brcmf_firmware_mappi
+@@ -634,7 +635,7 @@ static const struct brcmf_firmware_mappi
        BRCMF_FW_ENTRY(BRCM_CC_4330_CHIP_ID, 0xFFFFFFFF, 4330),
        BRCMF_FW_ENTRY(BRCM_CC_4334_CHIP_ID, 0xFFFFFFFF, 4334),
        BRCMF_FW_ENTRY(BRCM_CC_43340_CHIP_ID, 0xFFFFFFFF, 43340),
index 27e6a201a5bdc4edc75ea011c22959e649b9aabb..8111f9d42ce192dca52a00ee1db61c1af9894ac2 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6844,6 +6844,8 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6854,6 +6854,8 @@ static void brcmf_cfg80211_reg_notifier(
        /* ignore non-ISO3166 country codes */
        for (i = 0; i < 2; i++)
                if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {
index 9c979c3e979754502fd97e4157ebd908f43b0af0..97073abff44bac7534985fad7bdf68e49bc33c9f 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -6844,8 +6844,6 @@ static void brcmf_cfg80211_reg_notifier(
+@@ -6854,8 +6854,6 @@ static void brcmf_cfg80211_reg_notifier(
        /* ignore non-ISO3166 country codes */
        for (i = 0; i < 2; i++)
                if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {
index 0e2657c4230f3b8772d327e2917e747ea80b5490..f91643342f83c70c5917da144c13f4f7b4df7d21 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2149,7 +2149,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2147,7 +2147,7 @@ static void bcmgenet_init_tx_ring(struct
  
        bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
        bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
index c29457500e2e2cf67ebca70debe26a0a490882c7..02b5701099ec10a545907f230773c571e01afec7 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
-@@ -285,6 +285,8 @@ int bcmgenet_mii_probe(struct net_device
+@@ -318,6 +318,8 @@ int bcmgenet_mii_probe(struct net_device
        /* Communicate the integrated PHY revision */
        if (priv->internal_phy)
                phy_flags = priv->gphy_rev;
index d7103c58225403c53496b8f5500414d78ec43d94..655937e3036f900f24e6fa09ed419949bcf70d4f 100644 (file)
@@ -28,7 +28,7 @@ compatibility for the device-tree configuration has been retained.
  #define FSEL_REG(p)           (GPFSEL0 + (((p) / 10) * 4))
  #define FSEL_SHIFT(p)         (((p) % 10) * 3)
  #define GPIO_REG_OFFSET(p)    ((p) / 32)
-@@ -917,21 +923,45 @@ static void bcm2835_pull_config_set(stru
+@@ -915,21 +921,45 @@ static void bcm2835_pull_config_set(stru
                unsigned int pin, unsigned int arg)
  {
        u32 off, bit;
diff --git a/target/linux/gemini/patches-4.19/0004-boot-sq201-from-sda1.patch b/target/linux/gemini/patches-4.19/0004-boot-sq201-from-sda1.patch
deleted file mode 100644 (file)
index d2fa02a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-From 95be54e285767c5209bb51df923373f78b8c4099 Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Mon, 16 Jul 2018 23:36:30 +0200
-Subject: [PATCH 04/18] boot sq201 from sda1
-
----
- arch/arm/boot/dts/gemini-sq201.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm/boot/dts/gemini-sq201.dts
-+++ b/arch/arm/boot/dts/gemini-sq201.dts
-@@ -20,7 +20,7 @@
-       };
-       chosen {
--              bootargs = "console=ttyS0,115200n8";
-+              bootargs = "console=ttyS0,115200n8 root=/dev/sda1 rw rootwait";
-               stdout-path = &uart0;
-       };
index 302945ff45e40ff43f507a50f01f884cbf81874e..92e2e65c71dda8a924062fb4acea37df9e9b331e 100644 (file)
@@ -121,7 +121,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                        /* 16MB of flash */
                        reg = <0x30000000 0x01000000>;
  
-@@ -184,9 +177,7 @@
+@@ -157,9 +150,7 @@
                                        mux {
                                                function = "gpio0";
                                                groups = "gpio0fgrp",
@@ -132,7 +132,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                                        };
                                };
                                /*
-@@ -199,6 +190,18 @@
+@@ -172,6 +163,18 @@
                                                groups = "gpio1dgrp";
                                        };
                                };
index 578e970c0fd9fe368654774bd561781e8773470b..9dc5f65f7d700bc1aa44f4e92b8ad11570c01b9d 100644 (file)
@@ -19,50 +19,8 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        };
  
        chosen {
--              bootargs = "console=ttyS0,115200n8 root=/dev/sda1 rw rootwait";
+-              bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait";
 +              bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
                stdout-path = &uart0;
        };
  
-@@ -131,37 +131,10 @@
-                       /* 16MB of flash */
-                       reg = <0x30000000 0x01000000>;
--                      partition@0 {
--                              label = "RedBoot";
--                              reg = <0x00000000 0x00120000>;
--                              read-only;
--                      };
--                      partition@120000 {
--                              label = "Kernel";
--                              reg = <0x00120000 0x00200000>;
--                      };
--                      partition@320000 {
--                              label = "Ramdisk";
--                              reg = <0x00320000 0x00600000>;
--                      };
--                      partition@920000 {
--                              label = "Application";
--                              reg = <0x00920000 0x00600000>;
--                      };
--                      partition@f20000 {
--                              label = "VCTL";
--                              reg = <0x00f20000 0x00020000>;
--                              read-only;
--                      };
--                      partition@f40000 {
--                              label = "CurConf";
--                              reg = <0x00f40000 0x000a0000>;
--                              read-only;
--                      };
--                      partition@fe0000 {
--                              label = "FIS directory";
--                              reg = <0x00fe0000 0x00020000>;
--                              read-only;
-+                      partitions {
-+                              compatible = "redboot-fis";
-+                              /* Eraseblock at 0xfe0000 */
-+                              fis-index-block = <0x1fc>;
-                       };
-               };
diff --git a/target/linux/generic/backport-4.19/500-v4.20-ubifs-Fix-default-compression-selection-in-ubifs.patch b/target/linux/generic/backport-4.19/500-v4.20-ubifs-Fix-default-compression-selection-in-ubifs.patch
deleted file mode 100644 (file)
index 7bd3ed9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From d62e98ed1efcaa94caa004f622944afdce5f1c3c Mon Sep 17 00:00:00 2001
-From: Gabor Juhos <juhosg@openwrt.org>
-Date: Sun, 9 Dec 2018 18:12:13 +0100
-Subject: [PATCH] ubifs: Fix default compression selection in ubifs
-
-When ubifs is build without the LZO compressor and no compressor is
-given the creation of the default file system will fail. before
-selection the LZO compressor check if it is present and if not fall back
-to the zlib or none.
-
-Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-Signed-off-by: Richard Weinberger <richard@nod.at>
----
- fs/ubifs/sb.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
---- a/fs/ubifs/sb.c
-+++ b/fs/ubifs/sb.c
-@@ -63,6 +63,17 @@
- /* Default time granularity in nanoseconds */
- #define DEFAULT_TIME_GRAN 1000000000
-+static int get_default_compressor(struct ubifs_info *c)
-+{
-+      if (ubifs_compr_present(c, UBIFS_COMPR_LZO))
-+              return UBIFS_COMPR_LZO;
-+
-+      if (ubifs_compr_present(c, UBIFS_COMPR_ZLIB))
-+              return UBIFS_COMPR_ZLIB;
-+
-+      return UBIFS_COMPR_NONE;
-+}
-+
- /**
-  * create_default_filesystem - format empty UBI volume.
-  * @c: UBIFS file-system description object
-@@ -186,7 +197,7 @@ static int create_default_filesystem(str
-       if (c->mount_opts.override_compr)
-               sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
-       else
--              sup->default_compr = cpu_to_le16(UBIFS_COMPR_LZO);
-+              sup->default_compr = cpu_to_le16(get_default_compressor(c));
-       generate_random_uuid(sup->uuid);
index ec976c165b326652536dd7db705d53c0c7fb041d..4bd4d2216889927ca2ba56740a14f9485c5b6fbf 100644 (file)
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3485,6 +3485,8 @@ static __net_initdata struct pernet_oper
+@@ -3486,6 +3486,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
index 1562df44a4564c673026da637199a34afcb94cb1..bb16f22915fa9f3727cb63a229d92071532d0c90 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/kernel/Makefile
 +++ b/kernel/Makefile
-@@ -117,6 +117,7 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
+@@ -114,6 +114,7 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
  obj-$(CONFIG_HAS_IOMEM) += iomem.o
  obj-$(CONFIG_ZONE_DEVICE) += memremap.o
  obj-$(CONFIG_RSEQ) += rseq.o
index 1a416e77827b40065f6e2687736081ea6597aa06..ec541a865c81039bf55075bad4967d6c7eb4ff8b 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -6403,7 +6403,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6400,7 +6400,7 @@ static void __ref alloc_node_mem_map(str
                mem_map = NODE_DATA(0)->node_mem_map;
  #if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
                if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
index e646224df28f045da678eacec4aca9825c38571c..bc783deb409d9ec6c84817d0169c456895943672 100644 (file)
@@ -59,15 +59,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
   * the pointer to that structure.
-@@ -623,6 +627,7 @@ int mtd_add_partition(struct mtd_info *p
-       mutex_unlock(&mtd_partitions_mutex);
+@@ -626,6 +630,7 @@ int mtd_add_partition(struct mtd_info *p
+       if (ret)
+               goto err_remove_part;
  
-       add_mtd_device(&new->mtd);
 +      mtd_partition_split(parent, new);
        mtd_add_partition_attrs(new);
  
-@@ -701,6 +706,29 @@ int mtd_del_partition(struct mtd_info *m
+       return 0;
+@@ -712,6 +717,29 @@ int mtd_del_partition(struct mtd_info *m
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -97,10 +97,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * This function, given a master MTD object and a partition table, creates
   * and registers slave MTD objects which are bound to the master according to
-@@ -732,6 +760,7 @@ int add_mtd_partitions(struct mtd_info *
-               mutex_unlock(&mtd_partitions_mutex);
+@@ -752,6 +780,7 @@ int add_mtd_partitions(struct mtd_info *
+                       goto err_del_partitions;
+               }
  
-               add_mtd_device(&slave->mtd);
 +              mtd_partition_split(master, slave);
                mtd_add_partition_attrs(slave);
                /* Look for subpartitions */
index 4026a2050b9e5db4c36ad8986dbb463be0996793..a59659cda6a9d7cd68251ff676283a71660a6aff 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
-@@ -706,6 +710,36 @@ int mtd_del_partition(struct mtd_info *m
+@@ -717,6 +721,36 @@ int mtd_del_partition(struct mtd_info *m
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -57,7 +57,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  #ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #define SPLIT_FIRMWARE_NAME   CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #else
-@@ -1041,6 +1075,61 @@ void mtd_part_parser_cleanup(struct mtd_
+@@ -1066,6 +1100,61 @@ void mtd_part_parser_cleanup(struct mtd_
        }
  }
  
index 8a90ce6a8b75874fe4a10f0f20b1c60290622386..58d2e445745416302f3cbdfd638b3dbef14d4c93 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -748,6 +748,7 @@ run_parsers_by_type(struct mtd_part *sla
+@@ -759,6 +759,7 @@ run_parsers_by_type(struct mtd_part *sla
  
  static void split_firmware(struct mtd_info *master, struct mtd_part *part)
  {
@@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  }
  
  static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
-@@ -757,6 +758,12 @@ static void mtd_partition_split(struct m
+@@ -768,6 +769,12 @@ static void mtd_partition_split(struct m
        if (rootfs_found)
                return;
  
index 2e95e99f6d1cdc4d20ecde9de3141401dfe20193..e404ec1fb273f71a018855e4264622b2fc72d717 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -1154,6 +1154,24 @@ int mtd_is_partition(const struct mtd_in
+@@ -1179,6 +1179,24 @@ int mtd_is_partition(const struct mtd_in
  }
  EXPORT_SYMBOL_GPL(mtd_is_partition);
  
index 51af6b5d6b97bd825da78ab91aebdc6d0dc2b3a8..0750ab77c21030dcc0b3905639dd4088ca2d68eb 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
        help
 --- a/init/main.c
 +++ b/init/main.c
-@@ -366,6 +366,29 @@ static inline void setup_nr_cpu_ids(void
+@@ -365,6 +365,29 @@ static inline void setup_nr_cpu_ids(void
  static inline void smp_prepare_cpus(unsigned int maxcpus) { }
  #endif
  
@@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  /*
   * We need to store the untouched command line for future reference.
   * We also need to store the touched command line since the parameter
-@@ -558,6 +581,7 @@ asmlinkage __visible void __init start_k
+@@ -557,6 +580,7 @@ asmlinkage __visible void __init start_k
        add_device_randomness(command_line, strlen(command_line));
        boot_init_stack_canary();
        mm_init_cpumask(&init_mm);
diff --git a/target/linux/lantiq/patches-4.19/0003-usb-dwc2-use-a-longer-core-rest-timeout-in-dwc2_core.patch b/target/linux/lantiq/patches-4.19/0003-usb-dwc2-use-a-longer-core-rest-timeout-in-dwc2_core.patch
deleted file mode 100644 (file)
index dde7b3f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 09bbf8c732e7a6ce290fc7c2d5a3e79ec6c3e8d2 Mon Sep 17 00:00:00 2001
-From: Mathias Kresin <dev@kresin.me>
-Date: Wed, 3 Jul 2019 17:03:02 +0200
-Subject: [PATCH] usb: dwc2: use a longer core rest timeout in
- dwc2_core_reset()
-
-Testing on different generations of Lantiq MIPS SoC based boards, showed
-that it takes up to 1500 us until the core reset bit is cleared.
-
-The driver from the vendor SDK (ifxhcd) uses a 1 second timeout. Use the
-same timeout to fix wrong hang detections and make the driver work for
-Lantiq MIPS SoCs.
-
-Signed-off-by: Mathias Kresin <dev@kresin.me>
----
- drivers/usb/dwc2/core.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/usb/dwc2/core.c
-+++ b/drivers/usb/dwc2/core.c
-@@ -524,7 +524,7 @@ int dwc2_core_reset(struct dwc2_hsotg *h
-       greset |= GRSTCTL_CSFTRST;
-       dwc2_writel(hsotg, greset, GRSTCTL);
--      if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 50)) {
-+      if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 10000)) {
-               dev_warn(hsotg->dev, "%s: HANG! Soft Reset timeout GRSTCTL GRSTCTL_CSFTRST\n",
-                        __func__);
-               return -EBUSY;
index 9afcedaa771a8aa39f29111393cc3a541b11e628..d4c4ea773859986285544e493a8a2c178b3599cb 100644 (file)
  }
  
  static void mtk_pcie_port_free(struct mtk_pcie_port *port)
-@@ -394,75 +395,6 @@ static struct pci_ops mtk_pcie_ops_v2 =
-       .write = mtk_pcie_config_write,
- };
--static int mtk_pcie_startup_port_v2(struct mtk_pcie_port *port)
--{
--      struct mtk_pcie *pcie = port->pcie;
--      struct resource *mem = &pcie->mem;
--      const struct mtk_pcie_soc *soc = port->pcie->soc;
--      u32 val;
--      size_t size;
--      int err;
--
--      /* MT7622 platforms need to enable LTSSM and ASPM from PCIe subsys */
--      if (pcie->base) {
--              val = readl(pcie->base + PCIE_SYS_CFG_V2);
--              val |= PCIE_CSR_LTSSM_EN(port->slot) |
--                     PCIE_CSR_ASPM_L1_EN(port->slot);
--              writel(val, pcie->base + PCIE_SYS_CFG_V2);
--      }
--
--      /* Assert all reset signals */
--      writel(0, port->base + PCIE_RST_CTRL);
--
--      /*
--       * Enable PCIe link down reset, if link status changed from link up to
--       * link down, this will reset MAC control registers and configuration
--       * space.
--       */
--      writel(PCIE_LINKDOWN_RST_EN, port->base + PCIE_RST_CTRL);
--
--      /* De-assert PHY, PE, PIPE, MAC and configuration reset */
--      val = readl(port->base + PCIE_RST_CTRL);
--      val |= PCIE_PHY_RSTB | PCIE_PERSTB | PCIE_PIPE_SRSTB |
--             PCIE_MAC_SRSTB | PCIE_CRSTB;
--      writel(val, port->base + PCIE_RST_CTRL);
--
--      /* Set up vendor ID and class code */
--      if (soc->need_fix_class_id) {
--              val = PCI_VENDOR_ID_MEDIATEK;
--              writew(val, port->base + PCIE_CONF_VEND_ID);
--
--              val = PCI_CLASS_BRIDGE_HOST;
--              writew(val, port->base + PCIE_CONF_CLASS_ID);
--      }
--
--      /* 100ms timeout value should be enough for Gen1/2 training */
--      err = readl_poll_timeout(port->base + PCIE_LINK_STATUS_V2, val,
--                               !!(val & PCIE_PORT_LINKUP_V2), 20,
--                               100 * USEC_PER_MSEC);
--      if (err)
--              return -ETIMEDOUT;
--
--      /* Set INTx mask */
--      val = readl(port->base + PCIE_INT_MASK);
--      val &= ~INTX_MASK;
--      writel(val, port->base + PCIE_INT_MASK);
--
--      /* Set AHB to PCIe translation windows */
--      size = mem->end - mem->start;
--      val = lower_32_bits(mem->start) | AHB2PCIE_SIZE(fls(size));
--      writel(val, port->base + PCIE_AHB_TRANS_BASE0_L);
--
--      val = upper_32_bits(mem->start);
--      writel(val, port->base + PCIE_AHB_TRANS_BASE0_H);
--
--      /* Set PCIe to AXI translation memory space.*/
--      val = fls(0xffffffff) | WIN_ENABLE;
--      writel(val, port->base + PCIE_AXI_WINDOW0);
--
--      return 0;
--}
--
- static void mtk_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
- {
-       struct mtk_pcie_port *port = irq_data_get_irq_chip_data(data);
-@@ -601,6 +533,27 @@ static void mtk_pcie_enable_msi(struct m
+@@ -532,6 +533,27 @@ static void mtk_pcie_enable_msi(struct m
        writel(val, port->base + PCIE_INT_MASK);
  }
  
  static int mtk_pcie_intx_map(struct irq_domain *domain, unsigned int irq,
                             irq_hw_number_t hwirq)
  {
-@@ -630,6 +583,7 @@ static int mtk_pcie_init_irq_domain(stru
+@@ -561,6 +583,7 @@ static int mtk_pcie_init_irq_domain(stru
  
        port->irq_domain = irq_domain_add_linear(pcie_intc_node, PCI_NUM_INTX,
                                                 &intx_domain_ops, port);
        if (!port->irq_domain) {
                dev_err(dev, "failed to get INTx IRQ domain\n");
                return -ENODEV;
-@@ -639,8 +593,6 @@ static int mtk_pcie_init_irq_domain(stru
-               ret = mtk_pcie_allocate_msi_domains(port);
-               if (ret)
-                       return ret;
--
--              mtk_pcie_enable_msi(port);
-       }
-       return 0;
-@@ -693,7 +645,7 @@ static int mtk_pcie_setup_irq(struct mtk
+@@ -622,7 +645,7 @@ static int mtk_pcie_setup_irq(struct mtk
        struct mtk_pcie *pcie = port->pcie;
        struct device *dev = pcie->dev;
        struct platform_device *pdev = to_platform_device(dev);
  
        err = mtk_pcie_init_irq_domain(port, node);
        if (err) {
-@@ -701,8 +653,81 @@ static int mtk_pcie_setup_irq(struct mtk
+@@ -630,8 +653,9 @@ static int mtk_pcie_setup_irq(struct mtk
                return err;
        }
  
 +      port->irq = platform_get_irq(pdev, port->slot);
 +      irq_set_chained_handler_and_data(port->irq,
 +                                       mtk_pcie_intr_handler, port);
-+
-+      return 0;
-+}
-+
-+static int mtk_pcie_startup_port_v2(struct mtk_pcie_port *port)
-+{
-+      struct mtk_pcie *pcie = port->pcie;
-+      struct resource *mem = &pcie->mem;
-+      const struct mtk_pcie_soc *soc = port->pcie->soc;
-+      u32 val;
-+      size_t size;
-+      int err;
-+
-+      /* MT7622 platforms need to enable LTSSM and ASPM from PCIe subsys */
-+      if (pcie->base) {
-+              val = readl(pcie->base + PCIE_SYS_CFG_V2);
-+              val |= PCIE_CSR_LTSSM_EN(port->slot) |
-+                     PCIE_CSR_ASPM_L1_EN(port->slot);
-+              writel(val, pcie->base + PCIE_SYS_CFG_V2);
-+      }
-+
-+      /* Assert all reset signals */
-+      writel(0, port->base + PCIE_RST_CTRL);
-+
-+      /*
-+       * Enable PCIe link down reset, if link status changed from link up to
-+       * link down, this will reset MAC control registers and configuration
-+       * space.
-+       */
-+      writel(PCIE_LINKDOWN_RST_EN, port->base + PCIE_RST_CTRL);
-+
-+      /* De-assert PHY, PE, PIPE, MAC and configuration reset */
-+      val = readl(port->base + PCIE_RST_CTRL);
-+      val |= PCIE_PHY_RSTB | PCIE_PERSTB | PCIE_PIPE_SRSTB |
-+             PCIE_MAC_SRSTB | PCIE_CRSTB;
-+      writel(val, port->base + PCIE_RST_CTRL);
-+
-+      /* Set up vendor ID and class code */
-+      if (soc->need_fix_class_id) {
-+              val = PCI_VENDOR_ID_MEDIATEK;
-+              writew(val, port->base + PCIE_CONF_VEND_ID);
-+
-+              val = PCI_CLASS_BRIDGE_PCI;
-+              writew(val, port->base + PCIE_CONF_CLASS_ID);
-+      }
-+
-+      /* 100ms timeout value should be enough for Gen1/2 training */
-+      err = readl_poll_timeout(port->base + PCIE_LINK_STATUS_V2, val,
-+                               !!(val & PCIE_PORT_LINKUP_V2), 20,
-+                               100 * USEC_PER_MSEC);
-+      if (err)
-+              return -ETIMEDOUT;
-+
-+      /* Set INTx mask */
-+      val = readl(port->base + PCIE_INT_MASK);
-+      val &= ~INTX_MASK;
-+      writel(val, port->base + PCIE_INT_MASK);
-+
-+      if (IS_ENABLED(CONFIG_PCI_MSI))
-+              mtk_pcie_enable_msi(port);
-+
-+      /* Set AHB to PCIe translation windows */
-+      size = mem->end - mem->start;
-+      val = lower_32_bits(mem->start) | AHB2PCIE_SIZE(fls(size));
-+      writel(val, port->base + PCIE_AHB_TRANS_BASE0_L);
-+
-+      val = upper_32_bits(mem->start);
-+      writel(val, port->base + PCIE_AHB_TRANS_BASE0_H);
-+
-+      /* Set PCIe to AXI translation memory space.*/
-+      val = fls(0xffffffff) | WIN_ENABLE;
-+      writel(val, port->base + PCIE_AXI_WINDOW0);
  
        return 0;
  }
-@@ -903,49 +928,29 @@ static int mtk_pcie_parse_port(struct mt
+@@ -904,49 +928,29 @@ static int mtk_pcie_parse_port(struct mt
  
        /* sys_ck might be divided into the following parts in some chips */
        snprintf(name, sizeof(name), "ahb_ck%d", slot);
  
        snprintf(name, sizeof(name), "pcie-rst%d", slot);
        port->reset = devm_reset_control_get_optional_exclusive(dev, name);
-@@ -998,10 +1003,8 @@ static int mtk_pcie_subsys_powerup(struc
+@@ -999,10 +1003,8 @@ static int mtk_pcie_subsys_powerup(struc
                pcie->free_ck = NULL;
        }
  
  
        /* enable top level clock */
        err = clk_prepare_enable(pcie->free_ck);
-@@ -1013,10 +1016,8 @@ static int mtk_pcie_subsys_powerup(struc
+@@ -1014,10 +1016,8 @@ static int mtk_pcie_subsys_powerup(struc
        return 0;
  
  err_free_ck:
  
        return err;
  }
-@@ -1122,8 +1122,6 @@
+@@ -1122,36 +1122,6 @@ static int mtk_pcie_request_resources(st
                return err;
  
        err = devm_pci_remap_iospace(dev, &pcie->pio, pcie->io.start);
 -      if (err)
 -              return err;
-       return 0;
- }
-@@ -1127,34 +1128,6 @@ static int mtk_pcie_request_resources(st
-       return 0;
- }
+-
+-      return 0;
+-}
+-
 -static int mtk_pcie_register_host(struct pci_host_bridge *host)
 -{
 -      struct mtk_pcie *pcie = pci_host_bridge_priv(host);
 -              pcie_bus_configure_settings(child);
 -
 -      pci_bus_add_devices(host->bus);
--
--      return 0;
--}
--
- static int mtk_pcie_probe(struct platform_device *pdev)
- {
-       struct device *dev = &pdev->dev;
-@@ -1181,7 +1154,14 @@ static int mtk_pcie_probe(struct platfor
+       return 0;
+ }
+@@ -1182,7 +1152,14 @@ static int mtk_pcie_probe(struct platfor
        if (err)
                goto put_resources;
  
        if (err)
                goto put_resources;
  
-@@ -1194,6 +1174,80 @@ put_resources:
+@@ -1195,6 +1172,80 @@ put_resources:
        return err;
  }
  
  static const struct mtk_pcie_soc mtk_pcie_soc_v1 = {
        .ops = &mtk_pcie_ops,
        .startup = mtk_pcie_startup_port,
-@@ -1222,10 +1276,13 @@ static const struct of_device_id mtk_pci
+@@ -1223,10 +1274,13 @@ static const struct of_device_id mtk_pci
  
  static struct platform_driver mtk_pcie_driver = {
        .probe = mtk_pcie_probe,
index 6172e6fe450433760ec5c80621bd5b236089eb13..0cb9e996027433923b514a5e5ab64d5016d5adbc 100644 (file)
@@ -180,7 +180,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  static int kernel_init(void *);
  
  extern void init_IRQ(void);
-@@ -592,6 +596,18 @@ asmlinkage __visible void __init start_k
+@@ -591,6 +595,18 @@ asmlinkage __visible void __init start_k
        page_alloc_init();
  
        pr_notice("Kernel command line: %s\n", boot_command_line);