Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.15-rc2 598 lines 23 kB view raw
1/* 2 * Copyright 2017 Advanced Micro Devices, Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 * OTHER DEALINGS IN THE SOFTWARE. 21 * 22 * Authors: AMD 23 * 24 */ 25 26#ifndef __DML2_DISPLAY_MODE_VBA_H__ 27#define __DML2_DISPLAY_MODE_VBA_H__ 28 29#include "dml_common_defs.h" 30 31struct display_mode_lib; 32 33void set_prefetch_mode(struct display_mode_lib *mode_lib, 34 bool cstate_en, 35 bool pstate_en, 36 bool ignore_viewport_pos, 37 bool immediate_flip_support); 38 39#define dml_get_attr_decl(attr) double get_##attr(struct display_mode_lib *mode_lib, const display_e2e_pipe_params_st *pipes, unsigned int num_pipes) 40 41dml_get_attr_decl(clk_dcf_deepsleep); 42dml_get_attr_decl(wm_urgent); 43dml_get_attr_decl(wm_memory_trip); 44dml_get_attr_decl(wm_writeback_urgent); 45dml_get_attr_decl(wm_stutter_exit); 46dml_get_attr_decl(wm_stutter_enter_exit); 47dml_get_attr_decl(wm_dram_clock_change); 48dml_get_attr_decl(wm_writeback_dram_clock_change); 49dml_get_attr_decl(wm_xfc_underflow); 50dml_get_attr_decl(stutter_efficiency_no_vblank); 51dml_get_attr_decl(stutter_efficiency); 52dml_get_attr_decl(urgent_latency); 53dml_get_attr_decl(urgent_extra_latency); 54dml_get_attr_decl(nonurgent_latency); 55dml_get_attr_decl(dram_clock_change_latency); 56dml_get_attr_decl(dispclk_calculated); 57dml_get_attr_decl(total_data_read_bw); 58dml_get_attr_decl(return_bw); 59dml_get_attr_decl(tcalc); 60 61#define dml_get_pipe_attr_decl(attr) double get_##attr(struct display_mode_lib *mode_lib, const display_e2e_pipe_params_st *pipes, unsigned int num_pipes, unsigned int which_pipe) 62 63dml_get_pipe_attr_decl(dsc_delay); 64dml_get_pipe_attr_decl(dppclk_calculated); 65dml_get_pipe_attr_decl(dscclk_calculated); 66dml_get_pipe_attr_decl(min_ttu_vblank); 67dml_get_pipe_attr_decl(vratio_prefetch_l); 68dml_get_pipe_attr_decl(vratio_prefetch_c); 69dml_get_pipe_attr_decl(dst_x_after_scaler); 70dml_get_pipe_attr_decl(dst_y_after_scaler); 71dml_get_pipe_attr_decl(dst_y_per_vm_vblank); 72dml_get_pipe_attr_decl(dst_y_per_row_vblank); 73dml_get_pipe_attr_decl(dst_y_prefetch); 74dml_get_pipe_attr_decl(dst_y_per_vm_flip); 75dml_get_pipe_attr_decl(dst_y_per_row_flip); 76dml_get_pipe_attr_decl(xfc_transfer_delay); 77dml_get_pipe_attr_decl(xfc_precharge_delay); 78dml_get_pipe_attr_decl(xfc_remote_surface_flip_latency); 79dml_get_pipe_attr_decl(xfc_prefetch_margin); 80 81unsigned int get_vstartup_calculated( 82 struct display_mode_lib *mode_lib, 83 const display_e2e_pipe_params_st *pipes, 84 unsigned int num_pipes, 85 unsigned int which_pipe); 86 87double get_total_immediate_flip_bytes( 88 struct display_mode_lib *mode_lib, 89 const display_e2e_pipe_params_st *pipes, 90 unsigned int num_pipes); 91double get_total_immediate_flip_bw( 92 struct display_mode_lib *mode_lib, 93 const display_e2e_pipe_params_st *pipes, 94 unsigned int num_pipes); 95double get_total_prefetch_bw( 96 struct display_mode_lib *mode_lib, 97 const display_e2e_pipe_params_st *pipes, 98 unsigned int num_pipes); 99 100unsigned int dml_get_voltage_level( 101 struct display_mode_lib *mode_lib, 102 const display_e2e_pipe_params_st *pipes, 103 unsigned int num_pipes); 104 105bool Calculate256BBlockSizes( 106 enum source_format_class SourcePixelFormat, 107 enum dm_swizzle_mode SurfaceTiling, 108 unsigned int BytePerPixelY, 109 unsigned int BytePerPixelC, 110 unsigned int *BlockHeight256BytesY, 111 unsigned int *BlockHeight256BytesC, 112 unsigned int *BlockWidth256BytesY, 113 unsigned int *BlockWidth256BytesC); 114 115 116struct vba_vars_st { 117 ip_params_st ip; 118 soc_bounding_box_st soc; 119 120 unsigned int MaximumMaxVStartupLines; 121 double cursor_bw[DC__NUM_DPP__MAX]; 122 double meta_row_bw[DC__NUM_DPP__MAX]; 123 double dpte_row_bw[DC__NUM_DPP__MAX]; 124 double qual_row_bw[DC__NUM_DPP__MAX]; 125 double WritebackDISPCLK; 126 double PSCL_THROUGHPUT_LUMA[DC__NUM_DPP__MAX]; 127 double PSCL_THROUGHPUT_CHROMA[DC__NUM_DPP__MAX]; 128 double DPPCLKUsingSingleDPPLuma; 129 double DPPCLKUsingSingleDPPChroma; 130 double DPPCLKUsingSingleDPP[DC__NUM_DPP__MAX]; 131 double DISPCLKWithRamping; 132 double DISPCLKWithoutRamping; 133 double GlobalDPPCLK; 134 double DISPCLKWithRampingRoundedToDFSGranularity; 135 double DISPCLKWithoutRampingRoundedToDFSGranularity; 136 double MaxDispclkRoundedToDFSGranularity; 137 bool DCCEnabledAnyPlane; 138 double ReturnBandwidthToDCN; 139 unsigned int SwathWidthY[DC__NUM_DPP__MAX]; 140 unsigned int SwathWidthSingleDPPY[DC__NUM_DPP__MAX]; 141 double BytePerPixelDETY[DC__NUM_DPP__MAX]; 142 double BytePerPixelDETC[DC__NUM_DPP__MAX]; 143 double ReadBandwidthPlaneLuma[DC__NUM_DPP__MAX]; 144 double ReadBandwidthPlaneChroma[DC__NUM_DPP__MAX]; 145 unsigned int TotalActiveDPP; 146 unsigned int TotalDCCActiveDPP; 147 double UrgentRoundTripAndOutOfOrderLatency; 148 double DisplayPipeLineDeliveryTimeLuma[DC__NUM_DPP__MAX]; // WM 149 double DisplayPipeLineDeliveryTimeChroma[DC__NUM_DPP__MAX]; // WM 150 double LinesInDETY[DC__NUM_DPP__MAX]; // WM 151 double LinesInDETC[DC__NUM_DPP__MAX]; // WM 152 unsigned int LinesInDETYRoundedDownToSwath[DC__NUM_DPP__MAX]; // WM 153 unsigned int LinesInDETCRoundedDownToSwath[DC__NUM_DPP__MAX]; // WM 154 double FullDETBufferingTimeY[DC__NUM_DPP__MAX]; // WM 155 double FullDETBufferingTimeC[DC__NUM_DPP__MAX]; // WM 156 double MinFullDETBufferingTime; 157 double FrameTimeForMinFullDETBufferingTime; 158 double AverageReadBandwidthGBytePerSecond; 159 double PartOfBurstThatFitsInROB; 160 double StutterBurstTime; 161 //unsigned int NextPrefetchMode; 162 double VBlankTime; 163 double SmallestVBlank; 164 double DCFCLKDeepSleepPerPlane; 165 double EffectiveDETPlusLBLinesLuma; 166 double EffectiveDETPlusLBLinesChroma; 167 double UrgentLatencySupportUsLuma; 168 double UrgentLatencySupportUsChroma; 169 double UrgentLatencySupportUs[DC__NUM_DPP__MAX]; 170 unsigned int DSCFormatFactor; 171 unsigned int BlockHeight256BytesY[DC__NUM_DPP__MAX]; 172 unsigned int BlockHeight256BytesC[DC__NUM_DPP__MAX]; 173 unsigned int BlockWidth256BytesY[DC__NUM_DPP__MAX]; 174 unsigned int BlockWidth256BytesC[DC__NUM_DPP__MAX]; 175 double VInitPreFillY[DC__NUM_DPP__MAX]; 176 double VInitPreFillC[DC__NUM_DPP__MAX]; 177 unsigned int MaxNumSwathY[DC__NUM_DPP__MAX]; 178 unsigned int MaxNumSwathC[DC__NUM_DPP__MAX]; 179 double PrefetchSourceLinesY[DC__NUM_DPP__MAX]; 180 double PrefetchSourceLinesC[DC__NUM_DPP__MAX]; 181 double PixelPTEBytesPerRow[DC__NUM_DPP__MAX]; 182 double MetaRowByte[DC__NUM_DPP__MAX]; 183 unsigned int dpte_row_height[DC__NUM_DPP__MAX]; 184 unsigned int dpte_row_height_chroma[DC__NUM_DPP__MAX]; 185 unsigned int meta_row_height[DC__NUM_DPP__MAX]; 186 unsigned int meta_row_height_chroma[DC__NUM_DPP__MAX]; 187 188 unsigned int MacroTileWidthY[DC__NUM_DPP__MAX]; 189 unsigned int MacroTileWidthC[DC__NUM_DPP__MAX]; 190 unsigned int MaxVStartupLines[DC__NUM_DPP__MAX]; 191 double WritebackDelay[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 192 bool PrefetchModeSupported; 193 bool AllowDRAMClockChangeDuringVBlank[DC__NUM_DPP__MAX]; 194 bool AllowDRAMSelfRefreshDuringVBlank[DC__NUM_DPP__MAX]; 195 double RequiredPrefetchPixDataBW[DC__NUM_DPP__MAX]; 196 double XFCRemoteSurfaceFlipDelay; 197 double TInitXFill; 198 double TslvChk; 199 double SrcActiveDrainRate; 200 double Tno_bw[DC__NUM_DPP__MAX]; 201 bool ImmediateFlipSupported; 202 203 double prefetch_vm_bw[DC__NUM_DPP__MAX]; 204 double prefetch_row_bw[DC__NUM_DPP__MAX]; 205 bool ImmediateFlipSupportedForPipe[DC__NUM_DPP__MAX]; 206 unsigned int VStartupLines; 207 double DisplayPipeLineDeliveryTimeLumaPrefetch[DC__NUM_DPP__MAX]; 208 double DisplayPipeLineDeliveryTimeChromaPrefetch[DC__NUM_DPP__MAX]; 209 unsigned int ActiveDPPs; 210 unsigned int LBLatencyHidingSourceLinesY; 211 unsigned int LBLatencyHidingSourceLinesC; 212 double ActiveDRAMClockChangeLatencyMargin[DC__NUM_DPP__MAX]; 213 double MinActiveDRAMClockChangeMargin; 214 double XFCSlaveVUpdateOffset[DC__NUM_DPP__MAX]; 215 double XFCSlaveVupdateWidth[DC__NUM_DPP__MAX]; 216 double XFCSlaveVReadyOffset[DC__NUM_DPP__MAX]; 217 double InitFillLevel; 218 double FinalFillMargin; 219 double FinalFillLevel; 220 double RemainingFillLevel; 221 double TFinalxFill; 222 223 224 // 225 // SOC Bounding Box Parameters 226 // 227 double SRExitTime; 228 double SREnterPlusExitTime; 229 double UrgentLatency; 230 double WritebackLatency; 231 double PercentOfIdealDRAMAndFabricBWReceivedAfterUrgLatency; 232 double NumberOfChannels; 233 double DRAMChannelWidth; 234 double FabricDatapathToDCNDataReturn; 235 double ReturnBusWidth; 236 double Downspreading; 237 double DISPCLKDPPCLKDSCCLKDownSpreading; 238 double DISPCLKDPPCLKVCOSpeed; 239 double RoundTripPingLatencyCycles; 240 double UrgentOutOfOrderReturnPerChannel; 241 unsigned int VMMPageSize; 242 double DRAMClockChangeLatency; 243 double XFCBusTransportTime; 244 double XFCXBUFLatencyTolerance; 245 246 // 247 // IP Parameters 248 // 249 unsigned int ROBBufferSizeInKByte; 250 double DETBufferSizeInKByte; 251 unsigned int DPPOutputBufferPixels; 252 unsigned int OPPOutputBufferLines; 253 unsigned int PixelChunkSizeInKByte; 254 double ReturnBW; 255 bool VirtualMemoryEnable; 256 unsigned int MaxPageTableLevels; 257 unsigned int OverridePageTableLevels; 258 unsigned int PTEChunkSize; 259 unsigned int MetaChunkSize; 260 unsigned int WritebackChunkSize; 261 bool ODMCapability; 262 unsigned int NumberOfDSC; 263 unsigned int LineBufferSize; 264 unsigned int MaxLineBufferLines; 265 unsigned int WritebackInterfaceLumaBufferSize; 266 unsigned int WritebackInterfaceChromaBufferSize; 267 unsigned int WritebackChromaLineBufferWidth; 268 double MaxDCHUBToPSCLThroughput; 269 double MaxPSCLToLBThroughput; 270 unsigned int PTEBufferSizeInRequests; 271 double DISPCLKRampingMargin; 272 unsigned int MaxInterDCNTileRepeaters; 273 bool XFCSupported; 274 double XFCSlvChunkSize; 275 double XFCFillBWOverhead; 276 double XFCFillConstant; 277 double XFCTSlvVupdateOffset; 278 double XFCTSlvVupdateWidth; 279 double XFCTSlvVreadyOffset; 280 double DPPCLKDelaySubtotal; 281 double DPPCLKDelaySCL; 282 double DPPCLKDelaySCLLBOnly; 283 double DPPCLKDelayCNVCFormater; 284 double DPPCLKDelayCNVCCursor; 285 double DISPCLKDelaySubtotal; 286 bool ProgressiveToInterlaceUnitInOPP; 287 unsigned int PDEProcessingBufIn64KBReqs; 288 289 // Pipe/Plane Parameters 290 int VoltageLevel; 291 double FabricAndDRAMBandwidth; 292 double FabricClock; 293 double DRAMSpeed; 294 double DISPCLK; 295 double SOCCLK; 296 double DCFCLK; 297 298 unsigned int NumberOfActivePlanes; 299 unsigned int ViewportWidth[DC__NUM_DPP__MAX]; 300 unsigned int ViewportHeight[DC__NUM_DPP__MAX]; 301 unsigned int ViewportYStartY[DC__NUM_DPP__MAX]; 302 unsigned int ViewportYStartC[DC__NUM_DPP__MAX]; 303 unsigned int PitchY[DC__NUM_DPP__MAX]; 304 unsigned int PitchC[DC__NUM_DPP__MAX]; 305 double HRatio[DC__NUM_DPP__MAX]; 306 double VRatio[DC__NUM_DPP__MAX]; 307 unsigned int htaps[DC__NUM_DPP__MAX]; 308 unsigned int vtaps[DC__NUM_DPP__MAX]; 309 unsigned int HTAPsChroma[DC__NUM_DPP__MAX]; 310 unsigned int VTAPsChroma[DC__NUM_DPP__MAX]; 311 unsigned int HTotal[DC__NUM_DPP__MAX]; 312 unsigned int VTotal[DC__NUM_DPP__MAX]; 313 unsigned int DPPPerPlane[DC__NUM_DPP__MAX]; 314 double PixelClock[DC__NUM_DPP__MAX]; 315 double PixelClockBackEnd[DC__NUM_DPP__MAX]; 316 double DPPCLK[DC__NUM_DPP__MAX]; 317 bool DCCEnable[DC__NUM_DPP__MAX]; 318 unsigned int DCCMetaPitchY[DC__NUM_DPP__MAX]; 319 enum scan_direction_class SourceScan[DC__NUM_DPP__MAX]; 320 enum source_format_class SourcePixelFormat[DC__NUM_DPP__MAX]; 321 bool WritebackEnable[DC__NUM_DPP__MAX]; 322 double WritebackDestinationWidth[DC__NUM_DPP__MAX]; 323 double WritebackDestinationHeight[DC__NUM_DPP__MAX]; 324 double WritebackSourceHeight[DC__NUM_DPP__MAX]; 325 enum source_format_class WritebackPixelFormat[DC__NUM_DPP__MAX]; 326 unsigned int WritebackLumaHTaps[DC__NUM_DPP__MAX]; 327 unsigned int WritebackLumaVTaps[DC__NUM_DPP__MAX]; 328 unsigned int WritebackChromaHTaps[DC__NUM_DPP__MAX]; 329 unsigned int WritebackChromaVTaps[DC__NUM_DPP__MAX]; 330 double WritebackHRatio[DC__NUM_DPP__MAX]; 331 double WritebackVRatio[DC__NUM_DPP__MAX]; 332 unsigned int HActive[DC__NUM_DPP__MAX]; 333 unsigned int VActive[DC__NUM_DPP__MAX]; 334 bool Interlace[DC__NUM_DPP__MAX]; 335 enum dm_swizzle_mode SurfaceTiling[DC__NUM_DPP__MAX]; 336 unsigned int ScalerRecoutWidth[DC__NUM_DPP__MAX]; 337 bool DynamicMetadataEnable[DC__NUM_DPP__MAX]; 338 unsigned int DynamicMetadataLinesBeforeActiveRequired[DC__NUM_DPP__MAX]; 339 unsigned int DynamicMetadataTransmittedBytes[DC__NUM_DPP__MAX]; 340 double DCCRate[DC__NUM_DPP__MAX]; 341 bool ODMCombineEnabled[DC__NUM_DPP__MAX]; 342 double OutputBpp[DC__NUM_DPP__MAX]; 343 unsigned int NumberOfDSCSlices[DC__NUM_DPP__MAX]; 344 bool DSCEnabled[DC__NUM_DPP__MAX]; 345 unsigned int DSCDelay[DC__NUM_DPP__MAX]; 346 unsigned int DSCInputBitPerComponent[DC__NUM_DPP__MAX]; 347 enum output_format_class OutputFormat[DC__NUM_DPP__MAX]; 348 enum output_encoder_class Output[DC__NUM_DPP__MAX]; 349 unsigned int BlendingAndTiming[DC__NUM_DPP__MAX]; 350 bool SynchronizedVBlank; 351 unsigned int NumberOfCursors[DC__NUM_DPP__MAX]; 352 unsigned int CursorWidth[DC__NUM_DPP__MAX][DC__NUM_CURSOR__MAX]; 353 unsigned int CursorBPP[DC__NUM_DPP__MAX][DC__NUM_CURSOR__MAX]; 354 bool XFCEnabled[DC__NUM_DPP__MAX]; 355 bool ScalerEnabled[DC__NUM_DPP__MAX]; 356 357 // Intermediates/Informational 358 bool ImmediateFlipSupport; 359 unsigned int SwathHeightY[DC__NUM_DPP__MAX]; 360 unsigned int SwathHeightC[DC__NUM_DPP__MAX]; 361 unsigned int DETBufferSizeY[DC__NUM_DPP__MAX]; 362 unsigned int DETBufferSizeC[DC__NUM_DPP__MAX]; 363 unsigned int LBBitPerPixel[DC__NUM_DPP__MAX]; 364 double LastPixelOfLineExtraWatermark; 365 double TotalDataReadBandwidth; 366 unsigned int TotalActiveWriteback; 367 unsigned int EffectiveLBLatencyHidingSourceLinesLuma; 368 unsigned int EffectiveLBLatencyHidingSourceLinesChroma; 369 double BandwidthAvailableForImmediateFlip; 370 unsigned int PrefetchMode; 371 bool IgnoreViewportPositioning; 372 double PrefetchBandwidth[DC__NUM_DPP__MAX]; 373 bool ErrorResult[DC__NUM_DPP__MAX]; 374 double PDEAndMetaPTEBytesFrame[DC__NUM_DPP__MAX]; 375 376 // 377 // Calculated dml_ml->vba.Outputs 378 // 379 double DCFClkDeepSleep; 380 double UrgentWatermark; 381 double UrgentExtraLatency; 382 double MemoryTripWatermark; 383 double WritebackUrgentWatermark; 384 double StutterExitWatermark; 385 double StutterEnterPlusExitWatermark; 386 double DRAMClockChangeWatermark; 387 double WritebackDRAMClockChangeWatermark; 388 double StutterEfficiency; 389 double StutterEfficiencyNotIncludingVBlank; 390 double MinUrgentLatencySupportUs; 391 double NonUrgentLatencyTolerance; 392 double MinActiveDRAMClockChangeLatencySupported; 393 enum clock_change_support DRAMClockChangeSupport; 394 395 // These are the clocks calcuated by the library but they are not actually 396 // used explicitly. They are fetched by tests and then possibly used. The 397 // ultimate values to use are the ones specified by the parameters to DML 398 double DISPCLK_calculated; 399 double DSCCLK_calculated[DC__NUM_DPP__MAX]; 400 double DPPCLK_calculated[DC__NUM_DPP__MAX]; 401 402 unsigned int VStartup[DC__NUM_DPP__MAX]; 403 unsigned int VUpdateOffsetPix[DC__NUM_DPP__MAX]; 404 unsigned int VUpdateWidthPix[DC__NUM_DPP__MAX]; 405 unsigned int VReadyOffsetPix[DC__NUM_DPP__MAX]; 406 unsigned int VStartupRequiredWhenNotEnoughTimeForDynamicMetadata; 407 408 double ImmediateFlipBW; 409 unsigned int TotImmediateFlipBytes; 410 double TCalc; 411 double MinTTUVBlank[DC__NUM_DPP__MAX]; 412 double VRatioPrefetchY[DC__NUM_DPP__MAX]; 413 double VRatioPrefetchC[DC__NUM_DPP__MAX]; 414 double DSTXAfterScaler[DC__NUM_DPP__MAX]; 415 double DSTYAfterScaler[DC__NUM_DPP__MAX]; 416 417 double DestinationLinesToRequestVMInVBlank[DC__NUM_DPP__MAX]; 418 double DestinationLinesToRequestRowInVBlank[DC__NUM_DPP__MAX]; 419 double DestinationLinesForPrefetch[DC__NUM_DPP__MAX]; 420 double DestinationLinesToRequestRowInImmediateFlip[DC__NUM_DPP__MAX]; 421 double DestinationLinesToRequestVMInImmediateFlip[DC__NUM_DPP__MAX]; 422 423 double XFCTransferDelay[DC__NUM_DPP__MAX]; 424 double XFCPrechargeDelay[DC__NUM_DPP__MAX]; 425 double XFCRemoteSurfaceFlipLatency[DC__NUM_DPP__MAX]; 426 double XFCPrefetchMargin[DC__NUM_DPP__MAX]; 427 428 display_e2e_pipe_params_st cache_pipes[DC__NUM_DPP__MAX]; 429 unsigned int cache_num_pipes; 430 unsigned int pipe_plane[DC__NUM_DPP__MAX]; 431 432 /* vba mode support */ 433 /*inputs*/ 434 bool SupportGFX7CompatibleTilingIn32bppAnd64bpp; 435 double MaxHSCLRatio; 436 double MaxVSCLRatio; 437 unsigned int MaxNumWriteback; 438 bool WritebackLumaAndChromaScalingSupported; 439 bool Cursor64BppSupport; 440 double DCFCLKPerState[DC__VOLTAGE_STATES + 1]; 441 double FabricClockPerState[DC__VOLTAGE_STATES + 1]; 442 double SOCCLKPerState[DC__VOLTAGE_STATES + 1]; 443 double PHYCLKPerState[DC__VOLTAGE_STATES + 1]; 444 double MaxDppclk[DC__VOLTAGE_STATES + 1]; 445 double MaxDSCCLK[DC__VOLTAGE_STATES + 1]; 446 double DRAMSpeedPerState[DC__VOLTAGE_STATES + 1]; 447 double MaxDispclk[DC__VOLTAGE_STATES + 1]; 448 449 /*outputs*/ 450 bool ScaleRatioAndTapsSupport; 451 bool SourceFormatPixelAndScanSupport; 452 unsigned int SwathWidthYSingleDPP[DC__NUM_DPP__MAX]; 453 double BytePerPixelInDETY[DC__NUM_DPP__MAX]; 454 double BytePerPixelInDETC[DC__NUM_DPP__MAX]; 455 double TotalReadBandwidthConsumedGBytePerSecond; 456 double ReadBandwidth[DC__NUM_DPP__MAX]; 457 double TotalWriteBandwidthConsumedGBytePerSecond; 458 double WriteBandwidth[DC__NUM_DPP__MAX]; 459 double TotalBandwidthConsumedGBytePerSecond; 460 bool DCCEnabledInAnyPlane; 461 bool WritebackLatencySupport; 462 bool WritebackModeSupport; 463 bool Writeback10bpc420Supported; 464 bool BandwidthSupport[DC__VOLTAGE_STATES + 1]; 465 unsigned int TotalNumberOfActiveWriteback; 466 double CriticalPoint; 467 double ReturnBWToDCNPerState; 468 double FabricAndDRAMBandwidthPerState[DC__VOLTAGE_STATES + 1]; 469 double ReturnBWPerState[DC__VOLTAGE_STATES + 1]; 470 double UrgentRoundTripAndOutOfOrderLatencyPerState[DC__VOLTAGE_STATES + 1]; 471 bool ODMCombineEnablePerState[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 472 bool PTEBufferSizeNotExceededY[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 473 bool PTEBufferSizeNotExceededC[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 474 bool PrefetchSupported[DC__VOLTAGE_STATES + 1]; 475 bool VRatioInPrefetchSupported[DC__VOLTAGE_STATES + 1]; 476 bool DISPCLK_DPPCLK_Support[DC__VOLTAGE_STATES + 1]; 477 bool TotalAvailablePipesSupport[DC__VOLTAGE_STATES + 1]; 478 bool UrgentLatencySupport[DC__VOLTAGE_STATES + 1]; 479 bool ModeSupport[DC__VOLTAGE_STATES + 1]; 480 bool DIOSupport[DC__VOLTAGE_STATES + 1]; 481 bool NotEnoughDSCUnits[DC__VOLTAGE_STATES + 1]; 482 bool DSCCLKRequiredMoreThanSupported[DC__VOLTAGE_STATES + 1]; 483 bool ROBSupport[DC__VOLTAGE_STATES + 1]; 484 bool PTEBufferSizeNotExceeded[DC__VOLTAGE_STATES + 1]; 485 bool RequiresDSC[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 486 bool IsErrorResult[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 487 bool ViewportSizeSupport[DC__VOLTAGE_STATES + 1]; 488 bool prefetch_vm_bw_valid; 489 bool prefetch_row_bw_valid; 490 bool NumberOfOTGSupport; 491 bool NonsupportedDSCInputBPC; 492 bool WritebackScaleRatioAndTapsSupport; 493 bool CursorSupport; 494 bool PitchSupport; 495 496 double WritebackLineBufferLumaBufferSize; 497 double WritebackLineBufferChromaBufferSize; 498 double WritebackMinHSCLRatio; 499 double WritebackMinVSCLRatio; 500 double WritebackMaxHSCLRatio; 501 double WritebackMaxVSCLRatio; 502 double WritebackMaxHSCLTaps; 503 double WritebackMaxVSCLTaps; 504 unsigned int MaxNumDPP; 505 unsigned int MaxNumOTG; 506 double CursorBufferSize; 507 double CursorChunkSize; 508 unsigned int Mode; 509 unsigned int NoOfDPP[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 510 double OutputLinkDPLanes[DC__NUM_DPP__MAX]; 511 double SwathWidthYPerState[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 512 double SwathHeightYPerState[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 513 double SwathHeightCPerState[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 514 double UrgentLatencySupportUsPerState[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 515 double VRatioPreY[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 516 double VRatioPreC[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 517 double RequiredPrefetchPixelDataBW[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 518 double RequiredDPPCLK[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 519 double RequiredDISPCLK[DC__VOLTAGE_STATES + 1]; 520 double TotalNumberOfActiveDPP[DC__VOLTAGE_STATES + 1]; 521 double TotalNumberOfDCCActiveDPP[DC__VOLTAGE_STATES + 1]; 522 double PrefetchBW[DC__NUM_DPP__MAX]; 523 double PDEAndMetaPTEBytesPerFrame[DC__NUM_DPP__MAX]; 524 double MetaRowBytes[DC__NUM_DPP__MAX]; 525 double DPTEBytesPerRow[DC__NUM_DPP__MAX]; 526 double PrefetchLinesY[DC__NUM_DPP__MAX]; 527 double PrefetchLinesC[DC__NUM_DPP__MAX]; 528 unsigned int MaxNumSwY[DC__NUM_DPP__MAX]; 529 unsigned int MaxNumSwC[DC__NUM_DPP__MAX]; 530 double PrefillY[DC__NUM_DPP__MAX]; 531 double PrefillC[DC__NUM_DPP__MAX]; 532 double LineTimesForPrefetch[DC__NUM_DPP__MAX]; 533 double LinesForMetaPTE[DC__NUM_DPP__MAX]; 534 double LinesForMetaAndDPTERow[DC__NUM_DPP__MAX]; 535 double MinDPPCLKUsingSingleDPP[DC__NUM_DPP__MAX]; 536 double RequiresFEC[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 537 unsigned int OutputBppPerState[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 538 double DSCDelayPerState[DC__VOLTAGE_STATES + 1][DC__NUM_DPP__MAX]; 539 unsigned int Read256BlockHeightY[DC__NUM_DPP__MAX]; 540 unsigned int Read256BlockWidthY[DC__NUM_DPP__MAX]; 541 unsigned int Read256BlockHeightC[DC__NUM_DPP__MAX]; 542 unsigned int Read256BlockWidthC[DC__NUM_DPP__MAX]; 543 unsigned int ImmediateFlipBytes[DC__NUM_DPP__MAX]; 544 double MaxSwathHeightY[DC__NUM_DPP__MAX]; 545 double MaxSwathHeightC[DC__NUM_DPP__MAX]; 546 double MinSwathHeightY[DC__NUM_DPP__MAX]; 547 double MinSwathHeightC[DC__NUM_DPP__MAX]; 548 double PSCL_FACTOR[DC__NUM_DPP__MAX]; 549 double PSCL_FACTOR_CHROMA[DC__NUM_DPP__MAX]; 550 double MaximumVStartup[DC__NUM_DPP__MAX]; 551 double AlignedDCCMetaPitch[DC__NUM_DPP__MAX]; 552 double AlignedYPitch[DC__NUM_DPP__MAX]; 553 double AlignedCPitch[DC__NUM_DPP__MAX]; 554 double MaximumSwathWidth[DC__NUM_DPP__MAX]; 555 double final_flip_bw[DC__NUM_DPP__MAX]; 556 double ImmediateFlipSupportedForState[DC__VOLTAGE_STATES + 1]; 557 558 double WritebackLumaVExtra; 559 double WritebackChromaVExtra; 560 double WritebackRequiredDISPCLK; 561 double MaximumSwathWidthSupport; 562 double MaximumSwathWidthInDETBuffer; 563 double MaximumSwathWidthInLineBuffer; 564 double MaxDispclkRoundedDownToDFSGranularity; 565 double MaxDppclkRoundedDownToDFSGranularity; 566 double PlaneRequiredDISPCLKWithoutODMCombine; 567 double PlaneRequiredDISPCLK; 568 double TotalNumberOfActiveOTG; 569 double FECOverhead; 570 double EffectiveFECOverhead; 571 unsigned int Outbpp; 572 unsigned int OutbppDSC; 573 double TotalDSCUnitsRequired; 574 double bpp; 575 unsigned int slices; 576 double SwathWidthGranularityY; 577 double RoundedUpMaxSwathSizeBytesY; 578 double SwathWidthGranularityC; 579 double RoundedUpMaxSwathSizeBytesC; 580 double LinesInDETLuma; 581 double LinesInDETChroma; 582 double EffectiveDETLBLinesLuma; 583 double EffectiveDETLBLinesChroma; 584 double ProjectedDCFCLKDeepSleep; 585 double PDEAndMetaPTEBytesPerFrameY; 586 double PDEAndMetaPTEBytesPerFrameC; 587 unsigned int MetaRowBytesY; 588 unsigned int MetaRowBytesC; 589 unsigned int DPTEBytesPerRowC; 590 unsigned int DPTEBytesPerRowY; 591 double ExtraLatency; 592 double TimeCalc; 593 double TWait; 594 double MaximumReadBandwidthWithPrefetch; 595 double total_dcn_read_bw_with_flip; 596}; 597 598#endif /* _DML2_DISPLAY_MODE_VBA_H_ */