On 2008.01.30 10:55:40 +0800, Zhenyu Wang wrote:
>
Rebase this patch to current drm git tree, and attach patch
to drm-patches kernel tree for 2.6.25 inclusion.
Thanks.
---
[PATCH] i915: wrap chipset types requiring hw status set ioctl
Also applys to recent added new chipset.
Signed-off-by: Zhenyu Wang <[EMAIL PROTECTED]>
---
shared-core/i915_dma.c | 5 ++++-
shared-core/i915_drv.h | 2 ++
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c
index 3874ed5..9fa4a60 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);
@@ -1396,6 +1396,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 4d3ac0a..be7a47e 100644
--- a/shared-core/i915_drv.h
+++ b/shared-core/i915_drv.h
@@ -1239,6 +1239,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
--
1.5.3.8
[PATCH] i915: wrap chipset types requiring hw status set ioctl
Also applys to recent added new chipset.
Signed-off-by: Zhenyu Wang <[EMAIL PROTECTED]>
---
diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c
index 43986d8..e9d6663 100644
--- a/drivers/char/drm/i915_dma.c
+++ b/drivers/char/drm/i915_dma.c
@@ -171,7 +171,7 @@ static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init)
dev_priv->allow_batchbuffer = 1;
/* 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);
@@ -720,6 +720,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/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h
index 37bbf67..0bb8308 100644
--- a/drivers/char/drm/i915_drv.h
+++ b/drivers/char/drm/i915_drv.h
@@ -1101,6 +1101,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
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel