Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6

* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/i915: GEM on PAE has problems - disable it for now.
drm/i915: Don't return busy for buffers left on the flushing list.

+19 -2
+9 -1
drivers/gpu/drm/i915/i915_dma.c
··· 717 717 value = dev->pci_device; 718 718 break; 719 719 case I915_PARAM_HAS_GEM: 720 - value = 1; 720 + value = dev_priv->has_gem; 721 721 break; 722 722 default: 723 723 DRM_ERROR("Unknown parameter %d\n", param->param); ··· 829 829 size = drm_get_resource_len(dev, mmio_bar); 830 830 831 831 dev_priv->regs = ioremap(base, size); 832 + 833 + #ifdef CONFIG_HIGHMEM64G 834 + /* don't enable GEM on PAE - needs agp + set_memory_* interface fixes */ 835 + dev_priv->has_gem = 0; 836 + #else 837 + /* enable GEM by default */ 838 + dev_priv->has_gem = 1; 839 + #endif 832 840 833 841 i915_gem_load(dev); 834 842
+2
drivers/gpu/drm/i915/i915_drv.h
··· 106 106 typedef struct drm_i915_private { 107 107 struct drm_device *dev; 108 108 109 + int has_gem; 110 + 109 111 void __iomem *regs; 110 112 drm_local_map_t *sarea; 111 113
+8 -1
drivers/gpu/drm/i915/i915_gem.c
··· 2309 2309 } 2310 2310 2311 2311 obj_priv = obj->driver_private; 2312 - args->busy = obj_priv->active; 2312 + /* Don't count being on the flushing list against the object being 2313 + * done. Otherwise, a buffer left on the flushing list but not getting 2314 + * flushed (because nobody's flushing that domain) won't ever return 2315 + * unbusy and get reused by libdrm's bo cache. The other expected 2316 + * consumer of this interface, OpenGL's occlusion queries, also specs 2317 + * that the objects get unbusy "eventually" without any interference. 2318 + */ 2319 + args->busy = obj_priv->active && obj_priv->last_rendering_seqno != 0; 2313 2320 2314 2321 drm_gem_object_unreference(obj); 2315 2322 mutex_unlock(&dev->struct_mutex);