]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
Merge tag 'probes-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux...
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_debugfs.c
index 0e61ebdb3f3e5999dc34f8f2f478e0a8ba41ae45..e485dd3357c63fd225b3fb7e3847675749f018da 100644 (file)
@@ -540,7 +540,11 @@ static ssize_t amdgpu_debugfs_regs_pcie_read(struct file *f, char __user *buf,
        while (size) {
                uint32_t value;
 
-               value = RREG32_PCIE(*pos);
+               if (upper_32_bits(*pos))
+                       value = RREG32_PCIE_EXT(*pos);
+               else
+                       value = RREG32_PCIE(*pos);
+
                r = put_user(value, (uint32_t *)buf);
                if (r)
                        goto out;
@@ -600,7 +604,10 @@ static ssize_t amdgpu_debugfs_regs_pcie_write(struct file *f, const char __user
                if (r)
                        goto out;
 
-               WREG32_PCIE(*pos, value);
+               if (upper_32_bits(*pos))
+                       WREG32_PCIE_EXT(*pos, value);
+               else
+                       WREG32_PCIE(*pos, value);
 
                result += 4;
                buf += 4;
@@ -755,7 +762,7 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct file *f, char __user *buf,
        int r;
 
        if (!adev->smc_rreg)
-               return -EPERM;
+               return -EOPNOTSUPP;
 
        if (size & 0x3 || *pos & 0x3)
                return -EINVAL;
@@ -814,7 +821,7 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct file *f, const char __user *
        int r;
 
        if (!adev->smc_wreg)
-               return -EPERM;
+               return -EOPNOTSUPP;
 
        if (size & 0x3 || *pos & 0x3)
                return -EINVAL;
@@ -1671,9 +1678,9 @@ static int amdgpu_debugfs_test_ib_show(struct seq_file *m, void *unused)
        for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
                struct amdgpu_ring *ring = adev->rings[i];
 
-               if (!ring || !ring->sched.thread)
+               if (!ring || !drm_sched_wqueue_ready(&ring->sched))
                        continue;
-               kthread_park(ring->sched.thread);
+               drm_sched_wqueue_stop(&ring->sched);
        }
 
        seq_puts(m, "run ib test:\n");
@@ -1687,9 +1694,9 @@ static int amdgpu_debugfs_test_ib_show(struct seq_file *m, void *unused)
        for (i = 0; i < AMDGPU_MAX_RINGS; i++) {
                struct amdgpu_ring *ring = adev->rings[i];
 
-               if (!ring || !ring->sched.thread)
+               if (!ring || !drm_sched_wqueue_ready(&ring->sched))
                        continue;
-               kthread_unpark(ring->sched.thread);
+               drm_sched_wqueue_start(&ring->sched);
        }
 
        up_write(&adev->reset_domain->sem);
@@ -1909,7 +1916,8 @@ static int amdgpu_debugfs_ib_preempt(void *data, u64 val)
 
        ring = adev->rings[val];
 
-       if (!ring || !ring->funcs->preempt_ib || !ring->sched.thread)
+       if (!ring || !ring->funcs->preempt_ib ||
+           !drm_sched_wqueue_ready(&ring->sched))
                return -EINVAL;
 
        /* the last preemption failed */
@@ -1927,7 +1935,7 @@ static int amdgpu_debugfs_ib_preempt(void *data, u64 val)
                goto pro_end;
 
        /* stop the scheduler */
-       kthread_park(ring->sched.thread);
+       drm_sched_wqueue_stop(&ring->sched);
 
        /* preempt the IB */
        r = amdgpu_ring_preempt_ib(ring);
@@ -1961,7 +1969,7 @@ static int amdgpu_debugfs_ib_preempt(void *data, u64 val)
 
 failure:
        /* restart the scheduler */
-       kthread_unpark(ring->sched.thread);
+       drm_sched_wqueue_start(&ring->sched);
 
        up_read(&adev->reset_domain->sem);
 
@@ -2146,6 +2154,8 @@ int amdgpu_debugfs_init(struct amdgpu_device *adev)
        amdgpu_debugfs_firmware_init(adev);
        amdgpu_ta_if_debugfs_init(adev);
 
+       amdgpu_debugfs_mes_event_log_init(adev);
+
 #if defined(CONFIG_DRM_AMD_DC)
        if (adev->dc_enabled)
                dtn_debugfs_init(adev);
This page took 0.038663 seconds and 4 git commands to generate.