[PATCH] drm/amdgpu: fix potential probe issue for VCN IP v4.0.6

Huang, Tim Tim.Huang at amd.com
Tue Jul 23 10:58:11 UTC 2024


[Public]

Please ignore this one, will send out a new one to apply the same check to more VCN versions. Thanks.

> -----Original Message-----
> From: Huang, Tim <Tim.Huang at amd.com>
> Sent: Tuesday, July 23, 2024 5:59 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Zhang, Yifan
> <Yifan1.Zhang at amd.com>; Jamadar, Saleemkhan
> <Saleemkhan.Jamadar at amd.com>; Ma, Li <Li.Ma at amd.com>; Huang, Tim
> <Tim.Huang at amd.com>
> Subject: [PATCH] drm/amdgpu: fix potential probe issue for VCN IP v4.0.6
>
> To prevent below probe failure, add a check for models with VCN IP v4.0.6
> where VCN1 may be harvested.
>
> [   54.070117] RIP: 0010:vcn_v4_0_5_start_dpg_mode+0x9be/0x36b0
> [amdgpu]
> [   54.071055] Code: 80 fb ff 8d 82 00 80 fe ff 81 fe 00 06 00 00 0f 43
> c2 49 69 d5 38 0d 00 00 48 8d 71 04 c1 e8 02 4c 01 f2 48 89 b2 50 f6 02
> 00 <89> 01 48 8b 82 50 f6 02 00 48 8d 48 04 48 89 8a 50 f6 02 00 c7 00
> [   54.072408] RSP: 0018:ffffb17985f736f8 EFLAGS: 00010286
> [   54.072793] RAX: 00000000000000d6 RBX: ffff99a82f680000 RCX:
> 0000000000000000
> [   54.073315] RDX: ffff99a82f680000 RSI: 0000000000000004 RDI:
> ffff99a82f680000
> [   54.073835] RBP: ffffb17985f73730 R08: 0000000000000001 R09:
> 0000000000000000
> [   54.074353] R10: 0000000000000008 R11: ffffb17983c05000 R12:
> 0000000000000000
> [   54.074879] R13: 0000000000000000 R14: ffff99a82f680000 R15:
> 0000000000000001
> [   54.075400] FS:  00007f8d9c79a000(0000) GS:ffff99ab2f140000(0000)
> knlGS:0000000000000000
> [   54.075988] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   54.076408] CR2: 0000000000000000 CR3: 0000000140c3a000 CR4:
> 0000000000750ef0
> [   54.076927] PKRU: 55555554
> [   54.077132] Call Trace:
> [   54.077319]  <TASK>
> [   54.077484]  ? show_regs+0x69/0x80
> [   54.077747]  ? __die+0x28/0x70
> [   54.077979]  ? page_fault_oops+0x180/0x4b0
> [   54.078286]  ? do_user_addr_fault+0x2d2/0x680
> [   54.078610]  ? exc_page_fault+0x84/0x190
> [   54.078910]  ? asm_exc_page_fault+0x2b/0x30
> [   54.079224]  ? vcn_v4_0_5_start_dpg_mode+0x9be/0x36b0 [amdgpu]
> [   54.079941]  ? vcn_v4_0_5_start_dpg_mode+0xe6/0x36b0 [amdgpu]
> [   54.080617]  vcn_v4_0_5_set_powergating_state+0x82/0x19b0 [amdgpu]
> [   54.081316]  amdgpu_device_ip_set_powergating_state+0x64/0xc0
> [amdgpu]
> [   54.082057]  amdgpu_vcn_ring_begin_use+0x6f/0x1d0 [amdgpu]
> [   54.082727]  amdgpu_ring_alloc+0x44/0x70 [amdgpu]
> [   54.083351]  amdgpu_vcn_dec_sw_ring_test_ring+0x40/0x110 [amdgpu]
> [   54.084054]  amdgpu_ring_test_helper+0x22/0x90 [amdgpu]
> [   54.084698]  vcn_v4_0_5_hw_init+0x87/0xc0 [amdgpu]
> [   54.085307]  amdgpu_device_init+0x1f96/0x2780 [amdgpu]
> [   54.085951]  amdgpu_driver_load_kms+0x1e/0xc0 [amdgpu]
> [   54.086591]  amdgpu_pci_probe+0x19f/0x550 [amdgpu]
> [   54.087215]  local_pci_probe+0x48/0xa0
> [   54.087509]  pci_device_probe+0xc9/0x250
> [   54.087812]  really_probe+0x1a4/0x3f0
> [   54.088101]  __driver_probe_device+0x7d/0x170
> [   54.088443]  driver_probe_device+0x24/0xa0
> [   54.088765]  __driver_attach+0xdd/0x1d0
> [   54.089068]  ? __pfx___driver_attach+0x10/0x10
> [   54.089417]  bus_for_each_dev+0x8e/0xe0
> [   54.089718]  driver_attach+0x22/0x30
> [   54.090000]  bus_add_driver+0x120/0x220
> [   54.090303]  driver_register+0x62/0x120
> [   54.090606]  ? __pfx_amdgpu_init+0x10/0x10 [amdgpu]
> [   54.091255]  __pci_register_driver+0x62/0x70
> [   54.091593]  amdgpu_init+0x67/0xff0 [amdgpu]
> [   54.092190]  do_one_initcall+0x5f/0x330
> [   54.092495]  do_init_module+0x68/0x240
> [   54.092794]  load_module+0x201c/0x2110
> [   54.093093]  init_module_from_file+0x97/0xd0
> [   54.093428]  ? init_module_from_file+0x97/0xd0
> [   54.093777]  idempotent_init_module+0x11c/0x2a0
> [   54.094134]  __x64_sys_finit_module+0x64/0xc0
> [   54.094476]  do_syscall_64+0x58/0x120
> [   54.094767]  entry_SYSCALL_64_after_hwframe+0x6e/0x76
>
> Signed-off-by: Tim Huang <tim.huang at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> 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 f45495de6875..8d75061f9f38 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
> @@ -958,6 +958,9 @@ static int vcn_v4_0_5_start(struct amdgpu_device
> *adev)
>               amdgpu_dpm_enable_uvd(adev, true);
>
>       for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {
> +             if (adev->vcn.harvest_config & (1 << i))
> +                     continue;
> +
>               fw_shared = adev->vcn.inst[i].fw_shared.cpu_addr;
>
>               if (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) { @@ -1162,6
> +1165,9 @@ static int vcn_v4_0_5_stop(struct amdgpu_device *adev)
>       int i, r = 0;
>
>       for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {
> +             if (adev->vcn.harvest_config & (1 << i))
> +                     continue;
> +
>               fw_shared = adev->vcn.inst[i].fw_shared.cpu_addr;
>               fw_shared->sq.queue_mode |= FW_QUEUE_DPG_HOLD_OFF;
>
> --
> 2.43.0



More information about the amd-gfx mailing list