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

Commit ac5c4e76 authored by Dave Airlie's avatar Dave Airlie
Browse files

drm/i915: GEM on PAE has problems - disable it for now.



On PAE systems, GEM allocates pages using shmem, and passes these
pages to be bound into AGP, however the AGP interfaces + the x86
set_memory interfaces all take unsigned long not dma_addr_t.

The initial fix for this was a mess, so we need to do this correctly
for 2.6.29.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent c4de0a5d
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -717,7 +717,7 @@ static int i915_getparam(struct drm_device *dev, void *data,
		value = dev->pci_device;
		break;
	case I915_PARAM_HAS_GEM:
		value = 1;
		value = dev_priv->has_gem;
		break;
	default:
		DRM_ERROR("Unknown parameter %d\n", param->param);
@@ -830,6 +830,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)

	dev_priv->regs = ioremap(base, size);

#ifdef CONFIG_HIGHMEM64G
	/* don't enable GEM on PAE - needs agp + set_memory_* interface fixes */
	dev_priv->has_gem = 0;
#else
	/* enable GEM by default */
	dev_priv->has_gem = 1;
#endif

	i915_gem_load(dev);

	/* Init HWS */
+2 −0
Original line number Diff line number Diff line
@@ -106,6 +106,8 @@ struct intel_opregion {
typedef struct drm_i915_private {
	struct drm_device *dev;

	int has_gem;

	void __iomem *regs;
	drm_local_map_t *sarea;