diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 32 | 
1 files changed, 21 insertions, 11 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c index 0e61ebdb3f3e..e485dd3357c6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -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); | 
