[PATCH 10/29] drm/amdgpu: move per inst variables to amdgpu_vcn_inst

Alex Deucher alexdeucher at gmail.com
Mon Oct 28 19:19:58 UTC 2024


On Fri, Oct 25, 2024 at 12:53 AM <boyuan.zhang at amd.com> wrote:
>
> From: Boyuan Zhang <boyuan.zhang at amd.com>
>
> Move all per instance variables from amdgpu_vcn to amdgpu_vcn_inst.
>
> Move adev->vcn.fw[i] from amdgpu_vcn to amdgpu_vcn_inst.
> Move adev->vcn.vcn_config[i] from amdgpu_vcn to amdgpu_vcn_inst.
> Move adev->vcn.vcn_codec_disable_mask[i] from amdgpu_vcn to amdgpu_vcn_inst.
>
> Signed-off-by: Boyuan Zhang <boyuan.zhang at amd.com>
> Reviewed-by: Christian König <christian.koenig at amd.com>

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

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |  4 ++--
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c       | 20 +++++++++----------
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h       |  6 +++---
>  drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c         |  4 ++--
>  drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c         |  6 +++---
>  drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c         |  6 +++---
>  drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c         |  6 +++---
>  drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c         |  6 +++---
>  drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c       |  6 +++---
>  drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c       |  4 ++--
>  drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c       |  4 ++--
>  11 files changed, 36 insertions(+), 36 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> index 73f4d56c5de4..cce3f1a6f288 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> @@ -1340,7 +1340,7 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev)
>                                  */
>                                 if (adev->vcn.num_vcn_inst <
>                                     AMDGPU_MAX_VCN_INSTANCES) {
> -                                       adev->vcn.vcn_config[adev->vcn.num_vcn_inst] =
> +                                       adev->vcn.inst[adev->vcn.num_vcn_inst].vcn_config =
>                                                 ip->revision & 0xc0;
>                                         adev->vcn.num_vcn_inst++;
>                                         adev->vcn.inst_mask |=
> @@ -1705,7 +1705,7 @@ static int amdgpu_discovery_get_vcn_info(struct amdgpu_device *adev)
>                  * so this won't overflow.
>                  */
>                 for (v = 0; v < adev->vcn.num_vcn_inst; v++) {
> -                       adev->vcn.vcn_codec_disable_mask[v] =
> +                       adev->vcn.inst[v].vcn_codec_disable_mask =
>                                 le32_to_cpu(vcn_info->v1.instance_info[v].fuse_data.all_bits);
>                 }
>                 break;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> index aecb78e0519f..49802e66a358 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> @@ -99,11 +99,11 @@ int amdgpu_vcn_early_init(struct amdgpu_device *adev)
>         amdgpu_ucode_ip_version_decode(adev, UVD_HWIP, ucode_prefix, sizeof(ucode_prefix));
>         for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
>                 if (i == 1 && amdgpu_ip_version(adev, UVD_HWIP, 0) ==  IP_VERSION(4, 0, 6))
> -                       r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], "amdgpu/%s_%d.bin", ucode_prefix, i);
> +                       r = amdgpu_ucode_request(adev, &adev->vcn.inst[i].fw, "amdgpu/%s_%d.bin", ucode_prefix, i);
>                 else
> -                       r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], "amdgpu/%s.bin", ucode_prefix);
> +                       r = amdgpu_ucode_request(adev, &adev->vcn.inst[i].fw, "amdgpu/%s.bin", ucode_prefix);
>                 if (r) {
> -                       amdgpu_ucode_release(&adev->vcn.fw[i]);
> +                       amdgpu_ucode_release(&adev->vcn.inst[i].fw);
>                         return r;
>                 }
>         }
> @@ -151,7 +151,7 @@ int amdgpu_vcn_sw_init(struct amdgpu_device *adev)
>         adev->vcn.using_unified_queue =
>                 amdgpu_ip_version(adev, UVD_HWIP, 0) >= IP_VERSION(4, 0, 0);
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[0]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[0].fw->data;
>         adev->vcn.fw_version = le32_to_cpu(hdr->ucode_version);
>
>         /* Bit 20-23, it is encode major and non-zero for new naming convention.
> @@ -270,7 +270,7 @@ int amdgpu_vcn_sw_fini(struct amdgpu_device *adev)
>                 for (i = 0; i < adev->vcn.num_enc_rings; ++i)
>                         amdgpu_ring_fini(&adev->vcn.inst[j].ring_enc[i]);
>
> -               amdgpu_ucode_release(&adev->vcn.fw[j]);
> +               amdgpu_ucode_release(&adev->vcn.inst[j].fw);
>         }
>
>         mutex_destroy(&adev->vcn.vcn1_jpeg1_workaround);
> @@ -282,7 +282,7 @@ int amdgpu_vcn_sw_fini(struct amdgpu_device *adev)
>  bool amdgpu_vcn_is_disabled_vcn(struct amdgpu_device *adev, enum vcn_ring_type type, uint32_t vcn_instance)
>  {
>         bool ret = false;
> -       int vcn_config = adev->vcn.vcn_config[vcn_instance];
> +       int vcn_config = adev->vcn.inst[vcn_instance].vcn_config;
>
>         if ((type == VCN_ENCODE_RING) && (vcn_config & VCN_BLOCK_ENCODE_DISABLE_MASK))
>                 ret = true;
> @@ -362,12 +362,12 @@ int amdgpu_vcn_resume(struct amdgpu_device *adev)
>                         const struct common_firmware_header *hdr;
>                         unsigned int offset;
>
> -                       hdr = (const struct common_firmware_header *)adev->vcn.fw[i]->data;
> +                       hdr = (const struct common_firmware_header *)adev->vcn.inst[i].fw->data;
>                         if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) {
>                                 offset = le32_to_cpu(hdr->ucode_array_offset_bytes);
>                                 if (drm_dev_enter(adev_to_drm(adev), &idx)) {
>                                         memcpy_toio(adev->vcn.inst[i].cpu_addr,
> -                                                   adev->vcn.fw[i]->data + offset,
> +                                                   adev->vcn.inst[i].fw->data + offset,
>                                                     le32_to_cpu(hdr->ucode_size_bytes));
>                                         drm_dev_exit(idx);
>                                 }
> @@ -1063,7 +1063,7 @@ void amdgpu_vcn_setup_ucode(struct amdgpu_device *adev)
>                         if (adev->vcn.harvest_config & (1 << i))
>                                 continue;
>
> -                       hdr = (const struct common_firmware_header *)adev->vcn.fw[i]->data;
> +                       hdr = (const struct common_firmware_header *)adev->vcn.inst[i].fw->data;
>                         /* currently only support 2 FW instances */
>                         if (i >= 2) {
>                                 dev_info(adev->dev, "More then 2 VCN FW instances!\n");
> @@ -1071,7 +1071,7 @@ void amdgpu_vcn_setup_ucode(struct amdgpu_device *adev)
>                         }
>                         idx = AMDGPU_UCODE_ID_VCN + i;
>                         adev->firmware.ucode[idx].ucode_id = idx;
> -                       adev->firmware.ucode[idx].fw = adev->vcn.fw[i];
> +                       adev->firmware.ucode[idx].fw = adev->vcn.inst[i].fw;
>                         adev->firmware.fw_size +=
>                                 ALIGN(le32_to_cpu(hdr->ucode_size_bytes), PAGE_SIZE);
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
> index 765b809d48a2..ba58b4f07643 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
> @@ -297,6 +297,9 @@ struct amdgpu_vcn_inst {
>         atomic_t                dpg_enc_submission_cnt;
>         struct amdgpu_vcn_fw_shared fw_shared;
>         uint8_t                 aid_id;
> +       const struct firmware   *fw; /* VCN firmware */
> +       uint8_t                 vcn_config;
> +       uint32_t                vcn_codec_disable_mask;
>  };
>
>  struct amdgpu_vcn_ras {
> @@ -306,15 +309,12 @@ struct amdgpu_vcn_ras {
>  struct amdgpu_vcn {
>         unsigned                fw_version;
>         struct delayed_work     idle_work;
> -       const struct firmware   *fw[AMDGPU_MAX_VCN_INSTANCES];  /* VCN firmware */
>         unsigned                num_enc_rings;
>         enum amd_powergating_state cur_state;
>         bool                    indirect_sram;
>
>         uint8_t num_vcn_inst;
>         struct amdgpu_vcn_inst   inst[AMDGPU_MAX_VCN_INSTANCES];
> -       uint8_t                  vcn_config[AMDGPU_MAX_VCN_INSTANCES];
> -       uint32_t                 vcn_codec_disable_mask[AMDGPU_MAX_VCN_INSTANCES];
>         struct amdgpu_vcn_reg    internal;
>         struct mutex             vcn_pg_lock;
>         struct mutex            vcn1_jpeg1_workaround;
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
> index 00d9fdd2869e..5ea96c983517 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
> @@ -345,7 +345,7 @@ static int vcn_v1_0_resume(struct amdgpu_ip_block *ip_block)
>   */
>  static void vcn_v1_0_mc_resume_spg_mode(struct amdgpu_device *adev)
>  {
> -       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[0]->size + 4);
> +       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[0].fw->size + 4);
>         uint32_t offset;
>
>         /* cache window 0: fw */
> @@ -412,7 +412,7 @@ static void vcn_v1_0_mc_resume_spg_mode(struct amdgpu_device *adev)
>
>  static void vcn_v1_0_mc_resume_dpg_mode(struct amdgpu_device *adev)
>  {
> -       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[0]->size + 4);
> +       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[0].fw->size + 4);
>         uint32_t offset;
>
>         /* cache window 0: fw */
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
> index de4067713d7b..e42cfc731ad8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
> @@ -372,7 +372,7 @@ static int vcn_v2_0_resume(struct amdgpu_ip_block *ip_block)
>   */
>  static void vcn_v2_0_mc_resume(struct amdgpu_device *adev)
>  {
> -       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[0]->size + 4);
> +       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[0].fw->size + 4);
>         uint32_t offset;
>
>         if (amdgpu_sriov_vf(adev))
> @@ -428,7 +428,7 @@ static void vcn_v2_0_mc_resume(struct amdgpu_device *adev)
>
>  static void vcn_v2_0_mc_resume_dpg_mode(struct amdgpu_device *adev, bool indirect)
>  {
> -       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[0]->size + 4);
> +       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[0].fw->size + 4);
>         uint32_t offset;
>
>         /* cache window 0: fw */
> @@ -1920,7 +1920,7 @@ static int vcn_v2_0_start_sriov(struct amdgpu_device *adev)
>
>                 init_table += header->vcn_table_offset;
>
> -               size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[0]->size + 4);
> +               size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[0].fw->size + 4);
>
>                 MMSCH_V2_0_INSERT_DIRECT_RD_MOD_WT(
>                         SOC15_REG_OFFSET(UVD, i, mmUVD_STATUS),
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
> index 08f43a281a7f..b518202955ca 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
> @@ -465,7 +465,7 @@ static void vcn_v2_5_mc_resume(struct amdgpu_device *adev)
>                 if (adev->vcn.harvest_config & (1 << i))
>                         continue;
>
> -               size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[i]->size + 4);
> +               size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[i].fw->size + 4);
>                 /* cache window 0: fw */
>                 if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
>                         WREG32_SOC15(VCN, i, mmUVD_LMI_VCPU_CACHE_64BIT_BAR_LOW,
> @@ -514,7 +514,7 @@ static void vcn_v2_5_mc_resume(struct amdgpu_device *adev)
>
>  static void vcn_v2_5_mc_resume_dpg_mode(struct amdgpu_device *adev, int inst_idx, bool indirect)
>  {
> -       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[inst_idx]->size + 4);
> +       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[inst_idx].fw->size + 4);
>         uint32_t offset;
>
>         /* cache window 0: fw */
> @@ -1287,7 +1287,7 @@ static int vcn_v2_5_sriov_start(struct amdgpu_device *adev)
>                         SOC15_REG_OFFSET(VCN, i, mmUVD_STATUS),
>                         ~UVD_STATUS__UVD_BUSY, UVD_STATUS__UVD_BUSY);
>
> -               size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[i]->size + 4);
> +               size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[i].fw->size + 4);
>                 /* mc resume*/
>                 if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
>                         MMSCH_V1_0_INSERT_DIRECT_WT(
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
> index 6002990d917b..63ddd4cca910 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
> @@ -490,7 +490,7 @@ static int vcn_v3_0_resume(struct amdgpu_ip_block *ip_block)
>   */
>  static void vcn_v3_0_mc_resume(struct amdgpu_device *adev, int inst)
>  {
> -       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[inst]->size + 4);
> +       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[inst].fw->size + 4);
>         uint32_t offset;
>
>         /* cache window 0: fw */
> @@ -540,7 +540,7 @@ static void vcn_v3_0_mc_resume(struct amdgpu_device *adev, int inst)
>
>  static void vcn_v3_0_mc_resume_dpg_mode(struct amdgpu_device *adev, int inst_idx, bool indirect)
>  {
> -       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[inst_idx]->size + 4);
> +       uint32_t size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[inst_idx].fw->size + 4);
>         uint32_t offset;
>
>         /* cache window 0: fw */
> @@ -1375,7 +1375,7 @@ static int vcn_v3_0_start_sriov(struct amdgpu_device *adev)
>                         mmUVD_STATUS),
>                         ~UVD_STATUS__UVD_BUSY, UVD_STATUS__UVD_BUSY);
>
> -               cache_size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[i]->size + 4);
> +               cache_size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[i].fw->size + 4);
>
>                 if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
>                         MMSCH_V3_0_INSERT_DIRECT_WT(SOC15_REG_OFFSET(VCN, i,
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
> index 2c36f748176f..1a6257d324c9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
> @@ -422,7 +422,7 @@ static void vcn_v4_0_mc_resume(struct amdgpu_device *adev, int inst)
>         uint32_t offset, size;
>         const struct common_firmware_header *hdr;
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         /* cache window 0: fw */
> @@ -482,7 +482,7 @@ static void vcn_v4_0_mc_resume_dpg_mode(struct amdgpu_device *adev, int inst_idx
>  {
>         uint32_t offset, size;
>         const struct common_firmware_header *hdr;
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst_idx]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst_idx].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         /* cache window 0: fw */
> @@ -1334,7 +1334,7 @@ static int vcn_v4_0_start_sriov(struct amdgpu_device *adev)
>                         regUVD_STATUS),
>                         ~UVD_STATUS__UVD_BUSY, UVD_STATUS__UVD_BUSY);
>
> -               cache_size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[i]->size + 4);
> +               cache_size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[i].fw->size + 4);
>
>                 if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
>                         MMSCH_V4_0_INSERT_DIRECT_WT(SOC15_REG_OFFSET(VCN, i,
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
> index eda67585768f..23a2a80129bb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
> @@ -377,7 +377,7 @@ static void vcn_v4_0_3_mc_resume(struct amdgpu_device *adev, int inst_idx)
>         uint32_t offset, size, vcn_inst;
>         const struct common_firmware_header *hdr;
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst_idx]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst_idx].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         vcn_inst = GET_INST(VCN, inst_idx);
> @@ -452,7 +452,7 @@ static void vcn_v4_0_3_mc_resume_dpg_mode(struct amdgpu_device *adev, int inst_i
>         uint32_t offset, size;
>         const struct common_firmware_header *hdr;
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst_idx]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst_idx].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         /* cache window 0: fw */
> @@ -939,7 +939,7 @@ static int vcn_v4_0_3_start_sriov(struct amdgpu_device *adev)
>                 MMSCH_V4_0_INSERT_DIRECT_RD_MOD_WT(SOC15_REG_OFFSET(VCN, 0, regUVD_STATUS),
>                         ~UVD_STATUS__UVD_BUSY, UVD_STATUS__UVD_BUSY);
>
> -               cache_size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.fw[i]->size + 4);
> +               cache_size = AMDGPU_GPU_PAGE_ALIGN(adev->vcn.inst[i].fw->size + 4);
>
>                 if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
>                         MMSCH_V4_0_INSERT_DIRECT_WT(SOC15_REG_OFFSET(VCN, 0,
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
> index f24e1eef6606..e49ba5bc7fa0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
> @@ -370,7 +370,7 @@ static void vcn_v4_0_5_mc_resume(struct amdgpu_device *adev, int inst)
>         uint32_t offset, size;
>         const struct common_firmware_header *hdr;
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         /* cache window 0: fw */
> @@ -431,7 +431,7 @@ static void vcn_v4_0_5_mc_resume_dpg_mode(struct amdgpu_device *adev, int inst_i
>         uint32_t offset, size;
>         const struct common_firmware_header *hdr;
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst_idx]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst_idx].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         /* cache window 0: fw */
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
> index 8ccd054975a1..900ca8ababc1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
> @@ -334,7 +334,7 @@ static void vcn_v5_0_0_mc_resume(struct amdgpu_device *adev, int inst)
>         uint32_t offset, size;
>         const struct common_firmware_header *hdr;
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         /* cache window 0: fw */
> @@ -395,7 +395,7 @@ static void vcn_v5_0_0_mc_resume_dpg_mode(struct amdgpu_device *adev, int inst_i
>         uint32_t offset, size;
>         const struct common_firmware_header *hdr;
>
> -       hdr = (const struct common_firmware_header *)adev->vcn.fw[inst_idx]->data;
> +       hdr = (const struct common_firmware_header *)adev->vcn.inst[inst_idx].fw->data;
>         size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8);
>
>         /* cache window 0: fw */
> --
> 2.34.1
>


More information about the amd-gfx mailing list