drm/amd: Move helper for dynamic speed switch check out of smu13
authorjsg <jsg@openbsd.org>
Fri, 4 Aug 2023 08:16:55 +0000 (08:16 +0000)
committerjsg <jsg@openbsd.org>
Fri, 4 Aug 2023 08:16:55 +0000 (08:16 +0000)
From Mario Limonciello
32631ac27c914e4de8b37987b282e9799f33d8dc in linux-6.1.y/6.1.43
188623076d0f1a500583d392b6187056bf7cc71a in mainline linux

sys/dev/pci/drm/amd/amdgpu/amdgpu.h
sys/dev/pci/drm/amd/amdgpu/amdgpu_device.c
sys/dev/pci/drm/amd/pm/swsmu/smu13/smu_v13_0.c

index ae673dc..cfad9d3 100644 (file)
@@ -1291,6 +1291,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
 void amdgpu_device_pci_config_reset(struct amdgpu_device *adev);
 int amdgpu_device_pci_reset(struct amdgpu_device *adev);
 bool amdgpu_device_need_post(struct amdgpu_device *adev);
+bool amdgpu_device_pcie_dynamic_switching_supported(void);
 bool amdgpu_device_should_use_aspm(struct amdgpu_device *adev);
 bool amdgpu_device_aspm_support_quirk(void);
 
index f4581db..b48d639 100644 (file)
@@ -1351,6 +1351,29 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
        return true;
 }
 
+/*
+ * Intel hosts such as Raptor Lake and Sapphire Rapids don't support dynamic
+ * speed switching. Until we have confirmation from Intel that a specific host
+ * supports it, it's safer that we keep it disabled for all.
+ *
+ * https://edc.intel.com/content/www/us/en/design/products/platforms/details/raptor-lake-s/13th-generation-core-processors-datasheet-volume-1-of-2/005/pci-express-support/
+ * https://gitlab.freedesktop.org/drm/amd/-/issues/2663
+ */
+bool amdgpu_device_pcie_dynamic_switching_supported(void)
+{
+#if IS_ENABLED(CONFIG_X86)
+#ifdef __linux__
+       struct cpuinfo_x86 *c = &cpu_data(0);
+
+       if (c->x86_vendor == X86_VENDOR_INTEL)
+#else
+       if (strcmp(cpu_vendor, "GenuineIntel") == 0)
+#endif
+               return false;
+#endif
+       return true;
+}
+
 /**
  * amdgpu_device_should_use_aspm - check if the device should program ASPM
  *
index ee8b010..a2ad1a0 100644 (file)
@@ -2490,29 +2490,6 @@ int smu_v13_0_mode1_reset(struct smu_context *smu)
        return ret;
 }
 
-/*
- * Intel hosts such as Raptor Lake and Sapphire Rapids don't support dynamic
- * speed switching. Until we have confirmation from Intel that a specific host
- * supports it, it's safer that we keep it disabled for all.
- *
- * https://edc.intel.com/content/www/us/en/design/products/platforms/details/raptor-lake-s/13th-generation-core-processors-datasheet-volume-1-of-2/005/pci-express-support/
- * https://gitlab.freedesktop.org/drm/amd/-/issues/2663
- */
-static bool smu_v13_0_is_pcie_dynamic_switching_supported(void)
-{
-#if IS_ENABLED(CONFIG_X86)
-#ifdef __linux__
-       struct cpuinfo_x86 *c = &cpu_data(0);
-
-       if (c->x86_vendor == X86_VENDOR_INTEL)
-#else
-       if (strcmp(cpu_vendor, "GenuineIntel") == 0)
-#endif
-               return false;
-#endif
-       return true;
-}
-
 int smu_v13_0_update_pcie_parameters(struct smu_context *smu,
                                     uint32_t pcie_gen_cap,
                                     uint32_t pcie_width_cap)
@@ -2524,7 +2501,7 @@ int smu_v13_0_update_pcie_parameters(struct smu_context *smu,
        uint32_t smu_pcie_arg;
        int ret, i;
 
-       if (!smu_v13_0_is_pcie_dynamic_switching_supported()) {
+       if (!amdgpu_device_pcie_dynamic_switching_supported()) {
                if (pcie_table->pcie_gen[num_of_levels - 1] < pcie_gen_cap)
                        pcie_gen_cap = pcie_table->pcie_gen[num_of_levels - 1];