Lines Matching refs:wm
2041 static u32 evergreen_dram_bandwidth(struct evergreen_wm_params *wm) in evergreen_dram_bandwidth() argument
2049 yclk.full = dfixed_const(wm->yclk); in evergreen_dram_bandwidth()
2051 dram_channels.full = dfixed_const(wm->dram_channels * 4); in evergreen_dram_bandwidth()
2061 static u32 evergreen_dram_bandwidth_for_display(struct evergreen_wm_params *wm) in evergreen_dram_bandwidth_for_display() argument
2069 yclk.full = dfixed_const(wm->yclk); in evergreen_dram_bandwidth_for_display()
2071 dram_channels.full = dfixed_const(wm->dram_channels * 4); in evergreen_dram_bandwidth_for_display()
2081 static u32 evergreen_data_return_bandwidth(struct evergreen_wm_params *wm) in evergreen_data_return_bandwidth() argument
2089 sclk.full = dfixed_const(wm->sclk); in evergreen_data_return_bandwidth()
2101 static u32 evergreen_dmif_request_bandwidth(struct evergreen_wm_params *wm) in evergreen_dmif_request_bandwidth() argument
2109 disp_clk.full = dfixed_const(wm->disp_clk); in evergreen_dmif_request_bandwidth()
2121 static u32 evergreen_available_bandwidth(struct evergreen_wm_params *wm) in evergreen_available_bandwidth() argument
2124 u32 dram_bandwidth = evergreen_dram_bandwidth(wm); in evergreen_available_bandwidth()
2125 u32 data_return_bandwidth = evergreen_data_return_bandwidth(wm); in evergreen_available_bandwidth()
2126 u32 dmif_req_bandwidth = evergreen_dmif_request_bandwidth(wm); in evergreen_available_bandwidth()
2131 static u32 evergreen_average_bandwidth(struct evergreen_wm_params *wm) in evergreen_average_bandwidth() argument
2144 line_time.full = dfixed_const(wm->active_time + wm->blank_time); in evergreen_average_bandwidth()
2146 bpp.full = dfixed_const(wm->bytes_per_pixel); in evergreen_average_bandwidth()
2147 src_width.full = dfixed_const(wm->src_width); in evergreen_average_bandwidth()
2149 bandwidth.full = dfixed_mul(bandwidth, wm->vsc); in evergreen_average_bandwidth()
2155 static u32 evergreen_latency_watermark(struct evergreen_wm_params *wm) in evergreen_latency_watermark() argument
2159 u32 available_bandwidth = evergreen_available_bandwidth(wm); in evergreen_latency_watermark()
2162 u32 dc_latency = 40000000 / wm->disp_clk; /* dc pipe latency */ in evergreen_latency_watermark()
2163 u32 other_heads_data_return_time = ((wm->num_heads + 1) * worst_chunk_return_time) + in evergreen_latency_watermark()
2164 (wm->num_heads * cursor_line_pair_return_time); in evergreen_latency_watermark()
2169 if (wm->num_heads == 0) in evergreen_latency_watermark()
2174 if ((wm->vsc.full > a.full) || in evergreen_latency_watermark()
2175 ((wm->vsc.full > b.full) && (wm->vtaps >= 3)) || in evergreen_latency_watermark()
2176 (wm->vtaps >= 5) || in evergreen_latency_watermark()
2177 ((wm->vsc.full >= a.full) && wm->interlaced)) in evergreen_latency_watermark()
2183 b.full = dfixed_const(wm->num_heads); in evergreen_latency_watermark()
2187 c.full = dfixed_const(wm->disp_clk); in evergreen_latency_watermark()
2189 c.full = dfixed_const(wm->bytes_per_pixel); in evergreen_latency_watermark()
2194 a.full = dfixed_const(max_src_lines_per_dst_line * wm->src_width * wm->bytes_per_pixel); in evergreen_latency_watermark()
2201 if (line_fill_time < wm->active_time) in evergreen_latency_watermark()
2204 return latency + (line_fill_time - wm->active_time); in evergreen_latency_watermark()
2208 …atic bool evergreen_average_bandwidth_vs_dram_bandwidth_for_display(struct evergreen_wm_params *wm) in evergreen_average_bandwidth_vs_dram_bandwidth_for_display() argument
2210 if (evergreen_average_bandwidth(wm) <= in evergreen_average_bandwidth_vs_dram_bandwidth_for_display()
2211 (evergreen_dram_bandwidth_for_display(wm) / wm->num_heads)) in evergreen_average_bandwidth_vs_dram_bandwidth_for_display()
2217 static bool evergreen_average_bandwidth_vs_available_bandwidth(struct evergreen_wm_params *wm) in evergreen_average_bandwidth_vs_available_bandwidth() argument
2219 if (evergreen_average_bandwidth(wm) <= in evergreen_average_bandwidth_vs_available_bandwidth()
2220 (evergreen_available_bandwidth(wm) / wm->num_heads)) in evergreen_average_bandwidth_vs_available_bandwidth()
2226 static bool evergreen_check_latency_hiding(struct evergreen_wm_params *wm) in evergreen_check_latency_hiding() argument
2228 u32 lb_partitions = wm->lb_size / wm->src_width; in evergreen_check_latency_hiding()
2229 u32 line_time = wm->active_time + wm->blank_time; in evergreen_check_latency_hiding()
2235 if (wm->vsc.full > a.full) in evergreen_check_latency_hiding()
2238 if (lb_partitions <= (wm->vtaps + 1)) in evergreen_check_latency_hiding()
2244 latency_hiding = (latency_tolerant_lines * line_time + wm->blank_time); in evergreen_check_latency_hiding()
2246 if (evergreen_latency_watermark(wm) <= latency_hiding) in evergreen_check_latency_hiding()