* [PATCH] drm/amd/display: Fix vblank refcount in vrr transition
@ 2022-07-27 21:03 Yunxiang Li
0 siblings, 0 replies; 4+ messages in thread
From: Yunxiang Li @ 2022-07-27 21:03 UTC (permalink / raw)
To: amd-gfx; +Cc: Yunxiang Li
manage_dm_interrupts disable/enable vblank using drm_crtc_vblank_off/on
which causes drm_crtc_vblank_get in vrr_transition to fail, and later
when drm_crtc_vblank_put is called the refcount on vblank will be messed
up. Therefore move the call to after manage_dm_interrupts.
Unchecked calls to drm_crtc_vblank_get seems to be common in other
drivers as well so it may make sense to let get always succeed during
modset, see
https://lists.freedesktop.org/archives/dri-devel/2022-July/365589.html
Signed-off-by: Yunxiang Li <Yunxiang.Li@amd.com>
---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 28 ++++++++-----------
1 file changed, 11 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 92470a0e0262..2107b2aef076 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -8252,23 +8252,6 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
mutex_unlock(&dm->dc_lock);
}
- /* Count number of newly disabled CRTCs for dropping PM refs later. */
- for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state,
- new_crtc_state, i) {
- if (old_crtc_state->active && !new_crtc_state->active)
- crtc_disable_count++;
-
- dm_new_crtc_state = to_dm_crtc_state(new_crtc_state);
- dm_old_crtc_state = to_dm_crtc_state(old_crtc_state);
-
- /* For freesync config update on crtc state and params for irq */
- update_stream_irq_parameters(dm, dm_new_crtc_state);
-
- /* Handle vrr on->off / off->on transitions */
- amdgpu_dm_handle_vrr_transition(dm_old_crtc_state,
- dm_new_crtc_state);
- }
-
/**
* Enable interrupts for CRTCs that are newly enabled or went through
* a modeset. It was intentionally deferred until after the front end
@@ -8287,7 +8270,15 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
cur_crc_src = acrtc->dm_irq_params.crc_src;
spin_unlock_irqrestore(&adev_to_drm(adev)->event_lock, flags);
#endif
+ /* Count number of newly disabled CRTCs for dropping PM refs later. */
+ if (old_crtc_state->active && !new_crtc_state->active)
+ crtc_disable_count++;
+
dm_new_crtc_state = to_dm_crtc_state(new_crtc_state);
+ dm_old_crtc_state = to_dm_crtc_state(old_crtc_state);
+
+ /* For freesync config update on crtc state and params for irq */
+ update_stream_irq_parameters(dm, dm_new_crtc_state);
if (new_crtc_state->active &&
(!old_crtc_state->active ||
@@ -8324,6 +8315,9 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
DRM_DEBUG_DRIVER("Failed to configure crc source");
#endif
}
+
+ /* Handle vrr on->off / off->on transitions */
+ amdgpu_dm_handle_vrr_transition(dm_old_crtc_state, dm_new_crtc_state);
}
for_each_new_crtc_in_state(state, crtc, new_crtc_state, j)
--
2.37.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/amd/display: Fix vblank refcount in vrr transition
@ 2022-10-14 14:15 Guenter Roeck
2022-10-14 14:27 ` Li, Yunxiang (Teddy)
0 siblings, 1 reply; 4+ messages in thread
From: Guenter Roeck @ 2022-10-14 14:15 UTC (permalink / raw)
To: Yunxiang Li; +Cc: Alex Deucher, Daniel Wheeler, Rodrigo Siqueira, amd-gfx
On Wed, Sep 21, 2022 at 05:20:19PM -0400, Yunxiang Li wrote:
> manage_dm_interrupts disable/enable vblank using drm_crtc_vblank_off/on
> which causes drm_crtc_vblank_get in vrr_transition to fail, and later
> when drm_crtc_vblank_put is called the refcount on vblank will be messed
> up. Therefore move the call to after manage_dm_interrupts.
>
> Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1247
> Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1380
>
This patch results in a large number of compile errors
if CONFIG_DEBUG_FS=n. Reverting it fixes the problem.
This is an architecture independent problem.
Guenter
---
Building loongarch:defconfig ... failed
--------------
Error log:
<stdin>:569:2: warning: #warning syscall fstat not implemented [-Wcpp]
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c: In function 'amdgpu_dm_atomic_commit_tail':
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:7969:14: warning: unused variable 'wait_for_vblank' [-Wunused-variable]
7969 | bool wait_for_vblank = true;
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:7968:23: warning: unused variable 'flags' [-Wunused-variable]
7968 | unsigned long flags;
| ^~~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_trace.h:39,
from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:41:
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c: At top level:
include/drm/drm_atomic.h:864:9: error: expected identifier or '(' before 'for'
864 | for ((__i) = 0; \
| ^~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8317:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8317 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:865:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
865 | (__i) < (__state)->dev->mode_config.num_crtc; \
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8317:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8317 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:866:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
866 | (__i)++) \
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8317:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8317 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_connector.h:32,
from include/drm/display/drm_dp_helper.h:30,
from drivers/gpu/drm/amd/amdgpu/../display/dc/os_types.h:39,
from drivers/gpu/drm/amd/amdgpu/../display/dc/dm_services_types.h:29,
from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:29:
include/drm/drm_util.h:63:53: error: expected identifier or '(' before 'else'
63 | #define for_each_if(condition) if (!(condition)) {} else
| ^~~~
include/drm/drm_atomic.h:867:17: note: in expansion of macro 'for_each_if'
867 | for_each_if ((__state)->crtcs[__i].ptr && \
| ^~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8317:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8317 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:864:9: error: expected identifier or '(' before 'for'
864 | for ((__i) = 0; \
| ^~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8322:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8322 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:865:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
865 | (__i) < (__state)->dev->mode_config.num_crtc; \
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8322:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8322 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:866:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
866 | (__i)++) \
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8322:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8322 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_util.h:63:53: error: expected identifier or '(' before 'else'
63 | #define for_each_if(condition) if (!(condition)) {} else
| ^~~~
include/drm/drm_atomic.h:867:17: note: in expansion of macro 'for_each_if'
867 | for_each_if ((__state)->crtcs[__i].ptr && \
| ^~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8322:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8322 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8331:9: warning: data definition has no type or storage class
8331 | amdgpu_dm_commit_audio(dev, state);
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8331:9: error: type defaults to 'int' in declaration of 'amdgpu_dm_commit_audio' [-Werror=implicit-int]
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8331:9: warning: parameter names (without types) in function declaration
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8331:9: error: conflicting types for 'amdgpu_dm_commit_audio'; have 'int()'
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:7861:13: note: previous definition of 'amdgpu_dm_commit_audio' with type 'void(struct drm_device *, struct drm_atomic_state *)'
7861 | static void amdgpu_dm_commit_audio(struct drm_device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8334:9: error: expected identifier or '(' before 'for'
8334 | for (i = 0; i < dm->num_of_edps; i++) {
| ^~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8334:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
8334 | for (i = 0; i < dm->num_of_edps; i++) {
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8334:43: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
8334 | for (i = 0; i < dm->num_of_edps; i++) {
| ^~
In file included from include/linux/mmzone.h:8,
from include/linux/gfp.h:7,
from include/linux/slab.h:15,
from drivers/gpu/drm/amd/amdgpu/../display/dc/os_types.h:30:
include/linux/spinlock.h:379:1: error: expected identifier or '(' before 'do'
379 | do { \
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8344:9: note: in expansion of macro 'spin_lock_irqsave'
8344 | spin_lock_irqsave(&adev_to_drm(adev)->event_lock, flags);
| ^~~~~~~~~~~~~~~~~
include/linux/spinlock.h:381:3: error: expected identifier or '(' before 'while'
381 | } while (0)
| ^~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8344:9: note: in expansion of macro 'spin_lock_irqsave'
8344 | spin_lock_irqsave(&adev_to_drm(adev)->event_lock, flags);
| ^~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:864:9: error: expected identifier or '(' before 'for'
864 | for ((__i) = 0; \
| ^~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8345:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8345 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:865:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
865 | (__i) < (__state)->dev->mode_config.num_crtc; \
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8345:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8345 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_atomic.h:866:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
866 | (__i)++) \
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8345:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8345 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_util.h:63:53: error: expected identifier or '(' before 'else'
63 | #define for_each_if(condition) if (!(condition)) {} else
| ^~~~
include/drm/drm_atomic.h:867:17: note: in expansion of macro 'for_each_if'
867 | for_each_if ((__state)->crtcs[__i].ptr && \
| ^~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8345:9: note: in expansion of macro 'for_each_new_crtc_in_state'
8345 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8352:32: error: expected declaration specifiers or '...' before '&' token
8352 | spin_unlock_irqrestore(&adev_to_drm(adev)->event_lock, flags);
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8352:64: error: unknown type name 'flags'
8352 | spin_unlock_irqrestore(&adev_to_drm(adev)->event_lock, flags);
| ^~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8355:9: warning: data definition has no type or storage class
8355 | drm_atomic_helper_commit_hw_done(state);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8355:9: error: type defaults to 'int' in declaration of 'drm_atomic_helper_commit_hw_done' [-Werror=implicit-int]
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8355:9: warning: parameter names (without types) in function declaration
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8355:9: error: conflicting types for 'drm_atomic_helper_commit_hw_done'; have 'int()'
In file included from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:83:
include/drm/drm_atomic_helper.h:123:6: note: previous declaration of 'drm_atomic_helper_commit_hw_done' with type 'void(struct drm_atomic_state *)'
123 | void drm_atomic_helper_commit_hw_done(struct drm_atomic_state *state);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8357:9: error: expected identifier or '(' before 'if'
8357 | if (wait_for_vblank)
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8360:9: warning: data definition has no type or storage class
8360 | drm_atomic_helper_cleanup_planes(dev, state);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8360:9: error: type defaults to 'int' in declaration of 'drm_atomic_helper_cleanup_planes' [-Werror=implicit-int]
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8360:9: warning: parameter names (without types) in function declaration
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8360:9: error: conflicting types for 'drm_atomic_helper_cleanup_planes'; have 'int()'
include/drm/drm_atomic_helper.h:108:6: note: previous declaration of 'drm_atomic_helper_cleanup_planes' with type 'void(struct drm_device *, struct drm_atomic_state *)'
108 | void drm_atomic_helper_cleanup_planes(struct drm_device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8363:9: error: expected identifier or '(' before 'if'
8363 | if (!adev->mman.keep_stolen_vga_memory)
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8365:31: error: expected declaration specifiers or '...' before '&' token
8365 | amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL);
| ^
In file included from include/uapi/linux/posix_types.h:5,
from include/uapi/linux/types.h:14,
from include/linux/types.h:6,
from include/linux/kasan-checks.h:5,
from include/asm-generic/rwonce.h:26,
from ./arch/loongarch/include/generated/asm/rwonce.h:1,
from include/linux/compiler.h:246,
from include/linux/build_bug.h:5,
from include/linux/container_of.h:5,
from include/linux/list.h:5,
from include/linux/preempt.h:11,
from include/linux/spinlock.h:56:
include/linux/stddef.h:8:14: error: expected declaration specifiers or '...' before '(' token
8 | #define NULL ((void *)0)
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8365:67: note: in expansion of macro 'NULL'
8365 | amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL);
| ^~~~
include/linux/stddef.h:8:14: error: expected declaration specifiers or '...' before '(' token
8 | #define NULL ((void *)0)
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8365:73: note: in expansion of macro 'NULL'
8365 | amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL);
| ^~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8372:9: error: expected identifier or '(' before 'for'
8372 | for (i = 0; i < crtc_disable_count; i++)
| ^~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8372:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
8372 | for (i = 0; i < crtc_disable_count; i++)
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8372:46: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
8372 | for (i = 0; i < crtc_disable_count; i++)
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8374:38: error: expected ')' before '->' token
8374 | pm_runtime_mark_last_busy(dev->dev);
| ^~
| )
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8376:9: error: expected identifier or '(' before 'if'
8376 | if (dc_state_temp)
| ^~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8378:1: error: expected identifier or '(' before '}' token
8378 | }
| ^
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:7861:13: warning: 'amdgpu_dm_commit_audio' defined but not used [-Wunused-function]
7861 | static void amdgpu_dm_commit_audio(struct drm_device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:7512:13: warning: 'amdgpu_dm_commit_planes' defined but not used [-Wunused-function]
7512 | static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
| ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[6]: *** [scripts/Makefile.build:250: drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.o] Error 1
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] drm/amd/display: Fix vblank refcount in vrr transition
2022-10-14 14:15 [PATCH] drm/amd/display: Fix vblank refcount in vrr transition Guenter Roeck
@ 2022-10-14 14:27 ` Li, Yunxiang (Teddy)
2022-10-14 23:06 ` Guenter Roeck
0 siblings, 1 reply; 4+ messages in thread
From: Li, Yunxiang (Teddy) @ 2022-10-14 14:27 UTC (permalink / raw)
To: Guenter Roeck
Cc: Deucher, Alexander, Wheeler, Daniel, Siqueira, Rodrigo,
amd-gfx@lists.freedesktop.org
[AMD Official Use Only - General]
> This patch results in a large number of compile errors if CONFIG_DEBUG_FS=n. Reverting it fixes the problem.
>
> This is an architecture independent problem.
>
> Guenter
Oops, seem to be because at amdgpu_dm.c:8328 the } should be inside the #endif not outside.
Yunxiang
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/amd/display: Fix vblank refcount in vrr transition
2022-10-14 14:27 ` Li, Yunxiang (Teddy)
@ 2022-10-14 23:06 ` Guenter Roeck
0 siblings, 0 replies; 4+ messages in thread
From: Guenter Roeck @ 2022-10-14 23:06 UTC (permalink / raw)
To: Li, Yunxiang (Teddy)
Cc: Deucher, Alexander, Wheeler, Daniel, Siqueira, Rodrigo,
amd-gfx@lists.freedesktop.org
On Fri, Oct 14, 2022 at 02:27:35PM +0000, Li, Yunxiang (Teddy) wrote:
> [AMD Official Use Only - General]
>
> > This patch results in a large number of compile errors if CONFIG_DEBUG_FS=n. Reverting it fixes the problem.
> >
> > This is an architecture independent problem.
> >
> > Guenter
>
> Oops, seem to be because at amdgpu_dm.c:8328 the } should be inside the #endif not outside.
>
Already fixed upstream.
Guenter
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-17 7:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-14 14:15 [PATCH] drm/amd/display: Fix vblank refcount in vrr transition Guenter Roeck
2022-10-14 14:27 ` Li, Yunxiang (Teddy)
2022-10-14 23:06 ` Guenter Roeck
-- strict thread matches above, loose matches on Subject: below --
2022-07-27 21:03 Yunxiang Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox