[PATCH] drm/amdgpu: support getting pcie_replay_count on Navi

Alex Deucher alexdeucher at gmail.com
Wed Nov 6 16:50:07 UTC 2019


On Tue, Nov 5, 2019 at 4:34 AM Quan, Evan <Evan.Quan at amd.com> wrote:
>
> Enable pcie_replay_count interface support on Navi.
>
> Change-Id: Idc770663416ecf45aab8caa19de9cc99b619d2c3
> Signed-off-by: Evan Quan <evan.quan at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/nv.c               | 14 ++++++++++
>  .../amd/include/asic_reg/nbio/nbio_2_3_smn.h  | 28 +++++++++++++++++++
>  2 files changed, 42 insertions(+)
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_2_3_smn.h
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c
> index 88e3665f7b09..c87e01a736f2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/nv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/nv.c
> @@ -39,6 +39,7 @@
>  #include "gc/gc_10_1_0_sh_mask.h"
>  #include "hdp/hdp_5_0_0_offset.h"
>  #include "hdp/hdp_5_0_0_sh_mask.h"
> +#include "nbio/nbio_2_3_smn.h"
>
>  #include "soc15.h"
>  #include "soc15_common.h"
> @@ -567,6 +568,18 @@ static void nv_init_doorbell_index(struct amdgpu_device *adev)
>         adev->doorbell_index.sdma_doorbell_range = 20;
>  }
>
> +static uint64_t nv_get_pcie_replay_count(struct amdgpu_device *adev)
> +{
> +       uint64_t nak_r, nak_g;
> +
> +       /* Get the number of NAKs received and generated */
> +       nak_r = RREG32_PCIE(smnPCIE_RX_NUM_NAK);
> +       nak_g = RREG32_PCIE(smnPCIE_RX_NUM_NAK_GENERATED);
> +
> +       /* Add the total number of NAKs, i.e the number of replays */
> +       return (nak_r + nak_g);
> +}
> +
>  static const struct amdgpu_asic_funcs nv_asic_funcs =
>  {
>         .read_disabled_bios = &nv_read_disabled_bios,
> @@ -585,6 +598,7 @@ static const struct amdgpu_asic_funcs nv_asic_funcs =
>         .need_full_reset = &nv_need_full_reset,
>         .get_pcie_usage = &nv_get_pcie_usage,
>         .need_reset_on_init = &nv_need_reset_on_init,
> +       .get_pcie_replay_count = &nv_get_pcie_replay_count,
>  };
>
>  static int nv_common_early_init(void *handle)
> diff --git a/drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_2_3_smn.h b/drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_2_3_smn.h
> new file mode 100644
> index 000000000000..a40ba98cc8bb
> --- /dev/null
> +++ b/drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_2_3_smn.h
> @@ -0,0 +1,28 @@
> +/*
> + * Copyright (C) 2019  Advanced Micro Devices, Inc.
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice shall be included
> + * in all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
> + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
> + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
> + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
> + */
> +
> +#ifndef _nbio_2_3_SMN_HEADER
> +#define _nbio_2_3_SMN_HEADER
> +
> +#define smnPCIE_RX_NUM_NAK                             0x11180038
> +#define smnPCIE_RX_NUM_NAK_GENERATED                   0x1118003c
> +
> +#endif // _nbio_2_3_SMN_HEADER
> --
> 2.23.0
>
> _______________________________________________
> 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