[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