Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c7060f7 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm: Stop filtering according to mode_group in getresources



It's been dead code since forever since mode groups haven't ever been
implemented. On top of that it's also been non-functional since we
only ever filtered the getresources ioctl and not any of the others
nor the mode object lookup code.

Given overwhelming evidence it looks like this isn't a feature we
need, hence remove it.

Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
parent e4f62546
Loading
Loading
Loading
Loading
+30 −80
Original line number Diff line number Diff line
@@ -1771,12 +1771,11 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
	int crtc_count = 0;
	int fb_count = 0;
	int encoder_count = 0;
	int copied = 0, i;
	int copied = 0;
	uint32_t __user *fb_id;
	uint32_t __user *crtc_id;
	uint32_t __user *connector_id;
	uint32_t __user *encoder_id;
	struct drm_mode_group *mode_group;

	if (!drm_core_check_feature(dev, DRIVER_MODESET))
		return -EINVAL;
@@ -1809,12 +1808,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
	/* mode_config.mutex protects the connector list against e.g. DP MST
	 * connector hot-adding. CRTC/Plane lists are invariant. */
	mutex_lock(&dev->mode_config.mutex);
	if (!drm_is_primary_client(file_priv)) {
		struct drm_connector *connector;
		struct drm_encoder *encoder;
		struct drm_crtc *crtc;

		mode_group = NULL;
	drm_for_each_crtc(crtc, dev)
		crtc_count++;

@@ -1823,13 +1816,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,

	drm_for_each_encoder(encoder, dev)
		encoder_count++;
	} else {

		mode_group = &file_priv->master->minor->mode_group;
		crtc_count = mode_group->num_crtcs;
		connector_count = mode_group->num_connectors;
		encoder_count = mode_group->num_encoders;
	}

	card_res->max_height = dev->mode_config.max_height;
	card_res->min_height = dev->mode_config.min_height;
@@ -1840,7 +1826,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
	if (card_res->count_crtcs >= crtc_count) {
		copied = 0;
		crtc_id = (uint32_t __user *)(unsigned long)card_res->crtc_id_ptr;
		if (!mode_group) {
		drm_for_each_crtc(crtc, dev) {
			DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id);
			if (put_user(crtc->base.id, crtc_id + copied)) {
@@ -1849,16 +1834,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
			}
			copied++;
		}
		} else {
			for (i = 0; i < mode_group->num_crtcs; i++) {
				if (put_user(mode_group->id_list[i],
					     crtc_id + copied)) {
					ret = -EFAULT;
					goto out;
				}
				copied++;
			}
		}
	}
	card_res->count_crtcs = crtc_count;

@@ -1866,7 +1841,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
	if (card_res->count_encoders >= encoder_count) {
		copied = 0;
		encoder_id = (uint32_t __user *)(unsigned long)card_res->encoder_id_ptr;
		if (!mode_group) {
		drm_for_each_encoder(encoder, dev) {
			DRM_DEBUG_KMS("[ENCODER:%d:%s]\n", encoder->base.id,
					encoder->name);
@@ -1877,17 +1851,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
			}
			copied++;
		}
		} else {
			for (i = mode_group->num_crtcs; i < mode_group->num_crtcs + mode_group->num_encoders; i++) {
				if (put_user(mode_group->id_list[i],
					     encoder_id + copied)) {
					ret = -EFAULT;
					goto out;
				}
				copied++;
			}

		}
	}
	card_res->count_encoders = encoder_count;

@@ -1895,7 +1858,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
	if (card_res->count_connectors >= connector_count) {
		copied = 0;
		connector_id = (uint32_t __user *)(unsigned long)card_res->connector_id_ptr;
		if (!mode_group) {
		drm_for_each_connector(connector, dev) {
			DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
				connector->base.id,
@@ -1907,18 +1869,6 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
			}
			copied++;
		}
		} else {
			int start = mode_group->num_crtcs +
				mode_group->num_encoders;
			for (i = start; i < start + mode_group->num_connectors; i++) {
				if (put_user(mode_group->id_list[i],
					     connector_id + copied)) {
					ret = -EFAULT;
					goto out;
				}
				copied++;
			}
		}
	}
	card_res->count_connectors = connector_count;