diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-05-12 05:57:09 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-05-12 05:57:09 -0400 |
commit | ddc4097b77bbb227851a44287acb2fb8a9896cc1 (patch) | |
tree | 319d098879bed7c45543d983de8becd509701b22 /drivers/gpu/drm | |
parent | bec4c99e8637b5b8bd4b0513eacb51da25885e3b (diff) | |
parent | ae31c1fbdbb18d917b0a1139497c2dbd35886989 (diff) |
Merge branch 'topic/drvdata-fix' into topic/asoc
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/drm_crtc_helper.c | 19 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_drv.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_stub.c | 15 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_sysfs.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_tiling.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_opregion.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/r128/r128_cce.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_drv.h | 3 |
15 files changed, 45 insertions, 44 deletions
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index a04639dc633d..45890447feec 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c | |||
@@ -561,7 +561,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, | |||
561 | int saved_x, saved_y; | 561 | int saved_x, saved_y; |
562 | struct drm_encoder *encoder; | 562 | struct drm_encoder *encoder; |
563 | bool ret = true; | 563 | bool ret = true; |
564 | bool depth_changed, bpp_changed; | ||
565 | 564 | ||
566 | adjusted_mode = drm_mode_duplicate(dev, mode); | 565 | adjusted_mode = drm_mode_duplicate(dev, mode); |
567 | 566 | ||
@@ -570,15 +569,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, | |||
570 | if (!crtc->enabled) | 569 | if (!crtc->enabled) |
571 | return true; | 570 | return true; |
572 | 571 | ||
573 | if (old_fb && crtc->fb) { | ||
574 | depth_changed = (old_fb->depth != crtc->fb->depth); | ||
575 | bpp_changed = (old_fb->bits_per_pixel != | ||
576 | crtc->fb->bits_per_pixel); | ||
577 | } else { | ||
578 | depth_changed = true; | ||
579 | bpp_changed = true; | ||
580 | } | ||
581 | |||
582 | saved_mode = crtc->mode; | 572 | saved_mode = crtc->mode; |
583 | saved_x = crtc->x; | 573 | saved_x = crtc->x; |
584 | saved_y = crtc->y; | 574 | saved_y = crtc->y; |
@@ -590,15 +580,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, | |||
590 | crtc->x = x; | 580 | crtc->x = x; |
591 | crtc->y = y; | 581 | crtc->y = y; |
592 | 582 | ||
593 | if (drm_mode_equal(&saved_mode, &crtc->mode)) { | ||
594 | if (saved_x != crtc->x || saved_y != crtc->y || | ||
595 | depth_changed || bpp_changed) { | ||
596 | ret = !crtc_funcs->mode_set_base(crtc, crtc->x, crtc->y, | ||
597 | old_fb); | ||
598 | goto done; | ||
599 | } | ||
600 | } | ||
601 | |||
602 | /* Pass our mode to the connectors and the CRTC to give them a chance to | 583 | /* Pass our mode to the connectors and the CRTC to give them a chance to |
603 | * adjust it according to limitations or connector properties, and also | 584 | * adjust it according to limitations or connector properties, and also |
604 | * a chance to reject the mode entirely. | 585 | * a chance to reject the mode entirely. |
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index c4ada8b6295b..f01def16a669 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c | |||
@@ -456,7 +456,8 @@ int drm_ioctl(struct inode *inode, struct file *filp, | |||
456 | retcode = -EINVAL; | 456 | retcode = -EINVAL; |
457 | } else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) || | 457 | } else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) || |
458 | ((ioctl->flags & DRM_AUTH) && !file_priv->authenticated) || | 458 | ((ioctl->flags & DRM_AUTH) && !file_priv->authenticated) || |
459 | ((ioctl->flags & DRM_MASTER) && !file_priv->is_master)) { | 459 | ((ioctl->flags & DRM_MASTER) && !file_priv->is_master) || |
460 | (!(ioctl->flags & DRM_CONTROL_ALLOW) && (file_priv->minor->type == DRM_MINOR_CONTROL))) { | ||
460 | retcode = -EACCES; | 461 | retcode = -EACCES; |
461 | } else { | 462 | } else { |
462 | if (cmd & (IOC_IN | IOC_OUT)) { | 463 | if (cmd & (IOC_IN | IOC_OUT)) { |
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index ef878615c49f..b9631e3a1ea6 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c | |||
@@ -402,14 +402,14 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, | |||
402 | if (dev->driver->load) { | 402 | if (dev->driver->load) { |
403 | ret = dev->driver->load(dev, ent->driver_data); | 403 | ret = dev->driver->load(dev, ent->driver_data); |
404 | if (ret) | 404 | if (ret) |
405 | goto err_g3; | 405 | goto err_g4; |
406 | } | 406 | } |
407 | 407 | ||
408 | /* setup the grouping for the legacy output */ | 408 | /* setup the grouping for the legacy output */ |
409 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { | 409 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { |
410 | ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group); | 410 | ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group); |
411 | if (ret) | 411 | if (ret) |
412 | goto err_g3; | 412 | goto err_g4; |
413 | } | 413 | } |
414 | 414 | ||
415 | list_add_tail(&dev->driver_item, &driver->device_list); | 415 | list_add_tail(&dev->driver_item, &driver->device_list); |
@@ -420,8 +420,11 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, | |||
420 | 420 | ||
421 | return 0; | 421 | return 0; |
422 | 422 | ||
423 | err_g3: | 423 | err_g4: |
424 | drm_put_minor(&dev->primary); | 424 | drm_put_minor(&dev->primary); |
425 | err_g3: | ||
426 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | ||
427 | drm_put_minor(&dev->control); | ||
425 | err_g2: | 428 | err_g2: |
426 | pci_disable_device(pdev); | 429 | pci_disable_device(pdev); |
427 | err_g1: | 430 | err_g1: |
@@ -502,11 +505,11 @@ void drm_put_dev(struct drm_device *dev) | |||
502 | dev->agp = NULL; | 505 | dev->agp = NULL; |
503 | } | 506 | } |
504 | 507 | ||
505 | drm_ht_remove(&dev->map_hash); | ||
506 | drm_ctxbitmap_cleanup(dev); | ||
507 | |||
508 | list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) | 508 | list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) |
509 | drm_rmmap(dev, r_list->map); | 509 | drm_rmmap(dev, r_list->map); |
510 | drm_ht_remove(&dev->map_hash); | ||
511 | |||
512 | drm_ctxbitmap_cleanup(dev); | ||
510 | 513 | ||
511 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | 514 | if (drm_core_check_feature(dev, DRIVER_MODESET)) |
512 | drm_put_minor(&dev->control); | 515 | drm_put_minor(&dev->control); |
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index 022876ae34f0..8f9372921f82 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c | |||
@@ -489,9 +489,7 @@ int drm_sysfs_device_add(struct drm_minor *minor) | |||
489 | 489 | ||
490 | return 0; | 490 | return 0; |
491 | 491 | ||
492 | device_unregister(&minor->kdev); | ||
493 | err_out: | 492 | err_out: |
494 | |||
495 | return err; | 493 | return err; |
496 | } | 494 | } |
497 | 495 | ||
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index a000cf028826..051134c56aef 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -713,18 +713,18 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data, | |||
713 | mutex_unlock(&dev->struct_mutex); | 713 | mutex_unlock(&dev->struct_mutex); |
714 | if (ret) { | 714 | if (ret) { |
715 | DRM_ERROR("i915_dispatch_cmdbuffer failed\n"); | 715 | DRM_ERROR("i915_dispatch_cmdbuffer failed\n"); |
716 | goto fail_batch_free; | 716 | goto fail_clip_free; |
717 | } | 717 | } |
718 | 718 | ||
719 | if (sarea_priv) | 719 | if (sarea_priv) |
720 | sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); | 720 | sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); |
721 | 721 | ||
722 | fail_batch_free: | ||
723 | drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER); | ||
724 | fail_clip_free: | 722 | fail_clip_free: |
725 | drm_free(cliprects, | 723 | drm_free(cliprects, |
726 | cmdbuf->num_cliprects * sizeof(struct drm_clip_rect), | 724 | cmdbuf->num_cliprects * sizeof(struct drm_clip_rect), |
727 | DRM_MEM_DRIVER); | 725 | DRM_MEM_DRIVER); |
726 | fail_batch_free: | ||
727 | drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER); | ||
728 | 728 | ||
729 | return ret; | 729 | return ret; |
730 | } | 730 | } |
@@ -1232,7 +1232,7 @@ int i915_driver_unload(struct drm_device *dev) | |||
1232 | if (dev_priv->regs != NULL) | 1232 | if (dev_priv->regs != NULL) |
1233 | iounmap(dev_priv->regs); | 1233 | iounmap(dev_priv->regs); |
1234 | 1234 | ||
1235 | intel_opregion_free(dev); | 1235 | intel_opregion_free(dev, 0); |
1236 | 1236 | ||
1237 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { | 1237 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { |
1238 | intel_modeset_cleanup(dev); | 1238 | intel_modeset_cleanup(dev); |
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 6503e2210f65..98560e1e899a 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -77,7 +77,7 @@ static int i915_suspend(struct drm_device *dev, pm_message_t state) | |||
77 | drm_irq_uninstall(dev); | 77 | drm_irq_uninstall(dev); |
78 | } | 78 | } |
79 | 79 | ||
80 | intel_opregion_free(dev); | 80 | intel_opregion_free(dev, 1); |
81 | 81 | ||
82 | if (state.event == PM_EVENT_SUSPEND) { | 82 | if (state.event == PM_EVENT_SUSPEND) { |
83 | /* Shut down the device */ | 83 | /* Shut down the device */ |
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 473a8f7fbdb5..25065923b8a8 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -674,12 +674,12 @@ extern int i915_restore_state(struct drm_device *dev); | |||
674 | #ifdef CONFIG_ACPI | 674 | #ifdef CONFIG_ACPI |
675 | /* i915_opregion.c */ | 675 | /* i915_opregion.c */ |
676 | extern int intel_opregion_init(struct drm_device *dev, int resume); | 676 | extern int intel_opregion_init(struct drm_device *dev, int resume); |
677 | extern void intel_opregion_free(struct drm_device *dev); | 677 | extern void intel_opregion_free(struct drm_device *dev, int suspend); |
678 | extern void opregion_asle_intr(struct drm_device *dev); | 678 | extern void opregion_asle_intr(struct drm_device *dev); |
679 | extern void opregion_enable_asle(struct drm_device *dev); | 679 | extern void opregion_enable_asle(struct drm_device *dev); |
680 | #else | 680 | #else |
681 | static inline int intel_opregion_init(struct drm_device *dev, int resume) { return 0; } | 681 | static inline int intel_opregion_init(struct drm_device *dev, int resume) { return 0; } |
682 | static inline void intel_opregion_free(struct drm_device *dev) { return; } | 682 | static inline void intel_opregion_free(struct drm_device *dev, int suspend) { return; } |
683 | static inline void opregion_asle_intr(struct drm_device *dev) { return; } | 683 | static inline void opregion_asle_intr(struct drm_device *dev) { return; } |
684 | static inline void opregion_enable_asle(struct drm_device *dev) { return; } | 684 | static inline void opregion_enable_asle(struct drm_device *dev) { return; } |
685 | #endif | 685 | #endif |
@@ -787,7 +787,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
787 | (dev)->pci_device == 0x2A42 || \ | 787 | (dev)->pci_device == 0x2A42 || \ |
788 | (dev)->pci_device == 0x2E02 || \ | 788 | (dev)->pci_device == 0x2E02 || \ |
789 | (dev)->pci_device == 0x2E12 || \ | 789 | (dev)->pci_device == 0x2E12 || \ |
790 | (dev)->pci_device == 0x2E22) | 790 | (dev)->pci_device == 0x2E22 || \ |
791 | (dev)->pci_device == 0x2E32) | ||
791 | 792 | ||
792 | #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) | 793 | #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) |
793 | 794 | ||
@@ -796,6 +797,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
796 | #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ | 797 | #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ |
797 | (dev)->pci_device == 0x2E12 || \ | 798 | (dev)->pci_device == 0x2E12 || \ |
798 | (dev)->pci_device == 0x2E22 || \ | 799 | (dev)->pci_device == 0x2E22 || \ |
800 | (dev)->pci_device == 0x2E32 || \ | ||
799 | IS_GM45(dev)) | 801 | IS_GM45(dev)) |
800 | 802 | ||
801 | #define IS_IGDG(dev) ((dev)->pci_device == 0xa001) | 803 | #define IS_IGDG(dev) ((dev)->pci_device == 0xa001) |
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 4642115902d6..ee896d91c5bc 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -4087,8 +4087,10 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data, | |||
4087 | dev_priv->mm.suspended = 0; | 4087 | dev_priv->mm.suspended = 0; |
4088 | 4088 | ||
4089 | ret = i915_gem_init_ringbuffer(dev); | 4089 | ret = i915_gem_init_ringbuffer(dev); |
4090 | if (ret != 0) | 4090 | if (ret != 0) { |
4091 | mutex_unlock(&dev->struct_mutex); | ||
4091 | return ret; | 4092 | return ret; |
4093 | } | ||
4092 | 4094 | ||
4093 | spin_lock(&dev_priv->mm.active_list_lock); | 4095 | spin_lock(&dev_priv->mm.active_list_lock); |
4094 | BUG_ON(!list_empty(&dev_priv->mm.active_list)); | 4096 | BUG_ON(!list_empty(&dev_priv->mm.active_list)); |
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c index f27e523c764f..52a059354e83 100644 --- a/drivers/gpu/drm/i915/i915_gem_tiling.c +++ b/drivers/gpu/drm/i915/i915_gem_tiling.c | |||
@@ -283,7 +283,6 @@ i915_gem_set_tiling(struct drm_device *dev, void *data, | |||
283 | mutex_lock(&dev->struct_mutex); | 283 | mutex_lock(&dev->struct_mutex); |
284 | 284 | ||
285 | if (args->tiling_mode == I915_TILING_NONE) { | 285 | if (args->tiling_mode == I915_TILING_NONE) { |
286 | obj_priv->tiling_mode = I915_TILING_NONE; | ||
287 | args->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; | 286 | args->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; |
288 | } else { | 287 | } else { |
289 | if (args->tiling_mode == I915_TILING_X) | 288 | if (args->tiling_mode == I915_TILING_X) |
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index ee7ce7b78cf7..98bb4c878c4e 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -406,7 +406,7 @@ int i915_irq_emit(struct drm_device *dev, void *data, | |||
406 | drm_i915_irq_emit_t *emit = data; | 406 | drm_i915_irq_emit_t *emit = data; |
407 | int result; | 407 | int result; |
408 | 408 | ||
409 | if (!dev_priv) { | 409 | if (!dev_priv || !dev_priv->ring.virtual_start) { |
410 | DRM_ERROR("called with no initialization\n"); | 410 | DRM_ERROR("called with no initialization\n"); |
411 | return -EINVAL; | 411 | return -EINVAL; |
412 | } | 412 | } |
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c index 8dc1fd3115c2..dc425e74a268 100644 --- a/drivers/gpu/drm/i915/i915_opregion.c +++ b/drivers/gpu/drm/i915/i915_opregion.c | |||
@@ -386,6 +386,7 @@ int intel_opregion_init(struct drm_device *dev, int resume) | |||
386 | if (mboxes & MBOX_ASLE) { | 386 | if (mboxes & MBOX_ASLE) { |
387 | DRM_DEBUG("ASLE supported\n"); | 387 | DRM_DEBUG("ASLE supported\n"); |
388 | opregion->asle = base + OPREGION_ASLE_OFFSET; | 388 | opregion->asle = base + OPREGION_ASLE_OFFSET; |
389 | opregion_enable_asle(dev); | ||
389 | } | 390 | } |
390 | 391 | ||
391 | if (!resume) | 392 | if (!resume) |
@@ -409,7 +410,7 @@ err_out: | |||
409 | return err; | 410 | return err; |
410 | } | 411 | } |
411 | 412 | ||
412 | void intel_opregion_free(struct drm_device *dev) | 413 | void intel_opregion_free(struct drm_device *dev, int suspend) |
413 | { | 414 | { |
414 | struct drm_i915_private *dev_priv = dev->dev_private; | 415 | struct drm_i915_private *dev_priv = dev->dev_private; |
415 | struct intel_opregion *opregion = &dev_priv->opregion; | 416 | struct intel_opregion *opregion = &dev_priv->opregion; |
@@ -417,6 +418,9 @@ void intel_opregion_free(struct drm_device *dev) | |||
417 | if (!opregion->enabled) | 418 | if (!opregion->enabled) |
418 | return; | 419 | return; |
419 | 420 | ||
421 | if (!suspend) | ||
422 | acpi_video_exit(); | ||
423 | |||
420 | opregion->acpi->drdy = 0; | 424 | opregion->acpi->drdy = 0; |
421 | 425 | ||
422 | system_opregion = NULL; | 426 | system_opregion = NULL; |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index e805b590ae71..521194732266 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -1446,6 +1446,7 @@ | |||
1446 | #define DISPPLANE_NO_LINE_DOUBLE 0 | 1446 | #define DISPPLANE_NO_LINE_DOUBLE 0 |
1447 | #define DISPPLANE_STEREO_POLARITY_FIRST 0 | 1447 | #define DISPPLANE_STEREO_POLARITY_FIRST 0 |
1448 | #define DISPPLANE_STEREO_POLARITY_SECOND (1<<18) | 1448 | #define DISPPLANE_STEREO_POLARITY_SECOND (1<<18) |
1449 | #define DISPPLANE_TILED (1<<10) | ||
1449 | #define DSPAADDR 0x70184 | 1450 | #define DSPAADDR 0x70184 |
1450 | #define DSPASTRIDE 0x70188 | 1451 | #define DSPASTRIDE 0x70188 |
1451 | #define DSPAPOS 0x7018C /* reserved */ | 1452 | #define DSPAPOS 0x7018C /* reserved */ |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index c2c8e95ff14d..bdcda36953b0 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -657,6 +657,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y, | |||
657 | int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR); | 657 | int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR); |
658 | int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF); | 658 | int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF); |
659 | int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE; | 659 | int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE; |
660 | int dsptileoff = (pipe == 0 ? DSPATILEOFF : DSPBTILEOFF); | ||
660 | int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR; | 661 | int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR; |
661 | u32 dspcntr, alignment; | 662 | u32 dspcntr, alignment; |
662 | int ret; | 663 | int ret; |
@@ -733,6 +734,13 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y, | |||
733 | mutex_unlock(&dev->struct_mutex); | 734 | mutex_unlock(&dev->struct_mutex); |
734 | return -EINVAL; | 735 | return -EINVAL; |
735 | } | 736 | } |
737 | if (IS_I965G(dev)) { | ||
738 | if (obj_priv->tiling_mode != I915_TILING_NONE) | ||
739 | dspcntr |= DISPPLANE_TILED; | ||
740 | else | ||
741 | dspcntr &= ~DISPPLANE_TILED; | ||
742 | } | ||
743 | |||
736 | I915_WRITE(dspcntr_reg, dspcntr); | 744 | I915_WRITE(dspcntr_reg, dspcntr); |
737 | 745 | ||
738 | Start = obj_priv->gtt_offset; | 746 | Start = obj_priv->gtt_offset; |
@@ -745,6 +753,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y, | |||
745 | I915_READ(dspbase); | 753 | I915_READ(dspbase); |
746 | I915_WRITE(dspsurf, Start); | 754 | I915_WRITE(dspsurf, Start); |
747 | I915_READ(dspsurf); | 755 | I915_READ(dspsurf); |
756 | I915_WRITE(dsptileoff, (y << 16) | x); | ||
748 | } else { | 757 | } else { |
749 | I915_WRITE(dspbase, Start + Offset); | 758 | I915_WRITE(dspbase, Start + Offset); |
750 | I915_READ(dspbase); | 759 | I915_READ(dspbase); |
diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c index 32de4cedc363..077c0455a6b9 100644 --- a/drivers/gpu/drm/r128/r128_cce.c +++ b/drivers/gpu/drm/r128/r128_cce.c | |||
@@ -511,9 +511,9 @@ static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init) | |||
511 | 511 | ||
512 | #if __OS_HAS_AGP | 512 | #if __OS_HAS_AGP |
513 | if (!dev_priv->is_pci) { | 513 | if (!dev_priv->is_pci) { |
514 | drm_core_ioremap(dev_priv->cce_ring, dev); | 514 | drm_core_ioremap_wc(dev_priv->cce_ring, dev); |
515 | drm_core_ioremap(dev_priv->ring_rptr, dev); | 515 | drm_core_ioremap_wc(dev_priv->ring_rptr, dev); |
516 | drm_core_ioremap(dev->agp_buffer_map, dev); | 516 | drm_core_ioremap_wc(dev->agp_buffer_map, dev); |
517 | if (!dev_priv->cce_ring->handle || | 517 | if (!dev_priv->cce_ring->handle || |
518 | !dev_priv->ring_rptr->handle || | 518 | !dev_priv->ring_rptr->handle || |
519 | !dev->agp_buffer_map->handle) { | 519 | !dev->agp_buffer_map->handle) { |
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h index ed4d27e6ee6f..8071d965f142 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.h +++ b/drivers/gpu/drm/radeon/radeon_drv.h | |||
@@ -99,9 +99,10 @@ | |||
99 | * 1.27- Add support for IGP GART | 99 | * 1.27- Add support for IGP GART |
100 | * 1.28- Add support for VBL on CRTC2 | 100 | * 1.28- Add support for VBL on CRTC2 |
101 | * 1.29- R500 3D cmd buffer support | 101 | * 1.29- R500 3D cmd buffer support |
102 | * 1.30- Add support for occlusion queries | ||
102 | */ | 103 | */ |
103 | #define DRIVER_MAJOR 1 | 104 | #define DRIVER_MAJOR 1 |
104 | #define DRIVER_MINOR 29 | 105 | #define DRIVER_MINOR 30 |
105 | #define DRIVER_PATCHLEVEL 0 | 106 | #define DRIVER_PATCHLEVEL 0 |
106 | 107 | ||
107 | /* | 108 | /* |