[PATCH 3/5] drm/amd/pp: Memory Latency is always 25us on Vega10

Alex Deucher alexdeucher at gmail.com
Mon Jun 18 19:49:13 UTC 2018


On Mon, Jun 18, 2018 at 7:18 AM, Rex Zhu <Rex.Zhu at amd.com> wrote:
> Also use the tolerable latency defined in Display
> to find lowest MCLK frequency when disable mclk switch

This should probably be two patches?  One to fix the memory latency,
and one to switch the tolerable latency for display.  With that fixed:
Acked-by: Alex Deucher <alexander.deucher at amd.com>

>
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
> ---
>  drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 24 ++--------------------
>  1 file changed, 2 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index 6057b59..198c7ed 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -55,12 +55,6 @@
>
>  static const uint32_t channel_number[] = {1, 2, 0, 4, 0, 8, 0, 16, 2};
>
> -#define MEM_FREQ_LOW_LATENCY        25000
> -#define MEM_FREQ_HIGH_LATENCY       80000
> -#define MEM_LATENCY_HIGH            245
> -#define MEM_LATENCY_LOW             35
> -#define MEM_LATENCY_ERR             0xFFFF
> -
>  #define mmDF_CS_AON0_DramBaseAddress0                                                                  0x0044
>  #define mmDF_CS_AON0_DramBaseAddress0_BASE_IDX                                                         0
>
> @@ -3223,7 +3217,7 @@ static int vega10_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
>                 /* Find the lowest MCLK frequency that is within
>                  * the tolerable latency defined in DAL
>                  */
> -               latency = 0;
> +               latency = hwmgr->display_config->dce_tolerable_mclk_in_active_latency;
>                 for (i = 0; i < data->mclk_latency_table.count; i++) {
>                         if ((data->mclk_latency_table.entries[i].latency <= latency) &&
>                                 (data->mclk_latency_table.entries[i].frequency >=
> @@ -4074,18 +4068,6 @@ static void vega10_get_sclks(struct pp_hwmgr *hwmgr,
>
>  }
>
> -static uint32_t vega10_get_mem_latency(struct pp_hwmgr *hwmgr,
> -               uint32_t clock)
> -{
> -       if (clock >= MEM_FREQ_LOW_LATENCY &&
> -                       clock < MEM_FREQ_HIGH_LATENCY)
> -               return MEM_LATENCY_HIGH;
> -       else if (clock >= MEM_FREQ_HIGH_LATENCY)
> -               return MEM_LATENCY_LOW;
> -       else
> -               return MEM_LATENCY_ERR;
> -}
> -
>  static void vega10_get_memclocks(struct pp_hwmgr *hwmgr,
>                 struct pp_clock_levels_with_latency *clocks)
>  {
> @@ -4107,9 +4089,7 @@ static void vega10_get_memclocks(struct pp_hwmgr *hwmgr,
>                                         dep_table->entries[i].clk * 10;
>                         clocks->data[clocks->num_levels].latency_in_us =
>                         data->mclk_latency_table.entries
> -                       [data->mclk_latency_table.count].latency =
> -                                       vega10_get_mem_latency(hwmgr,
> -                                               dep_table->entries[i].clk);
> +                       [data->mclk_latency_table.count].latency = 25;
>                         clocks->num_levels++;
>                         data->mclk_latency_table.count++;
>                 }
> --
> 1.9.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list