Lines Matching refs:wm

2013 static u32 dce6_dram_bandwidth(struct dce6_wm_params *wm)  in dce6_dram_bandwidth()  argument
2021 yclk.full = dfixed_const(wm->yclk); in dce6_dram_bandwidth()
2023 dram_channels.full = dfixed_const(wm->dram_channels * 4); in dce6_dram_bandwidth()
2033 static u32 dce6_dram_bandwidth_for_display(struct dce6_wm_params *wm) in dce6_dram_bandwidth_for_display() argument
2041 yclk.full = dfixed_const(wm->yclk); in dce6_dram_bandwidth_for_display()
2043 dram_channels.full = dfixed_const(wm->dram_channels * 4); in dce6_dram_bandwidth_for_display()
2053 static u32 dce6_data_return_bandwidth(struct dce6_wm_params *wm) in dce6_data_return_bandwidth() argument
2061 sclk.full = dfixed_const(wm->sclk); in dce6_data_return_bandwidth()
2073 static u32 dce6_get_dmif_bytes_per_request(struct dce6_wm_params *wm) in dce6_get_dmif_bytes_per_request() argument
2078 static u32 dce6_dmif_request_bandwidth(struct dce6_wm_params *wm) in dce6_dmif_request_bandwidth() argument
2087 disp_clk.full = dfixed_const(wm->disp_clk); in dce6_dmif_request_bandwidth()
2089 a.full = dfixed_const(dce6_get_dmif_bytes_per_request(wm) / 2); in dce6_dmif_request_bandwidth()
2093 sclk.full = dfixed_const(wm->sclk); in dce6_dmif_request_bandwidth()
2095 a.full = dfixed_const(dce6_get_dmif_bytes_per_request(wm)); in dce6_dmif_request_bandwidth()
2110 static u32 dce6_available_bandwidth(struct dce6_wm_params *wm) in dce6_available_bandwidth() argument
2113 u32 dram_bandwidth = dce6_dram_bandwidth(wm); in dce6_available_bandwidth()
2114 u32 data_return_bandwidth = dce6_data_return_bandwidth(wm); in dce6_available_bandwidth()
2115 u32 dmif_req_bandwidth = dce6_dmif_request_bandwidth(wm); in dce6_available_bandwidth()
2120 static u32 dce6_average_bandwidth(struct dce6_wm_params *wm) in dce6_average_bandwidth() argument
2133 line_time.full = dfixed_const(wm->active_time + wm->blank_time); in dce6_average_bandwidth()
2135 bpp.full = dfixed_const(wm->bytes_per_pixel); in dce6_average_bandwidth()
2136 src_width.full = dfixed_const(wm->src_width); in dce6_average_bandwidth()
2138 bandwidth.full = dfixed_mul(bandwidth, wm->vsc); in dce6_average_bandwidth()
2144 static u32 dce6_latency_watermark(struct dce6_wm_params *wm) in dce6_latency_watermark() argument
2148 u32 available_bandwidth = dce6_available_bandwidth(wm); in dce6_latency_watermark()
2151 u32 dc_latency = 40000000 / wm->disp_clk; /* dc pipe latency */ in dce6_latency_watermark()
2152 u32 other_heads_data_return_time = ((wm->num_heads + 1) * worst_chunk_return_time) + in dce6_latency_watermark()
2153 (wm->num_heads * cursor_line_pair_return_time); in dce6_latency_watermark()
2159 if (wm->num_heads == 0) in dce6_latency_watermark()
2164 if ((wm->vsc.full > a.full) || in dce6_latency_watermark()
2165 ((wm->vsc.full > b.full) && (wm->vtaps >= 3)) || in dce6_latency_watermark()
2166 (wm->vtaps >= 5) || in dce6_latency_watermark()
2167 ((wm->vsc.full >= a.full) && wm->interlaced)) in dce6_latency_watermark()
2173 b.full = dfixed_const(wm->num_heads); in dce6_latency_watermark()
2177 c.full = dfixed_const(wm->disp_clk); in dce6_latency_watermark()
2186 c.full = dfixed_const(wm->disp_clk); in dce6_latency_watermark()
2188 c.full = dfixed_const(wm->bytes_per_pixel); in dce6_latency_watermark()
2193 a.full = dfixed_const(max_src_lines_per_dst_line * wm->src_width * wm->bytes_per_pixel); in dce6_latency_watermark()
2200 if (line_fill_time < wm->active_time) in dce6_latency_watermark()
2203 return latency + (line_fill_time - wm->active_time); in dce6_latency_watermark()
2207 static bool dce6_average_bandwidth_vs_dram_bandwidth_for_display(struct dce6_wm_params *wm) in dce6_average_bandwidth_vs_dram_bandwidth_for_display() argument
2209 if (dce6_average_bandwidth(wm) <= in dce6_average_bandwidth_vs_dram_bandwidth_for_display()
2210 (dce6_dram_bandwidth_for_display(wm) / wm->num_heads)) in dce6_average_bandwidth_vs_dram_bandwidth_for_display()
2216 static bool dce6_average_bandwidth_vs_available_bandwidth(struct dce6_wm_params *wm) in dce6_average_bandwidth_vs_available_bandwidth() argument
2218 if (dce6_average_bandwidth(wm) <= in dce6_average_bandwidth_vs_available_bandwidth()
2219 (dce6_available_bandwidth(wm) / wm->num_heads)) in dce6_average_bandwidth_vs_available_bandwidth()
2225 static bool dce6_check_latency_hiding(struct dce6_wm_params *wm) in dce6_check_latency_hiding() argument
2227 u32 lb_partitions = wm->lb_size / wm->src_width; in dce6_check_latency_hiding()
2228 u32 line_time = wm->active_time + wm->blank_time; in dce6_check_latency_hiding()
2234 if (wm->vsc.full > a.full) in dce6_check_latency_hiding()
2237 if (lb_partitions <= (wm->vtaps + 1)) in dce6_check_latency_hiding()
2243 latency_hiding = (latency_tolerant_lines * line_time + wm->blank_time); in dce6_check_latency_hiding()
2245 if (dce6_latency_watermark(wm) <= latency_hiding) in dce6_check_latency_hiding()