Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49c458e5 authored by Robert Noland's avatar Robert Noland Committed by Dave Airlie
Browse files

drm/r600: avoid assigning vb twice in blit code



There is no need to assign vb before you know that space is available.

[agd5f: adapted for kernel tree.]

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 9d8401fc
Loading
Loading
Loading
Loading
+3 −7
Original line number Original line Diff line number Diff line
@@ -582,8 +582,6 @@ r600_blit_copy(struct drm_device *dev,
	u64 vb_addr;
	u64 vb_addr;
	u32 *vb;
	u32 *vb;


	vb = r600_nomm_get_vb_ptr(dev);

	if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) {
	if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) {
		max_bytes = 8192;
		max_bytes = 8192;


@@ -619,8 +617,8 @@ r600_blit_copy(struct drm_device *dev,
				if (!dev_priv->blit_vb)
				if (!dev_priv->blit_vb)
					return;
					return;
				set_shaders(dev);
				set_shaders(dev);
				vb = r600_nomm_get_vb_ptr(dev);
			}
			}
			vb = r600_nomm_get_vb_ptr(dev);


			vb[0] = i2f(dst_x);
			vb[0] = i2f(dst_x);
			vb[1] = 0;
			vb[1] = 0;
@@ -708,8 +706,8 @@ r600_blit_copy(struct drm_device *dev,
					return;
					return;


				set_shaders(dev);
				set_shaders(dev);
				vb = r600_nomm_get_vb_ptr(dev);
			}
			}
			vb = r600_nomm_get_vb_ptr(dev);


			vb[0] = i2f(dst_x / 4);
			vb[0] = i2f(dst_x / 4);
			vb[1] = 0;
			vb[1] = 0;
@@ -777,8 +775,6 @@ r600_blit_swap(struct drm_device *dev,
	u64 vb_addr;
	u64 vb_addr;
	u32 *vb;
	u32 *vb;


	vb = r600_nomm_get_vb_ptr(dev);

	if ((dev_priv->blit_vb->used + 48) > dev_priv->blit_vb->total) {
	if ((dev_priv->blit_vb->used + 48) > dev_priv->blit_vb->total) {


		r600_nomm_put_vb(dev);
		r600_nomm_put_vb(dev);
@@ -787,8 +783,8 @@ r600_blit_swap(struct drm_device *dev,
			return;
			return;


		set_shaders(dev);
		set_shaders(dev);
		vb = r600_nomm_get_vb_ptr(dev);
	}
	}
	vb = r600_nomm_get_vb_ptr(dev);


	if (cpp == 4) {
	if (cpp == 4) {
		cb_format = COLOR_8_8_8_8;
		cb_format = COLOR_8_8_8_8;
+2 −1
Original line number Original line Diff line number Diff line
@@ -610,7 +610,6 @@ void r600_kms_blit_copy(struct radeon_device *rdev,


	DRM_DEBUG("emitting copy %16llx %16llx %d %d\n", src_gpu_addr, dst_gpu_addr,
	DRM_DEBUG("emitting copy %16llx %16llx %d %d\n", src_gpu_addr, dst_gpu_addr,
		  size_bytes, rdev->r600_blit.vb_used);
		  size_bytes, rdev->r600_blit.vb_used);
	vb = (u32 *)(rdev->r600_blit.vb_ib->ptr + rdev->r600_blit.vb_used);
	if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) {
	if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) {
		max_bytes = 8192;
		max_bytes = 8192;


@@ -653,6 +652,7 @@ void r600_kms_blit_copy(struct radeon_device *rdev,
				vb = r600_nomm_get_vb_ptr(dev);
				vb = r600_nomm_get_vb_ptr(dev);
#endif
#endif
			}
			}
			vb = (u32 *)(rdev->r600_blit.vb_ib->ptr + rdev->r600_blit.vb_used);


			vb[0] = i2f(dst_x);
			vb[0] = i2f(dst_x);
			vb[1] = 0;
			vb[1] = 0;
@@ -747,6 +747,7 @@ void r600_kms_blit_copy(struct radeon_device *rdev,
				vb = r600_nomm_get_vb_ptr(dev);
				vb = r600_nomm_get_vb_ptr(dev);
			}
			}
#endif
#endif
			vb = (u32 *)(rdev->r600_blit.vb_ib->ptr + rdev->r600_blit.vb_used);


			vb[0] = i2f(dst_x / 4);
			vb[0] = i2f(dst_x / 4);
			vb[1] = 0;
			vb[1] = 0;