]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: add amdgpu_umsch_mm module parameter
authorLang Yu <Lang.Yu@amd.com>
Sat, 3 Jun 2023 09:41:20 +0000 (17:41 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 31 Aug 2023 21:14:21 +0000 (17:14 -0400)
Enable Multi Media User Mode Scheduler
(0 = disabled (default), 1 = enabled).

Signed-off-by: Lang Yu <Lang.Yu@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Veerabadhran Gopalakrishnan <Veerabadhran.Gopalakrishnan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

index b5c3bdccd3c53fdad7af4e1b0fe266f4a17fcdb7..12a7f9a7e63e7cd6cbb983bb0ebbfcde15ec7ce9 100644 (file)
@@ -244,6 +244,7 @@ extern int amdgpu_num_kcq;
 #define AMDGPU_VCNFW_LOG_SIZE (32 * 1024)
 extern int amdgpu_vcnfw_log;
 extern int amdgpu_sg_display;
+extern int amdgpu_umsch_mm;
 
 extern int amdgpu_user_partt_mode;
 
index 1d8788e16077d85175bd93723f54693388f33f26..d8c18b476f24e9ea274bc20abd236c4b58692b9e 100644 (file)
@@ -2164,8 +2164,10 @@ static int amdgpu_discovery_set_umsch_mm_ip_blocks(struct amdgpu_device *adev)
 {
        switch (adev->ip_versions[VCN_HWIP][0]) {
        case IP_VERSION(4, 0, 5):
-               amdgpu_device_ip_block_add(adev, &umsch_mm_v4_0_ip_block);
-               adev->enable_umsch_mm = true;
+               if (amdgpu_umsch_mm & 0x1) {
+                       amdgpu_device_ip_block_add(adev, &umsch_mm_v4_0_ip_block);
+                       adev->enable_umsch_mm = true;
+               }
                break;
        default:
                break;
index 81edf66dbea8bd2cad49ecab525058d20b307cdf..49b1506c4722c1c866b3f7048060f314c0b6f10e 100644 (file)
@@ -194,6 +194,7 @@ int amdgpu_use_xgmi_p2p = 1;
 int amdgpu_vcnfw_log;
 int amdgpu_sg_display = -1; /* auto */
 int amdgpu_user_partt_mode = AMDGPU_AUTO_COMPUTE_PARTITION_MODE;
+int amdgpu_umsch_mm;
 
 static void amdgpu_drv_delayed_reset_work_handler(struct work_struct *work);
 
@@ -907,6 +908,15 @@ module_param_named(vcnfw_log, amdgpu_vcnfw_log, int, 0444);
 MODULE_PARM_DESC(sg_display, "S/G Display (-1 = auto (default), 0 = disable)");
 module_param_named(sg_display, amdgpu_sg_display, int, 0444);
 
+/**
+ * DOC: umsch_mm (int)
+ * Enable Multi Media User Mode Scheduler. This is a HW scheduling engine for VCN and VPE.
+ * (0 = disabled (default), 1 = enabled)
+ */
+MODULE_PARM_DESC(umsch_mm,
+       "Enable Multi Media User Mode Scheduler (0 = disabled (default), 1 = enabled)");
+module_param_named(umsch_mm, amdgpu_umsch_mm, int, 0444);
+
 /**
  * DOC: smu_pptable_id (int)
  * Used to override pptable id. id = 0 use VBIOS pptable.