drm/amd/display: DETBufferSizeInKbyte variable type modifications
[Why] DETBufferSizeInKByte is not expected to be sub-dividable, hence unsigned int is a better suited data-type. Change it to an array as well to satisfy current requirements. [How] Change the data-type of DETBufferSizeInKByte to an unsigned int array. Modify the all the variables like DETBufferSizeY, DETBufferSizeC that are involved in DETBufferSizeInKByte calculations to unsigned int in all the display_mode_vba_xx files. Signed-off-by: Chaitanya Dhere <chaitanya.dhere@amd.com> Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> Acked-by: Stylon Wang <stylon.wang@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
eda8f7993d
commit
4469201b19
@ -2895,7 +2895,7 @@ static void dml20_DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
|
||||
RoundedUpMaxSwathSizeBytesC = 0.0;
|
||||
|
||||
if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC
|
||||
<= mode_lib->vba.DETBufferSizeInKByte * 1024.0 / 2.0) {
|
||||
<= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
|
||||
mode_lib->vba.SwathHeightY[k] = MaximumSwathHeightY;
|
||||
mode_lib->vba.SwathHeightC[k] = MaximumSwathHeightC;
|
||||
} else {
|
||||
@ -2904,17 +2904,17 @@ static void dml20_DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
|
||||
}
|
||||
|
||||
if (mode_lib->vba.SwathHeightC[k] == 0) {
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte * 1024;
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0] * 1024;
|
||||
mode_lib->vba.DETBufferSizeC[k] = 0;
|
||||
} else if (mode_lib->vba.SwathHeightY[k] <= mode_lib->vba.SwathHeightC[k]) {
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 / 2;
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 / 2;
|
||||
} else {
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 * 2 / 3;
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 / 3;
|
||||
}
|
||||
}
|
||||
@ -3819,7 +3819,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
mode_lib->vba.MaximumSwathWidthInDETBuffer =
|
||||
dml_min(
|
||||
mode_lib->vba.MaximumSwathWidthSupport,
|
||||
mode_lib->vba.DETBufferSizeInKByte * 1024.0 / 2.0
|
||||
mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0
|
||||
/ (locals->BytePerPixelInDETY[k]
|
||||
* locals->MinSwathHeightY[k]
|
||||
+ locals->BytePerPixelInDETC[k]
|
||||
@ -4322,7 +4322,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
locals->RoundedUpMaxSwathSizeBytesC = 0;
|
||||
}
|
||||
|
||||
if (locals->RoundedUpMaxSwathSizeBytesY + locals->RoundedUpMaxSwathSizeBytesC <= locals->DETBufferSizeInKByte * 1024 / 2) {
|
||||
if (locals->RoundedUpMaxSwathSizeBytesY + locals->RoundedUpMaxSwathSizeBytesC <= locals->DETBufferSizeInKByte[0] * 1024 / 2) {
|
||||
locals->SwathHeightYPerState[i][j][k] = locals->MaxSwathHeightY[k];
|
||||
locals->SwathHeightCPerState[i][j][k] = locals->MaxSwathHeightC[k];
|
||||
} else {
|
||||
@ -4331,15 +4331,15 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
}
|
||||
|
||||
if (locals->BytePerPixelInDETC[k] == 0) {
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte * 1024 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte[0] * 1024 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = 0;
|
||||
} else if (locals->SwathHeightYPerState[i][j][k] <= locals->SwathHeightCPerState[i][j][k]) {
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte * 1024 / 2 / locals->BytePerPixelInDETY[k] /
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte[0] * 1024 / 2 / locals->BytePerPixelInDETY[k] /
|
||||
locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte * 1024 / 2 / locals->BytePerPixelInDETC[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte[0] * 1024 / 2 / locals->BytePerPixelInDETC[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
} else {
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte * 1024 * 2 / 3 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte * 1024 / 3 / locals->BytePerPixelInDETY[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte[0] * 1024 * 2 / 3 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte[0] * 1024 / 3 / locals->BytePerPixelInDETY[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
}
|
||||
|
||||
locals->EffectiveLBLatencyHidingSourceLinesLuma = dml_min(locals->MaxLineBufferLines,
|
||||
|
@ -2968,7 +2968,7 @@ static void dml20v2_DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
|
||||
RoundedUpMaxSwathSizeBytesC = 0.0;
|
||||
|
||||
if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC
|
||||
<= mode_lib->vba.DETBufferSizeInKByte * 1024.0 / 2.0) {
|
||||
<= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
|
||||
mode_lib->vba.SwathHeightY[k] = MaximumSwathHeightY;
|
||||
mode_lib->vba.SwathHeightC[k] = MaximumSwathHeightC;
|
||||
} else {
|
||||
@ -2977,17 +2977,17 @@ static void dml20v2_DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
|
||||
}
|
||||
|
||||
if (mode_lib->vba.SwathHeightC[k] == 0) {
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte * 1024;
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0] * 1024;
|
||||
mode_lib->vba.DETBufferSizeC[k] = 0;
|
||||
} else if (mode_lib->vba.SwathHeightY[k] <= mode_lib->vba.SwathHeightC[k]) {
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 / 2;
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 / 2;
|
||||
} else {
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeY[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 * 2 / 3;
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte
|
||||
mode_lib->vba.DETBufferSizeC[k] = mode_lib->vba.DETBufferSizeInKByte[0]
|
||||
* 1024.0 / 3;
|
||||
}
|
||||
}
|
||||
@ -3926,7 +3926,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
|
||||
mode_lib->vba.MaximumSwathWidthInDETBuffer =
|
||||
dml_min(
|
||||
mode_lib->vba.MaximumSwathWidthSupport,
|
||||
mode_lib->vba.DETBufferSizeInKByte * 1024.0 / 2.0
|
||||
mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0
|
||||
/ (locals->BytePerPixelInDETY[k]
|
||||
* locals->MinSwathHeightY[k]
|
||||
+ locals->BytePerPixelInDETC[k]
|
||||
@ -4443,7 +4443,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
|
||||
locals->RoundedUpMaxSwathSizeBytesC = 0;
|
||||
}
|
||||
|
||||
if (locals->RoundedUpMaxSwathSizeBytesY + locals->RoundedUpMaxSwathSizeBytesC <= locals->DETBufferSizeInKByte * 1024 / 2) {
|
||||
if (locals->RoundedUpMaxSwathSizeBytesY + locals->RoundedUpMaxSwathSizeBytesC <= locals->DETBufferSizeInKByte[0] * 1024 / 2) {
|
||||
locals->SwathHeightYPerState[i][j][k] = locals->MaxSwathHeightY[k];
|
||||
locals->SwathHeightCPerState[i][j][k] = locals->MaxSwathHeightC[k];
|
||||
} else {
|
||||
@ -4452,15 +4452,15 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode
|
||||
}
|
||||
|
||||
if (locals->BytePerPixelInDETC[k] == 0) {
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte * 1024 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte[0] * 1024 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = 0;
|
||||
} else if (locals->SwathHeightYPerState[i][j][k] <= locals->SwathHeightCPerState[i][j][k]) {
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte * 1024 / 2 / locals->BytePerPixelInDETY[k] /
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte[0] * 1024 / 2 / locals->BytePerPixelInDETY[k] /
|
||||
locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte * 1024 / 2 / locals->BytePerPixelInDETC[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte[0] * 1024 / 2 / locals->BytePerPixelInDETC[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
} else {
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte * 1024 * 2 / 3 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte * 1024 / 3 / locals->BytePerPixelInDETY[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
locals->LinesInDETLuma = locals->DETBufferSizeInKByte[0] * 1024 * 2 / 3 / locals->BytePerPixelInDETY[k] / locals->SwathWidthYPerState[i][j][k];
|
||||
locals->LinesInDETChroma = locals->DETBufferSizeInKByte[0] * 1024 / 3 / locals->BytePerPixelInDETY[k] / (locals->SwathWidthYPerState[i][j][k] / 2);
|
||||
}
|
||||
|
||||
locals->EffectiveLBLatencyHidingSourceLinesLuma = dml_min(locals->MaxLineBufferLines,
|
||||
|
@ -148,7 +148,7 @@ static double CalculateDCCConfiguration(
|
||||
bool DCCProgrammingAssumesScanDirectionUnknown,
|
||||
unsigned int ViewportWidth,
|
||||
unsigned int ViewportHeight,
|
||||
double DETBufferSize,
|
||||
unsigned int DETBufferSize,
|
||||
unsigned int RequestHeight256Byte,
|
||||
unsigned int SwathHeight,
|
||||
enum dm_swizzle_mode TilingFormat,
|
||||
@ -289,7 +289,7 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
unsigned int MaxLineBufferLines,
|
||||
unsigned int LineBufferSize,
|
||||
unsigned int DPPOutputBufferPixels,
|
||||
double DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
unsigned int WritebackInterfaceLumaBufferSize,
|
||||
unsigned int WritebackInterfaceChromaBufferSize,
|
||||
double DCFCLK,
|
||||
@ -354,11 +354,11 @@ static void CalculateDCFCLKDeepSleep(
|
||||
double DPPCLK[],
|
||||
double *DCFCLKDeepSleep);
|
||||
static void CalculateDETBufferSize(
|
||||
double DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
unsigned int SwathHeightY,
|
||||
unsigned int SwathHeightC,
|
||||
double *DETBufferSizeY,
|
||||
double *DETBufferSizeC);
|
||||
unsigned int *DETBufferSizeY,
|
||||
unsigned int *DETBufferSizeC);
|
||||
static void CalculateUrgentBurstFactor(
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
unsigned int SwathHeightY,
|
||||
@ -1074,7 +1074,7 @@ static double CalculateDCCConfiguration(
|
||||
bool DCCProgrammingAssumesScanDirectionUnknown,
|
||||
unsigned int ViewportWidth,
|
||||
unsigned int ViewportHeight,
|
||||
double DETBufferSize,
|
||||
unsigned int DETBufferSize,
|
||||
unsigned int RequestHeight256Byte,
|
||||
unsigned int SwathHeight,
|
||||
enum dm_swizzle_mode TilingFormat,
|
||||
@ -2246,7 +2246,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
}
|
||||
|
||||
CalculateUrgentBurstFactor(
|
||||
mode_lib->vba.DETBufferSizeInKByte,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0],
|
||||
mode_lib->vba.SwathHeightY[k],
|
||||
mode_lib->vba.SwathHeightC[k],
|
||||
locals->SwathWidthY[k],
|
||||
@ -2415,7 +2415,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
mode_lib->vba.MaxLineBufferLines,
|
||||
mode_lib->vba.LineBufferSize,
|
||||
mode_lib->vba.DPPOutputBufferPixels,
|
||||
mode_lib->vba.DETBufferSizeInKByte,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0],
|
||||
mode_lib->vba.WritebackInterfaceLumaBufferSize,
|
||||
mode_lib->vba.WritebackInterfaceChromaBufferSize,
|
||||
mode_lib->vba.DCFCLK,
|
||||
@ -2588,7 +2588,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
false, // We should always know the direction DCCProgrammingAssumesScanDirectionUnknown,
|
||||
mode_lib->vba.ViewportWidth[k],
|
||||
mode_lib->vba.ViewportHeight[k],
|
||||
mode_lib->vba.DETBufferSizeInKByte * 1024,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0] * 1024,
|
||||
locals->BlockHeight256BytesY[k],
|
||||
mode_lib->vba.SwathHeightY[k],
|
||||
mode_lib->vba.SurfaceTiling[k],
|
||||
@ -2689,13 +2689,13 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
// Stutter Efficiency
|
||||
for (k = 0; k < mode_lib->vba.NumberOfActivePlanes; ++k) {
|
||||
CalculateDETBufferSize(
|
||||
mode_lib->vba.DETBufferSizeInKByte,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0],
|
||||
mode_lib->vba.SwathHeightY[k],
|
||||
mode_lib->vba.SwathHeightC[k],
|
||||
&locals->DETBufferSizeY[k],
|
||||
&locals->DETBufferSizeC[k]);
|
||||
|
||||
locals->LinesInDETY[k] = locals->DETBufferSizeY[k]
|
||||
locals->LinesInDETY[k] = (double)locals->DETBufferSizeY[k]
|
||||
/ locals->BytePerPixelDETY[k] / locals->SwathWidthY[k];
|
||||
locals->LinesInDETYRoundedDownToSwath[k] = dml_floor(
|
||||
locals->LinesInDETY[k],
|
||||
@ -2984,7 +2984,7 @@ static void DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
|
||||
RoundedUpMaxSwathSizeBytesC = 0.0;
|
||||
|
||||
if (RoundedUpMaxSwathSizeBytesY + RoundedUpMaxSwathSizeBytesC
|
||||
<= mode_lib->vba.DETBufferSizeInKByte * 1024.0 / 2.0) {
|
||||
<= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
|
||||
mode_lib->vba.SwathHeightY[k] = MaximumSwathHeightY;
|
||||
mode_lib->vba.SwathHeightC[k] = MaximumSwathHeightC;
|
||||
} else {
|
||||
@ -2993,7 +2993,7 @@ static void DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
|
||||
}
|
||||
|
||||
CalculateDETBufferSize(
|
||||
mode_lib->vba.DETBufferSizeInKByte,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0],
|
||||
mode_lib->vba.SwathHeightY[k],
|
||||
mode_lib->vba.SwathHeightC[k],
|
||||
&mode_lib->vba.DETBufferSizeY[k],
|
||||
@ -3888,7 +3888,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
mode_lib->vba.MaximumSwathWidthInDETBuffer =
|
||||
dml_min(
|
||||
mode_lib->vba.MaximumSwathWidthSupport,
|
||||
mode_lib->vba.DETBufferSizeInKByte * 1024.0 / 2.0
|
||||
mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0
|
||||
/ (locals->BytePerPixelInDETY[k]
|
||||
* locals->MinSwathHeightY[k]
|
||||
+ locals->BytePerPixelInDETC[k]
|
||||
@ -4437,7 +4437,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
mode_lib->vba.RoundedUpMaxSwathSizeBytesC = 0.0;
|
||||
}
|
||||
if (mode_lib->vba.RoundedUpMaxSwathSizeBytesY + mode_lib->vba.RoundedUpMaxSwathSizeBytesC
|
||||
<= mode_lib->vba.DETBufferSizeInKByte * 1024.0 / 2.0) {
|
||||
<= mode_lib->vba.DETBufferSizeInKByte[0] * 1024.0 / 2.0) {
|
||||
locals->SwathHeightYThisState[k] = locals->MaxSwathHeightY[k];
|
||||
locals->SwathHeightCThisState[k] = locals->MaxSwathHeightC[k];
|
||||
} else {
|
||||
@ -4801,7 +4801,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
}
|
||||
|
||||
CalculateUrgentBurstFactor(
|
||||
mode_lib->vba.DETBufferSizeInKByte,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0],
|
||||
locals->SwathHeightYThisState[k],
|
||||
locals->SwathHeightCThisState[k],
|
||||
locals->SwathWidthYThisState[k],
|
||||
@ -4975,7 +4975,7 @@ void dml21_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
mode_lib->vba.MaxLineBufferLines,
|
||||
mode_lib->vba.LineBufferSize,
|
||||
mode_lib->vba.DPPOutputBufferPixels,
|
||||
mode_lib->vba.DETBufferSizeInKByte,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0],
|
||||
mode_lib->vba.WritebackInterfaceLumaBufferSize,
|
||||
mode_lib->vba.WritebackInterfaceChromaBufferSize,
|
||||
mode_lib->vba.DCFCLKPerState[i],
|
||||
@ -5230,7 +5230,7 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
unsigned int MaxLineBufferLines,
|
||||
unsigned int LineBufferSize,
|
||||
unsigned int DPPOutputBufferPixels,
|
||||
double DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
unsigned int WritebackInterfaceLumaBufferSize,
|
||||
unsigned int WritebackInterfaceChromaBufferSize,
|
||||
double DCFCLK,
|
||||
@ -5285,8 +5285,8 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
double EffectiveLBLatencyHidingC;
|
||||
double DPPOutputBufferLinesY;
|
||||
double DPPOutputBufferLinesC;
|
||||
double DETBufferSizeY;
|
||||
double DETBufferSizeC;
|
||||
unsigned int DETBufferSizeY;
|
||||
unsigned int DETBufferSizeC;
|
||||
double LinesInDETY[DC__NUM_DPP__MAX];
|
||||
double LinesInDETC;
|
||||
unsigned int LinesInDETYRoundedDownToSwath[DC__NUM_DPP__MAX];
|
||||
@ -5382,12 +5382,12 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
&DETBufferSizeY,
|
||||
&DETBufferSizeC);
|
||||
|
||||
LinesInDETY[k] = DETBufferSizeY / BytePerPixelDETY[k] / SwathWidthY[k];
|
||||
LinesInDETY[k] = (double)DETBufferSizeY / BytePerPixelDETY[k] / SwathWidthY[k];
|
||||
LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]);
|
||||
FullDETBufferingTimeY[k] = LinesInDETYRoundedDownToSwath[k]
|
||||
* (HTotal[k] / PixelClock[k]) / VRatio[k];
|
||||
if (BytePerPixelDETC[k] > 0) {
|
||||
LinesInDETC = DETBufferSizeC / BytePerPixelDETC[k] / (SwathWidthY[k] / 2.0);
|
||||
LinesInDETC = (double)DETBufferSizeC / BytePerPixelDETC[k] / (SwathWidthY[k] / 2.0);
|
||||
LinesInDETCRoundedDownToSwath = dml_floor(LinesInDETC, SwathHeightC[k]);
|
||||
FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath
|
||||
* (HTotal[k] / PixelClock[k]) / (VRatio[k] / 2);
|
||||
@ -5574,11 +5574,11 @@ static void CalculateDCFCLKDeepSleep(
|
||||
}
|
||||
|
||||
static void CalculateDETBufferSize(
|
||||
double DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
unsigned int SwathHeightY,
|
||||
unsigned int SwathHeightC,
|
||||
double *DETBufferSizeY,
|
||||
double *DETBufferSizeC)
|
||||
unsigned int *DETBufferSizeY,
|
||||
unsigned int *DETBufferSizeC)
|
||||
{
|
||||
if (SwathHeightC == 0) {
|
||||
*DETBufferSizeY = DETBufferSizeInKByte * 1024;
|
||||
@ -5625,8 +5625,8 @@ static void CalculateUrgentBurstFactor(
|
||||
double DETBufferSizeInTimeLumaPre;
|
||||
double DETBufferSizeInTimeChroma;
|
||||
double DETBufferSizeInTimeChromaPre;
|
||||
double DETBufferSizeY;
|
||||
double DETBufferSizeC;
|
||||
unsigned int DETBufferSizeY;
|
||||
unsigned int DETBufferSizeC;
|
||||
|
||||
*NotEnoughUrgentLatencyHiding = 0;
|
||||
*NotEnoughUrgentLatencyHidingPre = 0;
|
||||
@ -5663,7 +5663,7 @@ static void CalculateUrgentBurstFactor(
|
||||
&DETBufferSizeY,
|
||||
&DETBufferSizeC);
|
||||
|
||||
LinesInDETLuma = DETBufferSizeY / BytePerPixelInDETY / SwathWidthY;
|
||||
LinesInDETLuma = (double)DETBufferSizeY / BytePerPixelInDETY / SwathWidthY;
|
||||
DETBufferSizeInTimeLuma = dml_floor(LinesInDETLuma, SwathHeightY) * LineTime / VRatio;
|
||||
if (DETBufferSizeInTimeLuma - UrgentLatency <= 0) {
|
||||
*NotEnoughUrgentLatencyHiding = 1;
|
||||
@ -5687,7 +5687,7 @@ static void CalculateUrgentBurstFactor(
|
||||
}
|
||||
|
||||
if (BytePerPixelInDETC > 0) {
|
||||
LinesInDETChroma = DETBufferSizeC / BytePerPixelInDETC / (SwathWidthY / 2);
|
||||
LinesInDETChroma = (double)DETBufferSizeC / BytePerPixelInDETC / (SwathWidthY / 2);
|
||||
DETBufferSizeInTimeChroma = dml_floor(LinesInDETChroma, SwathHeightC) * LineTime
|
||||
/ (VRatio / 2);
|
||||
if (DETBufferSizeInTimeChroma - UrgentLatency <= 0) {
|
||||
|
@ -299,7 +299,7 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
unsigned int MaxLineBufferLines,
|
||||
unsigned int LineBufferSize,
|
||||
unsigned int DPPOutputBufferPixels,
|
||||
double DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
unsigned int WritebackInterfaceBufferSize,
|
||||
double DCFCLK,
|
||||
double ReturnBW,
|
||||
@ -318,8 +318,8 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
unsigned int DPPPerPlane[],
|
||||
bool DCCEnable[],
|
||||
double DPPCLK[],
|
||||
double DETBufferSizeY[],
|
||||
double DETBufferSizeC[],
|
||||
unsigned int DETBufferSizeY[],
|
||||
unsigned int DETBufferSizeC[],
|
||||
unsigned int SwathHeightY[],
|
||||
unsigned int SwathHeightC[],
|
||||
unsigned int LBBitPerPixel[],
|
||||
@ -570,7 +570,7 @@ static void CalculateStutterEfficiency(
|
||||
double SRExitTime,
|
||||
bool SynchronizedVBlank,
|
||||
int DPPPerPlane[],
|
||||
double DETBufferSizeY[],
|
||||
unsigned int DETBufferSizeY[],
|
||||
int BytePerPixelY[],
|
||||
double BytePerPixelDETY[],
|
||||
double SwathWidthY[],
|
||||
@ -603,7 +603,7 @@ static void CalculateStutterEfficiency(
|
||||
static void CalculateSwathAndDETConfiguration(
|
||||
bool ForceSingleDPP,
|
||||
int NumberOfActivePlanes,
|
||||
long DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
double MaximumSwathWidthLuma[],
|
||||
double MaximumSwathWidthChroma[],
|
||||
enum scan_direction_class SourceScan[],
|
||||
@ -635,8 +635,8 @@ static void CalculateSwathAndDETConfiguration(
|
||||
double SwathWidthChroma[],
|
||||
int SwathHeightY[],
|
||||
int SwathHeightC[],
|
||||
double DETBufferSizeY[],
|
||||
double DETBufferSizeC[],
|
||||
unsigned int DETBufferSizeY[],
|
||||
unsigned int DETBufferSizeC[],
|
||||
bool ViewportSizeSupportPerPlane[],
|
||||
bool *ViewportSizeSupport);
|
||||
static void CalculateSwathWidth(
|
||||
@ -2613,7 +2613,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
CalculateUrgentBurstFactor(
|
||||
v->swath_width_luma_ub[k],
|
||||
v->swath_width_chroma_ub[k],
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->SwathHeightY[k],
|
||||
v->SwathHeightC[k],
|
||||
v->HTotal[k] / v->PixelClock[k],
|
||||
@ -2635,7 +2635,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
CalculateUrgentBurstFactor(
|
||||
v->swath_width_luma_ub[k],
|
||||
v->swath_width_chroma_ub[k],
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->SwathHeightY[k],
|
||||
v->SwathHeightC[k],
|
||||
v->HTotal[k] / v->PixelClock[k],
|
||||
@ -2808,7 +2808,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
v->MaxLineBufferLines,
|
||||
v->LineBufferSize,
|
||||
v->DPPOutputBufferPixels,
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->WritebackInterfaceBufferSize,
|
||||
v->DCFCLK,
|
||||
v->ReturnBW,
|
||||
@ -3027,7 +3027,7 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
|
||||
v->SurfaceWidthC[k],
|
||||
v->SurfaceHeightY[k],
|
||||
v->SurfaceHeightC[k],
|
||||
v->DETBufferSizeInKByte * 1024,
|
||||
v->DETBufferSizeInKByte[0] * 1024,
|
||||
v->BlockHeight256BytesY[k],
|
||||
v->BlockHeight256BytesC[k],
|
||||
v->SurfaceTiling[k],
|
||||
@ -3177,7 +3177,7 @@ static void DisplayPipeConfiguration(struct display_mode_lib *mode_lib)
|
||||
CalculateSwathAndDETConfiguration(
|
||||
false,
|
||||
mode_lib->vba.NumberOfActivePlanes,
|
||||
mode_lib->vba.DETBufferSizeInKByte,
|
||||
mode_lib->vba.DETBufferSizeInKByte[0],
|
||||
dummy1,
|
||||
dummy2,
|
||||
mode_lib->vba.SourceScan,
|
||||
@ -3911,7 +3911,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
CalculateSwathAndDETConfiguration(
|
||||
true,
|
||||
v->NumberOfActivePlanes,
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->MaximumSwathWidthLuma,
|
||||
v->MaximumSwathWidthChroma,
|
||||
v->SourceScan,
|
||||
@ -4399,7 +4399,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
CalculateSwathAndDETConfiguration(
|
||||
false,
|
||||
v->NumberOfActivePlanes,
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->MaximumSwathWidthLuma,
|
||||
v->MaximumSwathWidthChroma,
|
||||
v->SourceScan,
|
||||
@ -4622,7 +4622,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
CalculateUrgentBurstFactor(
|
||||
v->swath_width_luma_ub_this_state[k],
|
||||
v->swath_width_chroma_ub_this_state[k],
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->SwathHeightYThisState[k],
|
||||
v->SwathHeightCThisState[k],
|
||||
v->HTotal[k] / v->PixelClock[k],
|
||||
@ -5025,7 +5025,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
CalculateUrgentBurstFactor(
|
||||
v->swath_width_luma_ub_this_state[k],
|
||||
v->swath_width_chroma_ub_this_state[k],
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->SwathHeightYThisState[k],
|
||||
v->SwathHeightCThisState[k],
|
||||
v->HTotal[k] / v->PixelClock[k],
|
||||
@ -5197,7 +5197,7 @@ void dml30_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
|
||||
v->MaxLineBufferLines,
|
||||
v->LineBufferSize,
|
||||
v->DPPOutputBufferPixels,
|
||||
v->DETBufferSizeInKByte,
|
||||
v->DETBufferSizeInKByte[0],
|
||||
v->WritebackInterfaceBufferSize,
|
||||
v->DCFCLKState[i][j],
|
||||
v->ReturnBWPerState[i][j],
|
||||
@ -5369,7 +5369,7 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
unsigned int MaxLineBufferLines,
|
||||
unsigned int LineBufferSize,
|
||||
unsigned int DPPOutputBufferPixels,
|
||||
double DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
unsigned int WritebackInterfaceBufferSize,
|
||||
double DCFCLK,
|
||||
double ReturnBW,
|
||||
@ -5388,8 +5388,8 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport(
|
||||
unsigned int DPPPerPlane[],
|
||||
bool DCCEnable[],
|
||||
double DPPCLK[],
|
||||
double DETBufferSizeY[],
|
||||
double DETBufferSizeC[],
|
||||
unsigned int DETBufferSizeY[],
|
||||
unsigned int DETBufferSizeC[],
|
||||
unsigned int SwathHeightY[],
|
||||
unsigned int SwathHeightC[],
|
||||
unsigned int LBBitPerPixel[],
|
||||
@ -6126,7 +6126,7 @@ static void CalculateStutterEfficiency(
|
||||
double SRExitTime,
|
||||
bool SynchronizedVBlank,
|
||||
int DPPPerPlane[],
|
||||
double DETBufferSizeY[],
|
||||
unsigned int DETBufferSizeY[],
|
||||
int BytePerPixelY[],
|
||||
double BytePerPixelDETY[],
|
||||
double SwathWidthY[],
|
||||
@ -6273,7 +6273,7 @@ static void CalculateStutterEfficiency(
|
||||
static void CalculateSwathAndDETConfiguration(
|
||||
bool ForceSingleDPP,
|
||||
int NumberOfActivePlanes,
|
||||
long DETBufferSizeInKByte,
|
||||
unsigned int DETBufferSizeInKByte,
|
||||
double MaximumSwathWidthLuma[],
|
||||
double MaximumSwathWidthChroma[],
|
||||
enum scan_direction_class SourceScan[],
|
||||
@ -6305,8 +6305,8 @@ static void CalculateSwathAndDETConfiguration(
|
||||
double SwathWidthChroma[],
|
||||
int SwathHeightY[],
|
||||
int SwathHeightC[],
|
||||
double DETBufferSizeY[],
|
||||
double DETBufferSizeC[],
|
||||
unsigned int DETBufferSizeY[],
|
||||
unsigned int DETBufferSizeC[],
|
||||
bool ViewportSizeSupportPerPlane[],
|
||||
bool *ViewportSizeSupport)
|
||||
{
|
||||
|
@ -299,7 +299,7 @@ static void fetch_ip_params(struct display_mode_lib *mode_lib)
|
||||
mode_lib->vba.MaxDCHUBToPSCLThroughput = ip->max_dchub_pscl_bw_pix_per_clk;
|
||||
mode_lib->vba.MaxPSCLToLBThroughput = ip->max_pscl_lb_bw_pix_per_clk;
|
||||
mode_lib->vba.ROBBufferSizeInKByte = ip->rob_buffer_size_kbytes;
|
||||
mode_lib->vba.DETBufferSizeInKByte = ip->det_buffer_size_kbytes;
|
||||
mode_lib->vba.DETBufferSizeInKByte[0] = ip->det_buffer_size_kbytes;
|
||||
|
||||
mode_lib->vba.PixelChunkSizeInKByte = ip->pixel_chunk_size_kbytes;
|
||||
mode_lib->vba.MetaChunkSize = ip->meta_chunk_size_kbytes;
|
||||
|
@ -233,7 +233,7 @@ struct vba_vars_st {
|
||||
// IP Parameters
|
||||
//
|
||||
unsigned int ROBBufferSizeInKByte;
|
||||
double DETBufferSizeInKByte;
|
||||
unsigned int DETBufferSizeInKByte[DC__NUM_DPP__MAX];
|
||||
double DETBufferSizeInTime;
|
||||
unsigned int DPPOutputBufferPixels;
|
||||
unsigned int OPPOutputBufferLines;
|
||||
@ -351,8 +351,8 @@ struct vba_vars_st {
|
||||
|
||||
// Intermediates/Informational
|
||||
bool ImmediateFlipSupport;
|
||||
double DETBufferSizeY[DC__NUM_DPP__MAX];
|
||||
double DETBufferSizeC[DC__NUM_DPP__MAX];
|
||||
unsigned int DETBufferSizeY[DC__NUM_DPP__MAX];
|
||||
unsigned int DETBufferSizeC[DC__NUM_DPP__MAX];
|
||||
unsigned int SwathHeightY[DC__NUM_DPP__MAX];
|
||||
unsigned int SwathHeightC[DC__NUM_DPP__MAX];
|
||||
unsigned int LBBitPerPixel[DC__NUM_DPP__MAX];
|
||||
@ -631,8 +631,8 @@ struct vba_vars_st {
|
||||
enum odm_combine_mode odm_combine_dummy[DC__NUM_DPP__MAX];
|
||||
double dummy1[DC__NUM_DPP__MAX];
|
||||
double dummy2[DC__NUM_DPP__MAX];
|
||||
double dummy3[DC__NUM_DPP__MAX];
|
||||
double dummy4[DC__NUM_DPP__MAX];
|
||||
unsigned int dummy3[DC__NUM_DPP__MAX];
|
||||
unsigned int dummy4[DC__NUM_DPP__MAX];
|
||||
double dummy5;
|
||||
double dummy6;
|
||||
double dummy7[DC__NUM_DPP__MAX];
|
||||
@ -872,8 +872,8 @@ struct vba_vars_st {
|
||||
int PercentMarginOverMinimumRequiredDCFCLK;
|
||||
bool DynamicMetadataSupported[DC__VOLTAGE_STATES][2];
|
||||
enum immediate_flip_requirement ImmediateFlipRequirement;
|
||||
double DETBufferSizeYThisState[DC__NUM_DPP__MAX];
|
||||
double DETBufferSizeCThisState[DC__NUM_DPP__MAX];
|
||||
unsigned int DETBufferSizeYThisState[DC__NUM_DPP__MAX];
|
||||
unsigned int DETBufferSizeCThisState[DC__NUM_DPP__MAX];
|
||||
bool NoUrgentLatencyHiding[DC__NUM_DPP__MAX];
|
||||
bool NoUrgentLatencyHidingPre[DC__NUM_DPP__MAX];
|
||||
int swath_width_luma_ub_this_state[DC__NUM_DPP__MAX];
|
||||
|
Loading…
Reference in New Issue
Block a user