diff options
author | Dave Airlie <airlied@linux.ie> | 2008-04-22 16:08:17 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2008-04-22 16:08:17 +1000 |
commit | ce8c8425185cfe0390230b7b537f2e0514c721c6 (patch) | |
tree | d05aaddbac70a333be72d1bbc370263bc72fd02a /shared-core | |
parent | f0e38f521790becbf9ca13ef5c579d12c6985d52 (diff) |
i915: gfx hw and i945gme fixes from upstream
From Jesse and Zhenyu originally.
Diffstat (limited to 'shared-core')
-rw-r--r-- | shared-core/i915_dma.c | 5 | ||||
-rw-r--r-- | shared-core/i915_drv.h | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c index 1e493e38..7ccd185c 100644 --- a/shared-core/i915_dma.c +++ b/shared-core/i915_dma.c @@ -245,7 +245,7 @@ static int i915_initialize(struct drm_device * dev, dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A; /* Program Hardware Status Page */ - if (!IS_G33(dev)) { + if (!I915_NEED_GFX_HWS(dev)) { dev_priv->status_page_dmah = drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff); @@ -970,6 +970,9 @@ static int i915_set_status_page(struct drm_device *dev, void *data, drm_i915_private_t *dev_priv = dev->dev_private; drm_i915_hws_addr_t *hws = data; + if (!I915_NEED_GFX_HWS(dev)) + return -EINVAL; + if (!dev_priv) { DRM_ERROR("called with no initialization\n"); return -EINVAL; diff --git a/shared-core/i915_drv.h b/shared-core/i915_drv.h index 3fd416c6..412a2594 100644 --- a/shared-core/i915_drv.h +++ b/shared-core/i915_drv.h @@ -1274,8 +1274,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); #define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) #define IS_I945G(dev) ((dev)->pci_device == 0x2772) -#define IS_I945GM(dev) ((dev)->pci_device == 0x27A2) - +#define IS_I945GM(dev) ((dev)->pci_device == 0x27A2 ||\ + (dev)->pci_device == 0x27AE) #define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \ (dev)->pci_device == 0x2982 || \ (dev)->pci_device == 0x2992 || \ @@ -1298,6 +1298,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); #define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \ IS_I945GM(dev) || IS_I965GM(dev) || IS_IGD_GM(dev)) +#define I915_NEED_GFX_HWS(dev) (IS_G33(dev) || IS_IGD_GM(dev)) + #define PRIMARY_RINGBUFFER_SIZE (128*1024) #endif |