]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.6-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 24 Aug 2025 05:31:17 +0000 (07:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 24 Aug 2025 05:31:17 +0000 (07:31 +0200)
added patches:
compiler-remove-__addressable_asm-_str-again.patch
drm-amd-display-don-t-overclock-dce-6-by-15.patch
mmc-sdhci-pci-gli-gl9763e-mask-the-replay-timer-timeout-of-aer.patch

queue-6.6/compiler-remove-__addressable_asm-_str-again.patch [new file with mode: 0644]
queue-6.6/drm-amd-display-don-t-overclock-dce-6-by-15.patch [new file with mode: 0644]
queue-6.6/mmc-sdhci-pci-gli-gl9763e-mask-the-replay-timer-timeout-of-aer.patch [new file with mode: 0644]
queue-6.6/series

diff --git a/queue-6.6/compiler-remove-__addressable_asm-_str-again.patch b/queue-6.6/compiler-remove-__addressable_asm-_str-again.patch
new file mode 100644 (file)
index 0000000..276be37
--- /dev/null
@@ -0,0 +1,73 @@
+From stable+bounces-172671-greg=kroah.com@vger.kernel.org Sun Aug 24 02:32:28 2025
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 23 Aug 2025 20:32:21 -0400
+Subject: compiler: remove __ADDRESSABLE_ASM{_STR,}() again
+To: stable@vger.kernel.org
+Cc: Jan Beulich <jbeulich@suse.com>, Josh Poimboeuf <jpoimboe@kernel.org>, Juergen Gross <jgross@suse.com>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20250824003221.2541871-1-sashal@kernel.org>
+
+From: Jan Beulich <jbeulich@suse.com>
+
+[ Upstream commit 8ea815399c3fcce1889bd951fec25b5b9a3979c1 ]
+
+__ADDRESSABLE_ASM_STR() is where the necessary stringification happens.
+As long as "sym" doesn't contain any odd characters, no quoting is
+required for its use with .quad / .long. In fact the quotation gets in
+the way with gas 2.25; it's only from 2.26 onwards that quoted symbols
+are half-way properly supported.
+
+However, assembly being different from C anyway, drop
+__ADDRESSABLE_ASM_STR() and its helper macro altogether. A simple
+.global directive will suffice to get the symbol "declared", i.e. into
+the symbol table. While there also stop open-coding STATIC_CALL_TRAMP()
+and STATIC_CALL_KEY().
+
+Fixes: 0ef8047b737d ("x86/static-call: provide a way to do very early static-call updates")
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
+Cc: stable@vger.kernel.org
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Message-ID: <609d2c74-de13-4fae-ab1a-1ec44afb948d@suse.com>
+[ Adjust context ]
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/x86/include/asm/xen/hypercall.h |    5 +++--
+ include/linux/compiler.h             |    8 --------
+ 2 files changed, 3 insertions(+), 10 deletions(-)
+
+--- a/arch/x86/include/asm/xen/hypercall.h
++++ b/arch/x86/include/asm/xen/hypercall.h
+@@ -94,12 +94,13 @@ DECLARE_STATIC_CALL(xen_hypercall, xen_h
+ #ifdef MODULE
+ #define __ADDRESSABLE_xen_hypercall
+ #else
+-#define __ADDRESSABLE_xen_hypercall __ADDRESSABLE_ASM_STR(__SCK__xen_hypercall)
++#define __ADDRESSABLE_xen_hypercall \
++      __stringify(.global STATIC_CALL_KEY(xen_hypercall);)
+ #endif
+ #define __HYPERCALL                                   \
+       __ADDRESSABLE_xen_hypercall                     \
+-      "call __SCT__xen_hypercall"
++      __stringify(call STATIC_CALL_TRAMP(xen_hypercall))
+ #define __HYPERCALL_ENTRY(x)  "a" (x)
+--- a/include/linux/compiler.h
++++ b/include/linux/compiler.h
+@@ -234,14 +234,6 @@ static inline void *offset_to_ptr(const
+ #define __ADDRESSABLE(sym) \
+       ___ADDRESSABLE(sym, __section(".discard.addressable"))
+-#define __ADDRESSABLE_ASM(sym)                                                \
+-      .pushsection .discard.addressable,"aw";                         \
+-      .align ARCH_SEL(8,4);                                           \
+-      ARCH_SEL(.quad, .long) __stringify(sym);                        \
+-      .popsection;
+-
+-#define __ADDRESSABLE_ASM_STR(sym) __stringify(__ADDRESSABLE_ASM(sym))
+-
+ /* &a[0] degrades to a pointer: a different type from an array */
+ #define __must_be_array(a)    BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
diff --git a/queue-6.6/drm-amd-display-don-t-overclock-dce-6-by-15.patch b/queue-6.6/drm-amd-display-don-t-overclock-dce-6-by-15.patch
new file mode 100644 (file)
index 0000000..a492fc1
--- /dev/null
@@ -0,0 +1,55 @@
+From stable+bounces-172665-greg=kroah.com@vger.kernel.org Sun Aug 24 01:46:56 2025
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 23 Aug 2025 19:46:46 -0400
+Subject: drm/amd/display: Don't overclock DCE 6 by 15%
+To: stable@vger.kernel.org
+Cc: "Timur Kristóf" <timur.kristof@gmail.com>, "Alex Deucher" <alexander.deucher@amd.com>, "Rodrigo Siqueira" <siqueira@igalia.com>, "Alex Hung" <alex.hung@amd.com>, "Sasha Levin" <sashal@kernel.org>
+Message-ID: <20250823234647.2465453-1-sashal@kernel.org>
+
+From: Timur Kristóf <timur.kristof@gmail.com>
+
+[ Upstream commit cb7b7ae53b557d168b4af5cd8549f3eff920bfb5 ]
+
+The extra 15% clock was added as a workaround for a Polaris issue
+which uses DCE 11, and should not have been used on DCE 6 which
+is already hardcoded to the highest possible display clock.
+Unfortunately, the extra 15% was mistakenly copied and kept
+even on code paths which don't affect Polaris.
+
+This commit fixes that and also adds a check to make sure
+not to exceed the maximum DCE 6 display clock.
+
+Fixes: 8cd61c313d8b ("drm/amd/display: Raise dispclk value for Polaris")
+Fixes: dc88b4a684d2 ("drm/amd/display: make clk mgr soc specific")
+Fixes: 3ecb3b794e2c ("drm/amd/display: dc/clk_mgr: add support for SI parts (v2)")
+Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Rodrigo Siqueira <siqueira@igalia.com>
+Reviewed-by: Alex Hung <alex.hung@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+(cherry picked from commit 427980c1cbd22bb256b9385f5ce73c0937562408)
+Cc: stable@vger.kernel.org
+[ `MIN` => `min` ]
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/display/dc/clk_mgr/dce60/dce60_clk_mgr.c |    8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dce60/dce60_clk_mgr.c
++++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dce60/dce60_clk_mgr.c
+@@ -112,11 +112,9 @@ static void dce60_update_clocks(struct c
+ {
+       struct clk_mgr_internal *clk_mgr_dce = TO_CLK_MGR_INTERNAL(clk_mgr_base);
+       struct dm_pp_power_level_change_request level_change_req;
+-      int patched_disp_clk = context->bw_ctx.bw.dce.dispclk_khz;
+-
+-      /*TODO: W/A for dal3 linux, investigate why this works */
+-      if (!clk_mgr_dce->dfs_bypass_active)
+-              patched_disp_clk = patched_disp_clk * 115 / 100;
++      const int max_disp_clk =
++              clk_mgr_dce->max_clks_by_state[DM_PP_CLOCKS_STATE_PERFORMANCE].display_clk_khz;
++      int patched_disp_clk = min(max_disp_clk, context->bw_ctx.bw.dce.dispclk_khz);
+       level_change_req.power_level = dce_get_required_clocks_state(clk_mgr_base, context);
+       /* get max clock state from PPLIB */
diff --git a/queue-6.6/mmc-sdhci-pci-gli-gl9763e-mask-the-replay-timer-timeout-of-aer.patch b/queue-6.6/mmc-sdhci-pci-gli-gl9763e-mask-the-replay-timer-timeout-of-aer.patch
new file mode 100644 (file)
index 0000000..6619b9a
--- /dev/null
@@ -0,0 +1,41 @@
+From stable+bounces-172633-greg=kroah.com@vger.kernel.org Sat Aug 23 17:46:52 2025
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 23 Aug 2025 11:45:22 -0400
+Subject: mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER
+To: stable@vger.kernel.org
+Cc: Victor Shih <victor.shih@genesyslogic.com.tw>, Adrian Hunter <adrian.hunter@intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20250823154522.2285870-3-sashal@kernel.org>
+
+From: Victor Shih <victor.shih@genesyslogic.com.tw>
+
+[ Upstream commit 340be332e420ed37d15d4169a1b4174e912ad6cb ]
+
+Due to a flaw in the hardware design, the GL9763e replay timer frequently
+times out when ASPM is enabled. As a result, the warning messages will
+often appear in the system log when the system accesses the GL9763e
+PCI config. Therefore, the replay timer timeout must be masked.
+
+Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw>
+Fixes: 1ae1d2d6e555 ("mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support")
+Cc: stable@vger.kernel.org
+Acked-by: Adrian Hunter <adrian.hunter@intel.com>
+Link: https://lore.kernel.org/r/20250731065752.450231-4-victorshihgli@gmail.com
+Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/mmc/host/sdhci-pci-gli.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/mmc/host/sdhci-pci-gli.c
++++ b/drivers/mmc/host/sdhci-pci-gli.c
+@@ -1376,6 +1376,9 @@ static void gl9763e_hw_setting(struct sd
+       value |= FIELD_PREP(GLI_9763E_HS400_RXDLY, GLI_9763E_HS400_RXDLY_5);
+       pci_write_config_dword(pdev, PCIE_GLI_9763E_CLKRXDLY, value);
++      /* mask the replay timer timeout of AER */
++      sdhci_gli_mask_replay_timer_timeout(pdev);
++
+       pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value);
+       value &= ~GLI_9763E_VHS_REV;
+       value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_R);
index 206f57559d453b6d6b1de5c068b6bcaf8c91f26a..44a39ebec49bc19babc312865d04385c3ae682ca 100644 (file)
@@ -528,3 +528,6 @@ usb-storage-ignore-driver-cd-mode-for-realtek-multi-mode-wi-fi-dongles.patch
 usb-dwc3-ignore-late-xfernotready-event-to-prevent-halt-timeout.patch
 usb-dwc3-remove-warn_on-for-device-endpoint-command-timeouts.patch
 usb-dwc3-pci-add-support-for-the-intel-wildcat-lake.patch
+drm-amd-display-don-t-overclock-dce-6-by-15.patch
+compiler-remove-__addressable_asm-_str-again.patch
+mmc-sdhci-pci-gli-gl9763e-mask-the-replay-timer-timeout-of-aer.patch