From 74969cab1526ab7ade4dcf201b10a11905122c10 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Thu, 31 Dec 2020 20:56:25 +0800 Subject: [PATCH] kernel: bump to 4.9.249, 4.14.213, 4.19.164 Remove upstreamed: - generic/pending-4.14/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch - generic/pending-4.9/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch - ipq806x/patches-4.14/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch - ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch Resolve conflicted: - generic/pending-4.19/611-netfilter_match_bypass_default_table.patch - ipq40xx/patches-4.19/995-ipq40xx-unlock-cpu-frequency.patch Signed-off-by: CN_SZTL --- include/kernel-version.mk | 12 +-- ...support-for-boot-console-with-arbitr.patch | 2 +- ...support-for-boot-console-with-arbitr.patch | 2 +- .../ath25/patches-4.14/130-watchdog.patch | 2 +- ...support-for-boot-console-with-arbitr.patch | 2 +- .../910-unaligned_access_hacks.patch | 2 +- ...i_h5-Don-t-send-conf_req-when-ACTIVE.patch | 2 +- ...e-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch | 2 +- .../905-BCM53573-minor-hacks.patch | 2 +- .../905-BCM53573-minor-hacks.patch | 2 +- .../patches-4.14/831-old_gpio_wdt.patch | 2 +- .../patches-4.19/831-old_gpio_wdt.patch | 2 +- .../patches-4.19/075-spi_support.patch | 2 +- ...tcp-allow-drivers-to-tweak-TSQ-logic.patch | 4 +- ...ption-fix-dwm-158-3g-modem-interface.patch | 2 +- ...initial-support-for-Toshiba-TC58CVG2.patch | 2 +- ...dd-support-for-GigaDevice-GD5FxGQ4xA.patch | 2 +- ...-Add-support-for-two-byte-device-IDs.patch | 2 +- ...initial-support-for-Paragon-PN26G0xA.patch | 2 +- ...tsq-add-shortcut-in-tcp_tasklet_func.patch | 2 +- ...-a-shortcut-in-tcp_small_queue_check.patch | 2 +- ...cp_mtu_probe-is-likely-to-exit-early.patch | 2 +- ...ove-tsq_flags-close-to-sk_wmem_alloc.patch | 6 +- ...tcp-allow-drivers-to-tweak-TSQ-logic.patch | 4 +- ...90-net-generalize-napi_complete_done.patch | 2 +- .../998-usb-serial-option-add-u9300.patch | 4 +- .../hack-4.19/207-disable-modorder.patch | 4 +- .../generic/hack-4.19/220-gc_sections.patch | 2 +- .../998-usb-serial-option-add-u9300.patch | 4 +- ...ne-Fix-parsing-of-part-names-with-co.patch | 61 ------------- ..._value_cansleep-for-setting-chipsele.patch | 2 +- ...etfilter_match_bypass_default_checks.patch | 2 +- ...netfilter_match_bypass_default_table.patch | 4 +- ..._value_cansleep-for-setting-chipsele.patch | 2 +- ...ne-Fix-parsing-of-part-names-with-co.patch | 61 ------------- .../995-ipq40xx-unlock-cpu-frequency.patch | 12 ++- ...I-qcom-Fixed-IPQ806x-specific-clocks.patch | 8 +- ...com-Fixed-IPQ806x-PCIE-reset-changes.patch | 85 ------------------- ...qcom-Fixed-IPQ806x-PCIE-init-changes.patch | 2 +- .../0071-6-PCI-qcom-Force-GEN1-support.patch | 4 +- ...7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch | 2 +- ...qcom-Fixed-pcie_phy_clk-branch-issue.patch | 4 +- ...I-qcom-Fixed-IPQ806x-specific-clocks.patch | 8 +- ...com-Fixed-IPQ806x-PCIE-reset-changes.patch | 62 -------------- ...qcom-Fixed-pcie_phy_clk-branch-issue.patch | 4 +- .../patches-4.9/160-delayed_uart_io.patch | 4 +- .../701-dpaa2-dpio-support-layerscape.patch | 20 ++--- .../0303-mtd-spinand-disable-on-die-ECC.patch | 4 +- .../102-mt7621-fix-cpu-clk-add-clkdev.patch | 5 +- 49 files changed, 86 insertions(+), 352 deletions(-) delete mode 100644 target/linux/generic/pending-4.14/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch delete mode 100644 target/linux/generic/pending-4.9/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch delete mode 100644 target/linux/ipq806x/patches-4.14/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch delete mode 100644 target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 180f66f759..e5e67bf421 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-4.9 = .248 -LINUX_VERSION-4.14 = .212 -LINUX_VERSION-4.19 = .163 +LINUX_VERSION-4.9 = .249 +LINUX_VERSION-4.14 = .213 +LINUX_VERSION-4.19 = .164 -LINUX_KERNEL_HASH-4.9.248 = 4687268061c9933c298b30d28e4bf1a30dfbab7c0da4bee194968e4f81ffeccf -LINUX_KERNEL_HASH-4.14.212 = 0e1bc32c4842c3bbee3a15454408f528acd4d3c5e83312b93008d5ee2e9a0c79 -LINUX_KERNEL_HASH-4.19.163 = 3eeec4e5eb8a129be3536357ecb028fae7d82fac933dcfac0b6089ee398fc5fc +LINUX_KERNEL_HASH-4.9.249 = b1f38696ff5bce89e1d8248126aa2a8ce5b19100efdd68f1d335a9f736e04c4e +LINUX_KERNEL_HASH-4.14.213 = fd7bcedb79feb1378b89b257e68bfb86cb0aeb23380808c6a7e84a12e8ec2a1d +LINUX_KERNEL_HASH-4.19.164 = e5fa3ab5364d4080cfcf7e0cfb054ade124f20e185fd7809506424dc3c74aaaa remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/ar71xx/patches-4.14/821-serial-core-add-support-for-boot-console-with-arbitr.patch b/target/linux/ar71xx/patches-4.14/821-serial-core-add-support-for-boot-console-with-arbitr.patch index 23b6d73959..3c33cd19cc 100644 --- a/target/linux/ar71xx/patches-4.14/821-serial-core-add-support-for-boot-console-with-arbitr.patch +++ b/target/linux/ar71xx/patches-4.14/821-serial-core-add-support-for-boot-console-with-arbitr.patch @@ -30,7 +30,7 @@ Signed-off-by: Sungbo Eo uport->cons->cflag = 0; } /* -@@ -2072,8 +2074,10 @@ uart_set_options(struct uart_port *port, +@@ -2076,8 +2078,10 @@ uart_set_options(struct uart_port *port, * Allow the setting of the UART parameters with a NULL console * too: */ diff --git a/target/linux/ar71xx/patches-4.9/821-serial-core-add-support-for-boot-console-with-arbitr.patch b/target/linux/ar71xx/patches-4.9/821-serial-core-add-support-for-boot-console-with-arbitr.patch index bd7a10d015..14c94d18b5 100644 --- a/target/linux/ar71xx/patches-4.9/821-serial-core-add-support-for-boot-console-with-arbitr.patch +++ b/target/linux/ar71xx/patches-4.9/821-serial-core-add-support-for-boot-console-with-arbitr.patch @@ -30,7 +30,7 @@ Signed-off-by: Sungbo Eo uport->cons->cflag = 0; } /* -@@ -2055,8 +2057,10 @@ uart_set_options(struct uart_port *port, +@@ -2059,8 +2061,10 @@ uart_set_options(struct uart_port *port, * Allow the setting of the UART parameters with a NULL console * too: */ diff --git a/target/linux/ath25/patches-4.14/130-watchdog.patch b/target/linux/ath25/patches-4.14/130-watchdog.patch index 01904d69a5..ac55711670 100644 --- a/target/linux/ath25/patches-4.14/130-watchdog.patch +++ b/target/linux/ath25/patches-4.14/130-watchdog.patch @@ -212,7 +212,7 @@ +MODULE_ALIAS("platform:" DRIVER_NAME); --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig -@@ -1647,6 +1647,13 @@ config PIC32_DMT +@@ -1648,6 +1648,13 @@ config PIC32_DMT To compile this driver as a loadable module, choose M here. The module will be called pic32-dmt. diff --git a/target/linux/ath79/patches-4.14/921-serial-core-add-support-for-boot-console-with-arbitr.patch b/target/linux/ath79/patches-4.14/921-serial-core-add-support-for-boot-console-with-arbitr.patch index 23b6d73959..3c33cd19cc 100644 --- a/target/linux/ath79/patches-4.14/921-serial-core-add-support-for-boot-console-with-arbitr.patch +++ b/target/linux/ath79/patches-4.14/921-serial-core-add-support-for-boot-console-with-arbitr.patch @@ -30,7 +30,7 @@ Signed-off-by: Sungbo Eo uport->cons->cflag = 0; } /* -@@ -2072,8 +2074,10 @@ uart_set_options(struct uart_port *port, +@@ -2076,8 +2078,10 @@ uart_set_options(struct uart_port *port, * Allow the setting of the UART parameters with a NULL console * too: */ diff --git a/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch index 5656507367..466442bbd4 100644 --- a/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch @@ -728,7 +728,7 @@ EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3907,14 +3907,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -3908,14 +3908,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/bcm27xx/patches-4.19/950-0090-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch b/target/linux/bcm27xx/patches-4.19/950-0090-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch index 756fd3a507..65f7d9438d 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0090-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0090-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch @@ -11,7 +11,7 @@ other with conf_req and conf_rsp messages, in a demented game of tag. --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c -@@ -352,7 +352,8 @@ static void h5_handle_internal_rx(struct +@@ -355,7 +355,8 @@ static void h5_handle_internal_rx(struct h5_link_control(hu, conf_req, 3); } else if (memcmp(data, conf_req, 2) == 0) { h5_link_control(hu, conf_rsp, 2); diff --git a/target/linux/bcm27xx/patches-4.19/950-0144-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch b/target/linux/bcm27xx/patches-4.19/950-0144-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch index d1d5c0a051..0ebcd43027 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0144-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0144-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch @@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -745,7 +745,9 @@ static void spi_set_cs(struct spi_device +@@ -746,7 +746,9 @@ static void spi_set_cs(struct spi_device enable = !enable; if (gpio_is_valid(spi->cs_gpio)) { diff --git a/target/linux/bcm53xx/patches-4.14/905-BCM53573-minor-hacks.patch b/target/linux/bcm53xx/patches-4.14/905-BCM53573-minor-hacks.patch index 39f4cf7662..4762505708 100644 --- a/target/linux/bcm53xx/patches-4.14/905-BCM53573-minor-hacks.patch +++ b/target/linux/bcm53xx/patches-4.14/905-BCM53573-minor-hacks.patch @@ -61,7 +61,7 @@ Signed-off-by: Rafał Miłecki #include #include #include -@@ -836,6 +837,16 @@ static void arch_timer_of_configure_rate +@@ -845,6 +846,16 @@ static void arch_timer_of_configure_rate if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate)) arch_timer_rate = rate; diff --git a/target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch b/target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch index 470b17a5ff..ca0bfb79b1 100644 --- a/target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch +++ b/target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch @@ -61,7 +61,7 @@ Signed-off-by: Rafał Miłecki #include #include #include -@@ -919,6 +920,16 @@ static void arch_timer_of_configure_rate +@@ -928,6 +929,16 @@ static void arch_timer_of_configure_rate if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate)) arch_timer_rate = rate; diff --git a/target/linux/brcm47xx/patches-4.14/831-old_gpio_wdt.patch b/target/linux/brcm47xx/patches-4.14/831-old_gpio_wdt.patch index 88f472e63c..8b4ce63c64 100644 --- a/target/linux/brcm47xx/patches-4.14/831-old_gpio_wdt.patch +++ b/target/linux/brcm47xx/patches-4.14/831-old_gpio_wdt.patch @@ -4,7 +4,7 @@ Signed-off-by: Mathias Adam --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig -@@ -1473,6 +1473,15 @@ config WDT_MTX1 +@@ -1474,6 +1474,15 @@ config WDT_MTX1 Hardware driver for the MTX-1 boards. This is a watchdog timer that will reboot the machine after a 100 seconds timer expired. diff --git a/target/linux/brcm47xx/patches-4.19/831-old_gpio_wdt.patch b/target/linux/brcm47xx/patches-4.19/831-old_gpio_wdt.patch index 5c2c21ddb0..6d9d8b530e 100644 --- a/target/linux/brcm47xx/patches-4.19/831-old_gpio_wdt.patch +++ b/target/linux/brcm47xx/patches-4.19/831-old_gpio_wdt.patch @@ -4,7 +4,7 @@ Signed-off-by: Mathias Adam --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig -@@ -1498,6 +1498,15 @@ config WDT_MTX1 +@@ -1499,6 +1499,15 @@ config WDT_MTX1 Hardware driver for the MTX-1 boards. This is a watchdog timer that will reboot the machine after a 100 seconds timer expired. diff --git a/target/linux/cns3xxx/patches-4.19/075-spi_support.patch b/target/linux/cns3xxx/patches-4.19/075-spi_support.patch index b66bea0290..bf18b2a4d2 100644 --- a/target/linux/cns3xxx/patches-4.19/075-spi_support.patch +++ b/target/linux/cns3xxx/patches-4.19/075-spi_support.patch @@ -39,7 +39,7 @@ /** --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -1032,6 +1032,9 @@ static int spi_transfer_one_message(stru +@@ -1033,6 +1033,9 @@ static int spi_transfer_one_message(stru list_for_each_entry(xfer, &msg->transfers, transfer_list) { trace_spi_transfer_start(msg, xfer); diff --git a/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch b/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch index 51ed9517aa..39a3964af7 100644 --- a/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch +++ b/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch @@ -65,7 +65,7 @@ Cc: Kir Kolyshkin * Before updating sk_refcnt, we must commit prior changes to memory --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1699,7 +1699,7 @@ u32 tcp_tso_autosize(const struct sock * +@@ -1700,7 +1700,7 @@ u32 tcp_tso_autosize(const struct sock * { u32 bytes, segs; @@ -74,7 +74,7 @@ Cc: Kir Kolyshkin sk->sk_gso_max_size - 1 - MAX_TCP_HEADER); /* Goal is to send at least one packet per ms, -@@ -2217,7 +2217,7 @@ static bool tcp_small_queue_check(struct +@@ -2218,7 +2218,7 @@ static bool tcp_small_queue_check(struct { unsigned int limit; diff --git a/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch b/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch index 4315b8d6bb..ecef1a4b2b 100644 --- a/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch +++ b/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch @@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -2012,7 +2012,8 @@ static const struct usb_device_id option +@@ -2015,7 +2015,8 @@ static const struct usb_device_id option { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) }, { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) }, 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 288fdbf267..6a988ec5b5 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 -@@ -762,6 +762,7 @@ static const struct nand_ops spinand_ops +@@ -766,6 +766,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 d3ded95ccb..003ff02711 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 -@@ -760,6 +760,7 @@ static const struct nand_ops spinand_ops +@@ -764,6 +764,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 ee81f97f4e..209dc1d4a8 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 -@@ -851,7 +851,7 @@ spinand_select_op_variant(struct spinand +@@ -855,7 +855,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 d30abdc143..6e3ade3461 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 -@@ -763,6 +763,7 @@ static const struct spinand_manufacturer +@@ -767,6 +767,7 @@ static const struct spinand_manufacturer &gigadevice_spinand_manufacturer, ¯onix_spinand_manufacturer, µn_spinand_manufacturer, diff --git a/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch b/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch index 77826176fd..7b723867b4 100644 --- a/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch +++ b/target/linux/generic/backport-4.9/024-3-tcp-tsq-add-shortcut-in-tcp_tasklet_func.patch @@ -60,7 +60,7 @@ Signed-off-by: David S. Miller nval = cmpxchg(&tp->tsq_flags, oval, nval); if (nval != oval) continue; -@@ -2239,6 +2239,8 @@ static bool tcp_write_xmit(struct sock * +@@ -2240,6 +2240,8 @@ static bool tcp_write_xmit(struct sock * unlikely(tso_fragment(sk, skb, limit, mss_now, gfp))) break; diff --git a/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch b/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch index a2d7680536..76567805e5 100644 --- a/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch +++ b/target/linux/generic/backport-4.9/024-5-tcp-tsq-add-a-shortcut-in-tcp_small_queue_check.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -2144,6 +2144,15 @@ static bool tcp_small_queue_check(struct +@@ -2145,6 +2145,15 @@ static bool tcp_small_queue_check(struct limit <<= factor; if (atomic_read(&sk->sk_wmem_alloc) > limit) { diff --git a/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch b/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch index 75118deb86..de7fcc4cbb 100644 --- a/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch +++ b/target/linux/generic/backport-4.9/024-6-tcp-tcp_mtu_probe-is-likely-to-exit-early.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1976,26 +1976,26 @@ static bool tcp_can_coalesce_send_queue_ +@@ -1977,26 +1977,26 @@ static bool tcp_can_coalesce_send_queue_ */ static int tcp_mtu_probe(struct sock *sk) { diff --git a/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch b/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch index 3ebf2755a2..19daabf639 100644 --- a/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch +++ b/target/linux/generic/backport-4.9/024-8-tcp-tsq-move-tsq_flags-close-to-sk_wmem_alloc.patch @@ -114,7 +114,7 @@ Signed-off-by: David S. Miller if (nval != oval) continue; -@@ -2153,7 +2153,7 @@ static bool tcp_small_queue_check(struct +@@ -2154,7 +2154,7 @@ static bool tcp_small_queue_check(struct skb->prev == sk->sk_write_queue.next) return false; @@ -123,7 +123,7 @@ Signed-off-by: David S. Miller /* It is possible TX completion already happened * before we set TSQ_THROTTLED, so we must * test again the condition. -@@ -2251,8 +2251,8 @@ static bool tcp_write_xmit(struct sock * +@@ -2252,8 +2252,8 @@ static bool tcp_write_xmit(struct sock * unlikely(tso_fragment(sk, skb, limit, mss_now, gfp))) break; @@ -134,7 +134,7 @@ Signed-off-by: David S. Miller if (tcp_small_queue_check(sk, skb, 0)) break; -@@ -3574,8 +3574,6 @@ void __tcp_send_ack(struct sock *sk, u32 +@@ -3577,8 +3577,6 @@ void __tcp_send_ack(struct sock *sk, u32 /* We do not want pure acks influencing TCP Small Queues or fq/pacing * too much. * SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784 diff --git a/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch b/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch index 6884a4da17..a7fe3c0d08 100644 --- a/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch +++ b/target/linux/generic/backport-4.9/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch @@ -65,7 +65,7 @@ Cc: Kir Kolyshkin * Before updating sk_refcnt, we must commit prior changes to memory --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1609,7 +1609,7 @@ u32 tcp_tso_autosize(const struct sock * +@@ -1610,7 +1610,7 @@ u32 tcp_tso_autosize(const struct sock * { u32 bytes, segs; @@ -74,7 +74,7 @@ Cc: Kir Kolyshkin sk->sk_gso_max_size - 1 - MAX_TCP_HEADER); /* Goal is to send at least one packet per ms, -@@ -2140,7 +2140,7 @@ static bool tcp_small_queue_check(struct +@@ -2141,7 +2141,7 @@ static bool tcp_small_queue_check(struct { unsigned int limit; diff --git a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch index 027bf673d1..dcd2bf5698 100644 --- a/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch +++ b/target/linux/generic/backport-4.9/090-net-generalize-napi_complete_done.patch @@ -1095,7 +1095,7 @@ Signed-off-by: David S. Miller dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA); --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c -@@ -2702,7 +2702,7 @@ static int stmmac_poll(struct napi_struc +@@ -2704,7 +2704,7 @@ static int stmmac_poll(struct napi_struc work_done = stmmac_rx(priv, budget); if (work_done < budget) { diff --git a/target/linux/generic/hack-4.14/998-usb-serial-option-add-u9300.patch b/target/linux/generic/hack-4.14/998-usb-serial-option-add-u9300.patch index ed7a8b5272..54f7cc8dd8 100644 --- a/target/linux/generic/hack-4.14/998-usb-serial-option-add-u9300.patch +++ b/target/linux/generic/hack-4.14/998-usb-serial-option-add-u9300.patch @@ -18,7 +18,7 @@ /* 4G Systems products */ /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * -@@ -578,6 +579,16 @@ static void option_instat_callback(struc +@@ -581,6 +582,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) }, -@@ -612,6 +623,8 @@ static const struct usb_device_id option +@@ -615,6 +626,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/generic/hack-4.19/207-disable-modorder.patch b/target/linux/generic/hack-4.19/207-disable-modorder.patch index b655660732..82c953369c 100644 --- a/target/linux/generic/hack-4.19/207-disable-modorder.patch +++ b/target/linux/generic/hack-4.19/207-disable-modorder.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -1260,7 +1260,6 @@ endif +@@ -1263,7 +1263,6 @@ endif PHONY += modules modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau @$(kecho) ' Building modules, stage 2.'; $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost -@@ -1289,7 +1288,6 @@ _modinst_: +@@ -1292,7 +1291,6 @@ _modinst_: rm -f $(MODLIB)/build ; \ ln -s $(CURDIR) $(MODLIB)/build ; \ fi diff --git a/target/linux/generic/hack-4.19/220-gc_sections.patch b/target/linux/generic/hack-4.19/220-gc_sections.patch index f5d5962207..0f4c020581 100644 --- a/target/linux/generic/hack-4.19/220-gc_sections.patch +++ b/target/linux/generic/hack-4.19/220-gc_sections.patch @@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos # Read KERNELRELEASE from include/config/kernel.release (if it exists) KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) -@@ -792,11 +797,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH +@@ -795,11 +800,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) endif diff --git a/target/linux/generic/hack-4.19/998-usb-serial-option-add-u9300.patch b/target/linux/generic/hack-4.19/998-usb-serial-option-add-u9300.patch index ad594257fd..e31650c18b 100644 --- a/target/linux/generic/hack-4.19/998-usb-serial-option-add-u9300.patch +++ b/target/linux/generic/hack-4.19/998-usb-serial-option-add-u9300.patch @@ -18,7 +18,7 @@ /* 4G Systems products */ /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * -@@ -575,6 +576,16 @@ static void option_instat_callback(struc +@@ -578,6 +579,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) }, -@@ -609,6 +620,8 @@ static const struct usb_device_id option +@@ -612,6 +623,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/generic/pending-4.14/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch b/target/linux/generic/pending-4.14/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch deleted file mode 100644 index 9fad2663ea..0000000000 --- a/target/linux/generic/pending-4.14/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Sven Eckelmann -Date: Sun, 22 Nov 2020 00:48:33 +0100 -Subject: [PATCH RFC] mtd: parser: cmdline: Fix parsing of part-names with colons - -Some devices (especially QCA ones) are already using hardcoded partition -names with colons in it. The OpenMesh A62 for example provides following -mtd relevant information via cmdline: - - root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait - -The change to split only on the last colon between mtd-id and partitions -will cause newpart to see following string for the first partition: - - KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) - -Such a partition list cannot be parsed and thus the device fails to boot. - -Avoid this behavior by making sure that the start of the first part-name -("(") will also be the last byte the mtd-id split algorithm is using for -its colon search. - -Forwarded: https://patchwork.ozlabs.org/project/linux-mtd/patch/20201122001533.985641-1-sven@narfation.org/ -Fixes: eb13fa022741 ("mtd: parser: cmdline: Support MTD names containing one or more colons") -Signed-off-by: Sven Eckelmann - ---- a/drivers/mtd/cmdlinepart.c -+++ b/drivers/mtd/cmdlinepart.c -@@ -228,7 +228,7 @@ static int mtdpart_setup_real(char *s) - struct cmdline_mtd_partition *this_mtd; - struct mtd_partition *parts; - int mtd_id_len, num_parts; -- char *p, *mtd_id, *semicol; -+ char *p, *mtd_id, *semicol, *open_parenth; - - /* - * Replace the first ';' by a NULL char so strrchr can work -@@ -238,6 +238,13 @@ static int mtdpart_setup_real(char *s) - if (semicol) - *semicol = '\0'; - -+ /* make sure that part-names with ":" will not be handled as -+ * part of the mtd-id with an ":" -+ */ -+ open_parenth = strchr(s, '('); -+ if (open_parenth) -+ *open_parenth = '\0'; -+ - mtd_id = s; - - /* -@@ -247,6 +254,10 @@ static int mtdpart_setup_real(char *s) - */ - p = strrchr(s, ':'); - -+ /* Restore the '(' now. */ -+ if (open_parenth) -+ *open_parenth = '('; -+ - /* Restore the ';' now. */ - if (semicol) - *semicol = ';'; diff --git a/target/linux/generic/pending-4.19/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch b/target/linux/generic/pending-4.19/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch index 252b06ac8f..640814df89 100644 --- a/target/linux/generic/pending-4.19/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch +++ b/target/linux/generic/pending-4.19/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -745,7 +745,7 @@ static void spi_set_cs(struct spi_device +@@ -746,7 +746,7 @@ static void spi_set_cs(struct spi_device enable = !enable; if (gpio_is_valid(spi->cs_gpio)) { diff --git a/target/linux/generic/pending-4.19/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/pending-4.19/610-netfilter_match_bypass_default_checks.patch index 1691146825..d7a47305cf 100644 --- a/target/linux/generic/pending-4.19/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/pending-4.19/610-netfilter_match_bypass_default_checks.patch @@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; @@ -821,6 +849,7 @@ copy_entries_to_user(unsigned int total_ - const struct xt_table_info *private = table->private; + const struct xt_table_info *private = xt_table_get_private_protected(table); int ret = 0; const void *loc_cpu_entry; + u8 flags; diff --git a/target/linux/generic/pending-4.19/611-netfilter_match_bypass_default_table.patch b/target/linux/generic/pending-4.19/611-netfilter_match_bypass_default_table.patch index ba976b0751..3c586d08cc 100644 --- a/target/linux/generic/pending-4.19/611-netfilter_match_bypass_default_table.patch +++ b/target/linux/generic/pending-4.19/611-netfilter_match_bypass_default_table.patch @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau /* Initialization */ + WARN_ON(!(table->valid_hooks & (1 << hook))); + local_bh_disable(); -+ private = READ_ONCE(table->private); /* Address dependency. */ ++ private = rcu_access_pointer(table->private); + cpu = smp_processor_id(); + table_base = private->entries; + @@ -80,7 +80,7 @@ Signed-off-by: Felix Fietkau - WARN_ON(!(table->valid_hooks & (1 << hook))); - local_bh_disable(); addend = xt_write_recseq_begin(); -- private = READ_ONCE(table->private); /* Address dependency. */ +- private = rcu_access_pointer(table->private); - cpu = smp_processor_id(); - table_base = private->entries; jumpstack = (struct ipt_entry **)private->jumpstack[cpu]; diff --git a/target/linux/generic/pending-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch b/target/linux/generic/pending-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch index 8c2d68b9db..b98e8c52cc 100644 --- a/target/linux/generic/pending-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch +++ b/target/linux/generic/pending-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -700,7 +700,7 @@ static void spi_set_cs(struct spi_device +@@ -712,7 +712,7 @@ static void spi_set_cs(struct spi_device enable = !enable; if (gpio_is_valid(spi->cs_gpio)) diff --git a/target/linux/generic/pending-4.9/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch b/target/linux/generic/pending-4.9/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch deleted file mode 100644 index 9fad2663ea..0000000000 --- a/target/linux/generic/pending-4.9/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Sven Eckelmann -Date: Sun, 22 Nov 2020 00:48:33 +0100 -Subject: [PATCH RFC] mtd: parser: cmdline: Fix parsing of part-names with colons - -Some devices (especially QCA ones) are already using hardcoded partition -names with colons in it. The OpenMesh A62 for example provides following -mtd relevant information via cmdline: - - root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait - -The change to split only on the last colon between mtd-id and partitions -will cause newpart to see following string for the first partition: - - KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) - -Such a partition list cannot be parsed and thus the device fails to boot. - -Avoid this behavior by making sure that the start of the first part-name -("(") will also be the last byte the mtd-id split algorithm is using for -its colon search. - -Forwarded: https://patchwork.ozlabs.org/project/linux-mtd/patch/20201122001533.985641-1-sven@narfation.org/ -Fixes: eb13fa022741 ("mtd: parser: cmdline: Support MTD names containing one or more colons") -Signed-off-by: Sven Eckelmann - ---- a/drivers/mtd/cmdlinepart.c -+++ b/drivers/mtd/cmdlinepart.c -@@ -228,7 +228,7 @@ static int mtdpart_setup_real(char *s) - struct cmdline_mtd_partition *this_mtd; - struct mtd_partition *parts; - int mtd_id_len, num_parts; -- char *p, *mtd_id, *semicol; -+ char *p, *mtd_id, *semicol, *open_parenth; - - /* - * Replace the first ';' by a NULL char so strrchr can work -@@ -238,6 +238,13 @@ static int mtdpart_setup_real(char *s) - if (semicol) - *semicol = '\0'; - -+ /* make sure that part-names with ":" will not be handled as -+ * part of the mtd-id with an ":" -+ */ -+ open_parenth = strchr(s, '('); -+ if (open_parenth) -+ *open_parenth = '\0'; -+ - mtd_id = s; - - /* -@@ -247,6 +254,10 @@ static int mtdpart_setup_real(char *s) - */ - p = strrchr(s, ':'); - -+ /* Restore the '(' now. */ -+ if (open_parenth) -+ *open_parenth = '('; -+ - /* Restore the ';' now. */ - if (semicol) - *semicol = ';'; diff --git a/target/linux/ipq40xx/patches-4.19/995-ipq40xx-unlock-cpu-frequency.patch b/target/linux/ipq40xx/patches-4.19/995-ipq40xx-unlock-cpu-frequency.patch index cd1fa50a4a..fdfe2108e4 100644 --- a/target/linux/ipq40xx/patches-4.19/995-ipq40xx-unlock-cpu-frequency.patch +++ b/target/linux/ipq40xx/patches-4.19/995-ipq40xx-unlock-cpu-frequency.patch @@ -10,38 +10,42 @@ Signed-off-by: William --- --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -114,20 +114,24 @@ - +@@ -121,23 +121,28 @@ opp-48000000 { opp-hz = /bits/ 64 <48000000>; + opp-microvolt = <1100000>; - clock-latency-ns = <256000>; + clock-latency-ns = <100000>; }; opp-200000000 { opp-hz = /bits/ 64 <200000000>; + opp-microvolt = <1100000>; - clock-latency-ns = <256000>; + clock-latency-ns = <100000>; }; opp-500000000 { opp-hz = /bits/ 64 <500000000>; + opp-microvolt = <1100000>; - clock-latency-ns = <256000>; + clock-latency-ns = <100000>; }; opp-716000000 { opp-hz = /bits/ 64 <716000000>; + opp-microvolt = <1100000>; - clock-latency-ns = <256000>; + clock-latency-ns = <100000>; }; + opp-896000000 { + opp-hz = /bits/ 64 <896000000>; ++ opp-microvolt = <1100000>; + clock-latency-ns = <100000>; + }; }; - memory { + pmu { --- a/drivers/clk/qcom/gcc-ipq4019.c +++ b/drivers/clk/qcom/gcc-ipq4019.c -@@ -579,6 +579,9 @@ static const struct freq_tbl ftbl_gcc_ap +@@ -587,6 +587,9 @@ static const struct freq_tbl ftbl_gcc_ap F(632000000, P_DDRPLLAPSS, 1, 0, 0), F(672000000, P_DDRPLLAPSS, 1, 0, 0), F(716000000, P_DDRPLLAPSS, 1, 0, 0), diff --git a/target/linux/ipq806x/patches-4.14/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch b/target/linux/ipq806x/patches-4.14/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch index b9f6e33be6..fd766028d9 100644 --- a/target/linux/ipq806x/patches-4.14/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch +++ b/target/linux/ipq806x/patches-4.14/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch @@ -20,7 +20,7 @@ Signed-off-by: Sham Muthayyan struct reset_control *pci_reset; struct reset_control *axi_reset; struct reset_control *ahb_reset; -@@ -249,6 +251,14 @@ static int qcom_pcie_get_resources_2_1_0 +@@ -250,6 +252,14 @@ static int qcom_pcie_get_resources_2_1_0 if (IS_ERR(res->phy_clk)) return PTR_ERR(res->phy_clk); @@ -35,7 +35,7 @@ Signed-off-by: Sham Muthayyan res->pci_reset = devm_reset_control_get_exclusive(dev, "pci"); if (IS_ERR(res->pci_reset)) return PTR_ERR(res->pci_reset); -@@ -281,6 +291,8 @@ static void qcom_pcie_deinit_2_1_0(struc +@@ -287,6 +297,8 @@ static void qcom_pcie_deinit_2_1_0(struc clk_disable_unprepare(res->iface_clk); clk_disable_unprepare(res->core_clk); clk_disable_unprepare(res->phy_clk); @@ -44,7 +44,7 @@ Signed-off-by: Sham Muthayyan regulator_disable(res->vdda); regulator_disable(res->vdda_phy); regulator_disable(res->vdda_refclk); -@@ -324,16 +336,28 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -330,16 +342,28 @@ static int qcom_pcie_init_2_1_0(struct q goto err_assert_ahb; } @@ -76,7 +76,7 @@ Signed-off-by: Sham Muthayyan } ret = reset_control_deassert(res->ahb_reset); -@@ -389,10 +413,14 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -401,10 +425,14 @@ static int qcom_pcie_init_2_1_0(struct q return 0; err_deassert_ahb: diff --git a/target/linux/ipq806x/patches-4.14/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch b/target/linux/ipq806x/patches-4.14/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch deleted file mode 100644 index 8b9e5ff5d1..0000000000 --- a/target/linux/ipq806x/patches-4.14/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 490d103232287eb51c92c49a4ef8865fd0a9d59e Mon Sep 17 00:00:00 2001 -From: Sham Muthayyan -Date: Tue, 19 Jul 2016 18:58:18 +0530 -Subject: PCI: qcom: Fixed IPQ806x PCIE reset changes - -Change-Id: Ia6590e960b9754b1e8b7a51f318788cd63e9e321 -Signed-off-by: Sham Muthayyan ---- - drivers/pci/host/pcie-qcom.c | 24 +++++++++++++++++++----- - 1 file changed, 19 insertions(+), 5 deletions(-) - ---- a/drivers/pci/dwc/pcie-qcom.c -+++ b/drivers/pci/dwc/pcie-qcom.c -@@ -98,6 +98,7 @@ struct qcom_pcie_resources_2_1_0 { - struct reset_control *ahb_reset; - struct reset_control *por_reset; - struct reset_control *phy_reset; -+ struct reset_control *ext_reset; - struct regulator *vdda; - struct regulator *vdda_phy; - struct regulator *vdda_refclk; -@@ -275,6 +276,10 @@ static int qcom_pcie_get_resources_2_1_0 - if (IS_ERR(res->por_reset)) - return PTR_ERR(res->por_reset); - -+ res->ext_reset = devm_reset_control_get(dev, "ext"); -+ if (IS_ERR(res->ext_reset)) -+ return PTR_ERR(res->ext_reset); -+ - res->phy_reset = devm_reset_control_get_exclusive(dev, "phy"); - return PTR_ERR_OR_ZERO(res->phy_reset); - } -@@ -288,6 +293,7 @@ static void qcom_pcie_deinit_2_1_0(struc - reset_control_assert(res->ahb_reset); - reset_control_assert(res->por_reset); - reset_control_assert(res->pci_reset); -+ reset_control_assert(res->ext_reset); - clk_disable_unprepare(res->iface_clk); - clk_disable_unprepare(res->core_clk); - clk_disable_unprepare(res->phy_clk); -@@ -306,6 +312,12 @@ static int qcom_pcie_init_2_1_0(struct q - u32 val; - int ret; - -+ ret = reset_control_assert(res->ahb_reset); -+ if (ret) { -+ dev_err(dev, "cannot assert ahb reset\n"); -+ return ret; -+ } -+ - ret = regulator_enable(res->vdda); - if (ret) { - dev_err(dev, "cannot enable vdda regulator\n"); -@@ -324,16 +336,16 @@ static int qcom_pcie_init_2_1_0(struct q - goto err_vdda_phy; - } - -- ret = reset_control_assert(res->ahb_reset); -+ ret = reset_control_deassert(res->ext_reset); - if (ret) { -- dev_err(dev, "cannot assert ahb reset\n"); -- goto err_assert_ahb; -+ dev_err(dev, "cannot assert ext reset\n"); -+ goto err_reset_ext; - } - - ret = clk_prepare_enable(res->iface_clk); - if (ret) { - dev_err(dev, "cannot prepare/enable iface clock\n"); -- goto err_assert_ahb; -+ goto err_iface; - } - - ret = clk_prepare_enable(res->core_clk); -@@ -422,7 +434,9 @@ err_clk_phy: - clk_disable_unprepare(res->core_clk); - err_clk_core: - clk_disable_unprepare(res->iface_clk); --err_assert_ahb: -+err_iface: -+ reset_control_assert(res->ext_reset); -+err_reset_ext: - regulator_disable(res->vdda_phy); - err_vdda_phy: - regulator_disable(res->vdda_refclk); diff --git a/target/linux/ipq806x/patches-4.14/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch b/target/linux/ipq806x/patches-4.14/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch index 57ee082c83..f8e65020a7 100644 --- a/target/linux/ipq806x/patches-4.14/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch +++ b/target/linux/ipq806x/patches-4.14/0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch @@ -87,7 +87,7 @@ Signed-off-by: Sham Muthayyan - u32 val; int ret; - ret = reset_control_assert(res->ahb_reset); + ret = regulator_enable(res->vdda); @@ -378,15 +410,26 @@ static int qcom_pcie_init_2_1_0(struct q goto err_deassert_ahb; } diff --git a/target/linux/ipq806x/patches-4.14/0071-6-PCI-qcom-Force-GEN1-support.patch b/target/linux/ipq806x/patches-4.14/0071-6-PCI-qcom-Force-GEN1-support.patch index 5dea084bfa..b9c5010b74 100644 --- a/target/linux/ipq806x/patches-4.14/0071-6-PCI-qcom-Force-GEN1-support.patch +++ b/target/linux/ipq806x/patches-4.14/0071-6-PCI-qcom-Force-GEN1-support.patch @@ -40,7 +40,7 @@ Signed-off-by: Sham Muthayyan /* Set the Max TLP size to 2K, instead of using default of 4K */ -@@ -1382,6 +1390,8 @@ static int qcom_pcie_probe(struct platfo +@@ -1380,6 +1388,8 @@ static int qcom_pcie_probe(struct platfo struct dw_pcie *pci; struct qcom_pcie *pcie; int ret; @@ -49,7 +49,7 @@ Signed-off-by: Sham Muthayyan pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) -@@ -1403,6 +1413,9 @@ static int qcom_pcie_probe(struct platfo +@@ -1401,6 +1411,9 @@ static int qcom_pcie_probe(struct platfo if (IS_ERR(pcie->reset)) return PTR_ERR(pcie->reset); diff --git a/target/linux/ipq806x/patches-4.14/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch b/target/linux/ipq806x/patches-4.14/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch index c7dfd53cb1..166d6ac1a9 100644 --- a/target/linux/ipq806x/patches-4.14/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch +++ b/target/linux/ipq806x/patches-4.14/0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch @@ -31,7 +31,7 @@ Signed-off-by: Gokul Sriram Palanisamy struct qcom_pcie_resources_2_1_0 { struct clk *iface_clk; struct clk *core_clk; -@@ -1472,6 +1480,35 @@ static int qcom_pcie_probe(struct platfo +@@ -1470,6 +1478,35 @@ static int qcom_pcie_probe(struct platfo return 0; } diff --git a/target/linux/ipq806x/patches-4.14/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch b/target/linux/ipq806x/patches-4.14/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch index 88bd7730c1..c2e66655a8 100644 --- a/target/linux/ipq806x/patches-4.14/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch +++ b/target/linux/ipq806x/patches-4.14/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch @@ -47,14 +47,14 @@ Signed-off-by: Abhishek Sahu reset_control_assert(res->axi_reset); reset_control_assert(res->ahb_reset); @@ -415,7 +416,6 @@ static void qcom_pcie_deinit_2_1_0(struc - reset_control_assert(res->ext_reset); + reset_control_assert(res->pci_reset); clk_disable_unprepare(res->iface_clk); clk_disable_unprepare(res->core_clk); - clk_disable_unprepare(res->phy_clk); clk_disable_unprepare(res->aux_clk); clk_disable_unprepare(res->ref_clk); regulator_disable(res->vdda); -@@ -472,12 +472,6 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -466,12 +466,6 @@ static int qcom_pcie_init_2_1_0(struct q goto err_clk_core; } diff --git a/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch b/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch index 3591326d59..677e5cb664 100644 --- a/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch +++ b/target/linux/ipq806x/patches-4.19/0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch @@ -18,7 +18,7 @@ Signed-off-by: Sham Muthayyan struct reset_control *pci_reset; struct reset_control *axi_reset; struct reset_control *ahb_reset; -@@ -253,6 +255,14 @@ static int qcom_pcie_get_resources_2_1_0 +@@ -254,6 +256,14 @@ static int qcom_pcie_get_resources_2_1_0 if (IS_ERR(res->phy_clk)) return PTR_ERR(res->phy_clk); @@ -33,7 +33,7 @@ Signed-off-by: Sham Muthayyan res->pci_reset = devm_reset_control_get_exclusive(dev, "pci"); if (IS_ERR(res->pci_reset)) return PTR_ERR(res->pci_reset); -@@ -285,6 +295,8 @@ static void qcom_pcie_deinit_2_1_0(struc +@@ -291,6 +301,8 @@ static void qcom_pcie_deinit_2_1_0(struc clk_disable_unprepare(res->iface_clk); clk_disable_unprepare(res->core_clk); clk_disable_unprepare(res->phy_clk); @@ -42,7 +42,7 @@ Signed-off-by: Sham Muthayyan regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies); } -@@ -315,16 +327,28 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -321,16 +333,28 @@ static int qcom_pcie_init_2_1_0(struct q goto err_assert_ahb; } @@ -74,7 +74,7 @@ Signed-off-by: Sham Muthayyan } ret = reset_control_deassert(res->ahb_reset); -@@ -400,10 +424,14 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -412,10 +436,14 @@ static int qcom_pcie_init_2_1_0(struct q return 0; err_deassert_ahb: diff --git a/target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch b/target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch deleted file mode 100644 index 37413757bf..0000000000 --- a/target/linux/ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 490d103232287eb51c92c49a4ef8865fd0a9d59e Mon Sep 17 00:00:00 2001 -From: Sham Muthayyan -Date: Tue, 19 Jul 2016 18:58:18 +0530 -Subject: PCI: qcom: Fixed IPQ806x PCIE reset changes - -Change-Id: Ia6590e960b9754b1e8b7a51f318788cd63e9e321 -Signed-off-by: Sham Muthayyan ---- - ---- a/drivers/pci/controller/dwc/pcie-qcom.c -+++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -110,6 +110,7 @@ struct qcom_pcie_resources_2_1_0 { - struct reset_control *ahb_reset; - struct reset_control *por_reset; - struct reset_control *phy_reset; -+ struct reset_control *ext_reset; - struct regulator_bulk_data supplies[QCOM_PCIE_2_1_0_MAX_SUPPLY]; - }; - -@@ -279,6 +280,10 @@ static int qcom_pcie_get_resources_2_1_0 - if (IS_ERR(res->por_reset)) - return PTR_ERR(res->por_reset); - -+ res->ext_reset = devm_reset_control_get(dev, "ext"); -+ if (IS_ERR(res->ext_reset)) -+ return PTR_ERR(res->ext_reset); -+ - res->phy_reset = devm_reset_control_get_exclusive(dev, "phy"); - return PTR_ERR_OR_ZERO(res->phy_reset); - } -@@ -292,6 +297,7 @@ static void qcom_pcie_deinit_2_1_0(struc - reset_control_assert(res->ahb_reset); - reset_control_assert(res->por_reset); - reset_control_assert(res->pci_reset); -+ reset_control_assert(res->ext_reset); - clk_disable_unprepare(res->iface_clk); - clk_disable_unprepare(res->core_clk); - clk_disable_unprepare(res->phy_clk); -@@ -309,15 +315,21 @@ static int qcom_pcie_init_2_1_0(struct q - u32 val; - int ret; - -+ ret = reset_control_assert(res->ahb_reset); -+ if (ret) { -+ dev_err(dev, "cannot assert ahb reset\n"); -+ return ret; -+ } -+ - ret = regulator_bulk_enable(ARRAY_SIZE(res->supplies), res->supplies); - if (ret < 0) { - dev_err(dev, "cannot enable regulators\n"); - return ret; - } - -- ret = reset_control_assert(res->ahb_reset); -+ ret = reset_control_deassert(res->ext_reset); - if (ret) { -- dev_err(dev, "cannot assert ahb reset\n"); -+ dev_err(dev, "cannot assert ext reset\n"); - goto err_assert_ahb; - } - diff --git a/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch b/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch index 37f493dd5b..b5797c820f 100644 --- a/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch +++ b/target/linux/ipq806x/patches-4.19/0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch @@ -47,14 +47,14 @@ Signed-off-by: Abhishek Sahu reset_control_assert(res->axi_reset); reset_control_assert(res->ahb_reset); @@ -386,7 +387,6 @@ static void qcom_pcie_deinit_2_1_0(struc - reset_control_assert(res->ext_reset); + reset_control_assert(res->pci_reset); clk_disable_unprepare(res->iface_clk); clk_disable_unprepare(res->core_clk); - clk_disable_unprepare(res->phy_clk); clk_disable_unprepare(res->aux_clk); clk_disable_unprepare(res->ref_clk); regulator_bulk_disable(ARRAY_SIZE(res->supplies), res->supplies); -@@ -431,12 +431,6 @@ static int qcom_pcie_init_2_1_0(struct q +@@ -425,12 +425,6 @@ static int qcom_pcie_init_2_1_0(struct q goto err_clk_core; } diff --git a/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch b/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch index 7565901ac4..9241f633f8 100644 --- a/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch +++ b/target/linux/ixp4xx/patches-4.9/160-delayed_uart_io.patch @@ -18,7 +18,7 @@ uart->capabilities = up->capabilities; --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c -@@ -2259,6 +2259,7 @@ uart_report_port(struct uart_driver *drv +@@ -2263,6 +2263,7 @@ uart_report_port(struct uart_driver *drv snprintf(address, sizeof(address), "I/O 0x%lx offset 0x%x", port->iobase, port->hub6); break; @@ -26,7 +26,7 @@ case UPIO_MEM: case UPIO_MEM16: case UPIO_MEM32: -@@ -2932,6 +2933,7 @@ int uart_match_port(struct uart_port *po +@@ -2936,6 +2937,7 @@ int uart_match_port(struct uart_port *po case UPIO_HUB6: return (port1->iobase == port2->iobase) && (port1->hub6 == port2->hub6); diff --git a/target/linux/layerscape/patches-4.14/701-dpaa2-dpio-support-layerscape.patch b/target/linux/layerscape/patches-4.14/701-dpaa2-dpio-support-layerscape.patch index ce5dfdbe86..9f3b3ba79a 100644 --- a/target/linux/layerscape/patches-4.14/701-dpaa2-dpio-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/701-dpaa2-dpio-support-layerscape.patch @@ -371,7 +371,7 @@ Signed-off-by: Youri Querry static irqreturn_t dpio_irq_handler(int irq_num, void *arg) { struct device *dev = (struct device *)arg; -@@ -113,7 +91,7 @@ static int dpaa2_dpio_probe(struct fsl_m +@@ -110,7 +88,7 @@ static int dpaa2_dpio_probe(struct fsl_m struct dpio_priv *priv; int err = -ENOMEM; struct device *dev = &dpio_dev->dev; @@ -380,7 +380,7 @@ Signed-off-by: Youri Querry priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); if (!priv) -@@ -135,6 +113,12 @@ static int dpaa2_dpio_probe(struct fsl_m +@@ -132,6 +110,12 @@ static int dpaa2_dpio_probe(struct fsl_m goto err_open; } @@ -393,7 +393,7 @@ Signed-off-by: Youri Querry err = dpio_get_attributes(dpio_dev->mc_io, 0, dpio_dev->mc_handle, &dpio_attrs); if (err) { -@@ -155,26 +139,35 @@ static int dpaa2_dpio_probe(struct fsl_m +@@ -152,26 +136,35 @@ static int dpaa2_dpio_probe(struct fsl_m desc.dpio_id = dpio_dev->obj_desc.id; /* get the cpu to use for the affinity hint */ @@ -444,7 +444,7 @@ Signed-off-by: Youri Querry err = fsl_mc_allocate_irqs(dpio_dev); if (err) { -@@ -186,7 +179,7 @@ static int dpaa2_dpio_probe(struct fsl_m +@@ -183,7 +176,7 @@ static int dpaa2_dpio_probe(struct fsl_m if (err) goto err_register_dpio_irq; @@ -453,7 +453,7 @@ Signed-off-by: Youri Querry if (!priv->io) { dev_err(dev, "dpaa2_io_create failed\n"); goto err_dpaa2_io_create; -@@ -196,7 +189,6 @@ static int dpaa2_dpio_probe(struct fsl_m +@@ -193,7 +186,6 @@ static int dpaa2_dpio_probe(struct fsl_m dev_dbg(dev, " receives_notifications = %d\n", desc.receives_notifications); dpio_close(dpio_dev->mc_io, 0, dpio_dev->mc_handle); @@ -461,7 +461,7 @@ Signed-off-by: Youri Querry return 0; -@@ -207,6 +199,7 @@ err_register_dpio_irq: +@@ -204,6 +196,7 @@ err_register_dpio_irq: err_allocate_irqs: dpio_disable(dpio_dev->mc_io, 0, dpio_dev->mc_handle); err_get_attr: @@ -469,7 +469,7 @@ Signed-off-by: Youri Querry dpio_close(dpio_dev->mc_io, 0, dpio_dev->mc_handle); err_open: fsl_mc_portal_free(dpio_dev->mc_io); -@@ -227,7 +220,7 @@ static int dpaa2_dpio_remove(struct fsl_ +@@ -224,7 +217,7 @@ static int dpaa2_dpio_remove(struct fsl_ { struct device *dev; struct dpio_priv *priv; @@ -478,7 +478,7 @@ Signed-off-by: Youri Querry dev = &dpio_dev->dev; priv = dev_get_drvdata(dev); -@@ -236,11 +229,8 @@ static int dpaa2_dpio_remove(struct fsl_ +@@ -233,11 +226,8 @@ static int dpaa2_dpio_remove(struct fsl_ dpio_teardown_irqs(dpio_dev); @@ -492,7 +492,7 @@ Signed-off-by: Youri Querry err = dpio_open(dpio_dev->mc_io, 0, dpio_dev->obj_desc.id, &dpio_dev->mc_handle); -@@ -261,7 +251,7 @@ static int dpaa2_dpio_remove(struct fsl_ +@@ -258,7 +248,7 @@ static int dpaa2_dpio_remove(struct fsl_ err_open: fsl_mc_portal_free(dpio_dev->mc_io); @@ -501,7 +501,7 @@ Signed-off-by: Youri Querry return err; } -@@ -285,11 +275,16 @@ static struct fsl_mc_driver dpaa2_dpio_d +@@ -282,11 +272,16 @@ static struct fsl_mc_driver dpaa2_dpio_d static int dpio_driver_init(void) { diff --git a/target/linux/mediatek/patches-4.19/0303-mtd-spinand-disable-on-die-ECC.patch b/target/linux/mediatek/patches-4.19/0303-mtd-spinand-disable-on-die-ECC.patch index cdf214688c..9082073ee5 100644 --- a/target/linux/mediatek/patches-4.19/0303-mtd-spinand-disable-on-die-ECC.patch +++ b/target/linux/mediatek/patches-4.19/0303-mtd-spinand-disable-on-die-ECC.patch @@ -11,7 +11,7 @@ Signed-off-by: Xiangsheng Hou --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -552,7 +552,7 @@ static int spinand_mtd_read(struct mtd_i +@@ -556,7 +556,7 @@ static int spinand_mtd_read(struct mtd_i int ret = 0; if (ops->mode != MTD_OPS_RAW && spinand->eccinfo.ooblayout) @@ -20,7 +20,7 @@ Signed-off-by: Xiangsheng Hou mutex_lock(&spinand->lock); -@@ -600,7 +600,7 @@ static int spinand_mtd_write(struct mtd_ +@@ -604,7 +604,7 @@ static int spinand_mtd_write(struct mtd_ int ret = 0; if (ops->mode != MTD_OPS_RAW && mtd->ooblayout) diff --git a/target/linux/ramips/patches-4.14/102-mt7621-fix-cpu-clk-add-clkdev.patch b/target/linux/ramips/patches-4.14/102-mt7621-fix-cpu-clk-add-clkdev.patch index be878642ef..e0143dd98e 100644 --- a/target/linux/ramips/patches-4.14/102-mt7621-fix-cpu-clk-add-clkdev.patch +++ b/target/linux/ramips/patches-4.14/102-mt7621-fix-cpu-clk-add-clkdev.patch @@ -65,7 +65,7 @@ #define MT7621_GPIO_MODE_UART1 1 #define MT7621_GPIO_MODE_I2C 2 #define MT7621_GPIO_MODE_UART3_MASK 0x3 -@@ -111,49 +111,98 @@ static struct rt2880_pmx_group mt7621_pi +@@ -113,49 +113,98 @@ static struct rt2880_pmx_group mt7621_pi { 0 } }; @@ -152,7 +152,6 @@ - } else { - /* 20Mhz Xtal */ - cpu_clk = 20 * fbdiv * 1000 * 1000; -- } + pll = rt_memc_r32(MEMC_REG_CPU_PLL); + if ((pll & 0x7f0) == 0x2b0) { + volatile u32 i; @@ -162,7 +161,7 @@ + pll |= 0x312; + rt_memc_w32(pll, MEMC_REG_CPU_PLL); + for (i = 0; i < 1000; i++); -+ } + } + fbdiv = (pll >> CPU_PLL_FBDIV_SHIFT) & CPU_PLL_FBDIV_MASK; + prediv = (pll >> CPU_PLL_PREDIV_SHIFT) & CPU_PLL_PREDIV_MASK; + cpu_clk = ((fbdiv + 1) * xtal_clk) >> prediv_tbl[prediv];