Commit 362b86a3 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'amd-drm-fixes-5.6-2020-03-19' of...

Merge tag 'amd-drm-fixes-5.6-2020-03-19' of git://people.freedesktop.org/~agd5f/linux

 into drm-fixes

amd-drm-fixes-5.6-2020-03-19:

amdgpu:
- Pageflip fix
- VCN clockgating fixes
- GPR debugfs fix for umr
- GPU reset fix
- eDP fix for MBP
- DCN2.x fix

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Alex Deucher <alexdeucher@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200319204054.1036478-1-alexander.deucher@amd.com
parents 0f08b315 eb916a5a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -781,11 +781,11 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
	ssize_t result = 0;
	uint32_t offset, se, sh, cu, wave, simd, thread, bank, *data;

	if (size & 3 || *pos & 3)
	if (size > 4096 || size & 3 || *pos & 3)
		return -EINVAL;

	/* decode offset */
	offset = *pos & GENMASK_ULL(11, 0);
	offset = (*pos & GENMASK_ULL(11, 0)) >> 2;
	se = (*pos & GENMASK_ULL(19, 12)) >> 12;
	sh = (*pos & GENMASK_ULL(27, 20)) >> 20;
	cu = (*pos & GENMASK_ULL(35, 28)) >> 28;
@@ -823,7 +823,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
	while (size) {
		uint32_t value;

		value = data[offset++];
		value = data[result >> 2];
		r = put_user(value, (uint32_t *)buf);
		if (r) {
			result = r;
+4 −0
Original line number Diff line number Diff line
@@ -3913,6 +3913,8 @@ static int amdgpu_do_asic_reset(struct amdgpu_hive_info *hive,
				if (r)
					goto out;

				amdgpu_fbdev_set_suspend(tmp_adev, 0);

				/* must succeed. */
				amdgpu_ras_resume(tmp_adev);

@@ -4086,6 +4088,8 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
		 */
		amdgpu_unregister_gpu_instance(tmp_adev);

		amdgpu_fbdev_set_suspend(adev, 1);

		/* disable ras on ALL IPs */
		if (!(in_ras_intr && !use_baco) &&
		      amdgpu_device_ip_need_full_reset(tmp_adev))
+1 −1
Original line number Diff line number Diff line
@@ -693,7 +693,7 @@ static int jpeg_v2_0_set_clockgating_state(void *handle,
	bool enable = (state == AMD_CG_STATE_GATE);

	if (enable) {
		if (jpeg_v2_0_is_idle(handle))
		if (!jpeg_v2_0_is_idle(handle))
			return -EBUSY;
		jpeg_v2_0_enable_clock_gating(adev);
	} else {
+1 −1
Original line number Diff line number Diff line
@@ -477,7 +477,7 @@ static int jpeg_v2_5_set_clockgating_state(void *handle,
			continue;

		if (enable) {
			if (jpeg_v2_5_is_idle(handle))
			if (!jpeg_v2_5_is_idle(handle))
				return -EBUSY;
			jpeg_v2_5_enable_clock_gating(adev, i);
		} else {
+1 −1
Original line number Diff line number Diff line
@@ -1352,7 +1352,7 @@ static int vcn_v1_0_set_clockgating_state(void *handle,

	if (enable) {
		/* wait for STATUS to clear */
		if (vcn_v1_0_is_idle(handle))
		if (!vcn_v1_0_is_idle(handle))
			return -EBUSY;
		vcn_v1_0_enable_clock_gating(adev);
	} else {
Loading