diff --git a/include/kernel-version.mk b/include/kernel-version.mk index dfcf91bd3b..b50e384c2b 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -7,13 +7,13 @@ ifdef CONFIG_TESTING_KERNEL endif LINUX_VERSION-4.9 = .220 -LINUX_VERSION-4.14 = .176 -LINUX_VERSION-4.19 = .117 +LINUX_VERSION-4.14 = .177 +LINUX_VERSION-4.19 = .118 LINUX_VERSION-5.4 = .34 LINUX_KERNEL_HASH-4.9.220 = dad9c760787f9694173308c29f8e357b2c447b87a7965565ae4bb7f5979f0b2e -LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2 -LINUX_KERNEL_HASH-4.19.117 = d6289f298e8b06f72f3465a4132d33674642ad6ff0d80a8fb99b600ef90dac8b +LINUX_KERNEL_HASH-4.14.177 = 33a73c88344a78b75751a5d42fff8b3ee1e2e006b30b2913605ebc6a40041812 +LINUX_KERNEL_HASH-4.19.118 = 89749365f9dafa6c62cc5e920a7e532ed4aad9ab766fb436423b153ffbc08c96 LINUX_KERNEL_HASH-5.4.34 = 903ec1334daba6a626688f799cc947b420cf6fc8ce83055313dc4e9978d64cd2 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch b/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch index 892cdaef33..f95fdf3d7f 100644 --- a/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch +++ b/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch @@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter #include "xhci.h" #include "xhci-trace.h" -@@ -268,6 +270,458 @@ static void xhci_pme_acpi_rtd3_enable(st +@@ -269,6 +271,458 @@ static void xhci_pme_acpi_rtd3_enable(st static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { } #endif /* CONFIG_ACPI */ @@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter /* called during probe() after chip reset completes */ static int xhci_pci_setup(struct usb_hcd *hcd) { -@@ -306,6 +760,22 @@ static int xhci_pci_probe(struct pci_dev +@@ -307,6 +761,22 @@ static int xhci_pci_probe(struct pci_dev struct hc_driver *driver; struct usb_hcd *hcd; @@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter driver = (struct hc_driver *)id->driver_data; /* For some HW implementation, a XHCI reset is just not enough... */ -@@ -367,6 +837,16 @@ static void xhci_pci_remove(struct pci_d +@@ -368,6 +838,16 @@ static void xhci_pci_remove(struct pci_d { struct xhci_hcd *xhci; diff --git a/target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch index c7315f9b8b..1fe94e8c6f 100644 --- a/target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch +++ b/target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch @@ -13,7 +13,7 @@ produce a noisy warning. --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -221,7 +221,7 @@ static void xhci_pci_quirks(struct devic +@@ -222,7 +222,7 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_TRUST_TX_LENGTH; if (pdev->vendor == PCI_VENDOR_ID_RENESAS && pdev->device == 0x0015) diff --git a/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch b/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch index bb013c6cf5..5a6eb77d0f 100644 --- a/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch +++ b/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch @@ -35,7 +35,7 @@ /* Atmel chips don't use the same PRI format as AMD chips */ static void fixup_convert_atmel_pri(struct mtd_info *mtd) -@@ -1798,6 +1802,7 @@ static int cfi_amdstd_write_words(struct +@@ -1800,6 +1804,7 @@ static int cfi_amdstd_write_words(struct /* * FIXME: interleaved mode not tested, and probably not supported! */ @@ -43,7 +43,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, unsigned long adr, const u_char *buf, int len) -@@ -1926,7 +1931,6 @@ static int __xipram do_write_buffer(stru +@@ -1928,7 +1933,6 @@ static int __xipram do_write_buffer(stru return ret; } @@ -51,7 +51,7 @@ static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { -@@ -2001,6 +2005,7 @@ static int cfi_amdstd_write_buffers(stru +@@ -2003,6 +2007,7 @@ static int cfi_amdstd_write_buffers(stru return 0; } diff --git a/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch index cab2f6f9cb..d1fbe2e31d 100644 --- a/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch +++ b/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch @@ -19,7 +19,7 @@ #define QCA956X_PLL_CPU_CONFIG_REFDIV_SHIFT 12 #define QCA956X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f -@@ -1196,4 +1201,16 @@ +@@ -1198,4 +1203,16 @@ #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 diff --git a/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch index a4608ea48d..a1a16817e3 100644 --- a/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch +++ b/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch @@ -130,8 +130,8 @@ Add more registers for QCA955x and QCA956x. +#define QCA955X_GMAC_REG_SGMII_SERDES 0x18 #define QCA955X_ETH_CFG_RGMII_EN BIT(0) - #define QCA955X_ETH_CFG_MII_GE0 BIT(1) -@@ -1210,16 +1291,58 @@ + #define QCA955X_ETH_CFG_GE0_MII_EN BIT(1) +@@ -1212,16 +1293,58 @@ #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 diff --git a/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch b/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch index ff72308465..705763a7a2 100644 --- a/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch +++ b/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch @@ -20,8 +20,8 @@ +#define QCA955X_GMAC_REG_SGMII_DEBUG 0x58 #define QCA955X_ETH_CFG_RGMII_EN BIT(0) - #define QCA955X_ETH_CFG_MII_GE0 BIT(1) -@@ -1291,6 +1295,18 @@ + #define QCA955X_ETH_CFG_GE0_MII_EN BIT(1) +@@ -1293,6 +1297,18 @@ #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 diff --git a/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch b/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch index 2d38456ae6..080a7d991a 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch @@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -1087,10 +1087,12 @@ static int vc4_hdmi_audio_init(struct vc +@@ -1099,10 +1099,12 @@ static int vc4_hdmi_audio_init(struct vc struct device *dev = &hdmi->pdev->dev; const __be32 *addr; int ret; diff --git a/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch b/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch index 606b22c3e2..f0b08deb4a 100644 --- a/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch +++ b/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch @@ -93,4 +93,3 @@ + }; + }; +}; -+ \ No newline at end of file diff --git a/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch b/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch index bbd39811c5..e1d43da87a 100644 --- a/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch +++ b/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch @@ -89,7 +89,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c -@@ -1958,7 +1958,8 @@ int gpiochip_add_pingroup_range(struct g +@@ -1941,7 +1941,8 @@ int gpiochip_add_pingroup_range(struct g list_add_tail(&pin_range->node, &gdev->pin_ranges); @@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski } EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range); -@@ -2010,7 +2011,7 @@ int gpiochip_add_pin_range(struct gpio_c +@@ -1993,7 +1994,7 @@ int gpiochip_add_pin_range(struct gpio_c list_add_tail(&pin_range->node, &gdev->pin_ranges); diff --git a/target/linux/cns3xxx/patches-4.19/210-dwc2_defaults.patch b/target/linux/cns3xxx/patches-4.19/210-dwc2_defaults.patch index 5a5b17d0a0..3efcc18854 100644 --- a/target/linux/cns3xxx/patches-4.19/210-dwc2_defaults.patch +++ b/target/linux/cns3xxx/patches-4.19/210-dwc2_defaults.patch @@ -1,6 +1,6 @@ --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c -@@ -151,6 +151,36 @@ static void dwc2_set_stm32f7_hsotg_param +@@ -152,6 +152,36 @@ static void dwc2_set_stm32f7_hsotg_param p->host_perio_tx_fifo_size = 256; } @@ -37,7 +37,7 @@ const struct of_device_id dwc2_of_match_table[] = { { .compatible = "brcm,bcm2835-usb", .data = dwc2_set_bcm_params }, { .compatible = "hisilicon,hi6220-usb", .data = dwc2_set_his_params }, -@@ -806,17 +836,23 @@ int dwc2_get_hwparams(struct dwc2_hsotg +@@ -820,17 +850,23 @@ int dwc2_get_hwparams(struct dwc2_hsotg int dwc2_init_params(struct dwc2_hsotg *hsotg) { diff --git a/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch b/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch index 1c501867a9..e3f77ab9da 100644 --- a/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch +++ b/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch @@ -48,7 +48,7 @@ Reviewed-by: John Gilmore #define INADDR_ANY ((unsigned long int) 0x00000000) --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c -@@ -929,7 +929,7 @@ static int inet_abc_len(__be32 addr) +@@ -934,7 +934,7 @@ static int inet_abc_len(__be32 addr) { int rc = -1; /* Something else, probably a multicast. */ @@ -57,7 +57,7 @@ Reviewed-by: John Gilmore rc = 0; else { __u32 haddr = ntohl(addr); -@@ -940,6 +940,8 @@ static int inet_abc_len(__be32 addr) +@@ -945,6 +945,8 @@ static int inet_abc_len(__be32 addr) rc = 16; else if (IN_CLASSC(haddr)) rc = 24; diff --git a/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch b/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch index dddc347436..bbc04555f7 100644 --- a/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch +++ b/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h -@@ -252,4 +252,26 @@ static inline bool rt6_duplicate_nexthop +@@ -253,4 +253,26 @@ static inline bool rt6_duplicate_nexthop ipv6_addr_equal(&a->rt6i_gateway, &b->rt6i_gateway) && !lwtunnel_cmp_encap(a->dst.lwtstate, b->dst.lwtstate); } diff --git a/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch b/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch index 260795b586..288fdbf267 100644 --- a/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch +++ b/target/linux/generic/backport-4.19/451-v5.0-mtd-spinand-Add-initial-support-for-Toshiba-TC58CVG2.patch @@ -28,7 +28,7 @@ Signed-off-by: Miquel Raynal obj-$(CONFIG_MTD_SPI_NAND) += spinand.o --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -761,6 +761,7 @@ static const struct nand_ops spinand_ops +@@ -762,6 +762,7 @@ static const struct nand_ops spinand_ops static const struct spinand_manufacturer *spinand_manufacturers[] = { ¯onix_spinand_manufacturer, µn_spinand_manufacturer, diff --git a/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch b/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch index f6f1ee695c..d3ded95ccb 100644 --- a/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch +++ b/target/linux/generic/backport-4.19/452-v5.0-mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch @@ -25,7 +25,7 @@ Signed-off-by: Miquel Raynal obj-$(CONFIG_MTD_SPI_NAND) += spinand.o --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -759,6 +759,7 @@ static const struct nand_ops spinand_ops +@@ -760,6 +760,7 @@ static const struct nand_ops spinand_ops }; static const struct spinand_manufacturer *spinand_manufacturers[] = { diff --git a/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch b/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch index 13d7e59feb..ee81f97f4e 100644 --- a/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch +++ b/target/linux/generic/backport-4.19/461-v5.3-mtd-spinand-Add-support-for-two-byte-device-IDs.patch @@ -17,7 +17,7 @@ Signed-off-by: Miquel Raynal --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -850,7 +850,7 @@ spinand_select_op_variant(struct spinand +@@ -851,7 +851,7 @@ spinand_select_op_variant(struct spinand */ int spinand_match_and_init(struct spinand_device *spinand, const struct spinand_info *table, diff --git a/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch b/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch index 6eed0e4d79..d30abdc143 100644 --- a/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch +++ b/target/linux/generic/backport-4.19/463-v5.3-mtd-spinand-Add-initial-support-for-Paragon-PN26G0xA.patch @@ -33,7 +33,7 @@ ADOPTED FROM UPSTREAM due to upstream commit 377e517b5fa5 in Linux 5.2 obj-$(CONFIG_MTD_SPI_NAND) += spinand.o --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -762,6 +762,7 @@ static const struct spinand_manufacturer +@@ -763,6 +763,7 @@ static const struct spinand_manufacturer &gigadevice_spinand_manufacturer, ¯onix_spinand_manufacturer, µn_spinand_manufacturer, diff --git a/target/linux/generic/hack-4.14/902-debloat_proc.patch b/target/linux/generic/hack-4.14/902-debloat_proc.patch index 30328b87d7..d4f2d90ef8 100644 --- a/target/linux/generic/hack-4.14/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.14/902-debloat_proc.patch @@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -2786,6 +2786,8 @@ static const struct file_operations proc +@@ -2788,6 +2788,8 @@ static const struct file_operations proc static int __init proc_vmalloc_init(void) { diff --git a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 245ef291ed..0c5016d368 100644 --- a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4815,6 +4815,9 @@ static enum gro_result dev_gro_receive(s +@@ -4816,6 +4816,9 @@ static enum gro_result dev_gro_receive(s enum gro_result ret; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -6292,6 +6295,48 @@ static void __netdev_adjacent_dev_unlink +@@ -6293,6 +6296,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info) -@@ -6330,6 +6375,7 @@ static int __netdev_upper_dev_link(struc +@@ -6331,6 +6376,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -6407,6 +6453,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -6408,6 +6454,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6971,6 +7018,7 @@ int dev_set_mac_address(struct net_devic +@@ -6972,6 +7019,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 6aa2bcfbb9..59645e2ecb 100644 --- a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5466,6 +5466,9 @@ static enum gro_result dev_gro_receive(s +@@ -5467,6 +5467,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -7124,6 +7127,48 @@ static void __netdev_adjacent_dev_unlink +@@ -7125,6 +7128,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -7174,6 +7219,7 @@ static int __netdev_upper_dev_link(struc +@@ -7175,6 +7220,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -7266,6 +7312,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -7267,6 +7313,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -7905,6 +7952,7 @@ int dev_set_mac_address(struct net_devic +@@ -7906,6 +7953,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/ipq40xx/patches-4.19/400-sdhci-msm-fix-clock.patch b/target/linux/ipq40xx/patches-4.19/400-sdhci-msm-fix-clock.patch index e2b4bcfc03..cc200a23ac 100644 --- a/target/linux/ipq40xx/patches-4.19/400-sdhci-msm-fix-clock.patch +++ b/target/linux/ipq40xx/patches-4.19/400-sdhci-msm-fix-clock.patch @@ -1,6 +1,6 @@ --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c -@@ -1681,7 +1681,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat +@@ -1688,7 +1688,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat static const struct sdhci_ops sdhci_msm_ops = { .reset = sdhci_reset, diff --git a/target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch b/target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch index 19474bff0d..97927b1e5e 100644 --- a/target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch +++ b/target/linux/ipq40xx/patches-4.19/706-ar40xx-abort-probe-on-missig-phy.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/ar40xx.c +++ b/drivers/net/phy/ar40xx.c -@@ -2021,6 +2021,12 @@ static int ar40xx_probe(struct platform_ +@@ -2054,6 +2054,12 @@ static int ar40xx_probe(struct platform_ /* register switch */ swdev = &priv->dev; @@ -13,7 +13,7 @@ swdev->alias = dev_name(&priv->mii_bus->dev); swdev->cpu_port = AR40XX_PORT_CPU; -@@ -2052,6 +2058,7 @@ err_unregister_switch: +@@ -2085,6 +2091,7 @@ err_unregister_switch: unregister_switch(&priv->dev); err_unregister_phy: phy_driver_unregister(&ar40xx_phy_driver); diff --git a/target/linux/ipq40xx/patches-4.19/716-essedma-reduce-write-reg.patch b/target/linux/ipq40xx/patches-4.19/716-essedma-reduce-write-reg.patch index 58b87467d6..e179fa6cfb 100644 --- a/target/linux/ipq40xx/patches-4.19/716-essedma-reduce-write-reg.patch +++ b/target/linux/ipq40xx/patches-4.19/716-essedma-reduce-write-reg.patch @@ -1,8 +1,6 @@ -diff --git a/drivers/net/ethernet/qualcomm/essedma/edma.c b/drivers/net/ethernet/qualcomm/essedma/edma.c -index fc274c8..e9d12a4 100644 --- a/drivers/net/ethernet/qualcomm/essedma/edma.c +++ b/drivers/net/ethernet/qualcomm/essedma/edma.c -@@ -2075,15 +2075,13 @@ int edma_poll(struct napi_struct *napi, int budget) +@@ -2079,15 +2079,13 @@ int edma_poll(struct napi_struct *napi, int i, work_done = 0; u16 rx_pending_fill; @@ -21,7 +19,7 @@ index fc274c8..e9d12a4 100644 /* Every core will have a start, which will be computed * in probe and stored in edma_percpu_info->tx_start variable. -@@ -2098,6 +2096,14 @@ int edma_poll(struct napi_struct *napi, int budget) +@@ -2102,6 +2100,14 @@ int edma_poll(struct napi_struct *napi, edma_percpu_info->tx_status &= ~(1 << queue_id); } @@ -36,7 +34,7 @@ index fc274c8..e9d12a4 100644 /* Every core will have a start, which will be computed * in probe and stored in edma_percpu_info->tx_start variable. * We will shift the status bit by tx_start to obtain -@@ -2122,15 +2128,6 @@ int edma_poll(struct napi_struct *napi, int budget) +@@ -2126,15 +2132,6 @@ int edma_poll(struct napi_struct *napi, } } diff --git a/target/linux/ipq40xx/patches-4.19/901-essedma-disable-default-vlan-tagging.patch b/target/linux/ipq40xx/patches-4.19/901-essedma-disable-default-vlan-tagging.patch index ec339c4795..e2cb37fc0c 100644 --- a/target/linux/ipq40xx/patches-4.19/901-essedma-disable-default-vlan-tagging.patch +++ b/target/linux/ipq40xx/patches-4.19/901-essedma-disable-default-vlan-tagging.patch @@ -22,11 +22,9 @@ Signed-off-by: Chen Minqiang drivers/net/ethernet/qualcomm/essedma/edma.c | 14 +++++--------- 2 files changed, 7 insertions(+), 12 deletions(-) -diff --git a/arch/arm/boot/dts/qcom-ipq4019.dtsi b/arch/arm/boot/dts/qcom-ipq4019.dtsi -index 3c4617f..7c3af8e 100644 --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -598,8 +598,7 @@ +@@ -652,8 +652,7 @@ qcom,page-mode = <0>; qcom,rx_head_buf_size = <1540>; qcom,mdio_supported; @@ -36,7 +34,7 @@ index 3c4617f..7c3af8e 100644 interrupts = <0 65 IRQ_TYPE_EDGE_RISING 0 66 IRQ_TYPE_EDGE_RISING 0 67 IRQ_TYPE_EDGE_RISING -@@ -637,7 +636,7 @@ +@@ -691,7 +690,7 @@ gmac0: gmac0 { local-mac-address = [00 00 00 00 00 00]; @@ -45,11 +43,9 @@ index 3c4617f..7c3af8e 100644 }; gmac1: gmac1 { -diff --git a/drivers/net/ethernet/qualcomm/essedma/edma.c b/drivers/net/ethernet/qualcomm/essedma/edma.c -index 05f9ce9..a3c0d66 100644 --- a/drivers/net/ethernet/qualcomm/essedma/edma.c +++ b/drivers/net/ethernet/qualcomm/essedma/edma.c -@@ -750,13 +750,11 @@ static void edma_rx_complete(struct edma_common_info *edma_cinfo, +@@ -721,13 +721,11 @@ static u16 edma_rx_complete(struct edma_ edma_receive_checksum(rd, skb); /* Process VLAN HW acceleration indication provided by HW */ @@ -68,7 +64,7 @@ index 05f9ce9..a3c0d66 100644 /* Update rx statistics */ adapter->stats.rx_packets++; -@@ -1434,8 +1432,6 @@ netdev_tx_t edma_xmit(struct sk_buff *skb, +@@ -1408,8 +1406,6 @@ netdev_tx_t edma_xmit(struct sk_buff *sk if (!adapter->edma_cinfo->is_single_phy) { if (unlikely(skb_vlan_tag_present(skb))) flags_transmit |= EDMA_VLAN_TX_TAG_INSERT_FLAG; @@ -77,6 +73,3 @@ index 05f9ce9..a3c0d66 100644 } /* Check and mark checksum offload */ --- -2.7.4 - diff --git a/target/linux/ipq40xx/patches-4.19/995-4g-add-u9300-driver.patch b/target/linux/ipq40xx/patches-4.19/995-4g-add-u9300-driver.patch index aeae334d60..6c4d0be0fd 100644 --- a/target/linux/ipq40xx/patches-4.19/995-4g-add-u9300-driver.patch +++ b/target/linux/ipq40xx/patches-4.19/995-4g-add-u9300-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -1297,6 +1297,7 @@ static const struct usb_device_id products[] = { +@@ -1301,6 +1301,7 @@ static const struct usb_device_id produc {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */ {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */ {QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */ @@ -10,7 +10,7 @@ {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */ --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -381,6 +381,7 @@ static void option_instat_callback(struct urb *urb); +@@ -381,6 +381,7 @@ static void option_instat_callback(struc * Mobidata, etc sell under their own brand names. */ #define LONGCHEER_VENDOR_ID 0x1c9e @@ -18,7 +18,7 @@ /* 4G Systems products */ /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * -@@ -571,6 +572,16 @@ static void option_instat_callback(struct urb *urb); +@@ -571,6 +572,16 @@ static void option_instat_callback(struc /* Device needs ZLP */ #define ZLP BIT(17) @@ -35,7 +35,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, -@@ -605,6 +616,8 @@ static const struct usb_device_id option_ids[] = { +@@ -605,6 +616,8 @@ static const struct usb_device_id option { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) }, { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), .driver_info = RSVD(4) }, diff --git a/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch b/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch index f3e79b2178..2bcd3553f4 100644 --- a/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch +++ b/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch @@ -55,7 +55,7 @@ Signed-off-by: Georgi Djakov mutex_unlock(&priv->lock); return ret; -@@ -197,6 +227,8 @@ static int cpufreq_init(struct cpufreq_p +@@ -197,6 +228,8 @@ static int cpufreq_init(struct cpufreq_p const char *name; int ret; struct srcu_notifier_head *opp_srcu_head; @@ -64,7 +64,7 @@ Signed-off-by: Georgi Djakov cpu_dev = get_cpu_device(policy->cpu); if (!cpu_dev) { -@@ -305,6 +337,13 @@ static int cpufreq_init(struct cpufreq_p +@@ -305,6 +338,13 @@ static int cpufreq_init(struct cpufreq_p policy->suspend_freq = dev_pm_opp_get_suspend_opp_freq(cpu_dev) / 1000; diff --git a/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch b/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch index d9d76e409b..a5ae5629f7 100644 --- a/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch +++ b/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch @@ -10,7 +10,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c -@@ -144,8 +144,10 @@ static int opp_notifier(struct notifier_ +@@ -145,8 +145,10 @@ static int opp_notifier(struct notifier_ ret = PTR_ERR(cpu_reg); goto out; } diff --git a/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch b/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch index 998e99c721..951fe4f74e 100644 --- a/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch +++ b/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch @@ -22,13 +22,13 @@ Signed-off-by: Gokul Sriram Palanisamy @@ -54,7 +54,7 @@ enum { - AHCI_MAX_PORTS = 32, + AHCI_MAX_PORTS = 32, - AHCI_MAX_CLKS = 5, + AHCI_MAX_CLKS = 6, - AHCI_MAX_SG = 168, /* hardware max is 64K */ - AHCI_DMA_BOUNDARY = 0xffffffff, - AHCI_MAX_CMDS = 32, ---- a/dev/null + AHCI_MAX_SG = 168, /* hardware max is 64K */ + AHCI_DMA_BOUNDARY = 0xffffffff, + AHCI_MAX_CMDS = 32, +--- /dev/null +++ b/drivers/ata/ahci_ipq.c @@ -0,0 +1,248 @@ +/* Copyright (c) 2015 - 2017, The Linux Foundation. All rights reserved. @@ -283,7 +283,7 @@ Signed-off-by: Gokul Sriram Palanisamy +++ b/drivers/ata/Kconfig @@ -162,6 +162,14 @@ config AHCI_IMX - If unsure, say N. + If unsure, say N. +config AHCI_IPQ + tristate "Qualcomm Atheros IPQ806X AHCI SATA support" @@ -294,11 +294,11 @@ Signed-off-by: Gokul Sriram Palanisamy + If unsure, say N. + config AHCI_CEVA - tristate "CEVA AHCI SATA support" - depends on OF + tristate "CEVA AHCI SATA support" + depends on OF --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile -@@ -18,6 +18,7 @@ +@@ -18,6 +18,7 @@ obj-$(CONFIG_AHCI_CEVA) += ahci_ceva.o obj-$(CONFIG_AHCI_DA850) += ahci_da850.o libahci.o libahci_platform.o obj-$(CONFIG_AHCI_DM816) += ahci_dm816.o libahci.o libahci_platform.o obj-$(CONFIG_AHCI_IMX) += ahci_imx.o libahci.o libahci_platform.o diff --git a/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch b/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch index 14127ff67e..5b81e89375 100644 --- a/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch +++ b/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -1292,6 +1292,7 @@ static const struct usb_device_id products[] = { +@@ -1290,6 +1290,7 @@ static const struct usb_device_id produc {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */ {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */ {QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */ @@ -10,7 +10,7 @@ {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */ --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -384,6 +384,7 @@ static void option_instat_callback(struct urb *urb); +@@ -384,6 +384,7 @@ static void option_instat_callback(struc * Mobidata, etc sell under their own brand names. */ #define LONGCHEER_VENDOR_ID 0x1c9e @@ -18,7 +18,7 @@ /* 4G Systems products */ /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * -@@ -574,6 +575,16 @@ static void option_instat_callback(struct urb *urb); +@@ -574,6 +575,16 @@ static void option_instat_callback(struc /* Device needs ZLP */ #define ZLP BIT(17) @@ -35,7 +35,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, -@@ -608,6 +619,8 @@ static const struct usb_device_id option_ids[] = { +@@ -608,6 +619,8 @@ static const struct usb_device_id option { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) }, { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), .driver_info = RSVD(4) }, diff --git a/target/linux/ipq806x/patches-4.19/995-4g-add-u9300-driver.patch b/target/linux/ipq806x/patches-4.19/995-4g-add-u9300-driver.patch index aeae334d60..6c4d0be0fd 100644 --- a/target/linux/ipq806x/patches-4.19/995-4g-add-u9300-driver.patch +++ b/target/linux/ipq806x/patches-4.19/995-4g-add-u9300-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -1297,6 +1297,7 @@ static const struct usb_device_id products[] = { +@@ -1301,6 +1301,7 @@ static const struct usb_device_id produc {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */ {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */ {QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */ @@ -10,7 +10,7 @@ {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */ --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -381,6 +381,7 @@ static void option_instat_callback(struct urb *urb); +@@ -381,6 +381,7 @@ static void option_instat_callback(struc * Mobidata, etc sell under their own brand names. */ #define LONGCHEER_VENDOR_ID 0x1c9e @@ -18,7 +18,7 @@ /* 4G Systems products */ /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * -@@ -571,6 +572,16 @@ static void option_instat_callback(struct urb *urb); +@@ -571,6 +572,16 @@ static void option_instat_callback(struc /* Device needs ZLP */ #define ZLP BIT(17) @@ -35,7 +35,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, -@@ -605,6 +616,8 @@ static const struct usb_device_id option_ids[] = { +@@ -605,6 +616,8 @@ static const struct usb_device_id option { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) }, { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), .driver_info = RSVD(4) }, diff --git a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch index 784b10dd50..0dc609eed3 100644 --- a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch @@ -442,7 +442,7 @@ Signed-off-by: Yangbo Lu --- a/drivers/soc/imx/gpc.c +++ b/drivers/soc/imx/gpc.c -@@ -209,7 +209,7 @@ static int imx_pgc_power_domain_probe(st +@@ -210,7 +210,7 @@ static int imx_pgc_power_domain_probe(st goto genpd_err; } @@ -539,7 +539,7 @@ Signed-off-by: Yangbo Lu --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -2349,7 +2349,8 @@ int register_netdevice_notifier(struct n +@@ -2354,7 +2354,8 @@ int register_netdevice_notifier(struct n int unregister_netdevice_notifier(struct notifier_block *nb); struct netdev_notifier_info { @@ -549,7 +549,7 @@ Signed-off-by: Yangbo Lu }; struct netdev_notifier_info_ext { -@@ -2381,6 +2382,7 @@ static inline void netdev_notifier_info_ +@@ -2386,6 +2387,7 @@ static inline void netdev_notifier_info_ struct net_device *dev) { info->dev = dev; @@ -557,7 +557,7 @@ Signed-off-by: Yangbo Lu } static inline struct net_device * -@@ -2389,6 +2391,12 @@ netdev_notifier_info_to_dev(const struct +@@ -2394,6 +2396,12 @@ netdev_notifier_info_to_dev(const struct return info->dev; } @@ -572,15 +572,15 @@ Signed-off-by: Yangbo Lu --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -964,6 +964,7 @@ void kfree_skb_list(struct sk_buff *segs +@@ -977,6 +977,7 @@ void kfree_skb_list(struct sk_buff *segs void skb_tx_error(struct sk_buff *skb); void consume_skb(struct sk_buff *skb); void __consume_stateless_skb(struct sk_buff *skb); +void skb_recycle(struct sk_buff *skb); void __kfree_skb(struct sk_buff *skb); - extern struct kmem_cache *skbuff_head_cache; -@@ -3315,6 +3316,7 @@ static inline void skb_free_datagram_loc + #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) +@@ -3334,6 +3335,7 @@ static inline void skb_free_datagram_loc } int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags); int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len); @@ -642,7 +642,7 @@ Signed-off-by: Yangbo Lu --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -162,7 +162,6 @@ static struct list_head offload_base __r +@@ -165,7 +165,6 @@ static struct list_head offload_base __r static int netif_rx_internal(struct sk_buff *skb); static int call_netdevice_notifiers_info(unsigned long val, @@ -650,7 +650,7 @@ Signed-off-by: Yangbo Lu struct netdev_notifier_info *info); static struct napi_struct *napi_by_id(unsigned int napi_id); -@@ -1312,10 +1311,11 @@ EXPORT_SYMBOL(netdev_features_change); +@@ -1315,10 +1314,11 @@ EXPORT_SYMBOL(netdev_features_change); void netdev_state_change(struct net_device *dev) { if (dev->flags & IFF_UP) { @@ -665,7 +665,7 @@ Signed-off-by: Yangbo Lu &change_info.info); rtmsg_ifinfo(RTM_NEWLINK, dev, 0, GFP_KERNEL); } -@@ -1536,9 +1536,10 @@ EXPORT_SYMBOL(dev_disable_lro); +@@ -1539,9 +1539,10 @@ EXPORT_SYMBOL(dev_disable_lro); static int call_netdevice_notifier(struct notifier_block *nb, unsigned long val, struct net_device *dev) { @@ -678,7 +678,7 @@ Signed-off-by: Yangbo Lu return nb->notifier_call(nb, val, &info); } -@@ -1663,11 +1664,9 @@ EXPORT_SYMBOL(unregister_netdevice_notif +@@ -1666,11 +1667,9 @@ EXPORT_SYMBOL(unregister_netdevice_notif */ static int call_netdevice_notifiers_info(unsigned long val, @@ -690,7 +690,7 @@ Signed-off-by: Yangbo Lu return raw_notifier_call_chain(&netdev_chain, val, info); } -@@ -1682,9 +1681,11 @@ static int call_netdevice_notifiers_info +@@ -1685,9 +1684,11 @@ static int call_netdevice_notifiers_info int call_netdevice_notifiers(unsigned long val, struct net_device *dev) { @@ -704,7 +704,7 @@ Signed-off-by: Yangbo Lu } EXPORT_SYMBOL(call_netdevice_notifiers); -@@ -1707,7 +1708,7 @@ static int call_netdevice_notifiers_mtu( +@@ -1710,7 +1711,7 @@ static int call_netdevice_notifiers_mtu( BUILD_BUG_ON(offsetof(struct netdev_notifier_info_ext, info) != 0); @@ -713,7 +713,7 @@ Signed-off-by: Yangbo Lu } #ifdef CONFIG_NET_INGRESS -@@ -6341,7 +6342,15 @@ static int __netdev_upper_dev_link(struc +@@ -6352,7 +6353,15 @@ static int __netdev_upper_dev_link(struc struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info) { @@ -730,7 +730,7 @@ Signed-off-by: Yangbo Lu int ret = 0; ASSERT_RTNL(); -@@ -6359,12 +6368,7 @@ static int __netdev_upper_dev_link(struc +@@ -6370,12 +6379,7 @@ static int __netdev_upper_dev_link(struc if (master && netdev_master_upper_dev_get(dev)) return -EBUSY; @@ -744,7 +744,7 @@ Signed-off-by: Yangbo Lu &changeupper_info.info); ret = notifier_to_errno(ret); if (ret) -@@ -6376,7 +6380,7 @@ static int __netdev_upper_dev_link(struc +@@ -6387,7 +6391,7 @@ static int __netdev_upper_dev_link(struc return ret; netdev_update_addr_mask(dev); @@ -753,7 +753,7 @@ Signed-off-by: Yangbo Lu &changeupper_info.info); ret = notifier_to_errno(ret); if (ret) -@@ -6440,21 +6444,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li +@@ -6451,21 +6455,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li void netdev_upper_dev_unlink(struct net_device *dev, struct net_device *upper_dev) { @@ -784,7 +784,7 @@ Signed-off-by: Yangbo Lu &changeupper_info.info); } EXPORT_SYMBOL(netdev_upper_dev_unlink); -@@ -6470,11 +6478,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink); +@@ -6481,11 +6489,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink); void netdev_bonding_info_change(struct net_device *dev, struct netdev_bonding_info *bonding_info) { @@ -800,7 +800,7 @@ Signed-off-by: Yangbo Lu &info.info); } EXPORT_SYMBOL(netdev_bonding_info_change); -@@ -6600,11 +6610,13 @@ EXPORT_SYMBOL(dev_get_nest_level); +@@ -6611,11 +6621,13 @@ EXPORT_SYMBOL(dev_get_nest_level); void netdev_lower_state_changed(struct net_device *lower_dev, void *lower_state_info) { @@ -816,7 +816,7 @@ Signed-off-by: Yangbo Lu &changelowerstate_info.info); } EXPORT_SYMBOL(netdev_lower_state_changed); -@@ -6895,11 +6907,14 @@ void __dev_notify_flags(struct net_devic +@@ -6906,11 +6918,14 @@ void __dev_notify_flags(struct net_devic if (dev->flags & IFF_UP && (changes & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | IFF_VOLATILE))) { @@ -837,7 +837,7 @@ Signed-off-by: Yangbo Lu --- a/net/core/skbuff.c +++ b/net/core/skbuff.c -@@ -803,6 +803,32 @@ void napi_consume_skb(struct sk_buff *sk +@@ -906,6 +906,32 @@ void napi_consume_skb(struct sk_buff *sk } EXPORT_SYMBOL(napi_consume_skb); @@ -870,7 +870,7 @@ Signed-off-by: Yangbo Lu /* Make sure a field is enclosed inside headers_start/headers_end section */ #define CHECK_SKB_FIELD(field) \ BUILD_BUG_ON(offsetof(struct sk_buff, field) < \ -@@ -1322,7 +1348,7 @@ static void skb_headers_offset_update(st +@@ -1429,7 +1455,7 @@ static void skb_headers_offset_update(st skb->inner_mac_header += off; } @@ -879,7 +879,7 @@ Signed-off-by: Yangbo Lu { __copy_skb_header(new, old); -@@ -1330,6 +1356,7 @@ static void copy_skb_header(struct sk_bu +@@ -1437,6 +1463,7 @@ static void copy_skb_header(struct sk_bu skb_shinfo(new)->gso_segs = skb_shinfo(old)->gso_segs; skb_shinfo(new)->gso_type = skb_shinfo(old)->gso_type; } diff --git a/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch b/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch index 871a8068cb..919bb30cfc 100644 --- a/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch @@ -607,9 +607,9 @@ Signed-off-by: Zhao Qiang +}; + &enet0 { - tbi-handle = <&tbi1>; + tbi-handle = <&tbi0>; phy-handle = <&sgmii_phy2>; -@@ -228,6 +243,10 @@ +@@ -235,6 +250,10 @@ }; }; @@ -620,7 +620,7 @@ Signed-off-by: Zhao Qiang &sai1 { status = "okay"; }; -@@ -243,3 +262,11 @@ +@@ -250,3 +269,11 @@ &uart1 { status = "okay"; }; @@ -740,7 +740,7 @@ Signed-off-by: Zhao Qiang dcu: dcu@2ce0000 { compatible = "fsl,ls1021a-dcu"; reg = <0x0 0x2ce0000 0x0 0x10000>; -@@ -684,6 +734,11 @@ +@@ -693,6 +743,11 @@ dr_mode = "host"; snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; @@ -752,7 +752,7 @@ Signed-off-by: Zhao Qiang }; pcie@3400000 { -@@ -691,7 +746,9 @@ +@@ -700,7 +755,9 @@ reg = <0x00 0x03400000 0x0 0x00010000 /* controller registers */ 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -763,7 +763,7 @@ Signed-off-by: Zhao Qiang fsl,pcie-scfg = <&scfg 0>; #address-cells = <3>; #size-cells = <2>; -@@ -707,6 +764,7 @@ +@@ -716,6 +773,7 @@ <0000 0 0 2 &gic GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 4 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; @@ -771,7 +771,7 @@ Signed-off-by: Zhao Qiang }; pcie@3500000 { -@@ -714,7 +772,9 @@ +@@ -723,7 +781,9 @@ reg = <0x00 0x03500000 0x0 0x00010000 /* controller registers */ 0x48 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -782,7 +782,7 @@ Signed-off-by: Zhao Qiang fsl,pcie-scfg = <&scfg 1>; #address-cells = <3>; #size-cells = <2>; -@@ -730,6 +790,47 @@ +@@ -739,6 +799,47 @@ <0000 0 0 2 &gic GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 4 &gic GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; diff --git a/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch b/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch index 3e512cb357..887a19e0e1 100644 --- a/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch @@ -156538,7 +156538,7 @@ Signed-off-by: Zhao Qiang +#endif /* __NET_IOCTLS_H */ --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c -@@ -313,6 +313,13 @@ static void dev_watchdog(unsigned long a +@@ -321,6 +321,13 @@ static void dev_watchdog(unsigned long a txq->trans_timeout++; break; } diff --git a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch index 47481cfa99..1a1913a0ec 100644 --- a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch @@ -323,7 +323,7 @@ Signed-off-by: Zhao Chenhui usb_phy_set_suspend(dwc->usb2_phy, 0); usb_phy_set_suspend(dwc->usb3_phy, 0); ret = phy_power_on(dwc->usb2_generic_phy); -@@ -870,6 +1006,22 @@ static int dwc3_core_init(struct dwc3 *d +@@ -873,6 +1009,22 @@ static int dwc3_core_init(struct dwc3 *d dwc3_writel(dwc->regs, DWC3_GUCTL1, reg); } @@ -346,7 +346,7 @@ Signed-off-by: Zhao Chenhui return 0; err4: -@@ -1076,6 +1228,8 @@ static void dwc3_get_properties(struct d +@@ -1079,6 +1231,8 @@ static void dwc3_get_properties(struct d &hird_threshold); dwc->usb3_lpm_capable = device_property_read_bool(dev, "snps,usb3_lpm_capable"); @@ -355,9 +355,9 @@ Signed-off-by: Zhao Chenhui dwc->disable_scramble_quirk = device_property_read_bool(dev, "snps,disable_scramble_quirk"); -@@ -1108,8 +1262,16 @@ static void dwc3_get_properties(struct d - dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev, - "snps,dis-tx-ipgap-linecheck-quirk"); +@@ -1113,8 +1267,16 @@ static void dwc3_get_properties(struct d + dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev, + "snps,parkmode-disable-ss-quirk"); + dwc->quirk_reverse_in_out = device_property_read_bool(dev, + "snps,quirk_reverse_in_out"); @@ -372,7 +372,7 @@ Signed-off-by: Zhao Chenhui device_property_read_u8(dev, "snps,tx_de_emphasis", &tx_de_emphasis); device_property_read_string(dev, "snps,hsphy_interface", -@@ -1120,6 +1282,9 @@ static void dwc3_get_properties(struct d +@@ -1125,6 +1287,9 @@ static void dwc3_get_properties(struct d dwc->dis_metastability_quirk = device_property_read_bool(dev, "snps,dis_metastability_quirk"); @@ -382,7 +382,7 @@ Signed-off-by: Zhao Chenhui dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1371,12 +1536,14 @@ static int dwc3_resume_common(struct dwc +@@ -1376,12 +1541,14 @@ static int dwc3_resume_common(struct dwc switch (dwc->dr_mode) { case USB_DR_MODE_PERIPHERAL: @@ -440,9 +440,9 @@ Signed-off-by: Zhao Chenhui +#define DWC3_GUCTL_HSTINAUTORETRY BIT(14) + /* Global User Control 1 Register */ + #define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17) #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28) - #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24) -@@ -477,6 +506,14 @@ +@@ -478,6 +507,14 @@ #define DWC3_DEV_IMOD_INTERVAL_SHIFT 0 #define DWC3_DEV_IMOD_INTERVAL_MASK (0xffff << 0) @@ -457,7 +457,7 @@ Signed-off-by: Zhao Chenhui /* Structures */ struct dwc3_trb; -@@ -788,6 +825,7 @@ struct dwc3_scratchpad_array { +@@ -789,6 +826,7 @@ struct dwc3_scratchpad_array { * @regs: base address for our registers * @regs_size: address space size * @fladj: frame length adjustment @@ -465,7 +465,7 @@ Signed-off-by: Zhao Chenhui * @irq_gadget: peripheral controller's IRQ number * @nr_scratch: number of scratch buffers * @u1u2: only used on revisions <1.83a for workaround -@@ -843,6 +881,7 @@ struct dwc3_scratchpad_array { +@@ -844,6 +882,7 @@ struct dwc3_scratchpad_array { * @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround * @three_stage_setup: set if we perform a three phase setup * @usb3_lpm_capable: set if hadrware supports Link Power Management @@ -473,7 +473,7 @@ Signed-off-by: Zhao Chenhui * @disable_scramble_quirk: set if we enable the disable scramble quirk * @u2exit_lfps_quirk: set if we enable u2exit lfps quirk * @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk -@@ -922,6 +961,12 @@ struct dwc3 { +@@ -925,6 +964,12 @@ struct dwc3 { enum usb_phy_interface hsphy_mode; u32 fladj; @@ -486,7 +486,7 @@ Signed-off-by: Zhao Chenhui u32 irq_gadget; u32 nr_scratch; u32 u1u2; -@@ -1006,6 +1051,7 @@ struct dwc3 { +@@ -1009,6 +1054,7 @@ struct dwc3 { unsigned setup_packet_pending:1; unsigned three_stage_setup:1; unsigned usb3_lpm_capable:1; @@ -494,7 +494,7 @@ Signed-off-by: Zhao Chenhui unsigned disable_scramble_quirk:1; unsigned u2exit_lfps_quirk:1; -@@ -1025,6 +1071,11 @@ struct dwc3 { +@@ -1029,6 +1075,11 @@ struct dwc3 { unsigned tx_de_emphasis_quirk:1; unsigned tx_de_emphasis:2; diff --git a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch index 6077f979cf..4362863b7b 100644 --- a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch @@ -5715,7 +5715,7 @@ Signed-off-by: Yangbo Lu int (*start)(struct pci_epc *epc); void (*stop)(struct pci_epc *epc); struct module *owner; -@@ -91,8 +97,17 @@ struct pci_epc { +@@ -94,8 +100,17 @@ struct pci_epc { struct config_group *group; /* spinlock to protect against concurrent access of EP controller */ spinlock_t lock; @@ -5733,7 +5733,7 @@ Signed-off-by: Yangbo Lu #define to_pci_epc(device) container_of((device), struct pci_epc, dev) #define pci_epc_create(dev, ops) \ -@@ -124,17 +139,23 @@ void pci_epc_destroy(struct pci_epc *epc +@@ -127,17 +142,23 @@ void pci_epc_destroy(struct pci_epc *epc int pci_epc_add_epf(struct pci_epc *epc, struct pci_epf *epf); void pci_epc_linkup(struct pci_epc *epc); void pci_epc_remove_epf(struct pci_epc *epc, struct pci_epf *epf); diff --git a/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch b/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch index 60d0c889e5..02688c74cd 100644 --- a/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch @@ -265,7 +265,7 @@ Signed-off-by: Yinbo Zhu u32 val; sdhci_reset(host, mask); -@@ -622,6 +713,12 @@ static void esdhc_reset(struct sdhci_hos +@@ -619,6 +710,12 @@ static void esdhc_reset(struct sdhci_hos val = sdhci_readl(host, ESDHC_TBCTL); val &= ~ESDHC_TB_EN; sdhci_writel(host, val, ESDHC_TBCTL); @@ -278,7 +278,7 @@ Signed-off-by: Yinbo Zhu } } -@@ -633,6 +730,7 @@ static void esdhc_reset(struct sdhci_hos +@@ -630,6 +727,7 @@ static void esdhc_reset(struct sdhci_hos static const struct of_device_id scfg_device_ids[] = { { .compatible = "fsl,t1040-scfg", }, { .compatible = "fsl,ls1012a-scfg", }, @@ -286,7 +286,7 @@ Signed-off-by: Yinbo Zhu { .compatible = "fsl,ls1046a-scfg", }, {} }; -@@ -695,23 +793,91 @@ static int esdhc_signal_voltage_switch(s +@@ -692,23 +790,91 @@ static int esdhc_signal_voltage_switch(s } } @@ -383,7 +383,7 @@ Signed-off-by: Yinbo Zhu } #ifdef CONFIG_PM_SLEEP -@@ -760,7 +926,7 @@ static const struct sdhci_ops sdhci_esdh +@@ -757,7 +923,7 @@ static const struct sdhci_ops sdhci_esdh .adma_workaround = esdhc_of_adma_workaround, .set_bus_width = esdhc_pltfm_set_bus_width, .reset = esdhc_reset, @@ -392,7 +392,7 @@ Signed-off-by: Yinbo Zhu }; static const struct sdhci_ops sdhci_esdhc_le_ops = { -@@ -777,7 +943,7 @@ static const struct sdhci_ops sdhci_esdh +@@ -774,7 +940,7 @@ static const struct sdhci_ops sdhci_esdh .adma_workaround = esdhc_of_adma_workaround, .set_bus_width = esdhc_pltfm_set_bus_width, .reset = esdhc_reset, @@ -401,7 +401,7 @@ Signed-off-by: Yinbo Zhu }; static const struct sdhci_pltfm_data sdhci_esdhc_be_pdata = { -@@ -803,8 +969,20 @@ static struct soc_device_attribute soc_i +@@ -800,8 +966,20 @@ static struct soc_device_attribute soc_i { }, }; @@ -422,7 +422,7 @@ Signed-off-by: Yinbo Zhu struct sdhci_pltfm_host *pltfm_host; struct sdhci_esdhc *esdhc; struct device_node *np; -@@ -824,6 +1002,24 @@ static void esdhc_init(struct platform_d +@@ -821,6 +999,24 @@ static void esdhc_init(struct platform_d else esdhc->quirk_incorrect_hostver = false; @@ -447,7 +447,7 @@ Signed-off-by: Yinbo Zhu np = pdev->dev.of_node; clk = of_clk_get(np, 0); if (!IS_ERR(clk)) { -@@ -851,6 +1047,12 @@ static void esdhc_init(struct platform_d +@@ -848,6 +1044,12 @@ static void esdhc_init(struct platform_d } } @@ -460,7 +460,7 @@ Signed-off-by: Yinbo Zhu static int sdhci_esdhc_probe(struct platform_device *pdev) { struct sdhci_host *host; -@@ -874,6 +1076,7 @@ static int sdhci_esdhc_probe(struct plat +@@ -871,6 +1073,7 @@ static int sdhci_esdhc_probe(struct plat host->mmc_host_ops.start_signal_voltage_switch = esdhc_signal_voltage_switch; host->mmc_host_ops.execute_tuning = esdhc_execute_tuning; @@ -468,7 +468,7 @@ Signed-off-by: Yinbo Zhu host->tuning_delay = 1; esdhc_init(pdev, host); -@@ -882,6 +1085,11 @@ static int sdhci_esdhc_probe(struct plat +@@ -879,6 +1082,11 @@ static int sdhci_esdhc_probe(struct plat pltfm_host = sdhci_priv(host); esdhc = sdhci_pltfm_priv(pltfm_host); @@ -480,7 +480,7 @@ Signed-off-by: Yinbo Zhu if (esdhc->vendor_ver == VENDOR_V_22) host->quirks2 |= SDHCI_QUIRK2_HOST_NO_CMD23; -@@ -928,14 +1136,6 @@ static int sdhci_esdhc_probe(struct plat +@@ -925,14 +1133,6 @@ static int sdhci_esdhc_probe(struct plat return ret; } @@ -497,7 +497,7 @@ Signed-off-by: Yinbo Zhu .name = "sdhci-esdhc", --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c -@@ -2150,7 +2150,7 @@ static void sdhci_send_tuning(struct sdh +@@ -2148,7 +2148,7 @@ static void sdhci_send_tuning(struct sdh } @@ -506,9 +506,9 @@ Signed-off-by: Yinbo Zhu { int i; -@@ -2167,13 +2167,13 @@ static void __sdhci_execute_tuning(struc - pr_info("%s: Tuning timeout, falling back to fixed sampling clock\n", - mmc_hostname(host->mmc)); +@@ -2165,13 +2165,13 @@ static void __sdhci_execute_tuning(struc + pr_debug("%s: Tuning timeout, falling back to fixed sampling clock\n", + mmc_hostname(host->mmc)); sdhci_abort_tuning(host, opcode); - return; + return -ETIMEDOUT; @@ -522,7 +522,7 @@ Signed-off-by: Yinbo Zhu break; } -@@ -2185,6 +2185,7 @@ static void __sdhci_execute_tuning(struc +@@ -2183,6 +2183,7 @@ static void __sdhci_execute_tuning(struc pr_info("%s: Tuning failed, falling back to fixed sampling clock\n", mmc_hostname(host->mmc)); sdhci_reset_tuning(host); @@ -530,7 +530,7 @@ Signed-off-by: Yinbo Zhu } int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode) -@@ -2246,7 +2247,7 @@ int sdhci_execute_tuning(struct mmc_host +@@ -2244,7 +2245,7 @@ int sdhci_execute_tuning(struct mmc_host sdhci_start_tuning(host); diff --git a/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch b/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch index bb49ee75e8..46427a1d03 100644 --- a/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch +++ b/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1944,7 +1944,7 @@ static struct phy_driver genphy_driver = +@@ -1948,7 +1948,7 @@ static struct phy_driver genphy_driver = .config_init = genphy_config_init, .features = PHY_GBIT_FEATURES | SUPPORTED_MII | SUPPORTED_AUI | SUPPORTED_FIBRE | diff --git a/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch b/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch index 8cf900d143..374d4d3997 100644 --- a/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch +++ b/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch @@ -17,7 +17,7 @@ Signed-off-by: Alexandre Belloni --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig -@@ -1715,6 +1715,16 @@ config RTC_DRV_MT6397 +@@ -1716,6 +1716,16 @@ config RTC_DRV_MT6397 If you want to use Mediatek(R) RTC interface, select Y or M here. diff --git a/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch b/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch index 0513a085ac..f8840f930d 100644 --- a/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch +++ b/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch @@ -18,7 +18,7 @@ Signed-off-by: Alexandre Belloni --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig -@@ -1706,14 +1706,14 @@ config RTC_DRV_MOXART +@@ -1707,14 +1707,14 @@ config RTC_DRV_MOXART will be called rtc-moxart config RTC_DRV_MT6397 diff --git a/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch b/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch index 0f79fa4fd1..df099ea3f3 100644 --- a/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch +++ b/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch @@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman if (!xhci->shared_hcd) { --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -279,6 +279,9 @@ static int xhci_pci_setup(struct usb_hcd +@@ -280,6 +280,9 @@ static int xhci_pci_setup(struct usb_hcd if (!xhci->sbrn) pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn); diff --git a/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch b/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch index f21f8083ee..6c21fa30be 100644 --- a/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch +++ b/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3961,6 +3961,15 @@ static int mvneta_ethtool_set_wol(struct +@@ -3960,6 +3960,15 @@ static int mvneta_ethtool_set_wol(struct return ret; } @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau static const struct net_device_ops mvneta_netdev_ops = { .ndo_open = mvneta_open, .ndo_stop = mvneta_stop, -@@ -3971,6 +3980,7 @@ static const struct net_device_ops mvnet +@@ -3970,6 +3979,7 @@ static const struct net_device_ops mvnet .ndo_fix_features = mvneta_fix_features, .ndo_get_stats64 = mvneta_get_stats64, .ndo_do_ioctl = mvneta_ioctl, diff --git a/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch b/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch index 34a2d342db..8cefb1db26 100644 --- a/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch +++ b/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch @@ -251,7 +251,7 @@ Signed-off-by: Russell King } /* Release Tx descriptors */ -@@ -3061,7 +3020,6 @@ static int mvneta_setup_txqs(struct mvne +@@ -3060,7 +3019,6 @@ static int mvneta_setup_txqs(struct mvne static void mvneta_start_dev(struct mvneta_port *pp) { int cpu; @@ -259,7 +259,7 @@ Signed-off-by: Russell King mvneta_max_rx_size_set(pp, pp->pkt_size); mvneta_txq_max_tx_size_set(pp, pp->pkt_size); -@@ -3089,16 +3047,15 @@ static void mvneta_start_dev(struct mvne +@@ -3088,16 +3046,15 @@ static void mvneta_start_dev(struct mvne MVNETA_CAUSE_LINK_CHANGE | MVNETA_CAUSE_PSC_SYNC_CHANGE); @@ -278,7 +278,7 @@ Signed-off-by: Russell King if (!pp->neta_armada3700) { for_each_online_cpu(cpu) { -@@ -3251,103 +3208,232 @@ static int mvneta_set_mac_addr(struct ne +@@ -3250,103 +3207,232 @@ static int mvneta_set_mac_addr(struct ne return 0; } @@ -585,7 +585,7 @@ Signed-off-by: Russell King } /* Electing a CPU must be done in an atomic way: it should be done -@@ -3626,10 +3712,9 @@ static int mvneta_stop(struct net_device +@@ -3625,10 +3711,9 @@ static int mvneta_stop(struct net_device static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { @@ -598,7 +598,7 @@ Signed-off-by: Russell King } /* Ethtool methods */ -@@ -3640,44 +3725,25 @@ mvneta_ethtool_set_link_ksettings(struct +@@ -3639,44 +3724,25 @@ mvneta_ethtool_set_link_ksettings(struct const struct ethtool_link_ksettings *cmd) { struct mvneta_port *pp = netdev_priv(ndev); @@ -657,7 +657,7 @@ Signed-off-by: Russell King } /* Set interrupt coalescing for ethtools */ -@@ -3769,6 +3835,22 @@ static int mvneta_ethtool_set_ringparam( +@@ -3768,6 +3834,22 @@ static int mvneta_ethtool_set_ringparam( return 0; } @@ -680,7 +680,7 @@ Signed-off-by: Russell King static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset, u8 *data) { -@@ -3785,26 +3867,35 @@ static void mvneta_ethtool_update_stats( +@@ -3784,26 +3866,35 @@ static void mvneta_ethtool_update_stats( { const struct mvneta_statistic *s; void __iomem *base = pp->base; @@ -721,7 +721,7 @@ Signed-off-by: Russell King } } -@@ -3939,28 +4030,65 @@ static int mvneta_ethtool_get_rxfh(struc +@@ -3938,28 +4029,65 @@ static int mvneta_ethtool_get_rxfh(struc static void mvneta_ethtool_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) { @@ -795,7 +795,7 @@ Signed-off-by: Russell King static u16 mvneta_select_queue(struct net_device *dev, struct sk_buff *skb, void *accel_priv, select_queue_fallback_t fallback) -@@ -3984,13 +4112,15 @@ static const struct net_device_ops mvnet +@@ -3983,13 +4111,15 @@ static const struct net_device_ops mvnet }; static const struct ethtool_ops mvneta_eth_tool_ops = { @@ -812,7 +812,7 @@ Signed-off-by: Russell King .get_strings = mvneta_ethtool_get_strings, .get_ethtool_stats = mvneta_ethtool_get_stats, .get_sset_count = mvneta_ethtool_get_sset_count, -@@ -3998,10 +4128,12 @@ static const struct ethtool_ops mvneta_e +@@ -3997,10 +4127,12 @@ static const struct ethtool_ops mvneta_e .get_rxnfc = mvneta_ethtool_get_rxnfc, .get_rxfh = mvneta_ethtool_get_rxfh, .set_rxfh = mvneta_ethtool_set_rxfh, @@ -826,7 +826,7 @@ Signed-off-by: Russell King }; /* Initialize hw */ -@@ -4146,14 +4278,13 @@ static int mvneta_probe(struct platform_ +@@ -4145,14 +4277,13 @@ static int mvneta_probe(struct platform_ { struct resource *res; struct device_node *dn = pdev->dev.of_node; @@ -842,7 +842,7 @@ Signed-off-by: Russell King int tx_csum_limit; int phy_mode; int err; -@@ -4169,31 +4300,11 @@ static int mvneta_probe(struct platform_ +@@ -4168,31 +4299,11 @@ static int mvneta_probe(struct platform_ goto err_free_netdev; } @@ -875,7 +875,7 @@ Signed-off-by: Russell King } dev->tx_queue_len = MVNETA_MAX_TXD; -@@ -4204,12 +4315,7 @@ static int mvneta_probe(struct platform_ +@@ -4203,12 +4314,7 @@ static int mvneta_probe(struct platform_ pp = netdev_priv(dev); spin_lock_init(&pp->lock); @@ -889,7 +889,7 @@ Signed-off-by: Russell King pp->rxq_def = rxq_def; -@@ -4231,7 +4337,7 @@ static int mvneta_probe(struct platform_ +@@ -4230,7 +4336,7 @@ static int mvneta_probe(struct platform_ pp->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(pp->clk)) { err = PTR_ERR(pp->clk); @@ -898,7 +898,7 @@ Signed-off-by: Russell King } clk_prepare_enable(pp->clk); -@@ -4357,6 +4463,14 @@ static int mvneta_probe(struct platform_ +@@ -4356,6 +4462,14 @@ static int mvneta_probe(struct platform_ /* 9676 == 9700 - 20 and rounding to 8 */ dev->max_mtu = 9676; @@ -913,7 +913,7 @@ Signed-off-by: Russell King err = register_netdev(dev); if (err < 0) { dev_err(&pdev->dev, "failed to register\n"); -@@ -4368,14 +4482,6 @@ static int mvneta_probe(struct platform_ +@@ -4367,14 +4481,6 @@ static int mvneta_probe(struct platform_ platform_set_drvdata(pdev, pp->dev); @@ -928,7 +928,7 @@ Signed-off-by: Russell King return 0; err_netdev: -@@ -4384,16 +4490,14 @@ err_netdev: +@@ -4383,16 +4489,14 @@ err_netdev: mvneta_bm_pool_destroy(pp->bm_priv, pp->pool_short, 1 << pp->id); } @@ -947,7 +947,7 @@ Signed-off-by: Russell King err_free_irq: irq_dispose_mapping(dev->irq); err_free_netdev: -@@ -4405,7 +4509,6 @@ err_free_netdev: +@@ -4404,7 +4508,6 @@ err_free_netdev: static int mvneta_remove(struct platform_device *pdev) { struct net_device *dev = platform_get_drvdata(pdev); @@ -955,7 +955,7 @@ Signed-off-by: Russell King struct mvneta_port *pp = netdev_priv(dev); unregister_netdev(dev); -@@ -4413,10 +4516,8 @@ static int mvneta_remove(struct platform +@@ -4412,10 +4515,8 @@ static int mvneta_remove(struct platform clk_disable_unprepare(pp->clk); free_percpu(pp->ports); free_percpu(pp->stats); @@ -967,7 +967,7 @@ Signed-off-by: Russell King free_netdev(dev); if (pp->bm_priv) { -@@ -4468,9 +4569,6 @@ static int mvneta_resume(struct device * +@@ -4467,9 +4568,6 @@ static int mvneta_resume(struct device * return err; } diff --git a/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch b/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch index 906c163ac9..584e6381b4 100644 --- a/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch +++ b/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch @@ -18,7 +18,7 @@ Signed-off-by: Russell King struct device_node *dn; unsigned int tx_csum_limit; struct phylink *phylink; -@@ -4315,6 +4316,7 @@ static int mvneta_probe(struct platform_ +@@ -4314,6 +4315,7 @@ static int mvneta_probe(struct platform_ pp = netdev_priv(dev); spin_lock_init(&pp->lock); diff --git a/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch b/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch index 7d02b0a93b..0889aff969 100644 --- a/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch +++ b/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch @@ -24,7 +24,7 @@ Signed-off-by: Russell King mvneta_link_change(pp); } -@@ -3045,8 +3044,7 @@ static void mvneta_start_dev(struct mvne +@@ -3044,8 +3043,7 @@ static void mvneta_start_dev(struct mvne mvreg_write(pp, MVNETA_INTR_MISC_MASK, MVNETA_CAUSE_PHY_STATUS_CHANGE | @@ -34,7 +34,7 @@ Signed-off-by: Russell King phylink_start(pp->phylink); netif_tx_start_all_queues(pp->dev); -@@ -3542,8 +3540,7 @@ static int mvneta_cpu_online(unsigned in +@@ -3541,8 +3539,7 @@ static int mvneta_cpu_online(unsigned in on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true); mvreg_write(pp, MVNETA_INTR_MISC_MASK, MVNETA_CAUSE_PHY_STATUS_CHANGE | @@ -44,7 +44,7 @@ Signed-off-by: Russell King netif_tx_start_all_queues(pp->dev); spin_unlock(&pp->lock); return 0; -@@ -3584,8 +3581,7 @@ static int mvneta_cpu_dead(unsigned int +@@ -3583,8 +3580,7 @@ static int mvneta_cpu_dead(unsigned int on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true); mvreg_write(pp, MVNETA_INTR_MISC_MASK, MVNETA_CAUSE_PHY_STATUS_CHANGE | diff --git a/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch b/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch index 39eb33ac2c..7b0323b1a7 100644 --- a/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch +++ b/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch @@ -10,7 +10,7 @@ Signed-off-by: Russell King --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -4045,6 +4045,22 @@ static int mvneta_ethtool_set_wol(struct +@@ -4044,6 +4044,22 @@ static int mvneta_ethtool_set_wol(struct return ret; } @@ -33,7 +33,7 @@ Signed-off-by: Russell King static int mvneta_ethtool_get_eee(struct net_device *dev, struct ethtool_eee *eee) { -@@ -4129,6 +4145,8 @@ static const struct ethtool_ops mvneta_e +@@ -4128,6 +4144,8 @@ static const struct ethtool_ops mvneta_e .set_link_ksettings = mvneta_ethtool_set_link_ksettings, .get_wol = mvneta_ethtool_get_wol, .set_wol = mvneta_ethtool_set_wol, diff --git a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch index 19f8f1e632..f6e8f71743 100644 --- a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch +++ b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch @@ -15,7 +15,7 @@ Signed-off-by: Russell King --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -4045,22 +4045,6 @@ static int mvneta_ethtool_set_wol(struct +@@ -4044,22 +4044,6 @@ static int mvneta_ethtool_set_wol(struct return ret; } @@ -38,7 +38,7 @@ Signed-off-by: Russell King static int mvneta_ethtool_get_eee(struct net_device *dev, struct ethtool_eee *eee) { -@@ -4145,8 +4129,6 @@ static const struct ethtool_ops mvneta_e +@@ -4144,8 +4128,6 @@ static const struct ethtool_ops mvneta_e .set_link_ksettings = mvneta_ethtool_set_link_ksettings, .get_wol = mvneta_ethtool_get_wol, .set_wol = mvneta_ethtool_set_wol, @@ -129,7 +129,7 @@ Signed-off-by: Russell King /* 802.11 specific */ struct wireless_dev; /* 802.15.4 specific */ -@@ -1940,6 +1941,7 @@ struct net_device { +@@ -1945,6 +1946,7 @@ struct net_device { struct netprio_map __rcu *priomap; #endif struct phy_device *phydev; diff --git a/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch b/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch index 3be3e1a111..49e96d1e95 100644 --- a/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch +++ b/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch @@ -1,6 +1,6 @@ --- a/drivers/crypto/mxs-dcp.c +++ b/drivers/crypto/mxs-dcp.c -@@ -777,6 +777,24 @@ static void dcp_sha_cra_exit(struct cryp +@@ -831,6 +831,24 @@ static void dcp_sha_cra_exit(struct cryp { } @@ -25,7 +25,7 @@ /* AES 128 ECB and AES 128 CBC */ static struct crypto_alg dcp_aes_algs[] = { { -@@ -836,8 +854,11 @@ static struct ahash_alg dcp_sha1_alg = { +@@ -890,8 +908,11 @@ static struct ahash_alg dcp_sha1_alg = { .final = dcp_sha_final, .finup = dcp_sha_finup, .digest = dcp_sha_digest, @@ -37,7 +37,7 @@ .base = { .cra_name = "sha1", .cra_driver_name = "sha1-dcp", -@@ -860,8 +881,11 @@ static struct ahash_alg dcp_sha256_alg = +@@ -914,8 +935,11 @@ static struct ahash_alg dcp_sha256_alg = .final = dcp_sha_final, .finup = dcp_sha_finup, .digest = dcp_sha_digest, diff --git a/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch b/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch deleted file mode 100644 index f4285aadd0..0000000000 --- a/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch +++ /dev/null @@ -1,77 +0,0 @@ -From patchwork Thu Mar 19 02:34:48 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sungbo Eo -X-Patchwork-Id: 11446405 -From: Sungbo Eo -To: Linus Walleij , - Thomas Gleixner , Jason Cooper , - Marc Zyngier , linux-arm-kernel@lists.infradead.org, - linux-kernel@vger.kernel.org, linux-oxnas@groups.io -Subject: [PATCH v2] irqchip/versatile-fpga: Handle chained IRQs properly -Date: Thu, 19 Mar 2020 11:34:48 +0900 -Message-Id: <20200319023448.1479701-1-mans0n@gorani.run> -In-Reply-To: <002b72cab9896fa5ac76a52e0cb503ff@kernel.org> -References: <002b72cab9896fa5ac76a52e0cb503ff@kernel.org> -MIME-Version: 1.0 -List-Id: -Cc: Sungbo Eo , Neil Armstrong -Sender: "linux-arm-kernel" - -Enclose the chained handler with chained_irq_{enter,exit}(), so that the -muxed interrupts get properly acked. - -This patch also fixes a reboot bug on OX820 SoC, where the jiffies timer -interrupt is never acked. The kernel waits a clock tick forever in -calibrate_delay_converge(), which leads to a boot hang. - -Fixes: c41b16f8c9d9 ("ARM: integrator/versatile: consolidate FPGA IRQ handling code") -Signed-off-by: Sungbo Eo -Cc: Neil Armstrong ---- -v2: moved readl below chained_irq_enter() - added Fixes tag - - drivers/irqchip/irq-versatile-fpga.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - ---- a/drivers/irqchip/irq-versatile-fpga.c -+++ b/drivers/irqchip/irq-versatile-fpga.c -@@ -6,6 +6,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -68,12 +69,16 @@ static void fpga_irq_unmask(struct irq_d - - static void fpga_irq_handle(struct irq_desc *desc) - { -+ struct irq_chip *chip = irq_desc_get_chip(desc); - struct fpga_irq_data *f = irq_desc_get_handler_data(desc); -- u32 status = readl(f->base + IRQ_STATUS); -+ u32 status; - -+ chained_irq_enter(chip, desc); -+ -+ status = readl(f->base + IRQ_STATUS); - if (status == 0) { - do_bad_IRQ(desc); -- return; -+ goto out; - } - - do { -@@ -82,6 +87,9 @@ static void fpga_irq_handle(struct irq_d - status &= ~(1 << irq); - generic_handle_irq(irq_find_mapping(f->domain, irq)); - } while (status); -+ -+out: -+ chained_irq_exit(chip, desc); - } - - /* diff --git a/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch b/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch deleted file mode 100644 index eef2c4624f..0000000000 --- a/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch +++ /dev/null @@ -1,58 +0,0 @@ -From patchwork Sat Mar 21 13:38:42 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sungbo Eo -X-Patchwork-Id: 11451163 -From: Sungbo Eo -To: linux-oxnas@groups.io, Linus Walleij , - Thomas Gleixner , Jason Cooper , - Marc Zyngier , linux-arm-kernel@lists.infradead.org, - linux-kernel@vger.kernel.org -Subject: [PATCH] irqchip/versatile-fpga: Apply clear-mask earlier -Date: Sat, 21 Mar 2020 22:38:42 +0900 -Message-Id: <20200321133842.2408823-1-mans0n@gorani.run> -MIME-Version: 1.0 -Sender: "linux-arm-kernel" - -Clear its own IRQs before the parent IRQ get enabled, so that the -remaining IRQs do not accidentally interrupt the parent IRQ controller. - -This patch also fixes a reboot bug on OX820 SoC, where the remaining -rps-timer IRQ raises a GIC interrupt that is left pending. After that, -the rps-timer IRQ is cleared during driver initialization, and there's -no IRQ left in rps-irq when local_irq_enable() is called, which evokes -an error message "unexpected IRQ trap". - -Fixes: bdd272cbb97a ("irqchip: versatile FPGA: support cascaded interrupts from DT") -Signed-off-by: Sungbo Eo -Cc: Neil Armstrong -Cc: Daniel Golle ---- - drivers/irqchip/irq-versatile-fpga.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/irqchip/irq-versatile-fpga.c b/drivers/irqchip/irq-versatile-fpga.c -index 70e2cfff8175..f1386733d3bc 100644 ---- a/drivers/irqchip/irq-versatile-fpga.c -+++ b/drivers/irqchip/irq-versatile-fpga.c -@@ -212,6 +212,9 @@ int __init fpga_irq_of_init(struct device_node *node, - if (of_property_read_u32(node, "valid-mask", &valid_mask)) - valid_mask = 0; - -+ writel(clear_mask, base + IRQ_ENABLE_CLEAR); -+ writel(clear_mask, base + FIQ_ENABLE_CLEAR); -+ - /* Some chips are cascaded from a parent IRQ */ - parent_irq = irq_of_parse_and_map(node, 0); - if (!parent_irq) { -@@ -221,9 +224,6 @@ int __init fpga_irq_of_init(struct device_node *node, - - fpga_irq_init(base, node->name, 0, parent_irq, valid_mask, node); - -- writel(clear_mask, base + IRQ_ENABLE_CLEAR); -- writel(clear_mask, base + FIQ_ENABLE_CLEAR); -- - /* - * On Versatile AB/PB, some secondary interrupts have a direct - * pass-thru to the primary controller for IRQs 20 and 22-31 which need diff --git a/target/linux/oxnas/patches-4.14/003-ARM-dts-oxnas-Fix-clear-mask-property.patch b/target/linux/oxnas/patches-4.14/003-ARM-dts-oxnas-Fix-clear-mask-property.patch deleted file mode 100644 index cac125e7b3..0000000000 --- a/target/linux/oxnas/patches-4.14/003-ARM-dts-oxnas-Fix-clear-mask-property.patch +++ /dev/null @@ -1,55 +0,0 @@ -From patchwork Sat Mar 21 14:36:53 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sungbo Eo -X-Patchwork-Id: 11451187 -From: Sungbo Eo -To: Neil Armstrong , - Rob Herring , - Mark Rutland , linux-arm-kernel@lists.infradead.org, - linux-oxnas@groups.io, devicetree@vger.kernel.org, - linux-kernel@vger.kernel.org -Subject: [PATCH] ARM: dts: oxnas: Fix clear-mask property -Date: Sat, 21 Mar 2020 23:36:53 +0900 -Message-Id: <20200321143653.2412823-1-mans0n@gorani.run> -Sender: "linux-arm-kernel" - -Disable all rps-irq interrupts during driver initialization to prevent -an accidental interrupt on GIC. - -Fixes: 84316f4ef141 ("ARM: boot: dts: Add Oxford Semiconductor OX810SE dtsi") -Fixes: 38d4a53733f5 ("ARM: dts: Add support for OX820 and Pogoplug V3") -Signed-off-by: Sungbo Eo -Acked-by: Neil Armstrong ---- - arch/arm/boot/dts/ox810se.dtsi | 4 ++-- - arch/arm/boot/dts/ox820.dtsi | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - ---- a/arch/arm/boot/dts/ox810se.dtsi -+++ b/arch/arm/boot/dts/ox810se.dtsi -@@ -323,8 +323,8 @@ - interrupt-controller; - reg = <0 0x200>; - #interrupt-cells = <1>; -- valid-mask = <0xFFFFFFFF>; -- clear-mask = <0>; -+ valid-mask = <0xffffffff>; -+ clear-mask = <0xffffffff>; - }; - - timer0: timer@200 { ---- a/arch/arm/boot/dts/ox820.dtsi -+++ b/arch/arm/boot/dts/ox820.dtsi -@@ -240,8 +240,8 @@ - reg = <0 0x200>; - interrupts = ; - #interrupt-cells = <1>; -- valid-mask = <0xFFFFFFFF>; -- clear-mask = <0>; -+ valid-mask = <0xffffffff>; -+ clear-mask = <0xffffffff>; - }; - - timer0: timer@200 { diff --git a/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch b/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch index 98ea5f557c..e6583f9791 100644 --- a/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch +++ b/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -913,7 +913,10 @@ void phy_state_machine(struct work_struc +@@ -980,7 +980,10 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -23,7 +23,7 @@ Signed-off-by: John Crispin break; } -@@ -1000,7 +1003,10 @@ void phy_state_machine(struct work_struc +@@ -1067,7 +1070,10 @@ void phy_state_machine(struct work_struc phy_link_up(phydev); } else { phydev->state = PHY_NOLINK; @@ -35,7 +35,7 @@ Signed-off-by: John Crispin } if (phy_interrupt_is_valid(phydev)) -@@ -1010,7 +1016,10 @@ void phy_state_machine(struct work_struc +@@ -1077,7 +1083,10 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0;