Commit e2b665c4 authored by Adam Jackson's avatar Adam Jackson Committed by Daniel Vetter

drm/i915: Pull MTRR setup to its own function

No functional change here, just clarifying code flow.
Signed-off-by: default avatarAdam Jackson <ajax@redhat.com>
Reviewed-by: default avatarKenneth Graunke <kenneth@whitecape.org>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent fa37d39e
...@@ -1914,6 +1914,22 @@ ips_ping_for_i915_load(void) ...@@ -1914,6 +1914,22 @@ ips_ping_for_i915_load(void)
} }
} }
static void
i915_mtrr_setup(struct drm_i915_private *dev_priv, unsigned long base,
unsigned long size)
{
/* Set up a WC MTRR for non-PAT systems. This is more common than
* one would think, because the kernel disables PAT on first
* generation Core chips because WC PAT gets overridden by a UC
* MTRR if present. Even if a UC MTRR isn't present.
*/
dev_priv->mm.gtt_mtrr = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
if (dev_priv->mm.gtt_mtrr < 0) {
DRM_INFO("MTRR allocation failed. Graphics "
"performance may suffer.\n");
}
}
/** /**
* i915_driver_load - setup chip and create an initial config * i915_driver_load - setup chip and create an initial config
* @dev: DRM device * @dev: DRM device
...@@ -1992,18 +2008,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) ...@@ -1992,18 +2008,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
goto out_rmmap; goto out_rmmap;
} }
/* Set up a WC MTRR for non-PAT systems. This is more common than i915_mtrr_setup(dev_priv, dev->agp->base, agp_size);
* one would think, because the kernel disables PAT on first
* generation Core chips because WC PAT gets overridden by a UC
* MTRR if present. Even if a UC MTRR isn't present.
*/
dev_priv->mm.gtt_mtrr = mtrr_add(dev->agp->base,
agp_size,
MTRR_TYPE_WRCOMB, 1);
if (dev_priv->mm.gtt_mtrr < 0) {
DRM_INFO("MTRR allocation failed. Graphics "
"performance may suffer.\n");
}
/* The i915 workqueue is primarily used for batched retirement of /* The i915 workqueue is primarily used for batched retirement of
* requests (and thus managing bo) once the task has been completed * requests (and thus managing bo) once the task has been completed
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment