Lines Matching defs:cache_display_cfg

6225 				CalculatePrefetchSchedule_params->DPP_RECOUT_WIDTH = (dml_uint_t)(mode_lib->ms.SwathWidthYThisState[k] / mode_lib->ms.cache_display_cfg.plane.HRatio[k]);
6226 CalculatePrefetchSchedule_params->OutputFormat = mode_lib->ms.cache_display_cfg.output.OutputFormat[k];
6228 CalculatePrefetchSchedule_params->GPUVMPageTableLevels = mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
6229 CalculatePrefetchSchedule_params->GPUVMEnable = mode_lib->ms.cache_display_cfg.plane.GPUVMEnable;
6230 CalculatePrefetchSchedule_params->HostVMEnable = mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
6231 CalculatePrefetchSchedule_params->HostVMMaxNonCachedPageTableLevels = mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
6233 CalculatePrefetchSchedule_params->DynamicMetadataEnable = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataEnable[k];
6235 CalculatePrefetchSchedule_params->DynamicMetadataLinesBeforeActiveRequired = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataLinesBeforeActiveRequired[k];
6236 CalculatePrefetchSchedule_params->DynamicMetadataTransmittedBytes = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataTransmittedBytes[k];
6308 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
6314 if (mode_lib->ms.cache_display_cfg.plane.GPUVMEnable && mode_lib->ms.cache_display_cfg.plane.HostVMEnable)
6326 mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
6327 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
6333 mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels);
6351 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k],
6353 mode_lib->ms.cache_display_cfg.timing.DRRDisplay[k],
6362 myPipe->PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock[k];
6365 myPipe->ScalerEnabled = mode_lib->ms.cache_display_cfg.plane.ScalerEnabled[k];
6366 myPipe->SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan[k];
6371 myPipe->InterlaceEnable = mode_lib->ms.cache_display_cfg.timing.Interlace[k];
6372 myPipe->NumberOfCursors = mode_lib->ms.cache_display_cfg.plane.NumberOfCursors[k];
6373 myPipe->VBlank = mode_lib->ms.cache_display_cfg.timing.VTotal[k] - mode_lib->ms.cache_display_cfg.timing.VActive[k];
6374 myPipe->HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal[k];
6375 myPipe->HActive = mode_lib->ms.cache_display_cfg.timing.HActive[k];
6376 myPipe->DCCEnable = mode_lib->ms.cache_display_cfg.surface.DCCEnable[k];
6378 myPipe->SourcePixelFormat = mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k];
6415 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k],
6420 mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
6423 mode_lib->ms.cache_display_cfg.plane.CursorWidth[k],
6424 mode_lib->ms.cache_display_cfg.plane.CursorBPP[k],
6437 mode_lib->ms.cursor_bw_pre[k] = mode_lib->ms.cache_display_cfg.plane.NumberOfCursors[k] * mode_lib->ms.cache_display_cfg.plane.CursorWidth[k] *
6438 mode_lib->ms.cache_display_cfg.plane.CursorBPP[k] / 8.0 / (mode_lib->ms.cache_display_cfg.timing.HTotal[k] /
6439 mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * mode_lib->ms.VRatioPreY[j][k];
6446 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange,
6541 mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels,
6542 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
6543 mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels,
6544 mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
6551 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k],
6552 (mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]),
6553 mode_lib->ms.cache_display_cfg.plane.VRatio[k],
6554 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k],
6556 mode_lib->ms.cache_display_cfg.surface.DCCEnable[k],
6573 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange,
6644 CalculateWatermarks_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
6654 CalculateWatermarks_params->DRRDisplay = mode_lib->ms.cache_display_cfg.timing.DRRDisplay;
6666 CalculateWatermarks_params->LBBitPerPixel = mode_lib->ms.cache_display_cfg.plane.LBBitPerPixel;
6669 CalculateWatermarks_params->HRatio = mode_lib->ms.cache_display_cfg.plane.HRatio;
6670 CalculateWatermarks_params->HRatioChroma = mode_lib->ms.cache_display_cfg.plane.HRatioChroma;
6671 CalculateWatermarks_params->VTaps = mode_lib->ms.cache_display_cfg.plane.VTaps;
6672 CalculateWatermarks_params->VTapsChroma = mode_lib->ms.cache_display_cfg.plane.VTapsChroma;
6673 CalculateWatermarks_params->VRatio = mode_lib->ms.cache_display_cfg.plane.VRatio;
6674 CalculateWatermarks_params->VRatioChroma = mode_lib->ms.cache_display_cfg.plane.VRatioChroma;
6675 CalculateWatermarks_params->HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal;
6676 CalculateWatermarks_params->VTotal = mode_lib->ms.cache_display_cfg.timing.VTotal;
6677 CalculateWatermarks_params->VActive = mode_lib->ms.cache_display_cfg.timing.VActive;
6678 CalculateWatermarks_params->PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock;
6679 CalculateWatermarks_params->BlendingAndTiming = mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming;
6685 CalculateWatermarks_params->WritebackEnable = mode_lib->ms.cache_display_cfg.writeback.WritebackEnable;
6686 CalculateWatermarks_params->WritebackPixelFormat = mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat;
6687 CalculateWatermarks_params->WritebackDestinationWidth = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth;
6688 CalculateWatermarks_params->WritebackDestinationHeight = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight;
6689 CalculateWatermarks_params->WritebackSourceHeight = mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight;
6719 mode_lib->ms.num_active_planes = dml_get_num_active_planes(&mode_lib->ms.cache_display_cfg);
6735 PixelClockAdjustmentForProgressiveToInterlaceUnit(&mode_lib->ms.cache_display_cfg, mode_lib->ms.ip.ptoi_supported);
6743 if (mode_lib->ms.cache_display_cfg.plane.ScalerEnabled[k] == false
6744 && ((mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_64
6745 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_32
6746 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_16
6747 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_mono_16
6748 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_mono_8
6749 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_rgbe
6750 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_rgbe_alpha)
6751 || mode_lib->ms.cache_display_cfg.plane.HRatio[k] != 1.0
6752 || mode_lib->ms.cache_display_cfg.plane.HTaps[k] != 1.0
6753 || mode_lib->ms.cache_display_cfg.plane.VRatio[k] != 1.0
6754 || mode_lib->ms.cache_display_cfg.plane.VTaps[k] != 1.0)) {
6756 } else if (mode_lib->ms.cache_display_cfg.plane.VTaps[k] < 1.0 || mode_lib->ms.cache_display_cfg.plane.VTaps[k] > 8.0
6757 || mode_lib->ms.cache_display_cfg.plane.HTaps[k] < 1.0 || mode_lib->ms.cache_display_cfg.plane.HTaps[k] > 8.0
6758 || (mode_lib->ms.cache_display_cfg.plane.HTaps[k] > 1.0 && (mode_lib->ms.cache_display_cfg.plane.HTaps[k] % 2) == 1)
6759 || mode_lib->ms.cache_display_cfg.plane.HRatio[k] > mode_lib->ms.ip.max_hscl_ratio
6760 || mode_lib->ms.cache_display_cfg.plane.VRatio[k] > mode_lib->ms.ip.max_vscl_ratio
6761 || mode_lib->ms.cache_display_cfg.plane.HRatio[k] > mode_lib->ms.cache_display_cfg.plane.HTaps[k]
6762 || mode_lib->ms.cache_display_cfg.plane.VRatio[k] > mode_lib->ms.cache_display_cfg.plane.VTaps[k]
6763 || (mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_64
6764 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_32
6765 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_16
6766 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_mono_16
6767 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_mono_8
6768 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_rgbe
6769 && (mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k] < 1 || mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k] > 8 || mode_lib->ms.cache_display_cfg.plane.HTapsChroma[k] < 1 || mode_lib->ms.cache_display_cfg.plane.HTapsChroma[k] > 8 ||
6770 (mode_lib->ms.cache_display_cfg.plane.HTapsChroma[k] > 1 && mode_lib->ms.cache_display_cfg.plane.HTapsChroma[k] % 2 == 1) ||
6771 mode_lib->ms.cache_display_cfg.plane.HRatioChroma[k] > mode_lib->ms.ip.max_hscl_ratio ||
6772 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k] > mode_lib->ms.ip.max_vscl_ratio ||
6773 mode_lib->ms.cache_display_cfg.plane.HRatioChroma[k] > mode_lib->ms.cache_display_cfg.plane.HTapsChroma[k] ||
6774 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k] > mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k]))) {
6782 if (mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k] == dml_sw_linear && (!(!dml_is_vertical_rotation(mode_lib->ms.cache_display_cfg.plane.SourceScan[k])) || mode_lib->ms.cache_display_cfg.surface.DCCEnable[k] == true)) {
6789 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k],
6790 mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k],
6809 if (!dml_is_vertical_rotation(mode_lib->ms.cache_display_cfg.plane.SourceScan[k])) {
6810 mode_lib->ms.SwathWidthYSingleDPP[k] = mode_lib->ms.cache_display_cfg.plane.ViewportWidth[k];
6811 mode_lib->ms.SwathWidthCSingleDPP[k] = mode_lib->ms.cache_display_cfg.plane.ViewportWidthChroma[k];
6813 mode_lib->ms.SwathWidthYSingleDPP[k] = mode_lib->ms.cache_display_cfg.plane.ViewportHeight[k];
6814 mode_lib->ms.SwathWidthCSingleDPP[k] = mode_lib->ms.cache_display_cfg.plane.ViewportHeightChroma[k];
6818 mode_lib->ms.ReadBandwidthLuma[k] = mode_lib->ms.SwathWidthYSingleDPP[k] * dml_ceil(mode_lib->ms.BytePerPixelInDETY[k], 1.0) / (mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * mode_lib->ms.cache_display_cfg.plane.VRatio[k];
6819 mode_lib->ms.ReadBandwidthChroma[k] = mode_lib->ms.SwathWidthYSingleDPP[k] / 2 * dml_ceil(mode_lib->ms.BytePerPixelInDETC[k], 2.0) / (mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * mode_lib->ms.cache_display_cfg.plane.VRatio[k] / 2.0;
6822 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true
6823 && mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[k] == dml_444_64) {
6824 mode_lib->ms.WriteBandwidth[k] = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k]
6825 * mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[k]
6826 / (mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[k]
6827 * mode_lib->ms.cache_display_cfg.timing.HTotal[k]
6828 / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * 8.0;
6829 } else if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true) {
6830 mode_lib->ms.WriteBandwidth[k] = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k]
6831 * mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[k]
6832 / (mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[k]
6833 * mode_lib->ms.cache_display_cfg.timing.HTotal[k]
6834 / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * 4.0;
6843 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true &&
6852 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true) {
6865 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true) {
6866 if (mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[k] > mode_lib->ms.ip.writeback_max_hscl_ratio
6867 || mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[k] > mode_lib->ms.ip.writeback_max_vscl_ratio
6868 || mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[k] < mode_lib->ms.ip.writeback_min_hscl_ratio
6869 || mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[k] < mode_lib->ms.ip.writeback_min_vscl_ratio
6870 || mode_lib->ms.cache_display_cfg.writeback.WritebackHTaps[k] > (dml_uint_t) mode_lib->ms.ip.writeback_max_hscl_taps
6871 || mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[k] > (dml_uint_t) mode_lib->ms.ip.writeback_max_vscl_taps
6872 || mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[k] > (dml_uint_t) mode_lib->ms.cache_display_cfg.writeback.WritebackHTaps[k]
6873 || mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[k] > (dml_uint_t) mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[k]
6874 || (mode_lib->ms.cache_display_cfg.writeback.WritebackHTaps[k] > 2.0 && ((mode_lib->ms.cache_display_cfg.writeback.WritebackHTaps[k] % 2) == 1))) {
6877 if (2.0 * mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k] * (mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[k] - 1) * 57 > mode_lib->ms.ip.writeback_line_buffer_buffer_size) {
6885 mode_lib->ms.cache_display_cfg.plane.HRatio[k],
6886 mode_lib->ms.cache_display_cfg.plane.HRatioChroma[k],
6887 mode_lib->ms.cache_display_cfg.plane.VRatio[k],
6888 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k],
6891 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
6892 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k],
6893 mode_lib->ms.cache_display_cfg.plane.HTaps[k],
6894 mode_lib->ms.cache_display_cfg.plane.HTapsChroma[k],
6895 mode_lib->ms.cache_display_cfg.plane.VTaps[k],
6896 mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k],
6904 if (mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k] == dml_sw_linear) {
6906 } else if (!dml_is_vertical_rotation(mode_lib->ms.cache_display_cfg.plane.SourceScan[k]) && mode_lib->ms.BytePerPixelC[k] > 0 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_rgbe_alpha) {
6908 } else if (dml_is_vertical_rotation(mode_lib->ms.cache_display_cfg.plane.SourceScan[k]) && mode_lib->ms.BytePerPixelC[k] > 0 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_rgbe_alpha) {
6910 } else if (mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_rgbe_alpha) {
6912 } else if (dml_is_vertical_rotation(mode_lib->ms.cache_display_cfg.plane.SourceScan[k]) && mode_lib->ms.BytePerPixelY[k] == 8 && mode_lib->ms.cache_display_cfg.surface.DCCEnable[k] == true) {
6918 if (mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_420_8 || mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_420_10 || mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_420_12) {
6923 mode_lib->ms.MaximumSwathWidthInLineBufferLuma = mode_lib->ms.ip.line_buffer_size_bits * dml_max(mode_lib->ms.cache_display_cfg.plane.HRatio[k], 1.0) / mode_lib->ms.cache_display_cfg.plane.LBBitPerPixel[k] /
6924 (mode_lib->ms.cache_display_cfg.plane.VTaps[k] + dml_max(dml_ceil(mode_lib->ms.cache_display_cfg.plane.VRatio[k], 1.0) - 2, 0.0));
6930 * dml_max(mode_lib->ms.cache_display_cfg.plane.HRatioChroma[k], 1.0)
6931 / mode_lib->ms.cache_display_cfg.plane.LBBitPerPixel[k]
6932 / (mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k]
6933 + dml_max(dml_ceil(mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k], 1.0) - 2, 0.0));
6941 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k) {
6942 if (mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] > 4800) {
6943 mode_lib->ms.support.NumberOfDSCSlices[k] = (dml_uint_t)(dml_ceil(mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] / 600, 4));
6944 } else if (mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] > 2400) {
6946 } else if (mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] > 1200) {
6948 } else if (mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] > 340) {
6958 CalculateSwathAndDETConfiguration_params->DETSizeOverride = mode_lib->ms.cache_display_cfg.plane.DETSizeOverride;
6959 CalculateSwathAndDETConfiguration_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
6971 CalculateSwathAndDETConfiguration_params->Output = mode_lib->ms.cache_display_cfg.output.OutputEncoder;
6976 CalculateSwathAndDETConfiguration_params->SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan;
6977 CalculateSwathAndDETConfiguration_params->ViewportStationary = mode_lib->ms.cache_display_cfg.plane.ViewportStationary;
6978 CalculateSwathAndDETConfiguration_params->SourcePixelFormat = mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat;
6979 CalculateSwathAndDETConfiguration_params->SurfaceTiling = mode_lib->ms.cache_display_cfg.surface.SurfaceTiling;
6980 CalculateSwathAndDETConfiguration_params->ViewportWidth = mode_lib->ms.cache_display_cfg.plane.ViewportWidth;
6981 CalculateSwathAndDETConfiguration_params->ViewportHeight = mode_lib->ms.cache_display_cfg.plane.ViewportHeight;
6982 CalculateSwathAndDETConfiguration_params->ViewportXStart = mode_lib->ms.cache_display_cfg.plane.ViewportXStart;
6983 CalculateSwathAndDETConfiguration_params->ViewportYStart = mode_lib->ms.cache_display_cfg.plane.ViewportYStart;
6984 CalculateSwathAndDETConfiguration_params->ViewportXStartC = mode_lib->ms.cache_display_cfg.plane.ViewportXStartC;
6985 CalculateSwathAndDETConfiguration_params->ViewportYStartC = mode_lib->ms.cache_display_cfg.plane.ViewportYStartC;
6986 CalculateSwathAndDETConfiguration_params->SurfaceWidthY = mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY;
6987 CalculateSwathAndDETConfiguration_params->SurfaceWidthC = mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC;
6988 CalculateSwathAndDETConfiguration_params->SurfaceHeightY = mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY;
6989 CalculateSwathAndDETConfiguration_params->SurfaceHeightC = mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC;
6995 CalculateSwathAndDETConfiguration_params->BlendingAndTiming = mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming;
7000 CalculateSwathAndDETConfiguration_params->HActive = mode_lib->ms.cache_display_cfg.timing.HActive;
7001 CalculateSwathAndDETConfiguration_params->HRatio = mode_lib->ms.cache_display_cfg.plane.HRatio;
7002 CalculateSwathAndDETConfiguration_params->HRatioChroma = mode_lib->ms.cache_display_cfg.plane.HRatioChroma;
7040 mode_lib->ms.cache_display_cfg.timing.HActive[k],
7041 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k],
7042 mode_lib->ms.cache_display_cfg.output.OutputFormat[k],
7049 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
7062 mode_lib->ms.cache_display_cfg.timing.HActive[k],
7063 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k],
7064 mode_lib->ms.cache_display_cfg.output.OutputFormat[k],
7071 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
7087 (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k),
7088 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k],
7089 mode_lib->ms.cache_display_cfg.output.OutputFormat[k],
7090 mode_lib->ms.cache_display_cfg.timing.HTotal[k],
7091 mode_lib->ms.cache_display_cfg.timing.HActive[k],
7092 mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k],
7093 mode_lib->ms.cache_display_cfg.output.ForcedOutputLinkBPP[k],
7094 mode_lib->ms.cache_display_cfg.output.DSCInputBitPerComponent[k],
7096 mode_lib->ms.cache_display_cfg.output.AudioSampleRate[k],
7097 mode_lib->ms.cache_display_cfg.output.AudioSampleLayout[k],
7100 mode_lib->ms.cache_display_cfg.output.DSCEnable[k],
7101 mode_lib->ms.cache_display_cfg.output.OutputLinkDPLanes[k],
7102 mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k],
7158 if (mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_420_8
7159 || mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_420_10
7160 || mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_420_12
7161 || mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] == dml_rgbe_alpha
7162 || mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k] == dml_sw_linear) {
7169 mode_lib->ms.cache_display_cfg.output.OutputEncoder[0])) {
7192 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k]) {
7194 CalculateWriteBackDISPCLK(mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[k],
7195 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
7196 mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[k],
7197 mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[k],
7198 mode_lib->ms.cache_display_cfg.writeback.WritebackHTaps[k],
7199 mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[k],
7200 mode_lib->ms.cache_display_cfg.writeback.WritebackSourceWidth[k],
7201 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k],
7202 mode_lib->ms.cache_display_cfg.timing.HTotal[k],
7244 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k) {
7246 if (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl)
7248 if (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp2p0) {
7250 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[k] == k || mode_lib->ms.cache_display_cfg.output.OutputMultistreamEn[k] == false) {
7264 if (mode_lib->ms.cache_display_cfg.output.OutputDisabled[k] == false &&
7265 !(mode_lib->ms.cache_display_cfg.output.DSCInputBitPerComponent[k] == 12.0
7266 || mode_lib->ms.cache_display_cfg.output.DSCInputBitPerComponent[k] == 10.0
7267 || mode_lib->ms.cache_display_cfg.output.DSCInputBitPerComponent[k] == 8.0
7268 || mode_lib->ms.cache_display_cfg.output.DSCInputBitPerComponent[k] > (dml_uint_t) mode_lib->ms.ip.maximum_dsc_bits_per_component
7276 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[k] == k) {
7279 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[j] == k)
7282 if (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp && s->TotalSlots > 63)
7284 if (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp2p0 && s->TotalSlots > 64)
7290 if (mode_lib->ms.cache_display_cfg.output.OutputDisabled[k] == false &&
7291 mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k && (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp2p0 || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_edp ||
7292 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmi || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl) && mode_lib->ms.OutputBppPerState[k] == 0) {
7308 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k && (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp2p0 || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_edp ||
7309 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmi || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl)) {
7310 if (mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_420 && mode_lib->ms.cache_display_cfg.timing.Interlace[k] == 1 && mode_lib->ms.ip.ptoi_supported == true)
7313 if (mode_lib->ms.cache_display_cfg.output.DSCEnable[k] == dml_dsc_enable_if_necessary && mode_lib->ms.cache_display_cfg.output.ForcedOutputLinkBPP[k] != 0)
7315 if ((mode_lib->ms.cache_display_cfg.output.DSCEnable[k] == dml_dsc_enable || mode_lib->ms.cache_display_cfg.output.DSCEnable[k] == dml_dsc_enable_if_necessary) && mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_n422 && !mode_lib->ms.ip.dsc422_native_support)
7318 if (((mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k] == dml_dp_rate_hbr || mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k] == dml_dp_rate_hbr2 || mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k] == dml_dp_rate_hbr3) &&
7319 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] != dml_dp && mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] != dml_edp) ||
7320 ((mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k] == dml_dp_rate_uhbr10 || mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k] == dml_dp_rate_uhbr13p5 || mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k] == dml_dp_rate_uhbr20) &&
7321 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] != dml_dp2p0))
7324 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamEn[k] == 1) {
7325 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[k] == k && mode_lib->ms.cache_display_cfg.output.OutputLinkDPRate[k] == dml_dp_rate_na)
7327 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[k] == k && mode_lib->ms.cache_display_cfg.output.ForcedOutputLinkBPP[k] == 0)
7330 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[k] == j && mode_lib->ms.cache_display_cfg.output.ForcedOutputLinkBPP[k] == 0)
7335 if ((mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_edp || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmi || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl)) {
7336 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamEn[k] == 1 && mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[k] == k)
7339 if (mode_lib->ms.cache_display_cfg.output.OutputMultistreamEn[k] == 1 && mode_lib->ms.cache_display_cfg.output.OutputMultistreamId[k] == j)
7343 if (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] != dml_dp && (mode_lib->ms.policy.ODMUse[k] == dml_odm_use_policy_split_1to2 ||
7347 if ((mode_lib->ms.policy.ODMUse[k] == dml_odm_use_policy_mso_1to2 && mode_lib->ms.cache_display_cfg.output.OutputLinkDPLanes[k] < 2) ||
7348 (mode_lib->ms.policy.ODMUse[k] == dml_odm_use_policy_mso_1to4 && mode_lib->ms.cache_display_cfg.output.OutputLinkDPLanes[k] < 4))
7355 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k &&
7356 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl &&
7359 mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k],
7360 mode_lib->ms.cache_display_cfg.output.OutputFormat[k],
7363 mode_lib->ms.cache_display_cfg.timing.HTotal[k],
7364 mode_lib->ms.cache_display_cfg.timing.HActive[k],
7365 mode_lib->ms.cache_display_cfg.output.AudioSampleRate[k],
7366 mode_lib->ms.cache_display_cfg.output.AudioSampleLayout[k]) > mode_lib->ms.state.dtbclk_mhz) {
7374 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k && mode_lib->ms.ODMModePerState[k] == dml_odm_mode_combine_2to1 && mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmi) {
7377 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k && mode_lib->ms.ODMModePerState[k] == dml_odm_mode_combine_4to1 && (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp ||
7378 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_edp || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmi)) {
7385 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k) {
7386 if (mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp ||
7387 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_dp2p0 ||
7388 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_edp ||
7389 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl) {
7390 if (mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_420) {
7392 } else if (mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_444) {
7394 } else if (mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_n422 || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl) {
7404 if (mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] / 12.0 / (dml_float_t)s->DSCFormatFactor > (1.0 - mode_lib->ms.soc.dcn_downspread_percent / 100.0) * mode_lib->ms.state.dscclk_mhz) {
7406 dml_print("DML::%s: k=%u, PixelClockBackEnd = %f\n", __func__, k, mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k]);
7413 if (mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] / 6.0 / (dml_float_t)s->DSCFormatFactor > (1.0 - mode_lib->ms.soc.dcn_downspread_percent / 100.0) * mode_lib->ms.state.dscclk_mhz) {
7417 if (mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] / 3.0 / (dml_float_t)s->DSCFormatFactor > (1.0 - mode_lib->ms.soc.dcn_downspread_percent / 100.0) * mode_lib->ms.state.dscclk_mhz) {
7437 if (mode_lib->ms.cache_display_cfg.timing.HActive[k] > 4 * (dml_uint_t) mode_lib->ms.ip.maximum_pixels_per_line_per_dsc_unit)
7443 if (mode_lib->ms.cache_display_cfg.timing.HActive[k] > 2 * (dml_uint_t) mode_lib->ms.ip.maximum_pixels_per_line_per_dsc_unit)
7449 if (mode_lib->ms.cache_display_cfg.timing.HActive[k] > (dml_uint_t) mode_lib->ms.ip.maximum_pixels_per_line_per_dsc_unit)
7465 mode_lib->ms.cache_display_cfg.output.DSCInputBitPerComponent[k],
7467 mode_lib->ms.cache_display_cfg.timing.HActive[k],
7468 mode_lib->ms.cache_display_cfg.timing.HTotal[k],
7470 mode_lib->ms.cache_display_cfg.output.OutputFormat[k],
7471 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k],
7472 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
7473 mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k]);
7479 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == m && mode_lib->ms.RequiresDSC[m] == true) {
7495 CalculateSwathAndDETConfiguration_params->DETSizeOverride = mode_lib->ms.cache_display_cfg.plane.DETSizeOverride;
7496 CalculateSwathAndDETConfiguration_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
7508 CalculateSwathAndDETConfiguration_params->Output = mode_lib->ms.cache_display_cfg.output.OutputEncoder;
7513 CalculateSwathAndDETConfiguration_params->SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan;
7514 CalculateSwathAndDETConfiguration_params->ViewportStationary = mode_lib->ms.cache_display_cfg.plane.ViewportStationary;
7515 CalculateSwathAndDETConfiguration_params->SourcePixelFormat = mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat;
7516 CalculateSwathAndDETConfiguration_params->SurfaceTiling = mode_lib->ms.cache_display_cfg.surface.SurfaceTiling;
7517 CalculateSwathAndDETConfiguration_params->ViewportWidth = mode_lib->ms.cache_display_cfg.plane.ViewportWidth;
7518 CalculateSwathAndDETConfiguration_params->ViewportHeight = mode_lib->ms.cache_display_cfg.plane.ViewportHeight;
7519 CalculateSwathAndDETConfiguration_params->ViewportXStart = mode_lib->ms.cache_display_cfg.plane.ViewportXStart;
7520 CalculateSwathAndDETConfiguration_params->ViewportYStart = mode_lib->ms.cache_display_cfg.plane.ViewportYStart;
7521 CalculateSwathAndDETConfiguration_params->ViewportXStartC = mode_lib->ms.cache_display_cfg.plane.ViewportXStartC;
7522 CalculateSwathAndDETConfiguration_params->ViewportYStartC = mode_lib->ms.cache_display_cfg.plane.ViewportYStartC;
7523 CalculateSwathAndDETConfiguration_params->SurfaceWidthY = mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY;
7524 CalculateSwathAndDETConfiguration_params->SurfaceWidthC = mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC;
7525 CalculateSwathAndDETConfiguration_params->SurfaceHeightY = mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY;
7526 CalculateSwathAndDETConfiguration_params->SurfaceHeightC = mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC;
7532 CalculateSwathAndDETConfiguration_params->BlendingAndTiming = mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming;
7537 CalculateSwathAndDETConfiguration_params->HActive = mode_lib->ms.cache_display_cfg.timing.HActive;
7538 CalculateSwathAndDETConfiguration_params->HRatio = mode_lib->ms.cache_display_cfg.plane.HRatio;
7539 CalculateSwathAndDETConfiguration_params->HRatioChroma = mode_lib->ms.cache_display_cfg.plane.HRatioChroma;
7576 mode_lib->ms.cursor_bw[k] = mode_lib->ms.cache_display_cfg.plane.NumberOfCursors[k] * mode_lib->ms.cache_display_cfg.plane.CursorWidth[k] * mode_lib->ms.cache_display_cfg.plane.CursorBPP[k] / 8.0 / (mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * mode_lib->ms.cache_display_cfg.plane.VRatio[k];
7582 mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen,
7583 mode_lib->ms.cache_display_cfg.surface.DCCEnable,
7584 mode_lib->ms.cache_display_cfg.plane.ViewportStationary,
7585 mode_lib->ms.cache_display_cfg.plane.ViewportXStart,
7586 mode_lib->ms.cache_display_cfg.plane.ViewportYStart,
7587 mode_lib->ms.cache_display_cfg.plane.ViewportXStartC,
7588 mode_lib->ms.cache_display_cfg.plane.ViewportYStartC,
7589 mode_lib->ms.cache_display_cfg.plane.ViewportWidth,
7590 mode_lib->ms.cache_display_cfg.plane.ViewportHeight,
7592 mode_lib->ms.cache_display_cfg.plane.ViewportWidthChroma,
7593 mode_lib->ms.cache_display_cfg.plane.ViewportHeightChroma,
7595 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY,
7596 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC,
7597 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY,
7598 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC,
7629 if (mode_lib->ms.cache_display_cfg.surface.DCCEnable[k] == true) {
7635 s->SurfParameters[k].PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock[k];
7637 s->SurfParameters[k].SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan[k];
7638 s->SurfParameters[k].ViewportHeight = mode_lib->ms.cache_display_cfg.plane.ViewportHeight[k];
7639 s->SurfParameters[k].ViewportHeightChroma = mode_lib->ms.cache_display_cfg.plane.ViewportHeightChroma[k];
7648 s->SurfParameters[k].InterlaceEnable = mode_lib->ms.cache_display_cfg.timing.Interlace[k];
7649 s->SurfParameters[k].HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal[k];
7650 s->SurfParameters[k].DCCEnable = mode_lib->ms.cache_display_cfg.surface.DCCEnable[k];
7651 s->SurfParameters[k].SourcePixelFormat = mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k];
7652 s->SurfParameters[k].SurfaceTiling = mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k];
7656 s->SurfParameters[k].VRatio = mode_lib->ms.cache_display_cfg.plane.VRatio[k];
7657 s->SurfParameters[k].VRatioChroma = mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k];
7658 s->SurfParameters[k].VTaps = mode_lib->ms.cache_display_cfg.plane.VTaps[k];
7659 s->SurfParameters[k].VTapsChroma = mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k];
7660 s->SurfParameters[k].PitchY = mode_lib->ms.cache_display_cfg.surface.PitchY[k];
7661 s->SurfParameters[k].DCCMetaPitchY = mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchY[k];
7662 s->SurfParameters[k].PitchC = mode_lib->ms.cache_display_cfg.surface.PitchC[k];
7663 s->SurfParameters[k].DCCMetaPitchC = mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchC[k];
7664 s->SurfParameters[k].ViewportStationary = mode_lib->ms.cache_display_cfg.plane.ViewportStationary[k];
7665 s->SurfParameters[k].ViewportXStart = mode_lib->ms.cache_display_cfg.plane.ViewportXStart[k];
7666 s->SurfParameters[k].ViewportYStart = mode_lib->ms.cache_display_cfg.plane.ViewportYStart[k];
7667 s->SurfParameters[k].ViewportXStartC = mode_lib->ms.cache_display_cfg.plane.ViewportXStartC[k];
7668 s->SurfParameters[k].ViewportYStartC = mode_lib->ms.cache_display_cfg.plane.ViewportYStartC[k];
7669 s->SurfParameters[k].FORCE_ONE_ROW_FOR_FRAME = mode_lib->ms.cache_display_cfg.plane.ForceOneRowForFrame[k];
7680 CalculateVMRowAndSwath_params->UseMALLForStaticScreen = mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen;
7681 CalculateVMRowAndSwath_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
7685 CalculateVMRowAndSwath_params->GPUVMEnable = mode_lib->ms.cache_display_cfg.plane.GPUVMEnable;
7686 CalculateVMRowAndSwath_params->HostVMEnable = mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
7687 CalculateVMRowAndSwath_params->HostVMMaxNonCachedPageTableLevels = mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
7688 CalculateVMRowAndSwath_params->GPUVMMaxPageTableLevels = mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
7689 CalculateVMRowAndSwath_params->GPUVMMinPageSizeKBytes = mode_lib->ms.cache_display_cfg.plane.GPUVMMinPageSizeKBytes;
7691 CalculateVMRowAndSwath_params->PTEBufferModeOverrideEn = mode_lib->ms.cache_display_cfg.plane.PTEBufferModeOverrideEn;
7692 CalculateVMRowAndSwath_params->PTEBufferModeOverrideVal = mode_lib->ms.cache_display_cfg.plane.PTEBufferMode;
7785 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k],
7790 (dml_float_t) mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
7793 mode_lib->ms.cache_display_cfg.plane.CursorWidth[k],
7794 mode_lib->ms.cache_display_cfg.plane.CursorBPP[k],
7795 mode_lib->ms.cache_display_cfg.plane.VRatio[k],
7796 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k],
7812 mode_lib->ms.cache_display_cfg.plane.VRatio,
7813 mode_lib->ms.cache_display_cfg.plane.VRatioChroma,
7817 mode_lib->ms.cache_display_cfg.plane.HRatio,
7818 mode_lib->ms.cache_display_cfg.plane.HRatioChroma,
7819 mode_lib->ms.cache_display_cfg.timing.PixelClock,
7834 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k) {
7835 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true) {
7837 mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[k],
7838 mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[k],
7839 mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[k],
7840 mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[k],
7841 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k],
7842 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[k],
7843 mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[k],
7844 mode_lib->ms.cache_display_cfg.timing.HTotal[k]) / mode_lib->ms.RequiredDISPCLK[j];
7849 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[m] == k && mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[m] == true) {
7852 mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[m],
7853 mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[m],
7854 mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[m],
7855 mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[m],
7856 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[m],
7857 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[m],
7858 mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[m],
7859 mode_lib->ms.cache_display_cfg.timing.HTotal[m]) / mode_lib->ms.RequiredDISPCLK[j]);
7866 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == m) {
7877 &mode_lib->ms.cache_display_cfg.timing,
7913 mode_lib->ms.support.ImmediateFlipOrHostVMAndPStateWithMALLFullFrameOrPhantomPipe || ((mode_lib->ms.cache_display_cfg.plane.HostVMEnable == true || mode_lib->ms.policy.ImmediateFlipRequirement[k] != dml_immediate_flip_not_required) &&
7914 (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] == dml_use_mall_pstate_change_full_frame || mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] == dml_use_mall_pstate_change_phantom_pipe));
7920 ((mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen[k] == dml_use_mall_static_screen_enable || mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen[k] == dml_use_mall_static_screen_optimize) && (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] == dml_use_mall_pstate_change_phantom_pipe)) ||
7921 ((mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen[k] == dml_use_mall_static_screen_disable || mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen[k] == dml_use_mall_static_screen_optimize) && (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] == dml_use_mall_pstate_change_full_frame));
7929 if (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] == dml_use_mall_pstate_change_full_frame)
7931 if (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] == dml_use_mall_pstate_change_sub_viewport) {
7933 if (mode_lib->ms.cache_display_cfg.timing.RefreshRate[k] > 120)
7936 if (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] == dml_use_mall_pstate_change_phantom_pipe)
7943 UseMinimumDCFCLK_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
7944 UseMinimumDCFCLK_params->DRRDisplay = mode_lib->ms.cache_display_cfg.timing.DRRDisplay;
7956 UseMinimumDCFCLK_params->GPUVMEnable = mode_lib->ms.cache_display_cfg.plane.GPUVMEnable;
7957 UseMinimumDCFCLK_params->GPUVMMaxPageTableLevels = mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
7958 UseMinimumDCFCLK_params->HostVMEnable = mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
7961 UseMinimumDCFCLK_params->HostVMMaxNonCachedPageTableLevels = mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
7967 UseMinimumDCFCLK_params->VTotal = mode_lib->ms.cache_display_cfg.timing.VTotal;
7968 UseMinimumDCFCLK_params->VActive = mode_lib->ms.cache_display_cfg.timing.VActive;
7969 UseMinimumDCFCLK_params->DynamicMetadataTransmittedBytes = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataTransmittedBytes;
7970 UseMinimumDCFCLK_params->DynamicMetadataLinesBeforeActiveRequired = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataLinesBeforeActiveRequired;
7971 UseMinimumDCFCLK_params->Interlace = mode_lib->ms.cache_display_cfg.timing.Interlace;
7987 UseMinimumDCFCLK_params->HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal;
7988 UseMinimumDCFCLK_params->PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock;
7992 UseMinimumDCFCLK_params->DynamicMetadataEnable = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataEnable;
8005 mode_lib->ms.cache_display_cfg.plane.HostVMEnable, mode_lib->ms.DCFCLKState[j], mode_lib->ms.state.fabricclk_mhz,
8008 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
8033 ((mode_lib->ms.state.use_ideal_dram_bw_strobe && !mode_lib->ms.cache_display_cfg.plane.HostVMEnable) ?
8052 if (mode_lib->ms.cache_display_cfg.plane.CursorWidth[k] > 0.0) {
8053 if (mode_lib->ms.cache_display_cfg.plane.CursorBPP[k] == 64 && mode_lib->ms.ip.cursor_64bpp_support == false) {
8063 dml_max(mode_lib->ms.cache_display_cfg.surface.PitchY[k], mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY[k]),
8065 if (mode_lib->ms.cache_display_cfg.surface.DCCEnable[k] == true) {
8066 mode_lib->ms.support.AlignedDCCMetaPitchY[k] = dml_ceil(dml_max(mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchY[k], mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY[k]), 64.0 * mode_lib->ms.Read256BlockWidthY[k]);
8068 mode_lib->ms.support.AlignedDCCMetaPitchY[k] = mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchY[k];
8070 if (mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_64
8071 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_32
8072 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_16
8073 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_mono_16
8074 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_rgbe
8075 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_mono_8) {
8076 mode_lib->ms.support.AlignedCPitch[k] = dml_ceil(dml_max(mode_lib->ms.cache_display_cfg.surface.PitchC[k], mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC[k]), mode_lib->ms.MacroTileWidthC[k]);
8077 if (mode_lib->ms.cache_display_cfg.surface.DCCEnable[k] == true) {
8078 mode_lib->ms.support.AlignedDCCMetaPitchC[k] = dml_ceil(dml_max(mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchC[k], mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC[k]), 64.0 * mode_lib->ms.Read256BlockWidthC[k]);
8080 mode_lib->ms.support.AlignedDCCMetaPitchC[k] = mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchC[k];
8083 mode_lib->ms.support.AlignedCPitch[k] = mode_lib->ms.cache_display_cfg.surface.PitchC[k];
8084 mode_lib->ms.support.AlignedDCCMetaPitchC[k] = mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchC[k];
8086 if (mode_lib->ms.support.AlignedYPitch[k] > mode_lib->ms.cache_display_cfg.surface.PitchY[k] || mode_lib->ms.support.AlignedCPitch[k] > mode_lib->ms.cache_display_cfg.surface.PitchC[k] ||
8087 mode_lib->ms.support.AlignedDCCMetaPitchY[k] > mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchY[k] || mode_lib->ms.support.AlignedDCCMetaPitchC[k] > mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchC[k]) {
8094 if (mode_lib->ms.cache_display_cfg.plane.ViewportWidth[k] > mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY[k] || mode_lib->ms.cache_display_cfg.plane.ViewportHeight[k] > mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY[k]) {
8096 if (mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_64 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_32 &&
8097 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_16 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_444_8 && mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k] != dml_rgbe) {
8098 if (mode_lib->ms.cache_display_cfg.plane.ViewportWidthChroma[k] > mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC[k] || mode_lib->ms.cache_display_cfg.plane.ViewportHeightChroma[k] > mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC[k]) {
8167 && ((mode_lib->ms.cache_display_cfg.plane.HostVMEnable == false && !s->ImmediateFlipRequiredFinal) || mode_lib->ms.support.ImmediateFlipSupportedForState[j])
8233 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k) {
8266 PixelClockAdjustmentForProgressiveToInterlaceUnit(&mode_lib->ms.cache_display_cfg, mode_lib->ms.ip.ptoi_supported);
8270 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
8294 mode_lib->ms.num_active_planes = dml_get_num_active_planes(&mode_lib->ms.cache_display_cfg);
8295 mode_lib->mp.num_active_pipes = dml_get_num_active_pipes(&mode_lib->ms.cache_display_cfg);
8296 dml_calc_pipe_plane_mapping(&mode_lib->ms.cache_display_cfg.hw, mode_lib->mp.pipe_plane);
8329 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k]) {
8334 mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[k],
8335 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
8336 mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[k],
8337 mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[k],
8338 mode_lib->ms.cache_display_cfg.writeback.WritebackHTaps[k],
8339 mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[k],
8340 mode_lib->ms.cache_display_cfg.writeback.WritebackSourceWidth[k],
8341 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k],
8342 mode_lib->ms.cache_display_cfg.timing.HTotal[k],
8351 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k) {
8353 mode_lib->ms.cache_display_cfg.hw.ODMMode[k],
8354 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
8373 mode_lib->ms.cache_display_cfg.plane.HRatio[k],
8374 mode_lib->ms.cache_display_cfg.plane.HRatioChroma[k],
8375 mode_lib->ms.cache_display_cfg.plane.VRatio[k],
8376 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k],
8379 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
8380 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k],
8381 mode_lib->ms.cache_display_cfg.plane.HTaps[k],
8382 mode_lib->ms.cache_display_cfg.plane.HTapsChroma[k],
8383 mode_lib->ms.cache_display_cfg.plane.VTaps[k],
8384 mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k],
8396 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
8415 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k],
8416 mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k],
8438 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat,
8439 mode_lib->ms.cache_display_cfg.plane.SourceScan,
8440 mode_lib->ms.cache_display_cfg.plane.ViewportStationary,
8441 mode_lib->ms.cache_display_cfg.plane.ViewportWidth,
8442 mode_lib->ms.cache_display_cfg.plane.ViewportHeight,
8443 mode_lib->ms.cache_display_cfg.plane.ViewportXStart,
8444 mode_lib->ms.cache_display_cfg.plane.ViewportYStart,
8445 mode_lib->ms.cache_display_cfg.plane.ViewportXStartC,
8446 mode_lib->ms.cache_display_cfg.plane.ViewportYStartC,
8447 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY,
8448 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC,
8449 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY,
8450 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC,
8451 mode_lib->ms.cache_display_cfg.hw.ODMMode,
8458 mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming,
8459 mode_lib->ms.cache_display_cfg.timing.HActive,
8460 mode_lib->ms.cache_display_cfg.plane.HRatio,
8461 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
8474 locals->ReadBandwidthSurfaceLuma[k] = locals->SwathWidthSingleDPPY[k] * locals->BytePerPixelY[k] / (mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * mode_lib->ms.cache_display_cfg.plane.VRatio[k];
8475 locals->ReadBandwidthSurfaceChroma[k] = locals->SwathWidthSingleDPPC[k] * locals->BytePerPixelC[k] / (mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k];
8480 CalculateSwathAndDETConfiguration_params->DETSizeOverride = mode_lib->ms.cache_display_cfg.plane.DETSizeOverride;
8481 CalculateSwathAndDETConfiguration_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
8498 CalculateSwathAndDETConfiguration_params->SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan;
8499 CalculateSwathAndDETConfiguration_params->ViewportStationary = mode_lib->ms.cache_display_cfg.plane.ViewportStationary;
8500 CalculateSwathAndDETConfiguration_params->SourcePixelFormat = mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat;
8501 CalculateSwathAndDETConfiguration_params->SurfaceTiling = mode_lib->ms.cache_display_cfg.surface.SurfaceTiling;
8502 CalculateSwathAndDETConfiguration_params->ViewportWidth = mode_lib->ms.cache_display_cfg.plane.ViewportWidth;
8503 CalculateSwathAndDETConfiguration_params->ViewportHeight = mode_lib->ms.cache_display_cfg.plane.ViewportHeight;
8504 CalculateSwathAndDETConfiguration_params->ViewportXStart = mode_lib->ms.cache_display_cfg.plane.ViewportXStart;
8505 CalculateSwathAndDETConfiguration_params->ViewportYStart = mode_lib->ms.cache_display_cfg.plane.ViewportYStart;
8506 CalculateSwathAndDETConfiguration_params->ViewportXStartC = mode_lib->ms.cache_display_cfg.plane.ViewportXStartC;
8507 CalculateSwathAndDETConfiguration_params->ViewportYStartC = mode_lib->ms.cache_display_cfg.plane.ViewportYStartC;
8508 CalculateSwathAndDETConfiguration_params->SurfaceWidthY = mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY;
8509 CalculateSwathAndDETConfiguration_params->SurfaceWidthC = mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC;
8510 CalculateSwathAndDETConfiguration_params->SurfaceHeightY = mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY;
8511 CalculateSwathAndDETConfiguration_params->SurfaceHeightC = mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC;
8516 CalculateSwathAndDETConfiguration_params->ODMMode = mode_lib->ms.cache_display_cfg.hw.ODMMode;
8517 CalculateSwathAndDETConfiguration_params->BlendingAndTiming = mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming;
8522 CalculateSwathAndDETConfiguration_params->HActive = mode_lib->ms.cache_display_cfg.timing.HActive;
8523 CalculateSwathAndDETConfiguration_params->HRatio = mode_lib->ms.cache_display_cfg.plane.HRatio;
8524 CalculateSwathAndDETConfiguration_params->HRatioChroma = mode_lib->ms.cache_display_cfg.plane.HRatioChroma;
8525 CalculateSwathAndDETConfiguration_params->DPPPerSurface = mode_lib->ms.cache_display_cfg.hw.DPPPerSurface;
8552 mode_lib->ms.cache_display_cfg.plane.VRatio,
8553 mode_lib->ms.cache_display_cfg.plane.VRatioChroma,
8556 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
8557 mode_lib->ms.cache_display_cfg.plane.HRatio,
8558 mode_lib->ms.cache_display_cfg.plane.HRatioChroma,
8559 mode_lib->ms.cache_display_cfg.timing.PixelClock,
8572 if ((mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] != k) || !mode_lib->ms.cache_display_cfg.hw.DSCEnabled[k]) {
8575 if (mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_420)
8577 else if (mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_444)
8579 else if (mode_lib->ms.cache_display_cfg.output.OutputFormat[k] == dml_n422 || mode_lib->ms.cache_display_cfg.output.OutputEncoder[k] == dml_hdmifrl)
8583 if (mode_lib->ms.cache_display_cfg.hw.ODMMode[k] == dml_odm_mode_combine_4to1)
8584 locals->DSCCLK_calculated[k] = mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] / 12 / s->DSCFormatFactor / (1 - mode_lib->ms.soc.dcn_downspread_percent / 100);
8585 else if (mode_lib->ms.cache_display_cfg.hw.ODMMode[k] == dml_odm_mode_combine_2to1)
8586 locals->DSCCLK_calculated[k] = mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] / 6 / s->DSCFormatFactor / (1 - mode_lib->ms.soc.dcn_downspread_percent / 100);
8588 locals->DSCCLK_calculated[k] = mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k] / 3 / s->DSCFormatFactor / (1 - mode_lib->ms.soc.dcn_downspread_percent / 100);
8594 locals->DSCDelay[k] = DSCDelayRequirement(mode_lib->ms.cache_display_cfg.hw.DSCEnabled[k],
8595 mode_lib->ms.cache_display_cfg.hw.ODMMode[k],
8596 mode_lib->ms.cache_display_cfg.output.DSCInputBitPerComponent[k],
8597 mode_lib->ms.cache_display_cfg.output.OutputBpp[k],
8598 mode_lib->ms.cache_display_cfg.timing.HActive[k],
8599 mode_lib->ms.cache_display_cfg.timing.HTotal[k],
8600 mode_lib->ms.cache_display_cfg.hw.NumberOfDSCSlices[k],
8601 mode_lib->ms.cache_display_cfg.output.OutputFormat[k],
8602 mode_lib->ms.cache_display_cfg.output.OutputEncoder[k],
8603 mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
8604 mode_lib->ms.cache_display_cfg.output.PixelClockBackEnd[k]);
8609 if (j != k && mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == j && mode_lib->ms.cache_display_cfg.hw.DSCEnabled[j])
8616 mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen,
8617 mode_lib->ms.cache_display_cfg.surface.DCCEnable,
8618 mode_lib->ms.cache_display_cfg.plane.ViewportStationary,
8619 mode_lib->ms.cache_display_cfg.plane.ViewportXStart,
8620 mode_lib->ms.cache_display_cfg.plane.ViewportYStart,
8621 mode_lib->ms.cache_display_cfg.plane.ViewportXStartC,
8622 mode_lib->ms.cache_display_cfg.plane.ViewportYStartC,
8623 mode_lib->ms.cache_display_cfg.plane.ViewportWidth,
8624 mode_lib->ms.cache_display_cfg.plane.ViewportHeight,
8626 mode_lib->ms.cache_display_cfg.plane.ViewportWidthChroma,
8627 mode_lib->ms.cache_display_cfg.plane.ViewportHeightChroma,
8629 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY,
8630 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC,
8631 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY,
8632 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC,
8647 s->SurfaceParameters[k].PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock[k];
8648 s->SurfaceParameters[k].DPPPerSurface = mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k];
8649 s->SurfaceParameters[k].SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan[k];
8650 s->SurfaceParameters[k].ViewportHeight = mode_lib->ms.cache_display_cfg.plane.ViewportHeight[k];
8651 s->SurfaceParameters[k].ViewportHeightChroma = mode_lib->ms.cache_display_cfg.plane.ViewportHeightChroma[k];
8660 s->SurfaceParameters[k].InterlaceEnable = mode_lib->ms.cache_display_cfg.timing.Interlace[k];
8661 s->SurfaceParameters[k].HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal[k];
8662 s->SurfaceParameters[k].DCCEnable = mode_lib->ms.cache_display_cfg.surface.DCCEnable[k];
8663 s->SurfaceParameters[k].SourcePixelFormat = mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k];
8664 s->SurfaceParameters[k].SurfaceTiling = mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k];
8668 s->SurfaceParameters[k].VRatio = mode_lib->ms.cache_display_cfg.plane.VRatio[k];
8669 s->SurfaceParameters[k].VRatioChroma = mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k];
8670 s->SurfaceParameters[k].VTaps = mode_lib->ms.cache_display_cfg.plane.VTaps[k];
8671 s->SurfaceParameters[k].VTapsChroma = mode_lib->ms.cache_display_cfg.plane.VTapsChroma[k];
8672 s->SurfaceParameters[k].PitchY = mode_lib->ms.cache_display_cfg.surface.PitchY[k];
8673 s->SurfaceParameters[k].DCCMetaPitchY = mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchY[k];
8674 s->SurfaceParameters[k].PitchC = mode_lib->ms.cache_display_cfg.surface.PitchC[k];
8675 s->SurfaceParameters[k].DCCMetaPitchC = mode_lib->ms.cache_display_cfg.surface.DCCMetaPitchC[k];
8676 s->SurfaceParameters[k].ViewportStationary = mode_lib->ms.cache_display_cfg.plane.ViewportStationary[k];
8677 s->SurfaceParameters[k].ViewportXStart = mode_lib->ms.cache_display_cfg.plane.ViewportXStart[k];
8678 s->SurfaceParameters[k].ViewportYStart = mode_lib->ms.cache_display_cfg.plane.ViewportYStart[k];
8679 s->SurfaceParameters[k].ViewportXStartC = mode_lib->ms.cache_display_cfg.plane.ViewportXStartC[k];
8680 s->SurfaceParameters[k].ViewportYStartC = mode_lib->ms.cache_display_cfg.plane.ViewportYStartC[k];
8681 s->SurfaceParameters[k].FORCE_ONE_ROW_FOR_FRAME = mode_lib->ms.cache_display_cfg.plane.ForceOneRowForFrame[k];
8692 CalculateVMRowAndSwath_params->UseMALLForStaticScreen = mode_lib->ms.cache_display_cfg.plane.UseMALLForStaticScreen;
8693 CalculateVMRowAndSwath_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
8697 CalculateVMRowAndSwath_params->GPUVMEnable = mode_lib->ms.cache_display_cfg.plane.GPUVMEnable;
8698 CalculateVMRowAndSwath_params->HostVMEnable = mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
8699 CalculateVMRowAndSwath_params->HostVMMaxNonCachedPageTableLevels = mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
8700 CalculateVMRowAndSwath_params->GPUVMMaxPageTableLevels = mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
8701 CalculateVMRowAndSwath_params->GPUVMMinPageSizeKBytes = mode_lib->ms.cache_display_cfg.plane.GPUVMMinPageSizeKBytes;
8703 CalculateVMRowAndSwath_params->PTEBufferModeOverrideEn = mode_lib->ms.cache_display_cfg.plane.PTEBufferModeOverrideEn;
8704 CalculateVMRowAndSwath_params->PTEBufferModeOverrideVal = mode_lib->ms.cache_display_cfg.plane.PTEBufferMode;
8760 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
8782 if (mode_lib->ms.cache_display_cfg.plane.GPUVMEnable && mode_lib->ms.cache_display_cfg.plane.HostVMEnable)
8788 s->TotalActiveDPP = s->TotalActiveDPP + mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k];
8789 if (mode_lib->ms.cache_display_cfg.surface.DCCEnable[k])
8790 s->TotalDCCActiveDPP = s->TotalDCCActiveDPP + mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k];
8802 mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
8803 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
8805 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
8809 mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels);
8814 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == k) {
8815 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true) {
8819 mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[k],
8820 mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[k],
8821 mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[k],
8822 mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[k],
8823 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k],
8824 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[k],
8825 mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[k],
8826 mode_lib->ms.cache_display_cfg.timing.HTotal[k]) / locals->Dispclk;
8830 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[j] == k
8831 && mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[j] == true) {
8837 mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[j],
8838 mode_lib->ms.cache_display_cfg.writeback.WritebackHRatio[j],
8839 mode_lib->ms.cache_display_cfg.writeback.WritebackVRatio[j],
8840 mode_lib->ms.cache_display_cfg.writeback.WritebackVTaps[j],
8841 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[j],
8842 mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[j],
8843 mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[j],
8844 mode_lib->ms.cache_display_cfg.timing.HTotal[k]) / locals->Dispclk);
8852 if (mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming[k] == j)
8864 CalculateUrgentBurstFactor(mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k],
8869 mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
8872 mode_lib->ms.cache_display_cfg.plane.CursorWidth[k],
8873 mode_lib->ms.cache_display_cfg.plane.CursorBPP[k],
8874 mode_lib->ms.cache_display_cfg.plane.VRatio[k],
8875 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k],
8887 locals->cursor_bw[k] = mode_lib->ms.cache_display_cfg.plane.NumberOfCursors[k] * mode_lib->ms.cache_display_cfg.plane.CursorWidth[k] * mode_lib->ms.cache_display_cfg.plane.CursorBPP[k] / 8.0 /
8888 ((dml_float_t) mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * mode_lib->ms.cache_display_cfg.plane.VRatio[k];
8898 &mode_lib->ms.cache_display_cfg.timing,
8942 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k],
8944 mode_lib->ms.cache_display_cfg.timing.DRRDisplay[k],
8953 myPipe->PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock[k];
8955 myPipe->DPPPerSurface = mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k];
8956 myPipe->ScalerEnabled = mode_lib->ms.cache_display_cfg.plane.ScalerEnabled[k];
8957 myPipe->SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan[k];
8962 myPipe->InterlaceEnable = mode_lib->ms.cache_display_cfg.timing.Interlace[k];
8963 myPipe->NumberOfCursors = mode_lib->ms.cache_display_cfg.plane.NumberOfCursors[k];
8964 myPipe->VBlank = mode_lib->ms.cache_display_cfg.timing.VTotal[k] - mode_lib->ms.cache_display_cfg.timing.VActive[k];
8965 myPipe->HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal[k];
8966 myPipe->HActive = mode_lib->ms.cache_display_cfg.timing.HActive[k];
8967 myPipe->DCCEnable = mode_lib->ms.cache_display_cfg.surface.DCCEnable[k];
8968 myPipe->ODMMode = mode_lib->ms.cache_display_cfg.hw.ODMMode[k];
8969 myPipe->SourcePixelFormat = mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k];
8989 CalculatePrefetchSchedule_params->DPP_RECOUT_WIDTH = (dml_uint_t)(locals->SwathWidthY[k] / mode_lib->ms.cache_display_cfg.plane.HRatio[k]);
8990 CalculatePrefetchSchedule_params->OutputFormat = mode_lib->ms.cache_display_cfg.output.OutputFormat[k];
8994 CalculatePrefetchSchedule_params->GPUVMPageTableLevels = mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
8995 CalculatePrefetchSchedule_params->GPUVMEnable = mode_lib->ms.cache_display_cfg.plane.GPUVMEnable;
8996 CalculatePrefetchSchedule_params->HostVMEnable = mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
8997 CalculatePrefetchSchedule_params->HostVMMaxNonCachedPageTableLevels = mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
8999 CalculatePrefetchSchedule_params->DynamicMetadataEnable = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataEnable[k];
9001 CalculatePrefetchSchedule_params->DynamicMetadataLinesBeforeActiveRequired = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataLinesBeforeActiveRequired[k];
9002 CalculatePrefetchSchedule_params->DynamicMetadataTransmittedBytes = mode_lib->ms.cache_display_cfg.plane.DynamicMetadataTransmittedBytes[k];
9052 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k],
9057 mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
9060 mode_lib->ms.cache_display_cfg.plane.CursorWidth[k],
9061 mode_lib->ms.cache_display_cfg.plane.CursorBPP[k],
9074 locals->cursor_bw_pre[k] = mode_lib->ms.cache_display_cfg.plane.NumberOfCursors[k] * mode_lib->ms.cache_display_cfg.plane.CursorWidth[k] * mode_lib->ms.cache_display_cfg.plane.CursorBPP[k] / 8.0 / (mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * locals->VRatioPrefetchY[k];
9077 dml_print("DML::%s: k=%0u DPPPerSurface=%u\n", __func__, k, mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k]);
9084 dml_print("DML::%s: k=%0u VRatioY=%f\n", __func__, k, mode_lib->ms.cache_display_cfg.plane.VRatio[k]);
9128 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange,
9139 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
9158 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange,
9169 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
9207 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
9218 locals->TotImmediateFlipBytes = locals->TotImmediateFlipBytes + mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k] * (locals->PDEAndMetaPTEBytesFrame[k] + locals->MetaRowByte[k]);
9220 locals->TotImmediateFlipBytes = locals->TotImmediateFlipBytes + mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k] * (2 * locals->PixelPTEBytesPerRow[k]);
9222 locals->TotImmediateFlipBytes = locals->TotImmediateFlipBytes + mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k] * locals->PixelPTEBytesPerRow[k];
9226 dml_print("DML::%s: DPPPerSurface = %u\n", __func__, mode_lib->ms.cache_display_cfg.hw.DPPPerSurface[k]);
9239 mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels,
9240 mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
9241 mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels,
9242 mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
9249 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k],
9250 mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k],
9251 mode_lib->ms.cache_display_cfg.plane.VRatio[k],
9252 mode_lib->ms.cache_display_cfg.plane.VRatioChroma[k],
9254 mode_lib->ms.cache_display_cfg.surface.DCCEnable[k],
9270 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange,
9282 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
9298 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange,
9310 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
9342 ((!mode_lib->ms.support.ImmediateFlipSupport && !mode_lib->ms.cache_display_cfg.plane.HostVMEnable && !s->ImmediateFlipRequirementFinal) ||
9349 dml_print("DML::%s: HostVMEnable = %u\n", __func__, mode_lib->ms.cache_display_cfg.plane.HostVMEnable);
9399 CalculateWatermarks_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
9409 CalculateWatermarks_params->DRRDisplay = mode_lib->ms.cache_display_cfg.timing.DRRDisplay;
9421 CalculateWatermarks_params->LBBitPerPixel = mode_lib->ms.cache_display_cfg.plane.LBBitPerPixel;
9424 CalculateWatermarks_params->HRatio = mode_lib->ms.cache_display_cfg.plane.HRatio;
9425 CalculateWatermarks_params->HRatioChroma = mode_lib->ms.cache_display_cfg.plane.HRatioChroma;
9426 CalculateWatermarks_params->VTaps = mode_lib->ms.cache_display_cfg.plane.VTaps;
9427 CalculateWatermarks_params->VTapsChroma = mode_lib->ms.cache_display_cfg.plane.VTapsChroma;
9428 CalculateWatermarks_params->VRatio = mode_lib->ms.cache_display_cfg.plane.VRatio;
9429 CalculateWatermarks_params->VRatioChroma = mode_lib->ms.cache_display_cfg.plane.VRatioChroma;
9430 CalculateWatermarks_params->HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal;
9431 CalculateWatermarks_params->VTotal = mode_lib->ms.cache_display_cfg.timing.VTotal;
9432 CalculateWatermarks_params->VActive = mode_lib->ms.cache_display_cfg.timing.VActive;
9433 CalculateWatermarks_params->PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock;
9434 CalculateWatermarks_params->BlendingAndTiming = mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming;
9435 CalculateWatermarks_params->DPPPerSurface = mode_lib->ms.cache_display_cfg.hw.DPPPerSurface;
9440 CalculateWatermarks_params->WritebackEnable = mode_lib->ms.cache_display_cfg.writeback.WritebackEnable;
9441 CalculateWatermarks_params->WritebackPixelFormat = mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat;
9442 CalculateWatermarks_params->WritebackDestinationWidth = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth;
9443 CalculateWatermarks_params->WritebackDestinationHeight = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight;
9444 CalculateWatermarks_params->WritebackSourceHeight = mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight;
9469 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true) {
9470 locals->WritebackAllowDRAMClockChangeEndPosition[k] = dml_max(0, locals->VStartupMin[k] * mode_lib->ms.cache_display_cfg.timing.HTotal[k] /
9471 mode_lib->ms.cache_display_cfg.timing.PixelClock[k] - locals->Watermark.WritebackDRAMClockChangeWatermark);
9472 locals->WritebackAllowFCLKChangeEndPosition[k] = dml_max(0, locals->VStartupMin[k] * mode_lib->ms.cache_display_cfg.timing.HTotal[k] /
9473 mode_lib->ms.cache_display_cfg.timing.PixelClock[k] - locals->Watermark.WritebackFCLKChangeWatermark);
9484 mode_lib->ms.cache_display_cfg.plane.VRatio,
9485 mode_lib->ms.cache_display_cfg.plane.VRatioChroma,
9490 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
9491 mode_lib->ms.cache_display_cfg.plane.HRatio,
9492 mode_lib->ms.cache_display_cfg.plane.HRatioChroma,
9493 mode_lib->ms.cache_display_cfg.timing.PixelClock,
9498 mode_lib->ms.cache_display_cfg.plane.SourceScan,
9499 mode_lib->ms.cache_display_cfg.plane.NumberOfCursors,
9500 mode_lib->ms.cache_display_cfg.plane.CursorWidth,
9501 mode_lib->ms.cache_display_cfg.plane.CursorBPP,
9522 mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
9525 mode_lib->ms.cache_display_cfg.timing.HTotal,
9526 mode_lib->ms.cache_display_cfg.plane.VRatio,
9527 mode_lib->ms.cache_display_cfg.plane.VRatioChroma,
9530 mode_lib->ms.cache_display_cfg.surface.DCCEnable,
9531 mode_lib->ms.cache_display_cfg.timing.PixelClock,
9534 mode_lib->ms.cache_display_cfg.plane.SourceScan,
9575 mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
9576 mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels,
9577 mode_lib->ms.cache_display_cfg.timing.HTotal,
9581 mode_lib->ms.cache_display_cfg.surface.DCCEnable,
9582 mode_lib->ms.cache_display_cfg.timing.PixelClock,
9617 if (!mode_lib->ms.cache_display_cfg.plane.DynamicMetadataEnable[k])
9627 mode_lib->ms.cache_display_cfg.surface.DCCEnable[k],
9629 mode_lib->ms.cache_display_cfg.surface.SourcePixelFormat[k],
9630 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthY[k],
9631 mode_lib->ms.cache_display_cfg.surface.SurfaceWidthC[k],
9632 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightY[k],
9633 mode_lib->ms.cache_display_cfg.surface.SurfaceHeightC[k],
9637 mode_lib->ms.cache_display_cfg.surface.SurfaceTiling[k],
9642 mode_lib->ms.cache_display_cfg.plane.SourceScan[k],
9654 s->Tvstartup_margin = (s->MaxVStartupLines[k] - locals->VStartupMin[k]) * mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k];
9668 if (mode_lib->ms.cache_display_cfg.plane.DynamicMetadataEnable[k] && mode_lib->ms.ip.dynamic_metadata_vm_enabled) {
9672 isInterlaceTiming = (mode_lib->ms.cache_display_cfg.timing.Interlace[k] && !mode_lib->ms.ip.ptoi_supported);
9677 s->dlg_vblank_start = ((isInterlaceTiming ? dml_floor((mode_lib->ms.cache_display_cfg.timing.VTotal[k] - mode_lib->ms.cache_display_cfg.timing.VFrontPorch[k]) / 2.0, 1.0) :
9678 mode_lib->ms.cache_display_cfg.timing.VTotal[k]) - mode_lib->ms.cache_display_cfg.timing.VFrontPorch[k]);
9679 s->LSetup = dml_floor(4.0 * locals->TSetup[k] / ((dml_float_t) mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]), 1.0) / 4.0;
9680 s->blank_lines_remaining = (mode_lib->ms.cache_display_cfg.timing.VTotal[k] - mode_lib->ms.cache_display_cfg.timing.VActive[k]) - locals->VStartup[k];
9690 s->old_MIN_DST_Y_NEXT_START = ((isInterlaceTiming ? dml_floor((mode_lib->ms.cache_display_cfg.timing.VTotal[k] - mode_lib->ms.cache_display_cfg.timing.VFrontPorch[k]) / 2.0, 1.0) :
9691 mode_lib->ms.cache_display_cfg.timing.VTotal[k]) - mode_lib->ms.cache_display_cfg.timing.VFrontPorch[k])
9692 + dml_max(1.0, dml_ceil((dml_float_t) locals->WritebackDelay[k] / ((dml_float_t) mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]), 1.0))
9693 + dml_floor(4.0 * locals->TSetup[k] / ((dml_float_t) mode_lib->ms.cache_display_cfg.timing.HTotal[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]), 1.0) / 4.0;
9695 if (((locals->VUpdateOffsetPix[k] + locals->VUpdateWidthPix[k] + locals->VReadyOffsetPix[k]) / mode_lib->ms.cache_display_cfg.timing.HTotal[k]) <=
9697 dml_floor((mode_lib->ms.cache_display_cfg.timing.VTotal[k] - mode_lib->ms.cache_display_cfg.timing.VActive[k] - mode_lib->ms.cache_display_cfg.timing.VFrontPorch[k] - locals->VStartup[k]) / 2.0, 1.0) :
9698 (int) (mode_lib->ms.cache_display_cfg.timing.VTotal[k] - mode_lib->ms.cache_display_cfg.timing.VActive[k] - mode_lib->ms.cache_display_cfg.timing.VFrontPorch[k] - locals->VStartup[k]))) {
9709 dml_print("DML::%s: k=%u, HTotal = %u\n", __func__, k, mode_lib->ms.cache_display_cfg.timing.HTotal[k]);
9710 dml_print("DML::%s: k=%u, VTotal = %u\n", __func__, k, mode_lib->ms.cache_display_cfg.timing.VTotal[k]);
9711 dml_print("DML::%s: k=%u, VActive = %u\n", __func__, k, mode_lib->ms.cache_display_cfg.timing.VActive[k]);
9712 dml_print("DML::%s: k=%u, VFrontPorch = %u\n", __func__, k, mode_lib->ms.cache_display_cfg.timing.VFrontPorch[k]);
9724 if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true && mode_lib->ms.cache_display_cfg.writeback.WritebackPixelFormat[k] == dml_444_32) {
9725 s->WRBandwidth = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k] * mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[k] /
9726 (mode_lib->ms.cache_display_cfg.timing.HTotal[k] * mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * 4;
9727 } else if (mode_lib->ms.cache_display_cfg.writeback.WritebackEnable[k] == true) {
9728 s->WRBandwidth = mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationWidth[k] * mode_lib->ms.cache_display_cfg.writeback.WritebackDestinationHeight[k] /
9729 (mode_lib->ms.cache_display_cfg.timing.HTotal[k] * mode_lib->ms.cache_display_cfg.writeback.WritebackSourceHeight[k] / mode_lib->ms.cache_display_cfg.timing.PixelClock[k]) * 8;
9747 if (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[k] != dml_use_mall_pstate_change_phantom_pipe) {
9754 CalculateStutterEfficiency_params->UseMALLForPStateChange = mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange;
9769 CalculateStutterEfficiency_params->BlendingAndTiming = mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming;
9773 CalculateStutterEfficiency_params->Interlace = mode_lib->ms.cache_display_cfg.timing.Interlace;
9775 CalculateStutterEfficiency_params->DPPPerSurface = mode_lib->ms.cache_display_cfg.hw.DPPPerSurface;
9782 CalculateStutterEfficiency_params->NetDCCRateLuma = mode_lib->ms.cache_display_cfg.surface.DCCRateLuma;
9783 CalculateStutterEfficiency_params->NetDCCRateChroma = mode_lib->ms.cache_display_cfg.surface.DCCRateChroma;
9784 CalculateStutterEfficiency_params->DCCFractionOfZeroSizeRequestsLuma = mode_lib->ms.cache_display_cfg.surface.DCCFractionOfZeroSizeRequestsLuma;
9785 CalculateStutterEfficiency_params->DCCFractionOfZeroSizeRequestsChroma = mode_lib->ms.cache_display_cfg.surface.DCCFractionOfZeroSizeRequestsChroma;
9786 CalculateStutterEfficiency_params->HTotal = mode_lib->ms.cache_display_cfg.timing.HTotal;
9787 CalculateStutterEfficiency_params->VTotal = mode_lib->ms.cache_display_cfg.timing.VTotal;
9788 CalculateStutterEfficiency_params->PixelClock = mode_lib->ms.cache_display_cfg.timing.PixelClock;
9789 CalculateStutterEfficiency_params->VRatio = mode_lib->ms.cache_display_cfg.plane.VRatio;
9790 CalculateStutterEfficiency_params->SourceScan = mode_lib->ms.cache_display_cfg.plane.SourceScan;
9797 CalculateStutterEfficiency_params->VActive = mode_lib->ms.cache_display_cfg.timing.VActive;
9798 CalculateStutterEfficiency_params->DCCEnable = mode_lib->ms.cache_display_cfg.surface.DCCEnable;
9799 CalculateStutterEfficiency_params->WritebackEnable = mode_lib->ms.cache_display_cfg.writeback.WritebackEnable;
9826 mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange,
9841 mode_lib->ms.cache_display_cfg.plane.BlendingAndTiming,
9845 mode_lib->ms.cache_display_cfg.timing.Interlace,
9847 mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
9854 mode_lib->ms.cache_display_cfg.surface.DCCRateLuma,
9855 mode_lib->ms.cache_display_cfg.surface.DCCRateChroma,
9856 mode_lib->ms.cache_display_cfg.surface.DCCFractionOfZeroSizeRequestsLuma,
9857 mode_lib->ms.cache_display_cfg.surface.DCCFractionOfZeroSizeRequestsChroma,
9858 mode_lib->ms.cache_display_cfg.timing.HTotal,
9859 mode_lib->ms.cache_display_cfg.timing.VTotal,
9860 mode_lib->ms.cache_display_cfg.timing.PixelClock,
9861 mode_lib->ms.cache_display_cfg.plane.VRatio,
9862 mode_lib->ms.cache_display_cfg.plane.SourceScan,
9869 mode_lib->ms.cache_display_cfg.timing.VActive,
9870 mode_lib->ms.cache_display_cfg.surface.DCCEnable,
9871 mode_lib->ms.cache_display_cfg.writeback.WritebackEnable,
10049 static void cache_display_cfg(struct display_mode_lib_st *mode_lib,
10052 mode_lib->ms.cache_display_cfg = *display_cfg;
10084 cache_display_cfg(mode_lib, display_cfg);
10126 cache_display_cfg(mode_lib, display_cfg);
10189 dml_print("DML::%s: pipe_idx=%d UseMALLForPStateChange=%0d\n", __func__, pipe_idx, mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[plane_idx]);
10190 return (mode_lib->ms.cache_display_cfg.plane.UseMALLForPStateChange[plane_idx] == dml_use_mall_pstate_change_phantom_pipe);