From: John Audia Date: Thu, 28 Aug 2025 18:53:27 +0000 (-0400) Subject: kernel: bump 6.12 to 6.12.44 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=refs%2Fpull%2F19892%2Fhead;p=thirdparty%2Fopenwrt.git kernel: bump 6.12 to 6.12.44 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.44 Removed upstreamed: generic-backport/220-v6.16-powerpc-boot-fix-build-with-gcc-15.patch[1] imx/patches-6.12/506-pending-PCI-imx6-Remove-apps_reset-toggle-in-_core_reset-function.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.44&id=e42ac65e257b875614dd8f435b026a3e379e92e6 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.44&id=90fa5884bc8f52cbf493492e32978c723c85e6ab Build system: x86/64 (Intel N150 based) Build-tested: flogic/gl.inet-gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Run-tested: flogic/gl.inet-gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/19892 Signed-off-by: Hauke Mehrtens --- diff --git a/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch index bbe32f254c4..77c0f826ed2 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch @@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c -@@ -1953,6 +1953,16 @@ reset: +@@ -1951,6 +1951,16 @@ reset: return ret; } diff --git a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index b3f12332939..1860bf17370 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5383,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5390,6 +5493,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch index 4bc4330daad..c1731fb1df3 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch @@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3659,6 +3659,48 @@ static int xhci_align_td(struct xhci_hcd +@@ -3664,6 +3664,48 @@ static int xhci_align_td(struct xhci_hcd return 1; } @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell /* This is very similar to what ehci-q.c qtd_fill() does */ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, int slot_id, unsigned int ep_index) -@@ -3813,6 +3855,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3818,6 +3860,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * } check_trb_math(urb, enqd_len); @@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, start_cycle, start_trb); return 0; -@@ -3961,6 +4005,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3966,6 +4010,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * /* Event on completion */ field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); diff --git a/target/linux/bcm27xx/patches-6.12/950-0364-drm-Add-RP1-DSI-driver.patch b/target/linux/bcm27xx/patches-6.12/950-0364-drm-Add-RP1-DSI-driver.patch index 89593fd4c9d..8c37408fee8 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0364-drm-Add-RP1-DSI-driver.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0364-drm-Add-RP1-DSI-driver.patch @@ -102,7 +102,7 @@ Signed-off-by: Nick Hollinghurst --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig -@@ -436,6 +436,8 @@ source "drivers/gpu/drm/v3d/Kconfig" +@@ -441,6 +441,8 @@ source "drivers/gpu/drm/v3d/Kconfig" source "drivers/gpu/drm/vc4/Kconfig" @@ -113,7 +113,7 @@ Signed-off-by: Nick Hollinghurst source "drivers/gpu/drm/etnaviv/Kconfig" --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile -@@ -224,3 +224,4 @@ obj-y += solomon/ +@@ -225,3 +225,4 @@ obj-y += solomon/ obj-$(CONFIG_DRM_SPRD) += sprd/ obj-$(CONFIG_DRM_LOONGSON) += loongson/ obj-$(CONFIG_DRM_POWERVR) += imagination/ diff --git a/target/linux/bcm27xx/patches-6.12/950-0480-media-pisp_be-Re-introduce-multi-context-support.patch b/target/linux/bcm27xx/patches-6.12/950-0480-media-pisp_be-Re-introduce-multi-context-support.patch index 6f7c4d2f6d6..404414583e1 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0480-media-pisp_be-Re-introduce-multi-context-support.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0480-media-pisp_be-Re-introduce-multi-context-support.patch @@ -872,7 +872,7 @@ Signed-off-by: Jacopo Mondi + while (num_groups-- > 0) + pispbe_destroy_node_group(&pispbe->node_group[num_groups]); pm_runtime_suspend_err: - pispbe_runtime_suspend(pispbe->dev); + pm_runtime_put(pispbe->dev); pm_runtime_disable_err: @@ -1760,7 +1820,8 @@ static void pispbe_remove(struct platfor { @@ -882,5 +882,5 @@ Signed-off-by: Jacopo Mondi + for (int i = PISPBE_NUM_NODE_GROUPS - 1; i >= 0; i--) + pispbe_destroy_node_group(&pispbe->node_group[i]); - pispbe_runtime_suspend(pispbe->dev); pm_runtime_dont_use_autosuspend(pispbe->dev); + pm_runtime_disable(pispbe->dev); diff --git a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch index 3a52a38589d..06b91a6ce65 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch @@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring) { struct xhci_segment *seg = ring->first_seg; -@@ -4788,7 +4792,7 @@ static u16 xhci_calculate_u1_timeout(str +@@ -4795,7 +4799,7 @@ static u16 xhci_calculate_u1_timeout(str } } @@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc); else timeout_ns = udev->u1_params.sel; -@@ -4852,7 +4856,7 @@ static u16 xhci_calculate_u2_timeout(str +@@ -4859,7 +4863,7 @@ static u16 xhci_calculate_u2_timeout(str } } diff --git a/target/linux/generic/backport-6.12/220-v6.16-powerpc-boot-fix-build-with-gcc-15.patch b/target/linux/generic/backport-6.12/220-v6.16-powerpc-boot-fix-build-with-gcc-15.patch deleted file mode 100644 index c5a563fd16c..00000000000 --- a/target/linux/generic/backport-6.12/220-v6.16-powerpc-boot-fix-build-with-gcc-15.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 5a821e2d69e26b51b7f3740b6b0c3462b8cacaff Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -Date: Mon, 31 Mar 2025 12:57:19 +0200 -Subject: [PATCH] powerpc/boot: Fix build with gcc 15 - -Similar to x86 the ppc boot code does not build with GCC 15. - -Copy the fix from -commit ee2ab467bddf ("x86/boot: Use '-std=gnu11' to fix build with GCC 15") - -Signed-off-by: Michal Suchanek -Tested-by: Amit Machhiwal -Tested-by: Venkat Rao Bagalkote -Signed-off-by: Madhavan Srinivasan -Link: https://patch.msgid.link/20250331105722.19709-1-msuchanek@suse.de ---- - arch/powerpc/boot/Makefile | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/powerpc/boot/Makefile -+++ b/arch/powerpc/boot/Makefile -@@ -70,6 +70,7 @@ BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE - BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include) - - BOOTCFLAGS := $(BOOTTARGETFLAGS) \ -+ -std=gnu11 \ - -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ - -fno-strict-aliasing -O2 \ - -msoft-float -mno-altivec -mno-vsx \ diff --git a/target/linux/generic/backport-6.12/620-v6.15-ppp-use-IFF_NO_QUEUE-in-virtual-interfaces.patch b/target/linux/generic/backport-6.12/620-v6.15-ppp-use-IFF_NO_QUEUE-in-virtual-interfaces.patch index 6d9ac56cf0a..d8c09daf9ca 100644 --- a/target/linux/generic/backport-6.12/620-v6.15-ppp-use-IFF_NO_QUEUE-in-virtual-interfaces.patch +++ b/target/linux/generic/backport-6.12/620-v6.15-ppp-use-IFF_NO_QUEUE-in-virtual-interfaces.patch @@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c -@@ -3500,6 +3500,10 @@ ppp_connect_channel(struct channel *pch, +@@ -3504,6 +3504,10 @@ ppp_connect_channel(struct channel *pch, ret = -ENOTCONN; goto outl; } diff --git a/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch b/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch index aa5fc662fac..c010e87a7b6 100644 --- a/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch +++ b/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch @@ -502,7 +502,7 @@ Signed-off-by: Jakub Kicinski { } --- a/drivers/net/phy/mscc/mscc_main.c +++ b/drivers/net/phy/mscc/mscc_main.c -@@ -2700,7 +2700,7 @@ static struct phy_driver vsc85xx_driver[ +@@ -2712,7 +2712,7 @@ static struct phy_driver vsc85xx_driver[ module_phy_driver(vsc85xx_driver); diff --git a/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch index 9430070457b..fee5641cbd4 100644 --- a/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch +++ b/target/linux/generic/hack-6.12/721-net-add-packet-mangeling.patch @@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3646,6 +3646,11 @@ static int xmit_one(struct sk_buff *skb, +@@ -3658,6 +3658,11 @@ static int xmit_one(struct sk_buff *skb, if (dev_nit_active(dev)) dev_queue_xmit_nit(skb, dev); diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12 index 78b4d39332e..e28a8c48703 100644 --- a/target/linux/generic/kernel-6.12 +++ b/target/linux/generic/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .43 -LINUX_KERNEL_HASH-6.12.43 = 0fcbbbbcd456e87bbbfc8bf37af541fda62ccfcce76903503424fd101ef7bdee +LINUX_VERSION-6.12 = .44 +LINUX_KERNEL_HASH-6.12.44 = b650210ed3027b224969d148aa377452a9aad3ae7f2851abedd31adfef16bdae diff --git a/target/linux/generic/pending-6.12/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch b/target/linux/generic/pending-6.12/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch index 1a552bdc335..725e223495b 100644 --- a/target/linux/generic/pending-6.12/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch +++ b/target/linux/generic/pending-6.12/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau #endif /* __KERNEL__ */ /** -@@ -306,6 +308,4 @@ static inline void *offset_to_ptr(const +@@ -298,6 +300,4 @@ static inline void *offset_to_ptr(const */ #define prevent_tail_call_optimization() mb() diff --git a/target/linux/generic/pending-6.12/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch b/target/linux/generic/pending-6.12/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch index 0eb45822e27..cc23125b3dd 100644 --- a/target/linux/generic/pending-6.12/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch +++ b/target/linux/generic/pending-6.12/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch @@ -49,7 +49,7 @@ Submitted-by: Daniel Danzberger obj-$(CONFIG_MTD_SPI_NAND) += spinand.o --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -1112,6 +1112,7 @@ static const struct spinand_manufacturer +@@ -1115,6 +1115,7 @@ static const struct spinand_manufacturer &alliancememory_spinand_manufacturer, &ato_spinand_manufacturer, &esmt_c8_spinand_manufacturer, diff --git a/target/linux/generic/pending-6.12/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch b/target/linux/generic/pending-6.12/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch index 1916613e54a..9141fa69b00 100644 --- a/target/linux/generic/pending-6.12/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch +++ b/target/linux/generic/pending-6.12/736-04-net-ethernet-mediatek-fix-ppe-flow-accounting-for-L2.patch @@ -309,7 +309,7 @@ Signed-off-by: Felix Fietkau seq_printf(m, "%05x %s %7s", i, --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c -@@ -520,24 +520,21 @@ static int +@@ -522,24 +522,21 @@ static int mtk_flow_offload_stats(struct mtk_eth *eth, struct flow_cls_offload *f) { struct mtk_flow_entry *entry; diff --git a/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch b/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch index fe0f260ae36..80d13061158 100644 --- a/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch +++ b/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch @@ -20,7 +20,7 @@ Signed-off-by: Robert Marko --- a/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c -@@ -906,6 +906,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ +@@ -916,6 +916,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ switch (event) { case MHI_EE_SBL: st = DEV_ST_TRANSITION_SBL; diff --git a/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch b/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch index 11275a2ffd2..cc92d0a665c 100644 --- a/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch +++ b/target/linux/imx/patches-6.12/506-6.16-PCI-imx6-Skip-link-up-workaround-for-newer-platforms.patch @@ -23,7 +23,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c -@@ -76,7 +76,7 @@ enum imx_pcie_variants { +@@ -77,7 +77,7 @@ enum imx_pcie_variants { }; #define IMX_PCIE_FLAG_IMX_PHY BIT(0) @@ -32,7 +32,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com #define IMX_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) #define IMX_PCIE_FLAG_HAS_PHYDRV BIT(3) #define IMX_PCIE_FLAG_HAS_APP_RESET BIT(4) -@@ -862,6 +862,12 @@ static int imx_pcie_start_link(struct dw +@@ -861,6 +861,12 @@ static int imx_pcie_start_link(struct dw u32 tmp; int ret; @@ -45,7 +45,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com /* * Force Gen1 operation when starting the link. In case the link is * started in Gen2 mode, there is a possibility the devices on the -@@ -898,22 +904,10 @@ static int imx_pcie_start_link(struct dw +@@ -897,22 +903,10 @@ static int imx_pcie_start_link(struct dw dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, tmp); dw_pcie_dbi_ro_wr_dis(pci); @@ -72,7 +72,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com } /* Make sure link training is finished as well! */ -@@ -1535,7 +1529,7 @@ static const struct imx_pcie_drvdata drv +@@ -1546,7 +1540,7 @@ static const struct imx_pcie_drvdata drv [IMX6Q] = { .variant = IMX6Q, .flags = IMX_PCIE_FLAG_IMX_PHY | @@ -81,7 +81,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com IMX_PCIE_FLAG_BROKEN_SUSPEND | IMX_PCIE_FLAG_SUPPORTS_SUSPEND, .dbi_length = 0x200, -@@ -1553,7 +1547,7 @@ static const struct imx_pcie_drvdata drv +@@ -1564,7 +1558,7 @@ static const struct imx_pcie_drvdata drv [IMX6SX] = { .variant = IMX6SX, .flags = IMX_PCIE_FLAG_IMX_PHY | @@ -90,7 +90,7 @@ Link: https://patch.msgid.link/20250416081314.3929794-2-hongxing.zhu@nxp.com IMX_PCIE_FLAG_SUPPORTS_SUSPEND, .gpr = "fsl,imx6q-iomuxc-gpr", .clk_names = imx6sx_clks, -@@ -1569,7 +1563,7 @@ static const struct imx_pcie_drvdata drv +@@ -1580,7 +1574,7 @@ static const struct imx_pcie_drvdata drv [IMX6QP] = { .variant = IMX6QP, .flags = IMX_PCIE_FLAG_IMX_PHY | diff --git a/target/linux/imx/patches-6.12/506-pending-PCI-imx6-Remove-apps_reset-toggle-in-_core_reset-function.patch b/target/linux/imx/patches-6.12/506-pending-PCI-imx6-Remove-apps_reset-toggle-in-_core_reset-function.patch deleted file mode 100644 index 234a028c4f1..00000000000 --- a/target/linux/imx/patches-6.12/506-pending-PCI-imx6-Remove-apps_reset-toggle-in-_core_reset-function.patch +++ /dev/null @@ -1,52 +0,0 @@ -From d8588b5b9fddffd51962c13db7d00ae6f2ac945b Mon Sep 17 00:00:00 2001 -From: Tim Harvey -Date: Thu, 19 Jun 2025 16:04:53 -0700 -Subject: [PATCH] PCI: imx6: Remove apps_reset toggle in _core_reset functions - -apps_reset is LTSSM_EN on i.MX7, i.MX8MQ, i.MX8MM and i.MX8MP platforms. -Since the assertion/de-assertion of apps_reset(LTSSM_EN bit) had been -wrappered in imx_pcie_ltssm_enable() and imx_pcie_ltssm_disable(); - -Remove apps_reset toggle in imx_pcie_assert_core_reset() and -imx_pcie_deassert_core_reset() functions. Use imx_pcie_ltssm_enable() -and imx_pcie_ltssm_disable() to configure apps_reset directly. - -Fix fail to enumerate reliably PI7C9X2G608GP (hotplug) at i.MX8MM, which -reported By Tim. - -Reported-by: Tim Harvey -Closes: https://lore.kernel.org/all/CAJ+vNU3ohR2YKTwC4xoYrc1z-neDoH2TTZcMHDy+poj9=jSy+w@mail.gmail.com/ -Fixes: ef61c7d8d032 ("PCI: imx6: Deassert apps_reset in imx_pcie_deassert_core_reset()") -Signed-off-by: Richard Zhu ---- - drivers/pci/controller/dwc/pci-imx6.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- a/drivers/pci/controller/dwc/pci-imx6.c -+++ b/drivers/pci/controller/dwc/pci-imx6.c -@@ -778,7 +778,6 @@ static int imx7d_pcie_core_reset(struct - static void imx_pcie_assert_core_reset(struct imx_pcie *imx_pcie) - { - reset_control_assert(imx_pcie->pciephy_reset); -- reset_control_assert(imx_pcie->apps_reset); - - if (imx_pcie->drvdata->core_reset) - imx_pcie->drvdata->core_reset(imx_pcie, true); -@@ -790,7 +789,6 @@ static void imx_pcie_assert_core_reset(s - static int imx_pcie_deassert_core_reset(struct imx_pcie *imx_pcie) - { - reset_control_deassert(imx_pcie->pciephy_reset); -- reset_control_deassert(imx_pcie->apps_reset); - - if (imx_pcie->drvdata->core_reset) - imx_pcie->drvdata->core_reset(imx_pcie, false); -@@ -991,6 +989,9 @@ static int imx_pcie_host_init(struct dw_ - } - } - -+ /* Make sure that PCIe LTSSM is cleared */ -+ imx_pcie_ltssm_disable(dev); -+ - ret = imx_pcie_deassert_core_reset(imx_pcie); - if (ret < 0) { - dev_err(dev, "pcie deassert core reset failed: %d\n", ret); diff --git a/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch b/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch index 38e8cc1e0ed..d38070b13e1 100644 --- a/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch +++ b/target/linux/ipq40xx/patches-6.12/999-atm-mpoa-intel-dsl-phy-support.patch @@ -4,7 +4,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c -@@ -2978,6 +2978,22 @@ char *ppp_dev_name(struct ppp_channel *c +@@ -2982,6 +2982,22 @@ char *ppp_dev_name(struct ppp_channel *c return name; } @@ -27,7 +27,7 @@ Subject: [PATCH] UGW_SW-29163: ATM oam support /* * Disconnect a channel from the generic layer. -@@ -3628,6 +3644,7 @@ EXPORT_SYMBOL(ppp_unregister_channel); +@@ -3633,6 +3649,7 @@ EXPORT_SYMBOL(ppp_unregister_channel); EXPORT_SYMBOL(ppp_channel_index); EXPORT_SYMBOL(ppp_unit_number); EXPORT_SYMBOL(ppp_dev_name); diff --git a/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch b/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch index bb5e1a296ec..df29ec91d10 100644 --- a/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch +++ b/target/linux/mediatek/patches-6.12/121-hack-spi-nand-1b-bbm.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -893,7 +893,7 @@ static int spinand_mtd_write(struct mtd_ +@@ -896,7 +896,7 @@ static int spinand_mtd_write(struct mtd_ static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos) { struct spinand_device *spinand = nand_to_spinand(nand); @@ -9,7 +9,7 @@ struct nand_page_io_req req = { .pos = *pos, .ooblen = sizeof(marker), -@@ -904,7 +904,7 @@ static bool spinand_isbad(struct nand_de +@@ -907,7 +907,7 @@ static bool spinand_isbad(struct nand_de spinand_select_target(spinand, pos->target); spinand_read_page(spinand, &req); diff --git a/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch b/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch index 1578b72bf1f..0a8f80c1e01 100644 --- a/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch +++ b/target/linux/mediatek/patches-6.12/330-snand-mtk-bmt-support.patch @@ -8,7 +8,7 @@ static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val) { -@@ -1526,6 +1527,7 @@ static int spinand_probe(struct spi_mem +@@ -1529,6 +1530,7 @@ static int spinand_probe(struct spi_mem if (ret) return ret; @@ -16,7 +16,7 @@ ret = mtd_device_register(mtd, NULL, 0); if (ret) goto err_spinand_cleanup; -@@ -1533,6 +1535,7 @@ static int spinand_probe(struct spi_mem +@@ -1536,6 +1538,7 @@ static int spinand_probe(struct spi_mem return 0; err_spinand_cleanup: @@ -24,7 +24,7 @@ spinand_cleanup(spinand); return ret; -@@ -1551,6 +1554,7 @@ static int spinand_remove(struct spi_mem +@@ -1554,6 +1557,7 @@ static int spinand_remove(struct spi_mem if (ret) return ret; diff --git a/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch b/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch index ee71d49fe1e..cb3e425c46c 100644 --- a/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch +++ b/target/linux/mediatek/patches-6.12/340-mtd-spinand-Add-support-for-the-Fidelix-FM35X1GA.patch @@ -24,7 +24,7 @@ Signed-off-by: Davide Fioravanti obj-$(CONFIG_MTD_SPI_NAND) += spinand.o --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -1114,6 +1114,7 @@ static const struct spinand_manufacturer +@@ -1117,6 +1117,7 @@ static const struct spinand_manufacturer &ato_spinand_manufacturer, &esmt_c8_spinand_manufacturer, &etron_spinand_manufacturer, diff --git a/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch b/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch index 3b5f21f9c8f..325b3ad795c 100644 --- a/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch +++ b/target/linux/mediatek/patches-6.12/410-bt-mtk-serial-fix.patch @@ -19,7 +19,7 @@ }, [PORT_NPCM] = { .name = "Nuvoton 16550", -@@ -2730,6 +2730,11 @@ serial8250_do_set_termios(struct uart_po +@@ -2729,6 +2729,11 @@ serial8250_do_set_termios(struct uart_po unsigned long flags; unsigned int baud, quot, frac = 0; diff --git a/target/linux/mediatek/patches-6.12/435-drivers-mtd-spinand-Add-calibration-support-for-spin.patch b/target/linux/mediatek/patches-6.12/435-drivers-mtd-spinand-Add-calibration-support-for-spin.patch index eda2d8366a7..6f58346bfaa 100644 --- a/target/linux/mediatek/patches-6.12/435-drivers-mtd-spinand-Add-calibration-support-for-spin.patch +++ b/target/linux/mediatek/patches-6.12/435-drivers-mtd-spinand-Add-calibration-support-for-spin.patch @@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -1152,6 +1152,56 @@ static int spinand_manufacturer_match(st +@@ -1155,6 +1155,56 @@ static int spinand_manufacturer_match(st return -EOPNOTSUPP; } @@ -68,7 +68,7 @@ Signed-off-by: SkyLake.Huang static int spinand_id_detect(struct spinand_device *spinand) { u8 *id = spinand->id.data; -@@ -1403,6 +1453,10 @@ static int spinand_init(struct spinand_d +@@ -1406,6 +1456,10 @@ static int spinand_init(struct spinand_d if (!spinand->scratchbuf) return -ENOMEM; diff --git a/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch b/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch index 4cc43333cd7..39a4d3759d3 100644 --- a/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch +++ b/target/linux/mediatek/patches-6.12/436-drivers-mtd-spi-nor-Add-calibration-support-for-spi-.patch @@ -12,7 +12,7 @@ Signed-off-by: SkyLake.Huang --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -1193,7 +1193,10 @@ static int spinand_cal_read(void *priv, +@@ -1196,7 +1196,10 @@ static int spinand_cal_read(void *priv, if (ret) return ret; diff --git a/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch b/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch index c788cccdce1..08803e707d8 100644 --- a/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch +++ b/target/linux/mediatek/patches-6.12/960-asus-hack-u-boot-ignore-mtdparts.patch @@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c -@@ -1620,6 +1620,7 @@ static int spinand_remove(struct spi_mem +@@ -1623,6 +1623,7 @@ static int spinand_remove(struct spi_mem static const struct spi_device_id spinand_ids[] = { { .name = "spi-nand" }, @@ -37,7 +37,7 @@ Signed-off-by: Daniel Golle { /* sentinel */ }, }; MODULE_DEVICE_TABLE(spi, spinand_ids); -@@ -1627,6 +1628,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids); +@@ -1630,6 +1631,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids); #ifdef CONFIG_OF static const struct of_device_id spinand_of_ids[] = { { .compatible = "spi-nand" }, diff --git a/target/linux/qualcommax/patches-6.12/0812-soc-qcom-mdt_loader-support-MPD.patch b/target/linux/qualcommax/patches-6.12/0812-soc-qcom-mdt_loader-support-MPD.patch index 7d670f5ff97..e2fa2054107 100644 --- a/target/linux/qualcommax/patches-6.12/0812-soc-qcom-mdt_loader-support-MPD.patch +++ b/target/linux/qualcommax/patches-6.12/0812-soc-qcom-mdt_loader-support-MPD.patch @@ -30,9 +30,9 @@ Signed-off-by: George Moussalem + __le64 blk_size; +}; - static bool mdt_phdr_valid(const struct elf32_phdr *phdr) + static bool mdt_header_valid(const struct firmware *fw) { -@@ -67,6 +77,56 @@ static ssize_t mdt_load_split_segment(vo +@@ -98,6 +108,56 @@ static ssize_t mdt_load_split_segment(vo return ret; } @@ -89,7 +89,7 @@ Signed-off-by: George Moussalem /** * qcom_mdt_get_size() - acquire size of the memory region needed to load mdt * @fw: firmware object for the mdt file -@@ -293,7 +353,8 @@ static bool qcom_mdt_bins_are_split(cons +@@ -333,7 +393,8 @@ static bool qcom_mdt_bins_are_split(cons static int __qcom_mdt_load(struct device *dev, const struct firmware *fw, const char *fw_name, int pas_id, void *mem_region, phys_addr_t mem_phys, size_t mem_size, @@ -99,7 +99,7 @@ Signed-off-by: George Moussalem { const struct elf32_phdr *phdrs; const struct elf32_phdr *phdr; -@@ -347,6 +408,14 @@ static int __qcom_mdt_load(struct device +@@ -390,6 +451,14 @@ static int __qcom_mdt_load(struct device if (!mdt_phdr_valid(phdr)) continue; @@ -114,7 +114,7 @@ Signed-off-by: George Moussalem offset = phdr->p_paddr - mem_reloc; if (offset < 0 || offset + phdr->p_memsz > mem_size) { dev_err(dev, "segment outside memory range\n"); -@@ -364,7 +433,11 @@ static int __qcom_mdt_load(struct device +@@ -407,7 +476,11 @@ static int __qcom_mdt_load(struct device ptr = mem_region + offset; @@ -127,7 +127,7 @@ Signed-off-by: George Moussalem /* Firmware is large enough to be non-split */ if (phdr->p_offset + phdr->p_filesz > fw->size) { dev_err(dev, "file %s segment %d would be truncated\n", -@@ -381,7 +454,7 @@ static int __qcom_mdt_load(struct device +@@ -424,7 +497,7 @@ static int __qcom_mdt_load(struct device break; } @@ -136,7 +136,7 @@ Signed-off-by: George Moussalem memset(ptr + phdr->p_filesz, 0, phdr->p_memsz - phdr->p_filesz); } -@@ -416,7 +489,7 @@ int qcom_mdt_load(struct device *dev, co +@@ -459,7 +532,7 @@ int qcom_mdt_load(struct device *dev, co return ret; return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys, @@ -145,7 +145,7 @@ Signed-off-by: George Moussalem } EXPORT_SYMBOL_GPL(qcom_mdt_load); -@@ -439,9 +512,36 @@ int qcom_mdt_load_no_init(struct device +@@ -482,9 +555,36 @@ int qcom_mdt_load_no_init(struct device size_t mem_size, phys_addr_t *reloc_base) { return __qcom_mdt_load(dev, fw, firmware, pas_id, mem_region, mem_phys, diff --git a/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch b/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch index 0f18f1c3c0f..5b7d42c7164 100644 --- a/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch +++ b/target/linux/starfive/patches-6.12/0009-uart-8250-Add-dw-auto-flow-ctrl-support.patch @@ -67,7 +67,7 @@ Signed-off-by: Minda Chen } /* -@@ -2769,7 +2782,6 @@ serial8250_do_set_termios(struct uart_po +@@ -2768,7 +2781,6 @@ serial8250_do_set_termios(struct uart_po if (termios->c_cflag & CRTSCTS) up->mcr |= UART_MCR_AFE; }