diff options
Diffstat (limited to 'queue-6.6/drm-amdgpu-add-kicker-device-detection.patch')
-rw-r--r-- | queue-6.6/drm-amdgpu-add-kicker-device-detection.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/queue-6.6/drm-amdgpu-add-kicker-device-detection.patch b/queue-6.6/drm-amdgpu-add-kicker-device-detection.patch new file mode 100644 index 0000000000..176fcdfcd9 --- /dev/null +++ b/queue-6.6/drm-amdgpu-add-kicker-device-detection.patch @@ -0,0 +1,77 @@ +From 0bbf5fd86c585d437b75003f11365b324360a5d6 Mon Sep 17 00:00:00 2001 +From: Frank Min <Frank.Min@amd.com> +Date: Wed, 4 Jun 2025 21:00:44 +0800 +Subject: drm/amdgpu: Add kicker device detection + +From: Frank Min <Frank.Min@amd.com> + +commit 0bbf5fd86c585d437b75003f11365b324360a5d6 upstream. + +1. add kicker device list +2. add kicker device checking helper function + +Signed-off-by: Frank Min <Frank.Min@amd.com> +Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +(cherry picked from commit 09aa2b408f4ab689c3541d22b0968de0392ee406) +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 17 +++++++++++++++++ + drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 6 ++++++ + 2 files changed, 23 insertions(+) + +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +@@ -28,6 +28,10 @@ + #include "amdgpu.h" + #include "amdgpu_ucode.h" + ++static const struct kicker_device kicker_device_list[] = { ++ {0x744B, 0x00}, ++}; ++ + static void amdgpu_ucode_print_common_hdr(const struct common_firmware_header *hdr) + { + DRM_DEBUG("size_bytes: %u\n", le32_to_cpu(hdr->size_bytes)); +@@ -1268,6 +1272,19 @@ static const char *amdgpu_ucode_legacy_n + return NULL; + } + ++bool amdgpu_is_kicker_fw(struct amdgpu_device *adev) ++{ ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(kicker_device_list); i++) { ++ if (adev->pdev->device == kicker_device_list[i].device && ++ adev->pdev->revision == kicker_device_list[i].revision) ++ return true; ++ } ++ ++ return false; ++} ++ + void amdgpu_ucode_ip_version_decode(struct amdgpu_device *adev, int block_type, char *ucode_prefix, int len) + { + int maj, min, rev; +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +@@ -536,6 +536,11 @@ struct amdgpu_firmware { + uint64_t fw_buf_mc; + }; + ++struct kicker_device{ ++ unsigned short device; ++ u8 revision; ++}; ++ + void amdgpu_ucode_print_mc_hdr(const struct common_firmware_header *hdr); + void amdgpu_ucode_print_smc_hdr(const struct common_firmware_header *hdr); + void amdgpu_ucode_print_imu_hdr(const struct common_firmware_header *hdr); +@@ -562,5 +567,6 @@ amdgpu_ucode_get_load_type(struct amdgpu + const char *amdgpu_ucode_name(enum AMDGPU_UCODE_ID ucode_id); + + void amdgpu_ucode_ip_version_decode(struct amdgpu_device *adev, int block_type, char *ucode_prefix, int len); ++bool amdgpu_is_kicker_fw(struct amdgpu_device *adev); + + #endif |