AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <christian.koenig@amd.com>
To: "Timur Kristóf" <timur.kristof@gmail.com>,
	amd-gfx@lists.freedesktop.org,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Alexandre Demers" <alexandre.f.demers@gmail.com>,
	"Rodrigo Siqueira" <siqueira@igalia.com>,
	"Leo Liu" <Leo.Liu@amd.com>
Subject: Re: [PATCH 00/12] drm/amdgpu: Support VCE1 IP block (v4)
Date: Mon, 10 Nov 2025 20:22:06 +0100	[thread overview]
Message-ID: <ab757720-750f-45ac-9892-c1c5742fcbba@amd.com> (raw)
In-Reply-To: <20251107155745.8334-1-timur.kristof@gmail.com>

On 11/7/25 16:57, Timur Kristóf wrote:
> VCE1 is the Video Coding Engine 1.0 found in SI GPUs.
> Add support for the VCE1 IP block, which is the last
> missing piece for fully-featured SI support in amdgpu.
> Co-developed by Alexandre Demers.
> 
> This VCE1 implementation is based on:
> VCE2 code in amdgpu
> VCE1 code in radeon
> Research by Alexandre
> Suggestions from Christian
> 
> The biggest challenge was getting the firmware
> validation mechanism to work correctly. Due to
> some limitations in the HW, the VCE1 requires
> the VCPU BO to be located at a low 32-bit address.
> This was achieved by placing the GART in the
> LOW address space and manually mapping the
> VCPU BO in the GART page table.
> 
> Also hook up the VCE1 to the DPM.
> 
> Tested on the following HW:
> Radeon R9 280X (Tahiti)
> Radeon HD 7990 (Tahiti)
> FirePro W9000 (Tahiti)
> Radeon R7 450 (Cape Verde)
> 
> Changes in v2:
> - Refactor the new GART helper to be reusable
> - Reduce reserved GART size from 16 MiB to 2 MiB
> - Clear VCPU BO only on device creation
> - Save VCPU BO on suspend, restore on resume
> - Rework how an empty codec list is handled
> - Add different workaround for FirePro W9000
> - Address all other feedback from the review
> 
> Changes in v3:
> - Drop patch to return empty codec list when VCE is not present,
>   this is actually not needed.
> - Instead of relying on gmc_v6 to set the GART space before GTT,
>   add a new function amdgpu_vce_required_gart_pages() which is
>   called from amdgpu_gtt_mgr_init() directly.
> 
> Changes in v4:
> - Clear VCPU BO on resume like in v1
> - Don't unmap/unreserve BO on resume
> 
> Looking forward to reviews and feedback!

I've just pushed the whole set to amd-staging-drm-next.

There is a slight possibility that the CI system find something (because of patch #4), but I strongly doubt it.

Thanks a lot for taking care of this,
Christian.

> 
> Timur Kristóf (12):
>   drm/amdgpu/gmc6: Place gart at low address range
>   drm/amdgpu/gart: Add helper to bind VRAM pages (v2)
>   drm/amdgpu/ttm: Use GART helper to map VRAM pages (v2)
>   drm/amdgpu/vce: Move firmware load to amdgpu_vce_early_init
>   drm/amdgpu/vce: Clear VCPU BO, don't unmap/unreserve (v4)
>   drm/amdgpu/vce1: Clean up register definitions
>   drm/amdgpu/vce1: Load VCE1 firmware
>   drm/amdgpu/vce1: Implement VCE1 IP block (v2)
>   drm/amdgpu/vce1: Ensure VCPU BO is in lower 32-bit address space (v3)
>   drm/amd/pm/si: Hook up VCE1 to SI DPM
>   drm/amdgpu/vce1: Enable VCE1 on Tahiti, Pitcairn, Cape Verde GPUs
>   drm/amdgpu/vce1: Workaround PLL timeout on FirePro W9000
> 
>  drivers/gpu/drm/amd/amdgpu/Makefile           |   2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c      |  36 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gart.h      |   3 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c   |   1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       |  12 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c       | 174 ++--
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h       |   3 +
>  drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c         |   2 +-
>  drivers/gpu/drm/amd/amdgpu/si.c               |  22 +-
>  drivers/gpu/drm/amd/amdgpu/sid.h              |  40 -
>  drivers/gpu/drm/amd/amdgpu/vce_v1_0.c         | 839 ++++++++++++++++++
>  drivers/gpu/drm/amd/amdgpu/vce_v1_0.h         |  32 +
>  drivers/gpu/drm/amd/amdgpu/vce_v2_0.c         |   5 +
>  drivers/gpu/drm/amd/amdgpu/vce_v3_0.c         |   5 +
>  drivers/gpu/drm/amd/amdgpu/vce_v4_0.c         |   5 +
>  .../drm/amd/include/asic_reg/vce/vce_1_0_d.h  |   5 +
>  .../include/asic_reg/vce/vce_1_0_sh_mask.h    |  10 +
>  drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c    |  18 +-
>  18 files changed, 1080 insertions(+), 134 deletions(-)
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/vce_v1_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/vce_v1_0.h
> 


      parent reply	other threads:[~2025-11-10 19:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-07 15:57 [PATCH 00/12] drm/amdgpu: Support VCE1 IP block (v4) Timur Kristóf
2025-11-07 15:57 ` [PATCH 01/12] drm/amdgpu/gmc6: Place gart at low address range Timur Kristóf
2025-11-07 15:57 ` [PATCH 02/12] drm/amdgpu/gart: Add helper to bind VRAM pages (v2) Timur Kristóf
2025-11-07 15:57 ` [PATCH 03/12] drm/amdgpu/ttm: Use GART helper to map " Timur Kristóf
2025-11-07 15:57 ` [PATCH 04/12] drm/amdgpu/vce: Move firmware load to amdgpu_vce_early_init Timur Kristóf
2025-11-07 15:57 ` [PATCH 05/12] drm/amdgpu/vce: Clear VCPU BO, don't unmap/unreserve (v4) Timur Kristóf
2025-11-10 14:16   ` Christian König
2025-11-07 15:57 ` [PATCH 06/12] drm/amdgpu/vce1: Clean up register definitions Timur Kristóf
2025-11-07 15:57 ` [PATCH 07/12] drm/amdgpu/vce1: Load VCE1 firmware Timur Kristóf
2025-11-07 15:57 ` [PATCH 08/12] drm/amdgpu/vce1: Implement VCE1 IP block (v2) Timur Kristóf
2025-11-07 15:57 ` [PATCH 09/12] drm/amdgpu/vce1: Ensure VCPU BO is in lower 32-bit address space (v3) Timur Kristóf
2025-11-07 15:57 ` [PATCH 10/12] drm/amd/pm/si: Hook up VCE1 to SI DPM Timur Kristóf
2025-11-07 15:57 ` [PATCH 11/12] drm/amdgpu/vce1: Enable VCE1 on Tahiti, Pitcairn, Cape Verde GPUs Timur Kristóf
2025-11-07 15:57 ` [PATCH 12/12] drm/amdgpu/vce1: Workaround PLL timeout on FirePro W9000 Timur Kristóf
2025-11-10 19:22 ` Christian König [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ab757720-750f-45ac-9892-c1c5742fcbba@amd.com \
    --to=christian.koenig@amd.com \
    --cc=Leo.Liu@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=alexandre.f.demers@gmail.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=siqueira@igalia.com \
    --cc=timur.kristof@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox