diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-05 20:02:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-05 20:02:05 -0400 |
commit | 413f81eba35d6ede9289b0c8a920c013a84fac71 (patch) | |
tree | 688a864f1fa822ac9b60b08add6c7e2e9d35a372 /drivers/gpu/drm | |
parent | 899ad580fe93c6d2a9f364fb0329ef2c259ccd1d (diff) | |
parent | 42beefc0093725ec0f8cea340cc54c36ccaceea0 (diff) |
Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/r128: fix r128 ioremaps to use ioremap_wc.
drm: cleanup properly in drm_get_dev() failure paths
drm: clean the map list before destroying the hash table
drm: remove unreachable code in drm_sysfs.c
drm: add control node checks missing from kms merge
drm/kms: don't try to shortcut drm mode set function
drm/radeon: bump minor version for occlusion queries support
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/r128/r128_cce.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_drv.h | 3 |
6 files changed, 16 insertions, 32 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/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 | /* |