Commit c2b2f02a authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-fixes-2020-08-26' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes



Fixes for v5.9-rc2:
- Take modeset bkl for legacy drivers.
- Allow null crtc in dp_mst.
- Omap locking state fix.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/7af1e52a-27de-8edc-d0b2-e23b01e8bc96@linux.intel.com
parents e0358037 7fd5b254
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@
#include <drm/drm_bridge.h>
#include <drm/drm_damage_helper.h>
#include <drm/drm_device.h>
#include <drm/drm_drv.h>
#include <drm/drm_plane_helper.h>
#include <drm/drm_print.h>
#include <drm/drm_self_refresh_helper.h>
@@ -3106,7 +3107,7 @@ void drm_atomic_helper_shutdown(struct drm_device *dev)
	if (ret)
		DRM_ERROR("Disabling all crtc's during unload failed with %i\n", ret);

	DRM_MODESET_LOCK_ALL_END(ctx, ret);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
}
EXPORT_SYMBOL(drm_atomic_helper_shutdown);

@@ -3246,7 +3247,7 @@ struct drm_atomic_state *drm_atomic_helper_suspend(struct drm_device *dev)
	}

unlock:
	DRM_MODESET_LOCK_ALL_END(ctx, err);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, err);
	if (err)
		return ERR_PTR(err);

@@ -3327,7 +3328,7 @@ int drm_atomic_helper_resume(struct drm_device *dev,

	err = drm_atomic_helper_commit_duplicated_state(state, &ctx);

	DRM_MODESET_LOCK_ALL_END(ctx, err);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, err);
	drm_atomic_state_put(state);

	return err;
+1 −1
Original line number Diff line number Diff line
@@ -294,7 +294,7 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
				     crtc->gamma_size, &ctx);

out:
	DRM_MODESET_LOCK_ALL_END(ctx, ret);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
	return ret;

}
+1 −3
Original line number Diff line number Diff line
@@ -588,7 +588,6 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
	if (crtc_req->mode_valid && !drm_lease_held(file_priv, plane->base.id))
		return -EACCES;

	mutex_lock(&crtc->dev->mode_config.mutex);
	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx,
				   DRM_MODESET_ACQUIRE_INTERRUPTIBLE, ret);

@@ -756,8 +755,7 @@ out:
	fb = NULL;
	mode = NULL;

	DRM_MODESET_LOCK_ALL_END(ctx, ret);
	mutex_unlock(&crtc->dev->mode_config.mutex);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	return ret;
}
+2 −2
Original line number Diff line number Diff line
@@ -5040,8 +5040,8 @@ int drm_dp_mst_add_affected_dsc_crtcs(struct drm_atomic_state *state, struct drm

		crtc = conn_state->crtc;

		if (WARN_ON(!crtc))
			return -EINVAL;
		if (!crtc)
			continue;

		if (!drm_dp_mst_dsc_aux_for_port(pos->port))
			continue;
+2 −2
Original line number Diff line number Diff line
@@ -428,7 +428,7 @@ int drm_mode_obj_get_properties_ioctl(struct drm_device *dev, void *data,
out_unref:
	drm_mode_object_put(obj);
out:
	DRM_MODESET_LOCK_ALL_END(ctx, ret);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
	return ret;
}

@@ -470,7 +470,7 @@ static int set_property_legacy(struct drm_mode_object *obj,
		break;
	}
	drm_property_change_valid_put(prop, ref);
	DRM_MODESET_LOCK_ALL_END(ctx, ret);
	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);

	return ret;
}
Loading