From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>,
Ovidiu Bunea <ovidiu.bunea@amd.com>,
Hamza Mahfooz <hamza.mahfooz@amd.com>,
Alex Deucher <alexander.deucher@amd.com>,
Sasha Levin <sashal@kernel.org>,
harry.wentland@amd.com, sunpeng.li@amd.com,
Rodrigo.Siqueira@amd.com, christian.koenig@amd.com,
Xinhui.Pan@amd.com, airlied@gmail.com, daniel@ffwll.ch,
aric.cyr@amd.com, jun.lei@amd.com, alvin.lee2@amd.com,
Qingqing.Zhuo@amd.com, chiahsuan.chung@amd.com,
george.shen@amd.com, dillon.varone@amd.com, wayne.lin@amd.com,
duncan.ma@amd.com, samson.tam@amd.com,
srinivasan.shanmugam@amd.com, jinze.xu@amd.com,
Josip.Pavic@amd.com, cruise.hung@amd.com, charlene.liu@amd.com,
ahmed.ahmed@amd.com, wenjing.liu@amd.com,
amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: [PATCH AUTOSEL 6.8 24/98] drm/amd/display: Disable idle reallow as part of command/gpint execution
Date: Fri, 29 Mar 2024 08:36:55 -0400 [thread overview]
Message-ID: <20240329123919.3087149-24-sashal@kernel.org> (raw)
In-Reply-To: <20240329123919.3087149-1-sashal@kernel.org>
From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
[ Upstream commit 6226a5aa77370329e01ee8abe50a95e60618ce97 ]
[Why]
Workaroud for a race condition where DMCUB is in the process of
committing to IPS1 during the handshake causing us to miss the
transition into IPS2 and touch the INBOX1 RPTR causing a HW hang.
[How]
Disable the reallow to ensure that we have enough of a gap between entry
and exit and we're not seeing back-to-back wake_and_executes.
Reviewed-by: Ovidiu Bunea <ovidiu.bunea@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/amd/display/dc/dc.h | 1 +
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 4 ++--
.../gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c | 1 +
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
index c9317ea0258ea..b46c894672b60 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -987,6 +987,7 @@ struct dc_debug_options {
bool psp_disabled_wa;
unsigned int ips2_eval_delay_us;
unsigned int ips2_entry_delay_us;
+ bool disable_dmub_reallow_idle;
bool disable_timeout;
bool disable_extblankadj;
unsigned int static_screen_wait_frames;
diff --git a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
index 363d522603a21..9084b320849a6 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
+++ b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c
@@ -1364,7 +1364,7 @@ bool dc_wake_and_execute_dmub_cmd_list(const struct dc_context *ctx, unsigned in
else
result = dm_execute_dmub_cmd(ctx, cmd, wait_type);
- if (result && reallow_idle)
+ if (result && reallow_idle && !ctx->dc->debug.disable_dmub_reallow_idle)
dc_dmub_srv_apply_idle_power_optimizations(ctx->dc, true);
return result;
@@ -1413,7 +1413,7 @@ bool dc_wake_and_execute_gpint(const struct dc_context *ctx, enum dmub_gpint_com
result = dc_dmub_execute_gpint(ctx, command_code, param, response, wait_type);
- if (result && reallow_idle)
+ if (result && reallow_idle && !ctx->dc->debug.disable_dmub_reallow_idle)
dc_dmub_srv_apply_idle_power_optimizations(ctx->dc, true);
return result;
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c b/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c
index 5fdcda8f86026..ff17fce44eb1d 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c
@@ -782,6 +782,7 @@ static const struct dc_debug_options debug_defaults_drv = {
.psp_disabled_wa = true,
.ips2_eval_delay_us = 2000,
.ips2_entry_delay_us = 800,
+ .disable_dmub_reallow_idle = true,
.static_screen_wait_frames = 2,
};
--
2.43.0
next prev parent reply other threads:[~2024-03-29 12:40 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-29 12:36 [PATCH AUTOSEL 6.8 01/98] drm/vc4: don't check if plane->state->fb == state->fb Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 02/98] drm/ci: uprev mesa version: fix kdl commit fetch Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 03/98] drm/amdgpu: Skip do PCI error slot reset during RAS recovery Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 04/98] Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 05/98] drm: panel-orientation-quirks: Add quirk for GPD Win Mini Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 06/98] ASoC: SOF: amd: Optimize quirk for Valve Galileo Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 07/98] drm/ttm: return ENOSPC from ttm_bo_mem_space v3 Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 08/98] scsi: ufs: qcom: Avoid re-init quirk when gears match Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 09/98] drm/amd/display: increased min_dcfclk_mhz and min_fclk_mhz Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 10/98] drm/amd/display: For FPO and SubVP/DRR configs program vmin/max sel Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 11/98] arm64: dts: qcom: sdm630: add USB QMP PHY support Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 12/98] arm64: dts: qcom: sda660-ifc6560: enable USB 3.0 PHY Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 13/98] arm64: dts: qcom: Add support for Xiaomi Redmi Note 9S Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 14/98] pinctrl: renesas: checker: Limit cfg reg enum checks to provided IDs Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 15/98] VMCI: Fix memcpy() run-time warning in dg_dispatch_as_host() Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 16/98] sysv: don't call sb_bread() with pointers_lock held Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 17/98] quota: Fix potential NULL pointer dereference Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 18/98] scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc() Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 19/98] printk: For @suppress_panic_printk check for other CPU in panic Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 20/98] printk: Add this_cpu_in_panic() Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 21/98] printk: Avoid non-panic CPUs writing to ringbuffer Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 22/98] panic: Flush kernel log buffer at the end Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 23/98] dump_stack: Do not get cpu_sync for panic CPU Sasha Levin
2024-03-29 12:36 ` Sasha Levin [this message]
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 25/98] isofs: handle CDs with bad root inode but good Joliet root directory Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 26/98] ASoC: Intel: sof_rt5682: dmi quirk cleanup for mtl boards Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 27/98] ASoC: Intel: common: DMI remap for rebranded Intel NUC M15 (LAPRC710) laptops Sasha Levin
2024-03-29 12:36 ` [PATCH AUTOSEL 6.8 28/98] cpuidle: Avoid potential overflow in integer multiplication Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 29/98] ARM: dts: rockchip: fix rk3288 hdmi ports node Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 30/98] ARM: dts: rockchip: fix rk322x " Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 31/98] arm64: dts: rockchip: fix rk3328 " Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 32/98] arm64: dts: rockchip: fix rk3399 " Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 33/98] arm64: dts: qcom: qcs6490-rb3gen2: Declare GCC clocks protected Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 34/98] pmdomain: ti: Add a null pointer check to the omap_prm_domain_init Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 35/98] pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix domain Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 36/98] arm64: dts: sc8280xp: correct DMIC2 and DMIC3 pin config node names Sasha Levin
2024-04-02 7:23 ` Johan Hovold
2024-04-02 10:17 ` Krzysztof Kozlowski
2024-04-07 23:46 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 37/98] arm64: dts: sm8450: " Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 38/98] arm64: dts: sm8550: " Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 39/98] arm64: dts: sm8650: " Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 40/98] rcu/nocb: Fix WARN_ON_ONCE() in the rcu_nocb_bypass_lock() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 41/98] rcu-tasks: Repair RCU Tasks Trace quiescence check Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 42/98] Julia Lawall reported this null pointer dereference, this should fix it Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 43/98] ACPI: resource: Add IRQ override quirk for ASUS ExpertBook B2502FBA Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 44/98] media: sta2x11: fix irq handler cast Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 45/98] ALSA: firewire-lib: handle quirk to calculate payload quadlets as data block counter Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 46/98] drm/panel: simple: Add BOE BP082WX1-100 8.2" panel Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 47/98] x86/vdso: Fix rethunk patching for vdso-image-{32,64}.o Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 48/98] ASoC: Intel: avs: Populate board selection with new I2S entries Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 49/98] firmware: tegra: bpmp: Return directly after a failed kzalloc() in get_filename() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 50/98] ext4: add a hint for block bitmap corrupt state in mb_groups Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 51/98] ext4: forbid commit inconsistent quota data when errors=remount-ro Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 52/98] ACPI: x86: Move acpi_quirk_skip_serdev_enumeration() out of CONFIG_X86_ANDROID_TABLETS Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 53/98] ACPI: x86: Add DELL0501 handling to acpi_quirk_skip_serdev_enumeration() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 54/98] drm/amd/display: Fix nanosec stat overflow Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 55/98] pstore/zone: Add a null pointer check to the psz_kmsg_read Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 56/98] tools/power x86_energy_perf_policy: Fix file leak in get_pkg_num() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 57/98] mfd: intel-lpss: Switch to generalized quirk table Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 58/98] mfd: intel-lpss: Introduce QUIRK_CLOCK_DIVIDER_UNITY for XPS 9530 Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 59/98] accel/habanalabs: increase HL_MAX_STR to 64 bytes to avoid warnings Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 60/98] i2c: designware: Fix RX FIFO depth define on Wangxun 10Gb NIC Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 61/98] HID: input: avoid polling stylus battery on Chromebook Pompom Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 62/98] drm/amd/amdgpu: Fix potential ioremap() memory leaks in amdgpu_device_init() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 63/98] dma-direct: Leak pages on dma_set_decrypted() failure Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 64/98] drm: Check output polling initialized before disabling Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 65/98] SUNRPC: increase size of rpc_wait_queue.qlen from unsigned short to unsigned int Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 66/98] iommu/arm-smmu-v3: Hold arm_smmu_asid_lock during all of attach_dev Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 67/98] PCI: Disable D3cold on Asus B1400 PCI-NVMe bridge Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 68/98] Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default" Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 69/98] sparc: vdso: Disable UBSAN instrumentation Sasha Levin
2024-03-30 2:05 ` Kees Cook
2024-04-07 23:46 ` Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 70/98] libperf evlist: Avoid out-of-bounds access Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 71/98] PCI: Mark LSI FW643 to avoid bus reset Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 72/98] crypto: iaa - Fix async_disable descriptor leak Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 73/98] cpufreq: Don't unregister cpufreq cooling on CPU hotplug Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 74/98] overflow: Allow non-type arg to type_max() and type_min() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 75/98] sh: Fix build with CONFIG_UBSAN=y Sasha Levin
2024-03-30 2:06 ` Kees Cook
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 76/98] input/touchscreen: imagis: Correct the maximum touch area value Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 77/98] input/touchscreen: imagis: Add support for Imagis IST3038B Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 78/98] input/touchscreen: imagis: add support for IST3032C Sasha Levin
2024-03-30 9:33 ` Karel Balej
2024-04-07 23:48 ` Sasha Levin
2024-04-08 21:47 ` Karel Balej
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 79/98] drivers/perf: hisi: Enable HiSilicon Erratum 162700402 quirk for HIP09 Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 80/98] btrfs: preallocate temporary extent buffer for inode logging when needed Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 81/98] btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 82/98] btrfs: export: handle invalid inode or root reference in btrfs_get_parent() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 83/98] btrfs: send: handle path ref underflow in header iterate_inode_ref() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 84/98] block: prevent division by zero in blk_rq_stat_sum() Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 85/98] RDMA/cm: add timeout to cm_destroy_id wait Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 86/98] Input: make input_class constant Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 87/98] Input: imagis - use FIELD_GET where applicable Sasha Levin
2024-03-29 12:37 ` [PATCH AUTOSEL 6.8 88/98] Input: imagis - add touch key support Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 89/98] smb: client: reuse file lease key in compound operations Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 90/98] Input: allocate keycode for Display refresh rate toggle Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 91/98] platform/x86: acer-wmi: Add support for Acer PH16-71 Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 92/98] platform/x86: acer-wmi: Add predator_v4 module parameter Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 93/98] platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 94/98] perf/x86/amd/lbr: Discard erroneous branch entries Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 95/98] ALSA: hda/realtek: Add quirk for Lenovo Yoga 9 14IMH9 Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 96/98] ktest: force $buildonly = 1 for 'make_warnings_file' test type Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 97/98] Input: xpad - add support for Snakebyte GAMEPADs Sasha Levin
2024-03-29 12:38 ` [PATCH AUTOSEL 6.8 98/98] ring-buffer: use READ_ONCE() to read cpu_buffer->commit_page in concurrent environment Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240329123919.3087149-24-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=Josip.Pavic@amd.com \
--cc=Qingqing.Zhuo@amd.com \
--cc=Rodrigo.Siqueira@amd.com \
--cc=Xinhui.Pan@amd.com \
--cc=ahmed.ahmed@amd.com \
--cc=airlied@gmail.com \
--cc=alexander.deucher@amd.com \
--cc=alvin.lee2@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=aric.cyr@amd.com \
--cc=charlene.liu@amd.com \
--cc=chiahsuan.chung@amd.com \
--cc=christian.koenig@amd.com \
--cc=cruise.hung@amd.com \
--cc=daniel@ffwll.ch \
--cc=dillon.varone@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=duncan.ma@amd.com \
--cc=george.shen@amd.com \
--cc=hamza.mahfooz@amd.com \
--cc=harry.wentland@amd.com \
--cc=jinze.xu@amd.com \
--cc=jun.lei@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nicholas.kazlauskas@amd.com \
--cc=ovidiu.bunea@amd.com \
--cc=samson.tam@amd.com \
--cc=srinivasan.shanmugam@amd.com \
--cc=stable@vger.kernel.org \
--cc=sunpeng.li@amd.com \
--cc=wayne.lin@amd.com \
--cc=wenjing.liu@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox