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: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
c4de0a5d67
commit
ac5c4e7618
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue