Merge v4.20-rc4 into drm-next
Requested by Boris Brezillon for some vc4 fixes that are needed for future vc4 work. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -4525,12 +4525,12 @@ static int smu7_get_sclk_od(struct pp_hwmgr *hwmgr)
|
||||
struct smu7_single_dpm_table *sclk_table = &(data->dpm_table.sclk_table);
|
||||
struct smu7_single_dpm_table *golden_sclk_table =
|
||||
&(data->golden_dpm_table.sclk_table);
|
||||
int value;
|
||||
int value = sclk_table->dpm_levels[sclk_table->count - 1].value;
|
||||
int golden_value = golden_sclk_table->dpm_levels
|
||||
[golden_sclk_table->count - 1].value;
|
||||
|
||||
value = (sclk_table->dpm_levels[sclk_table->count - 1].value -
|
||||
golden_sclk_table->dpm_levels[golden_sclk_table->count - 1].value) *
|
||||
100 /
|
||||
golden_sclk_table->dpm_levels[golden_sclk_table->count - 1].value;
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
@@ -4567,12 +4567,12 @@ static int smu7_get_mclk_od(struct pp_hwmgr *hwmgr)
|
||||
struct smu7_single_dpm_table *mclk_table = &(data->dpm_table.mclk_table);
|
||||
struct smu7_single_dpm_table *golden_mclk_table =
|
||||
&(data->golden_dpm_table.mclk_table);
|
||||
int value;
|
||||
int value = mclk_table->dpm_levels[mclk_table->count - 1].value;
|
||||
int golden_value = golden_mclk_table->dpm_levels
|
||||
[golden_mclk_table->count - 1].value;
|
||||
|
||||
value = (mclk_table->dpm_levels[mclk_table->count - 1].value -
|
||||
golden_mclk_table->dpm_levels[golden_mclk_table->count - 1].value) *
|
||||
100 /
|
||||
golden_mclk_table->dpm_levels[golden_mclk_table->count - 1].value;
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
@@ -4522,15 +4522,13 @@ static int vega10_get_sclk_od(struct pp_hwmgr *hwmgr)
|
||||
struct vega10_single_dpm_table *sclk_table = &(data->dpm_table.gfx_table);
|
||||
struct vega10_single_dpm_table *golden_sclk_table =
|
||||
&(data->golden_dpm_table.gfx_table);
|
||||
int value;
|
||||
|
||||
value = (sclk_table->dpm_levels[sclk_table->count - 1].value -
|
||||
golden_sclk_table->dpm_levels
|
||||
[golden_sclk_table->count - 1].value) *
|
||||
100 /
|
||||
golden_sclk_table->dpm_levels
|
||||
int value = sclk_table->dpm_levels[sclk_table->count - 1].value;
|
||||
int golden_value = golden_sclk_table->dpm_levels
|
||||
[golden_sclk_table->count - 1].value;
|
||||
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -4575,16 +4573,13 @@ static int vega10_get_mclk_od(struct pp_hwmgr *hwmgr)
|
||||
struct vega10_single_dpm_table *mclk_table = &(data->dpm_table.mem_table);
|
||||
struct vega10_single_dpm_table *golden_mclk_table =
|
||||
&(data->golden_dpm_table.mem_table);
|
||||
int value;
|
||||
|
||||
value = (mclk_table->dpm_levels
|
||||
[mclk_table->count - 1].value -
|
||||
golden_mclk_table->dpm_levels
|
||||
[golden_mclk_table->count - 1].value) *
|
||||
100 /
|
||||
golden_mclk_table->dpm_levels
|
||||
int value = mclk_table->dpm_levels[mclk_table->count - 1].value;
|
||||
int golden_value = golden_mclk_table->dpm_levels
|
||||
[golden_mclk_table->count - 1].value;
|
||||
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@@ -2243,12 +2243,12 @@ static int vega12_get_sclk_od(struct pp_hwmgr *hwmgr)
|
||||
struct vega12_single_dpm_table *sclk_table = &(data->dpm_table.gfx_table);
|
||||
struct vega12_single_dpm_table *golden_sclk_table =
|
||||
&(data->golden_dpm_table.gfx_table);
|
||||
int value;
|
||||
int value = sclk_table->dpm_levels[sclk_table->count - 1].value;
|
||||
int golden_value = golden_sclk_table->dpm_levels
|
||||
[golden_sclk_table->count - 1].value;
|
||||
|
||||
value = (sclk_table->dpm_levels[sclk_table->count - 1].value -
|
||||
golden_sclk_table->dpm_levels[golden_sclk_table->count - 1].value) *
|
||||
100 /
|
||||
golden_sclk_table->dpm_levels[golden_sclk_table->count - 1].value;
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
@@ -2264,16 +2264,13 @@ static int vega12_get_mclk_od(struct pp_hwmgr *hwmgr)
|
||||
struct vega12_single_dpm_table *mclk_table = &(data->dpm_table.mem_table);
|
||||
struct vega12_single_dpm_table *golden_mclk_table =
|
||||
&(data->golden_dpm_table.mem_table);
|
||||
int value;
|
||||
|
||||
value = (mclk_table->dpm_levels
|
||||
[mclk_table->count - 1].value -
|
||||
golden_mclk_table->dpm_levels
|
||||
[golden_mclk_table->count - 1].value) *
|
||||
100 /
|
||||
golden_mclk_table->dpm_levels
|
||||
int value = mclk_table->dpm_levels[mclk_table->count - 1].value;
|
||||
int golden_value = golden_mclk_table->dpm_levels
|
||||
[golden_mclk_table->count - 1].value;
|
||||
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@@ -75,7 +75,17 @@ static void vega20_set_default_registry_data(struct pp_hwmgr *hwmgr)
|
||||
data->phy_clk_quad_eqn_b = PPREGKEY_VEGA20QUADRATICEQUATION_DFLT;
|
||||
data->phy_clk_quad_eqn_c = PPREGKEY_VEGA20QUADRATICEQUATION_DFLT;
|
||||
|
||||
data->registry_data.disallowed_features = 0x0;
|
||||
/*
|
||||
* Disable the following features for now:
|
||||
* GFXCLK DS
|
||||
* SOCLK DS
|
||||
* LCLK DS
|
||||
* DCEFCLK DS
|
||||
* FCLK DS
|
||||
* MP1CLK DS
|
||||
* MP0CLK DS
|
||||
*/
|
||||
data->registry_data.disallowed_features = 0xE0041C00;
|
||||
data->registry_data.od_state_in_dc_support = 0;
|
||||
data->registry_data.thermal_support = 1;
|
||||
data->registry_data.skip_baco_hardware = 0;
|
||||
@@ -1313,12 +1323,13 @@ static int vega20_get_sclk_od(
|
||||
&(data->dpm_table.gfx_table);
|
||||
struct vega20_single_dpm_table *golden_sclk_table =
|
||||
&(data->golden_dpm_table.gfx_table);
|
||||
int value;
|
||||
int value = sclk_table->dpm_levels[sclk_table->count - 1].value;
|
||||
int golden_value = golden_sclk_table->dpm_levels
|
||||
[golden_sclk_table->count - 1].value;
|
||||
|
||||
/* od percentage */
|
||||
value = DIV_ROUND_UP((sclk_table->dpm_levels[sclk_table->count - 1].value -
|
||||
golden_sclk_table->dpm_levels[golden_sclk_table->count - 1].value) * 100,
|
||||
golden_sclk_table->dpm_levels[golden_sclk_table->count - 1].value);
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
@@ -1358,12 +1369,13 @@ static int vega20_get_mclk_od(
|
||||
&(data->dpm_table.mem_table);
|
||||
struct vega20_single_dpm_table *golden_mclk_table =
|
||||
&(data->golden_dpm_table.mem_table);
|
||||
int value;
|
||||
int value = mclk_table->dpm_levels[mclk_table->count - 1].value;
|
||||
int golden_value = golden_mclk_table->dpm_levels
|
||||
[golden_mclk_table->count - 1].value;
|
||||
|
||||
/* od percentage */
|
||||
value = DIV_ROUND_UP((mclk_table->dpm_levels[mclk_table->count - 1].value -
|
||||
golden_mclk_table->dpm_levels[golden_mclk_table->count - 1].value) * 100,
|
||||
golden_mclk_table->dpm_levels[golden_mclk_table->count - 1].value);
|
||||
value -= golden_value;
|
||||
value = DIV_ROUND_UP(value * 100, golden_value);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
Referens i nytt ärende
Block a user