Skip to content

Commit 413f81e

Browse files
committed
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
2 parents 899ad58 + 42beefc commit 413f81e

File tree

6 files changed

+16
-32
lines changed

6 files changed

+16
-32
lines changed

drivers/gpu/drm/drm_crtc_helper.c

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
561561
int saved_x, saved_y;
562562
struct drm_encoder *encoder;
563563
bool ret = true;
564-
bool depth_changed, bpp_changed;
565564

566565
adjusted_mode = drm_mode_duplicate(dev, mode);
567566

@@ -570,15 +569,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
570569
if (!crtc->enabled)
571570
return true;
572571

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-
582572
saved_mode = crtc->mode;
583573
saved_x = crtc->x;
584574
saved_y = crtc->y;
@@ -590,15 +580,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
590580
crtc->x = x;
591581
crtc->y = y;
592582

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-
602583
/* Pass our mode to the connectors and the CRTC to give them a chance to
603584
* adjust it according to limitations or connector properties, and also
604585
* a chance to reject the mode entirely.

drivers/gpu/drm/drm_drv.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,8 @@ int drm_ioctl(struct inode *inode, struct file *filp,
456456
retcode = -EINVAL;
457457
} else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) ||
458458
((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))) {
460461
retcode = -EACCES;
461462
} else {
462463
if (cmd & (IOC_IN | IOC_OUT)) {

drivers/gpu/drm/drm_stub.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -402,14 +402,14 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
402402
if (dev->driver->load) {
403403
ret = dev->driver->load(dev, ent->driver_data);
404404
if (ret)
405-
goto err_g3;
405+
goto err_g4;
406406
}
407407

408408
/* setup the grouping for the legacy output */
409409
if (drm_core_check_feature(dev, DRIVER_MODESET)) {
410410
ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
411411
if (ret)
412-
goto err_g3;
412+
goto err_g4;
413413
}
414414

415415
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,
420420

421421
return 0;
422422

423-
err_g3:
423+
err_g4:
424424
drm_put_minor(&dev->primary);
425+
err_g3:
426+
if (drm_core_check_feature(dev, DRIVER_MODESET))
427+
drm_put_minor(&dev->control);
425428
err_g2:
426429
pci_disable_device(pdev);
427430
err_g1:
@@ -502,11 +505,11 @@ void drm_put_dev(struct drm_device *dev)
502505
dev->agp = NULL;
503506
}
504507

505-
drm_ht_remove(&dev->map_hash);
506-
drm_ctxbitmap_cleanup(dev);
507-
508508
list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
509509
drm_rmmap(dev, r_list->map);
510+
drm_ht_remove(&dev->map_hash);
511+
512+
drm_ctxbitmap_cleanup(dev);
510513

511514
if (drm_core_check_feature(dev, DRIVER_MODESET))
512515
drm_put_minor(&dev->control);

drivers/gpu/drm/drm_sysfs.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,9 +489,7 @@ int drm_sysfs_device_add(struct drm_minor *minor)
489489

490490
return 0;
491491

492-
device_unregister(&minor->kdev);
493492
err_out:
494-
495493
return err;
496494
}
497495

drivers/gpu/drm/r128/r128_cce.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,9 @@ static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init)
511511

512512
#if __OS_HAS_AGP
513513
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);
517517
if (!dev_priv->cce_ring->handle ||
518518
!dev_priv->ring_rptr->handle ||
519519
!dev->agp_buffer_map->handle) {

drivers/gpu/drm/radeon/radeon_drv.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,10 @@
9999
* 1.27- Add support for IGP GART
100100
* 1.28- Add support for VBL on CRTC2
101101
* 1.29- R500 3D cmd buffer support
102+
* 1.30- Add support for occlusion queries
102103
*/
103104
#define DRIVER_MAJOR 1
104-
#define DRIVER_MINOR 29
105+
#define DRIVER_MINOR 30
105106
#define DRIVER_PATCHLEVEL 0
106107

107108
/*

0 commit comments

Comments
 (0)