OSDN Git Service

drm/amd/display: minor restructuring of pbn calculation functions
authorWenjing Liu <wenjing.liu@amd.com>
Tue, 6 Oct 2020 20:22:40 +0000 (16:22 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 16 Nov 2020 17:19:10 +0000 (12:19 -0500)
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Acked-by: Bindu Ramamurthy <bindu.r@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index 858acd3..165fd2f 100644 (file)
@@ -2818,15 +2818,12 @@ static struct fixed31_32 get_pbn_per_slot(struct dc_stream_state *stream)
        return dc_fixpt_div_int(mbytes_per_sec, 54);
 }
 
-static struct fixed31_32 get_pbn_from_timing(struct pipe_ctx *pipe_ctx)
+static struct fixed31_32 get_pbn_from_bw_in_kbps(uint64_t kbps)
 {
-       uint64_t kbps;
        struct fixed31_32 peak_kbps;
        uint32_t numerator;
        uint32_t denominator;
 
-       kbps = dc_bandwidth_in_kbps_from_timing(&pipe_ctx->stream->timing);
-
        /*
         * margin 5300ppm + 300ppm ~ 0.6% as per spec, factor is 1.006
         * The unit of 54/64Mbytes/sec is an arbitrary unit chosen based on
@@ -2846,6 +2843,14 @@ static struct fixed31_32 get_pbn_from_timing(struct pipe_ctx *pipe_ctx)
        return peak_kbps;
 }
 
+static struct fixed31_32 get_pbn_from_timing(struct pipe_ctx *pipe_ctx)
+{
+       uint64_t kbps;
+
+       kbps = dc_bandwidth_in_kbps_from_timing(&pipe_ctx->stream->timing);
+       return get_pbn_from_bw_in_kbps(kbps);
+}
+
 static void update_mst_stream_alloc_table(
        struct dc_link *link,
        struct stream_encoder *stream_enc,
@@ -2873,6 +2878,7 @@ static void update_mst_stream_alloc_table(
                                proposed_table->stream_allocations[i].vcp_id) {
 
                                work_table[i] = *dc_alloc;
+                               work_table[i].slot_count = proposed_table->stream_allocations[i].slot_count;
                                break; /* exit j loop */
                        }
                }