Lines Matching refs:wm

9216 static u32 dce8_dram_bandwidth(struct dce8_wm_params *wm)  in dce8_dram_bandwidth()  argument
9224 yclk.full = dfixed_const(wm->yclk); in dce8_dram_bandwidth()
9226 dram_channels.full = dfixed_const(wm->dram_channels * 4); in dce8_dram_bandwidth()
9245 static u32 dce8_dram_bandwidth_for_display(struct dce8_wm_params *wm) in dce8_dram_bandwidth_for_display() argument
9253 yclk.full = dfixed_const(wm->yclk); in dce8_dram_bandwidth_for_display()
9255 dram_channels.full = dfixed_const(wm->dram_channels * 4); in dce8_dram_bandwidth_for_display()
9274 static u32 dce8_data_return_bandwidth(struct dce8_wm_params *wm) in dce8_data_return_bandwidth() argument
9282 sclk.full = dfixed_const(wm->sclk); in dce8_data_return_bandwidth()
9303 static u32 dce8_dmif_request_bandwidth(struct dce8_wm_params *wm) in dce8_dmif_request_bandwidth() argument
9311 disp_clk.full = dfixed_const(wm->disp_clk); in dce8_dmif_request_bandwidth()
9334 static u32 dce8_available_bandwidth(struct dce8_wm_params *wm) in dce8_available_bandwidth() argument
9337 u32 dram_bandwidth = dce8_dram_bandwidth(wm); in dce8_available_bandwidth()
9338 u32 data_return_bandwidth = dce8_data_return_bandwidth(wm); in dce8_available_bandwidth()
9339 u32 dmif_req_bandwidth = dce8_dmif_request_bandwidth(wm); in dce8_available_bandwidth()
9353 static u32 dce8_average_bandwidth(struct dce8_wm_params *wm) in dce8_average_bandwidth() argument
9366 line_time.full = dfixed_const(wm->active_time + wm->blank_time); in dce8_average_bandwidth()
9368 bpp.full = dfixed_const(wm->bytes_per_pixel); in dce8_average_bandwidth()
9369 src_width.full = dfixed_const(wm->src_width); in dce8_average_bandwidth()
9371 bandwidth.full = dfixed_mul(bandwidth, wm->vsc); in dce8_average_bandwidth()
9386 static u32 dce8_latency_watermark(struct dce8_wm_params *wm) in dce8_latency_watermark() argument
9390 u32 available_bandwidth = dce8_available_bandwidth(wm); in dce8_latency_watermark()
9393 u32 dc_latency = 40000000 / wm->disp_clk; /* dc pipe latency */ in dce8_latency_watermark()
9394 u32 other_heads_data_return_time = ((wm->num_heads + 1) * worst_chunk_return_time) + in dce8_latency_watermark()
9395 (wm->num_heads * cursor_line_pair_return_time); in dce8_latency_watermark()
9401 if (wm->num_heads == 0) in dce8_latency_watermark()
9406 if ((wm->vsc.full > a.full) || in dce8_latency_watermark()
9407 ((wm->vsc.full > b.full) && (wm->vtaps >= 3)) || in dce8_latency_watermark()
9408 (wm->vtaps >= 5) || in dce8_latency_watermark()
9409 ((wm->vsc.full >= a.full) && wm->interlaced)) in dce8_latency_watermark()
9415 b.full = dfixed_const(wm->num_heads); in dce8_latency_watermark()
9419 c.full = dfixed_const(wm->disp_clk); in dce8_latency_watermark()
9428 c.full = dfixed_const(wm->disp_clk); in dce8_latency_watermark()
9430 c.full = dfixed_const(wm->bytes_per_pixel); in dce8_latency_watermark()
9435 a.full = dfixed_const(max_src_lines_per_dst_line * wm->src_width * wm->bytes_per_pixel); in dce8_latency_watermark()
9442 if (line_fill_time < wm->active_time) in dce8_latency_watermark()
9445 return latency + (line_fill_time - wm->active_time); in dce8_latency_watermark()
9460 static bool dce8_average_bandwidth_vs_dram_bandwidth_for_display(struct dce8_wm_params *wm) in dce8_average_bandwidth_vs_dram_bandwidth_for_display() argument
9462 if (dce8_average_bandwidth(wm) <= in dce8_average_bandwidth_vs_dram_bandwidth_for_display()
9463 (dce8_dram_bandwidth_for_display(wm) / wm->num_heads)) in dce8_average_bandwidth_vs_dram_bandwidth_for_display()
9480 static bool dce8_average_bandwidth_vs_available_bandwidth(struct dce8_wm_params *wm) in dce8_average_bandwidth_vs_available_bandwidth() argument
9482 if (dce8_average_bandwidth(wm) <= in dce8_average_bandwidth_vs_available_bandwidth()
9483 (dce8_available_bandwidth(wm) / wm->num_heads)) in dce8_average_bandwidth_vs_available_bandwidth()
9498 static bool dce8_check_latency_hiding(struct dce8_wm_params *wm) in dce8_check_latency_hiding() argument
9500 u32 lb_partitions = wm->lb_size / wm->src_width; in dce8_check_latency_hiding()
9501 u32 line_time = wm->active_time + wm->blank_time; in dce8_check_latency_hiding()
9507 if (wm->vsc.full > a.full) in dce8_check_latency_hiding()
9510 if (lb_partitions <= (wm->vtaps + 1)) in dce8_check_latency_hiding()
9516 latency_hiding = (latency_tolerant_lines * line_time + wm->blank_time); in dce8_check_latency_hiding()
9518 if (dce8_latency_watermark(wm) <= latency_hiding) in dce8_check_latency_hiding()