]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Rename should_use_dmub_lock to reflect inbox1 usage
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Wed, 17 Sep 2025 15:46:56 +0000 (11:46 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 13 Oct 2025 18:14:31 +0000 (14:14 -0400)
[Why]
Newer DCN use the DMCUB HW lock via inbox0 for performance reasons while
older ones will use inbox1.

The should_use_dmub_lock() function does not describe whether the lock
in general should be used, but whether it should be used via inbox1.

[How]
Rename the function to should_use_dmub_inbox1_lock() to reflect this.

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Roman Li <roman.li@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.h
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c

index 3f5ec076da1c06a4a31cbdca7daa4aba22663d9d..be885801a9ed69c2412ad5881c6a54c740cae308 100644 (file)
@@ -4149,7 +4149,7 @@ static void commit_planes_for_stream(struct dc *dc,
        if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed)
                if (top_pipe_to_program &&
                        top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
-                       if (should_use_dmub_lock(dc, stream->link)) {
+                       if (should_use_dmub_inbox1_lock(dc, stream->link)) {
                                union dmub_hw_lock_flags hw_locks = { 0 };
                                struct dmub_hw_lock_inst_flags inst_flags = { 0 };
 
@@ -4419,7 +4419,7 @@ static void commit_planes_for_stream(struct dc *dc,
                                top_pipe_to_program->stream_res.tg,
                                CRTC_STATE_VACTIVE);
 
-                       if (should_use_dmub_lock(dc, stream->link)) {
+                       if (should_use_dmub_inbox1_lock(dc, stream->link)) {
                                union dmub_hw_lock_flags hw_locks = { 0 };
                                struct dmub_hw_lock_inst_flags inst_flags = { 0 };
 
index 17c30c5b16794d111fd683ddaae408f030861e1d..39f5fa73c43e67c37774da5506f618979007e761 100644 (file)
@@ -61,7 +61,7 @@ void dmub_hw_lock_mgr_inbox0_cmd(struct dc_dmub_srv *dmub_srv,
        dc_dmub_srv_wait_for_inbox0_ack(dmub_srv);
 }
 
-bool should_use_dmub_lock(const struct dc *dc, const struct dc_link *link)
+bool should_use_dmub_inbox1_lock(const struct dc *dc, const struct dc_link *link)
 {
        /* ASIC doesn't support DMUB */
        if (!dc->ctx->dmub_srv)
index 6e8863877686939126b771238e08ccd4cc67c1f0..9f53d2ea5fa59a6da82a855691cd5b416408986c 100644 (file)
@@ -37,6 +37,14 @@ void dmub_hw_lock_mgr_cmd(struct dc_dmub_srv *dmub_srv,
 void dmub_hw_lock_mgr_inbox0_cmd(struct dc_dmub_srv *dmub_srv,
                union dmub_inbox0_cmd_lock_hw hw_lock_cmd);
 
-bool should_use_dmub_lock(const struct dc *dc, const struct dc_link *link);
+/**
+ * should_use_dmub_inbox1_lock() - Checks if the DMCUB hardware lock via inbox1 should be used.
+ *
+ * @dc: pointer to DC object
+ * @link: optional pointer to the link object to check for enabled link features
+ *
+ * Return: true if the inbox1 lock should be used, false otherwise
+ */
+bool should_use_dmub_inbox1_lock(const struct dc *dc, const struct dc_link *link);
 
 #endif /*_DMUB_HW_LOCK_MGR_H_ */
index cb915abac15a6af39aaf67b6b9d0e6952e7deecd..c88781de6d18ac6e0448de112df61ac1dd07174d 100644 (file)
@@ -2245,7 +2245,7 @@ void dcn10_cursor_lock(struct dc *dc, struct pipe_ctx *pipe, bool lock)
        if (lock)
                delay_cursor_until_vupdate(dc, pipe);
 
-       if (pipe->stream && should_use_dmub_lock(dc, pipe->stream->link)) {
+       if (pipe->stream && should_use_dmub_inbox1_lock(dc, pipe->stream->link)) {
                union dmub_hw_lock_flags hw_locks = { 0 };
                struct dmub_hw_lock_inst_flags inst_flags = { 0 };
 
index 650a1697557b245cb4c14e9a0e0fb45bd58f5706..cf9e8ce784ce1a483613adda96e38a643bf3a479 100644 (file)
@@ -1449,7 +1449,7 @@ void dcn20_pipe_control_lock(
                !flip_immediate)
            dcn20_setup_gsl_group_as_lock(dc, pipe, false);
 
-       if (pipe->stream && should_use_dmub_lock(dc, pipe->stream->link)) {
+       if (pipe->stream && should_use_dmub_inbox1_lock(dc, pipe->stream->link)) {
                union dmub_hw_lock_flags hw_locks = { 0 };
                struct dmub_hw_lock_inst_flags inst_flags = { 0 };
 
index 3c8eb1510226cb42a992778de989bc7e7d2d9518..1593412354cf841eff3634ac862c9099b3c550b1 100644 (file)
@@ -876,7 +876,7 @@ bool dp_set_test_pattern(
                        return false;
 
                if (pipe_ctx->stream_res.tg->funcs->lock_doublebuffer_enable) {
-                       if (should_use_dmub_lock(pipe_ctx->stream->link->dc, pipe_ctx->stream->link)) {
+                       if (should_use_dmub_inbox1_lock(pipe_ctx->stream->link->dc, pipe_ctx->stream->link)) {
                                union dmub_hw_lock_flags hw_locks = { 0 };
                                struct dmub_hw_lock_inst_flags inst_flags = { 0 };
 
@@ -924,7 +924,7 @@ bool dp_set_test_pattern(
                                CRTC_STATE_VACTIVE);
 
                if (pipe_ctx->stream_res.tg->funcs->lock_doublebuffer_disable) {
-                       if (should_use_dmub_lock(pipe_ctx->stream->link->dc, pipe_ctx->stream->link)) {
+                       if (should_use_dmub_inbox1_lock(pipe_ctx->stream->link->dc, pipe_ctx->stream->link)) {
                                union dmub_hw_lock_flags hw_locks = { 0 };
                                struct dmub_hw_lock_inst_flags inst_flags = { 0 };