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

Commit 8eb95204 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Amalgamate gen6_mm_switch() and vgpu_mm_switch()

parent b1379d49
Loading
Loading
Loading
Loading
+5 −24
Original line number Original line Diff line number Diff line
@@ -1683,17 +1683,6 @@ static int hsw_mm_switch(struct i915_hw_ppgtt *ppgtt,
	return 0;
	return 0;
}
}


static int vgpu_mm_switch(struct i915_hw_ppgtt *ppgtt,
			  struct drm_i915_gem_request *req)
{
	struct intel_engine_cs *engine = req->engine;
	struct drm_i915_private *dev_priv = to_i915(ppgtt->base.dev);

	I915_WRITE(RING_PP_DIR_DCLV(engine), PP_DIR_DCLV_2G);
	I915_WRITE(RING_PP_DIR_BASE(engine), get_pd_offset(ppgtt));
	return 0;
}

static int gen7_mm_switch(struct i915_hw_ppgtt *ppgtt,
static int gen7_mm_switch(struct i915_hw_ppgtt *ppgtt,
			  struct drm_i915_gem_request *req)
			  struct drm_i915_gem_request *req)
{
{
@@ -1731,15 +1720,10 @@ static int gen6_mm_switch(struct i915_hw_ppgtt *ppgtt,
			  struct drm_i915_gem_request *req)
			  struct drm_i915_gem_request *req)
{
{
	struct intel_engine_cs *engine = req->engine;
	struct intel_engine_cs *engine = req->engine;
	struct drm_device *dev = ppgtt->base.dev;
	struct drm_i915_private *dev_priv = req->i915;
	struct drm_i915_private *dev_priv = to_i915(dev);



	I915_WRITE(RING_PP_DIR_DCLV(engine), PP_DIR_DCLV_2G);
	I915_WRITE(RING_PP_DIR_DCLV(engine), PP_DIR_DCLV_2G);
	I915_WRITE(RING_PP_DIR_BASE(engine), get_pd_offset(ppgtt));
	I915_WRITE(RING_PP_DIR_BASE(engine), get_pd_offset(ppgtt));

	POSTING_READ(RING_PP_DIR_DCLV(engine));

	return 0;
	return 0;
}
}


@@ -2074,18 +2058,15 @@ static int gen6_ppgtt_init(struct i915_hw_ppgtt *ppgtt)
	int ret;
	int ret;


	ppgtt->base.pte_encode = ggtt->base.pte_encode;
	ppgtt->base.pte_encode = ggtt->base.pte_encode;
	if (IS_GEN6(dev)) {
	if (intel_vgpu_active(dev_priv) || IS_GEN6(dev))
		ppgtt->switch_mm = gen6_mm_switch;
		ppgtt->switch_mm = gen6_mm_switch;
	} else if (IS_HASWELL(dev)) {
	else if (IS_HASWELL(dev))
		ppgtt->switch_mm = hsw_mm_switch;
		ppgtt->switch_mm = hsw_mm_switch;
	} else if (IS_GEN7(dev)) {
	else if (IS_GEN7(dev))
		ppgtt->switch_mm = gen7_mm_switch;
		ppgtt->switch_mm = gen7_mm_switch;
	} else
	else
		BUG();
		BUG();


	if (intel_vgpu_active(dev_priv))
		ppgtt->switch_mm = vgpu_mm_switch;

	ret = gen6_ppgtt_alloc(ppgtt);
	ret = gen6_ppgtt_alloc(ppgtt);
	if (ret)
	if (ret)
		return ret;
		return ret;