Commit 413f81eba35d6ede9289b0c8a920c013a84fac71

Authored by Linus Torvalds

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

Showing 6 changed files Side-by-side Diff

drivers/gpu/drm/drm_crtc_helper.c
... ... @@ -561,7 +561,6 @@
561 561 int saved_x, saved_y;
562 562 struct drm_encoder *encoder;
563 563 bool ret = true;
564   - bool depth_changed, bpp_changed;
565 564  
566 565 adjusted_mode = drm_mode_duplicate(dev, mode);
567 566  
... ... @@ -570,15 +569,6 @@
570 569 if (!crtc->enabled)
571 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 572 saved_mode = crtc->mode;
583 573 saved_x = crtc->x;
584 574 saved_y = crtc->y;
... ... @@ -589,15 +579,6 @@
589 579 crtc->mode = *mode;
590 580 crtc->x = x;
591 581 crtc->y = y;
592   -
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 582  
602 583 /* Pass our mode to the connectors and the CRTC to give them a chance to
603 584 * adjust it according to limitations or connector properties, and also
drivers/gpu/drm/drm_drv.c
... ... @@ -456,7 +456,8 @@
456 456 retcode = -EINVAL;
457 457 } else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) ||
458 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 461 retcode = -EACCES;
461 462 } else {
462 463 if (cmd & (IOC_IN | IOC_OUT)) {
drivers/gpu/drm/drm_stub.c
... ... @@ -402,14 +402,14 @@
402 402 if (dev->driver->load) {
403 403 ret = dev->driver->load(dev, ent->driver_data);
404 404 if (ret)
405   - goto err_g3;
  405 + goto err_g4;
406 406 }
407 407  
408 408 /* setup the grouping for the legacy output */
409 409 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
410 410 ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
411 411 if (ret)
412   - goto err_g3;
  412 + goto err_g4;
413 413 }
414 414  
415 415 list_add_tail(&dev->driver_item, &driver->device_list);
416 416  
... ... @@ -420,8 +420,11 @@
420 420  
421 421 return 0;
422 422  
423   -err_g3:
  423 +err_g4:
424 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 428 err_g2:
426 429 pci_disable_device(pdev);
427 430 err_g1:
428 431  
... ... @@ -502,11 +505,11 @@
502 505 dev->agp = NULL;
503 506 }
504 507  
505   - drm_ht_remove(&dev->map_hash);
506   - drm_ctxbitmap_cleanup(dev);
507   -
508 508 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
509 509 drm_rmmap(dev, r_list->map);
  510 + drm_ht_remove(&dev->map_hash);
  511 +
  512 + drm_ctxbitmap_cleanup(dev);
510 513  
511 514 if (drm_core_check_feature(dev, DRIVER_MODESET))
512 515 drm_put_minor(&dev->control);
drivers/gpu/drm/drm_sysfs.c
... ... @@ -489,9 +489,7 @@
489 489  
490 490 return 0;
491 491  
492   - device_unregister(&minor->kdev);
493 492 err_out:
494   -
495 493 return err;
496 494 }
497 495  
drivers/gpu/drm/r128/r128_cce.c
... ... @@ -511,9 +511,9 @@
511 511  
512 512 #if __OS_HAS_AGP
513 513 if (!dev_priv->is_pci) {
514   - drm_core_ioremap(dev_priv->cce_ring, dev);
515   - drm_core_ioremap(dev_priv->ring_rptr, dev);
516   - drm_core_ioremap(dev->agp_buffer_map, dev);
  514 + drm_core_ioremap_wc(dev_priv->cce_ring, dev);
  515 + drm_core_ioremap_wc(dev_priv->ring_rptr, dev);
  516 + drm_core_ioremap_wc(dev->agp_buffer_map, dev);
517 517 if (!dev_priv->cce_ring->handle ||
518 518 !dev_priv->ring_rptr->handle ||
519 519 !dev->agp_buffer_map->handle) {
drivers/gpu/drm/radeon/radeon_drv.h
... ... @@ -99,9 +99,10 @@
99 99 * 1.27- Add support for IGP GART
100 100 * 1.28- Add support for VBL on CRTC2
101 101 * 1.29- R500 3D cmd buffer support
  102 + * 1.30- Add support for occlusion queries
102 103 */
103 104 #define DRIVER_MAJOR 1
104   -#define DRIVER_MINOR 29
  105 +#define DRIVER_MINOR 30
105 106 #define DRIVER_PATCHLEVEL 0
106 107  
107 108 /*