All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups
@ 2012-05-17 11:27 Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 1/6] drm: Delete the vblank timer synchronously at cleanup time Laurent Pinchart
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Laurent Pinchart @ 2012-05-17 11:27 UTC (permalink / raw)
  To: dri-devel

Hello,

While studying the DRM core I came across a couple of issues or strange
constructs. Here are 6 patches that try to fix them.

Criticism is as usual welcome. Please bear with my lack of experience with the
DRM core :-)

Laurent Pinchart (6):
  drm: Delete the vblank timer synchronously at cleanup time
  drm: Miscellaneous typo fixes and documentation updates
  drm: Don't initialize local ret variable when not needed
  drm: Constify gem_vm_ops pointer
  drm: Constify drm_mode_config_funcs pointer
  drm: Make the CRTC gamma_set operation optional

 drivers/gpu/drm/drm_crtc.c                |   19 ++++++++++++-------
 drivers/gpu/drm/drm_crtc_helper.c         |    2 +-
 drivers/gpu/drm/drm_edid_load.c           |    8 ++++----
 drivers/gpu/drm/drm_fb_helper.c           |    8 ++++----
 drivers/gpu/drm/drm_gem.c                 |    2 +-
 drivers/gpu/drm/drm_irq.c                 |   23 +++++++++--------------
 drivers/gpu/drm/drm_lock.c                |    2 +-
 drivers/gpu/drm/drm_stub.c                |    2 +-
 drivers/gpu/drm/drm_sysfs.c               |   10 +++++-----
 drivers/gpu/drm/exynos/exynos_drm_drv.c   |    2 +-
 drivers/gpu/drm/exynos/exynos_drm_fb.c    |    2 +-
 drivers/gpu/drm/gma500/framebuffer.c      |    4 ++--
 drivers/gpu/drm/gma500/psb_drv.c          |    2 +-
 drivers/gpu/drm/i915/i915_drv.c           |    2 +-
 drivers/gpu/drm/i915/intel_display.c      |    2 +-
 drivers/gpu/drm/nouveau/nouveau_display.c |    2 +-
 drivers/gpu/drm/radeon/radeon_display.c   |    2 +-
 drivers/gpu/drm/udl/udl_drv.c             |    2 +-
 drivers/gpu/drm/udl/udl_modeset.c         |    2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c       |    2 +-
 drivers/staging/omapdrm/omap_crtc.c       |    7 -------
 drivers/staging/omapdrm/omap_drv.c        |    4 ++--
 include/drm/drmP.h                        |   12 ++++++------
 include/drm/drm_crtc.h                    |   23 ++++++++---------------
 include/drm/drm_crtc_helper.h             |   21 +++++++++++++++++++++
 25 files changed, 87 insertions(+), 80 deletions(-)

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH/RFC 1/6] drm: Delete the vblank timer synchronously at cleanup time
  2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
@ 2012-05-17 11:27 ` Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 2/6] drm: Miscellaneous typo fixes and documentation updates Laurent Pinchart
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2012-05-17 11:27 UTC (permalink / raw)
  To: dri-devel

A race condition exists in drm_vblank_cleanup() if the vblank disable
timer callback runs after freeing the memory that its callback function
tries to access. Fix this by deleting the timer synchronously.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/drm_irq.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index c869436..acd2cb4 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -189,7 +189,7 @@ void drm_vblank_cleanup(struct drm_device *dev)
 	if (dev->num_crtcs == 0)
 		return;
 
-	del_timer(&dev->vblank_disable_timer);
+	del_timer_sync(&dev->vblank_disable_timer);
 
 	vblank_disable_fn((unsigned long)dev);
 
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH/RFC 2/6] drm: Miscellaneous typo fixes and documentation updates
  2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 1/6] drm: Delete the vblank timer synchronously at cleanup time Laurent Pinchart
@ 2012-05-17 11:27 ` Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 3/6] drm: Don't initialize local ret variable when not needed Laurent Pinchart
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2012-05-17 11:27 UTC (permalink / raw)
  To: dri-devel

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/drm_crtc.c    |    2 +-
 drivers/gpu/drm/drm_sysfs.c   |    8 ++++----
 include/drm/drmP.h            |   10 +++++-----
 include/drm/drm_crtc.h        |   21 +++++++--------------
 include/drm/drm_crtc_helper.h |   21 +++++++++++++++++++++
 5 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index c79870a..11ea8a7 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -361,7 +361,7 @@ EXPORT_SYMBOL(drm_framebuffer_cleanup);
  * @funcs: callbacks for the new CRTC
  *
  * LOCKING:
- * Caller must hold mode config lock.
+ * Takes mode_config lock.
  *
  * Inits a new object created as base part of an driver crtc object.
  *
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index 5a7bd51..c53d8e7 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -347,17 +347,17 @@ static struct bin_attribute edid_attr = {
 };
 
 /**
- * drm_sysfs_connector_add - add an connector to sysfs
+ * drm_sysfs_connector_add - add a connector to sysfs
  * @connector: connector to add
  *
- * Create an connector device in sysfs, along with its associated connector
+ * Create a connector device in sysfs, along with its associated connector
  * properties (so far, connection status, dpms, mode list & edid) and
  * generate a hotplug event so userspace knows there's a new connector
  * available.
  *
  * Note:
- * This routine should only be called *once* for each DRM minor registered.
- * A second call for an already registered device will trigger the BUG_ON
+ * This routine should only be called *once* for each registered connector.
+ * A second call for an already registered connector will trigger the BUG_ON
  * below.
  */
 int drm_sysfs_connector_add(struct drm_connector *connector)
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index dd73104..95ef926 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -755,11 +755,11 @@ struct drm_driver {
 	 * @dev: DRM device
 	 * @crtc: counter to fetch
 	 *
-	 * Driver callback for fetching a raw hardware vblank counter
-	 * for @crtc.  If a device doesn't have a hardware counter, the
-	 * driver can simply return the value of drm_vblank_count and
-	 * make the enable_vblank() and disable_vblank() hooks into no-ops,
-	 * leaving interrupts enabled at all times.
+	 * Driver callback for fetching a raw hardware vblank counter for @crtc.
+	 * If a device doesn't have a hardware counter, the driver can simply
+	 * return the value of drm_vblank_count. The DRM core will account for
+	 * missed vblank events while interrupts where disabled based on system
+	 * timestamps.
 	 *
 	 * Wraparound handling and loss of events due to modesetting is dealt
 	 * with in the DRM core code.
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index e250eda..201001c 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -285,19 +285,15 @@ struct drm_plane;
 
 /**
  * drm_crtc_funcs - control CRTCs for a given device
- * @reset: reset CRTC after state has been invalidate (e.g. resume)
- * @dpms: control display power levels
  * @save: save CRTC state
- * @resore: restore CRTC state
- * @lock: lock the CRTC
- * @unlock: unlock the CRTC
- * @shadow_allocate: allocate shadow pixmap
- * @shadow_create: create shadow pixmap for rotation support
- * @shadow_destroy: free shadow pixmap
- * @mode_fixup: fixup proposed mode
- * @mode_set: set the desired mode on the CRTC
+ * @restore: restore CRTC state
+ * @reset: reset CRTC after state has been invalidate (e.g. resume)
+ * @cursor_set: setup the cursor
+ * @cursor_move: move the cursor
  * @gamma_set: specify color ramp for CRTC
  * @destroy: deinit and free object.
+ * @set_config: apply a new CRTC configuration
+ * @page_flip: initiate a page flip
  *
  * The drm_crtc_funcs structure is the central CRTC management structure
  * in the DRM.  Each CRTC controls one or more connectors (note that the name
@@ -404,11 +400,8 @@ struct drm_crtc {
  * @save: save connector state
  * @restore: restore connector state
  * @reset: reset connector after state has been invalidate (e.g. resume)
- * @mode_valid: is this mode valid on the given connector?
- * @mode_fixup: try to fixup proposed mode for this connector
- * @mode_set: set this mode
  * @detect: is this connector active?
- * @get_modes: get mode list for this connector
+ * @fill_modes: fill mode list for this connector
  * @set_property: property for this connector may need update
  * @destroy: make object go away
  * @force: notify the driver the connector is forced on
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
index 37515d1..63f0ac9 100644
--- a/include/drm/drm_crtc_helper.h
+++ b/include/drm/drm_crtc_helper.h
@@ -44,6 +44,13 @@ enum mode_set_atomic {
 	ENTER_ATOMIC_MODE_SET,
 };
 
+/**
+ * drm_crtc_helper_funcs - helper operations for CRTCs
+ * @mode_fixup: try to fixup proposed mode for this connector
+ * @mode_set: set this mode
+ *
+ * The helper operations are called by the mid-layer CRTC helper.
+ */
 struct drm_crtc_helper_funcs {
 	/*
 	 * Control power levels on the CRTC.  If the mode passed in is
@@ -76,6 +83,13 @@ struct drm_crtc_helper_funcs {
 	void (*disable)(struct drm_crtc *crtc);
 };
 
+/**
+ * drm_encoder_helper_funcs - helper operations for encoders
+ * @mode_fixup: try to fixup proposed mode for this connector
+ * @mode_set: set this mode
+ *
+ * The helper operations are called by the mid-layer CRTC helper.
+ */
 struct drm_encoder_helper_funcs {
 	void (*dpms)(struct drm_encoder *encoder, int mode);
 	void (*save)(struct drm_encoder *encoder);
@@ -97,6 +111,13 @@ struct drm_encoder_helper_funcs {
 	void (*disable)(struct drm_encoder *encoder);
 };
 
+/**
+ * drm_connector_helper_funcs - helper operations for connectors
+ * @get_modes: get mode list for this connector
+ * @mode_valid: is this mode valid on the given connector?
+ *
+ * The helper operations are called by the mid-layer CRTC helper.
+ */
 struct drm_connector_helper_funcs {
 	int (*get_modes)(struct drm_connector *connector);
 	int (*mode_valid)(struct drm_connector *connector,
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH/RFC 3/6] drm: Don't initialize local ret variable when not needed
  2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 1/6] drm: Delete the vblank timer synchronously at cleanup time Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 2/6] drm: Miscellaneous typo fixes and documentation updates Laurent Pinchart
@ 2012-05-17 11:27 ` Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 4/6] drm: Constify gem_vm_ops pointer Laurent Pinchart
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2012-05-17 11:27 UTC (permalink / raw)
  To: dri-devel

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/drm_crtc.c        |   12 ++++++------
 drivers/gpu/drm/drm_crtc_helper.c |    2 +-
 drivers/gpu/drm/drm_edid_load.c   |    8 ++++----
 drivers/gpu/drm/drm_fb_helper.c   |    5 +----
 drivers/gpu/drm/drm_gem.c         |    2 +-
 drivers/gpu/drm/drm_irq.c         |   21 ++++++++-------------
 drivers/gpu/drm/drm_lock.c        |    2 +-
 drivers/gpu/drm/drm_stub.c        |    2 +-
 drivers/gpu/drm/drm_sysfs.c       |    2 +-
 9 files changed, 24 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 11ea8a7..bfc9b86 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1830,7 +1830,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
 	struct drm_display_mode *mode = NULL;
 	struct drm_mode_set set;
 	uint32_t __user *set_connectors_ptr;
-	int ret = 0;
+	int ret;
 	int i;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
@@ -2208,7 +2208,7 @@ int drm_mode_addfb2(struct drm_device *dev,
 	struct drm_mode_fb_cmd2 *r = data;
 	struct drm_mode_config *config = &dev->mode_config;
 	struct drm_framebuffer *fb;
-	int ret = 0;
+	int ret;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
@@ -2365,7 +2365,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
 	struct drm_framebuffer *fb;
 	unsigned flags;
 	int num_clips;
-	int ret = 0;
+	int ret;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
@@ -2564,7 +2564,7 @@ int drm_mode_attachmode_ioctl(struct drm_device *dev,
 	struct drm_display_mode *mode;
 	struct drm_mode_object *obj;
 	struct drm_mode_modeinfo *umode = &mode_cmd->mode;
-	int ret = 0;
+	int ret;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
@@ -2618,7 +2618,7 @@ int drm_mode_detachmode_ioctl(struct drm_device *dev,
 	struct drm_connector *connector;
 	struct drm_display_mode mode;
 	struct drm_mode_modeinfo *umode = &mode_cmd->mode;
-	int ret = 0;
+	int ret;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
@@ -3009,7 +3009,7 @@ int drm_mode_connector_update_edid_property(struct drm_connector *connector,
 					    struct edid *edid)
 {
 	struct drm_device *dev = connector->dev;
-	int ret = 0, size;
+	int ret, size;
 
 	if (connector->edid_blob_ptr)
 		drm_property_destroy_blob(dev, connector->edid_blob_ptr);
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 8111889..ab9aff3 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -518,7 +518,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
 	int count = 0, ro, fail = 0;
 	struct drm_crtc_helper_funcs *crtc_funcs;
 	struct drm_mode_set save_set;
-	int ret = 0;
+	int ret;
 	int i;
 
 	DRM_DEBUG_KMS("\n");
diff --git a/drivers/gpu/drm/drm_edid_load.c b/drivers/gpu/drm/drm_edid_load.c
index da9acba..e04f14e 100644
--- a/drivers/gpu/drm/drm_edid_load.c
+++ b/drivers/gpu/drm/drm_edid_load.c
@@ -220,18 +220,18 @@ int drm_load_edid_firmware(struct drm_connector *connector)
 {
 	char *connector_name = drm_get_connector_name(connector);
 	char *edidname = edid_firmware, *last, *colon;
-	int ret = 0;
+	int ret;
 
 	if (*edidname == '\0')
-		return ret;
+		return 0;
 
 	colon = strchr(edidname, ':');
 	if (colon != NULL) {
 		if (strncmp(connector_name, edidname, colon - edidname))
-			return ret;
+			return 0;
 		edidname = colon + 1;
 		if (*edidname == '\0')
-			return ret;
+			return 0;
 	}
 
 	last = edidname + strlen(edidname) - 1;
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index a0d6e89..bd92616 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -383,7 +383,6 @@ int drm_fb_helper_init(struct drm_device *dev,
 		       int crtc_count, int max_conn_count)
 {
 	struct drm_crtc *crtc;
-	int ret = 0;
 	int i;
 
 	fb_helper->dev = dev;
@@ -408,10 +407,8 @@ int drm_fb_helper_init(struct drm_device *dev,
 				sizeof(struct drm_connector *),
 				GFP_KERNEL);
 
-		if (!fb_helper->crtc_info[i].mode_set.connectors) {
-			ret = -ENOMEM;
+		if (!fb_helper->crtc_info[i].mode_set.connectors)
 			goto out_free;
-		}
 		fb_helper->crtc_info[i].mode_set.num_connectors = 0;
 	}
 
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 83114b5..e4705ee 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -329,7 +329,7 @@ drm_gem_create_mmap_offset(struct drm_gem_object *obj)
 	struct drm_gem_mm *mm = dev->mm_private;
 	struct drm_map_list *list;
 	struct drm_local_map *map;
-	int ret = 0;
+	int ret;
 
 	/* Set the object up for mmap'ing */
 	list = &obj->map_list;
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index acd2cb4..c798eea 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -310,7 +310,7 @@ static void drm_irq_vgaarb_nokms(void *cookie, bool state)
  */
 int drm_irq_install(struct drm_device *dev)
 {
-	int ret = 0;
+	int ret;
 	unsigned long sh_flags = 0;
 	char *irqname;
 
@@ -731,7 +731,7 @@ EXPORT_SYMBOL(drm_calc_vbltimestamp_from_scanoutpos);
 u32 drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
 			      struct timeval *tvblank, unsigned flags)
 {
-	int ret = 0;
+	int ret;
 
 	/* Define requested maximum error on timestamps (nanoseconds). */
 	int max_error = (int) drm_timestamp_precision * 1000;
@@ -1031,18 +1031,15 @@ int drm_modeset_ctl(struct drm_device *dev, void *data,
 		    struct drm_file *file_priv)
 {
 	struct drm_modeset_ctl *modeset = data;
-	int ret = 0;
 	unsigned int crtc;
 
 	/* If drm_vblank_init() hasn't been called yet, just no-op */
 	if (!dev->num_crtcs)
-		goto out;
+		return 0;
 
 	crtc = modeset->crtc;
-	if (crtc >= dev->num_crtcs) {
-		ret = -EINVAL;
-		goto out;
-	}
+	if (crtc >= dev->num_crtcs)
+		return -EINVAL;
 
 	switch (modeset->cmd) {
 	case _DRM_PRE_MODESET:
@@ -1052,12 +1049,10 @@ int drm_modeset_ctl(struct drm_device *dev, void *data,
 		drm_vblank_post_modeset(dev, crtc);
 		break;
 	default:
-		ret = -EINVAL;
-		break;
+		return -EINVAL;
 	}
 
-out:
-	return ret;
+	return 0;
 }
 
 static int drm_queue_vblank_event(struct drm_device *dev, int pipe,
@@ -1154,7 +1149,7 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
 		    struct drm_file *file_priv)
 {
 	union drm_wait_vblank *vblwait = data;
-	int ret = 0;
+	int ret;
 	unsigned int flags, seq, crtc, high_crtc;
 
 	if ((!drm_dev_to_irq(dev)) || (!dev->irq_enabled))
diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
index c79c713..5211520 100644
--- a/drivers/gpu/drm/drm_lock.c
+++ b/drivers/gpu/drm/drm_lock.c
@@ -331,7 +331,7 @@ static int drm_notifier(void *priv)
 
 void drm_idlelock_take(struct drm_lock_data *lock_data)
 {
-	int ret = 0;
+	int ret;
 
 	spin_lock_bh(&lock_data->spinlock);
 	lock_data->kernel_waiters++;
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index aa454f8..774ae9e 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -211,7 +211,7 @@ EXPORT_SYMBOL(drm_master_put);
 int drm_setmaster_ioctl(struct drm_device *dev, void *data,
 			struct drm_file *file_priv)
 {
-	int ret = 0;
+	int ret;
 
 	if (file_priv->is_master)
 		return 0;
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index c53d8e7..45cf1dd 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -366,7 +366,7 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
 	int attr_cnt = 0;
 	int opt_cnt = 0;
 	int i;
-	int ret = 0;
+	int ret;
 
 	/* We shouldn't get called more than once for the same connector */
 	BUG_ON(device_is_registered(&connector->kdev));
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH/RFC 4/6] drm: Constify gem_vm_ops pointer
  2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
                   ` (2 preceding siblings ...)
  2012-05-17 11:27 ` [PATCH/RFC 3/6] drm: Don't initialize local ret variable when not needed Laurent Pinchart
@ 2012-05-17 11:27 ` Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 5/6] drm: Constify drm_mode_config_funcs pointer Laurent Pinchart
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2012-05-17 11:27 UTC (permalink / raw)
  To: dri-devel; +Cc: Daniel Vetter, Rob Clark, Inki Dae, Dave Airlie, Alan Cox

The GEM vm operations structure is passed to the VM core that stores it
in a const field. There vm operations structures can thus be const in
DRM as well.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Alex Deucher <alexdeucher@gmail.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Rob Clark <rob.clark@linaro.org>
---
 drivers/gpu/drm/exynos/exynos_drm_drv.c |    2 +-
 drivers/gpu/drm/gma500/framebuffer.c    |    2 +-
 drivers/gpu/drm/gma500/psb_drv.c        |    2 +-
 drivers/gpu/drm/i915/i915_drv.c         |    2 +-
 drivers/gpu/drm/udl/udl_drv.c           |    2 +-
 drivers/staging/omapdrm/omap_drv.c      |    2 +-
 include/drm/drmP.h                      |    2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 3b8670c..0080102 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -193,7 +193,7 @@ static void exynos_drm_lastclose(struct drm_device *dev)
 	exynos_drm_fbdev_restore_mode(dev);
 }
 
-static struct vm_operations_struct exynos_drm_gem_vm_ops = {
+static const struct vm_operations_struct exynos_drm_gem_vm_ops = {
 	.fault = exynos_drm_gem_fault,
 	.open = drm_gem_vm_open,
 	.close = drm_gem_vm_close,
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index 8ea202f..fe00915 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -153,7 +153,7 @@ static void psbfb_vm_close(struct vm_area_struct *vma)
 {
 }
 
-static struct vm_operations_struct psbfb_vm_ops = {
+static const struct vm_operations_struct psbfb_vm_ops = {
 	.fault	= psbfb_vm_fault,
 	.open	= psbfb_vm_open,
 	.close	= psbfb_vm_close
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index c34adf9..728262d 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -619,7 +619,7 @@ static const struct dev_pm_ops psb_pm_ops = {
 	.runtime_idle = psb_runtime_idle,
 };
 
-static struct vm_operations_struct psb_gem_vm_ops = {
+static const struct vm_operations_struct psb_gem_vm_ops = {
 	.fault = psb_gem_fault,
 	.open = drm_gem_vm_open,
 	.close = drm_gem_vm_close,
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index ae8a64f..b81bc47 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -874,7 +874,7 @@ static const struct dev_pm_ops i915_pm_ops = {
 	.restore = i915_pm_resume,
 };
 
-static struct vm_operations_struct i915_gem_vm_ops = {
+static const struct vm_operations_struct i915_gem_vm_ops = {
 	.fault = i915_gem_fault,
 	.open = drm_gem_vm_open,
 	.close = drm_gem_vm_close,
diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
index 5367390..82e6921 100644
--- a/drivers/gpu/drm/udl/udl_drv.c
+++ b/drivers/gpu/drm/udl/udl_drv.c
@@ -38,7 +38,7 @@ static void udl_usb_disconnect(struct usb_interface *interface)
 	drm_unplug_dev(dev);
 }
 
-static struct vm_operations_struct udl_gem_vm_ops = {
+static const struct vm_operations_struct udl_gem_vm_ops = {
 	.fault = udl_gem_fault,
 	.open = drm_gem_vm_open,
 	.close = drm_gem_vm_close,
diff --git a/drivers/staging/omapdrm/omap_drv.c b/drivers/staging/omapdrm/omap_drv.c
index 620b8d5..071c770 100644
--- a/drivers/staging/omapdrm/omap_drv.c
+++ b/drivers/staging/omapdrm/omap_drv.c
@@ -726,7 +726,7 @@ static void dev_irq_uninstall(struct drm_device *dev)
 	DBG("irq_uninstall: dev=%p", dev);
 }
 
-static struct vm_operations_struct omap_gem_vm_ops = {
+static const struct vm_operations_struct omap_gem_vm_ops = {
 	.fault = omap_gem_fault,
 	.open = drm_gem_vm_open,
 	.close = drm_gem_vm_close,
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 95ef926..5d0d2de 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -941,7 +941,7 @@ struct drm_driver {
 			    uint32_t handle);
 
 	/* Driver private ops for this object */
-	struct vm_operations_struct *gem_vm_ops;
+	const struct vm_operations_struct *gem_vm_ops;
 
 	int major;
 	int minor;
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH/RFC 5/6] drm: Constify drm_mode_config_funcs pointer
  2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
                   ` (3 preceding siblings ...)
  2012-05-17 11:27 ` [PATCH/RFC 4/6] drm: Constify gem_vm_ops pointer Laurent Pinchart
@ 2012-05-17 11:27 ` Laurent Pinchart
  2012-05-17 11:27 ` [PATCH/RFC 6/6] drm: Make the CRTC gamma_set operation optional Laurent Pinchart
  2012-05-21 16:37 ` [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Alex Deucher
  6 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2012-05-17 11:27 UTC (permalink / raw)
  To: dri-devel
  Cc: Thomas Hellstrom, Daniel Vetter, Rob Clark, Inki Dae, Ben Skeggs,
	Dave Airlie, Alan Cox

The DRM mode config functions structure declared by drivers and pointed
to by the drm_mode_config funcs field is never modified. Make it a const
pointer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Alex Deucher <alexdeucher@gmail.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Thomas Hellstrom <thellstrom@vmware.com>
Cc: Rob Clark <rob.clark@linaro.org>
---
 drivers/gpu/drm/exynos/exynos_drm_fb.c    |    2 +-
 drivers/gpu/drm/gma500/framebuffer.c      |    2 +-
 drivers/gpu/drm/i915/intel_display.c      |    2 +-
 drivers/gpu/drm/nouveau/nouveau_display.c |    2 +-
 drivers/gpu/drm/radeon/radeon_display.c   |    2 +-
 drivers/gpu/drm/udl/udl_modeset.c         |    2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c       |    2 +-
 drivers/staging/omapdrm/omap_drv.c        |    2 +-
 include/drm/drm_crtc.h                    |    2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index b0b0dcc..4ccfe43 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -200,7 +200,7 @@ static void exynos_drm_output_poll_changed(struct drm_device *dev)
 		drm_fb_helper_hotplug_event(fb_helper);
 }
 
-static struct drm_mode_config_funcs exynos_drm_mode_config_funcs = {
+static const struct drm_mode_config_funcs exynos_drm_mode_config_funcs = {
 	.fb_create = exynos_user_fb_create,
 	.output_poll_changed = exynos_drm_output_poll_changed,
 };
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index fe00915..e20da1f 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -771,7 +771,7 @@ void psb_modeset_init(struct drm_device *dev)
 	dev->mode_config.min_width = 0;
 	dev->mode_config.min_height = 0;
 
-	dev->mode_config.funcs = (void *) &psb_mode_funcs;
+	dev->mode_config.funcs = &psb_mode_funcs;
 
 	/* set memory base */
 	/* Oaktrail and Poulsbo should use BAR 2*/
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 1b1cf3b..71f19c7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -9189,7 +9189,7 @@ void intel_modeset_init(struct drm_device *dev)
 	dev->mode_config.preferred_depth = 24;
 	dev->mode_config.prefer_shadow = 1;
 
-	dev->mode_config.funcs = (void *)&intel_mode_funcs;
+	dev->mode_config.funcs = &intel_mode_funcs;
 
 	intel_init_quirks(dev);
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index a85e112..4b1cf74 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -300,7 +300,7 @@ nouveau_display_create(struct drm_device *dev)
 		disp->color_vibrance_property->values[1] = 200; /* -100..+100 */
 	}
 
-	dev->mode_config.funcs = (void *)&nouveau_mode_config_funcs;
+	dev->mode_config.funcs = &nouveau_mode_config_funcs;
 	dev->mode_config.fb_base = pci_resource_start(dev->pdev, 1);
 
 	dev->mode_config.min_width = 0;
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 0a1d4bd..1e74406 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1251,7 +1251,7 @@ int radeon_modeset_init(struct radeon_device *rdev)
 	drm_mode_config_init(rdev->ddev);
 	rdev->mode_info.mode_config_initialized = true;
 
-	rdev->ddev->mode_config.funcs = (void *)&radeon_mode_funcs;
+	rdev->ddev->mode_config.funcs = &radeon_mode_funcs;
 
 	if (ASIC_IS_DCE5(rdev)) {
 		rdev->ddev->mode_config.max_width = 16384;
diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c
index b3ecb3d..0d78167 100644
--- a/drivers/gpu/drm/udl/udl_modeset.c
+++ b/drivers/gpu/drm/udl/udl_modeset.c
@@ -395,7 +395,7 @@ int udl_modeset_init(struct drm_device *dev)
 	dev->mode_config.prefer_shadow = 0;
 	dev->mode_config.preferred_depth = 24;
 
-	dev->mode_config.funcs = (void *)&udl_mode_funcs;
+	dev->mode_config.funcs = &udl_mode_funcs;
 
 	drm_mode_create_dirty_info_property(dev);
 
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 2286d47..6b0078f 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -1178,7 +1178,7 @@ err_out:
 	return &vfb->base;
 }
 
-static struct drm_mode_config_funcs vmw_kms_funcs = {
+static const struct drm_mode_config_funcs vmw_kms_funcs = {
 	.fb_create = vmw_kms_fb_create,
 };
 
diff --git a/drivers/staging/omapdrm/omap_drv.c b/drivers/staging/omapdrm/omap_drv.c
index 071c770..1edbd77 100644
--- a/drivers/staging/omapdrm/omap_drv.c
+++ b/drivers/staging/omapdrm/omap_drv.c
@@ -58,7 +58,7 @@ static void omap_fb_output_poll_changed(struct drm_device *dev)
 	}
 }
 
-static struct drm_mode_config_funcs omap_mode_config_funcs = {
+static const struct drm_mode_config_funcs omap_mode_config_funcs = {
 	.fb_create = omap_framebuffer_create,
 	.output_poll_changed = omap_fb_output_poll_changed,
 };
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 201001c..556b645 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -754,7 +754,7 @@ struct drm_mode_config {
 
 	int min_width, min_height;
 	int max_width, max_height;
-	struct drm_mode_config_funcs *funcs;
+	const struct drm_mode_config_funcs *funcs;
 	resource_size_t fb_base;
 
 	/* output poll support */
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH/RFC 6/6] drm: Make the CRTC gamma_set operation optional
  2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
                   ` (4 preceding siblings ...)
  2012-05-17 11:27 ` [PATCH/RFC 5/6] drm: Constify drm_mode_config_funcs pointer Laurent Pinchart
@ 2012-05-17 11:27 ` Laurent Pinchart
  2012-05-17 12:38   ` Rob Clark
  2012-05-21 16:37 ` [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Alex Deucher
  6 siblings, 1 reply; 9+ messages in thread
From: Laurent Pinchart @ 2012-05-17 11:27 UTC (permalink / raw)
  To: dri-devel; +Cc: Rob Clark

Drivers for hardware without gamma support should not be forced to
implement a no-op gamma set operation.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Rob Clark <rob.clark@linaro.org>
---
 drivers/gpu/drm/drm_crtc.c          |    5 +++++
 drivers/gpu/drm/drm_fb_helper.c     |    3 +++
 drivers/staging/omapdrm/omap_crtc.c |    7 -------
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index bfc9b86..aa80d4a 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -3173,6 +3173,11 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
 	}
 	crtc = obj_to_crtc(obj);
 
+	if (crtc->funcs->gamma_set == NULL) {
+		ret = -ENOSYS;
+		goto out;
+	}
+
 	/* memcpy into gamma store */
 	if (crtc_lut->gamma_size != crtc->gamma_size) {
 		ret = -EINVAL;
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index bd92616..f0b81d7 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -136,6 +136,9 @@ static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc)
 {
 	uint16_t *r_base, *g_base, *b_base;
 
+	if (crtc->funcs->gamma_set == NULL)
+		return;
+
 	r_base = crtc->gamma_store;
 	g_base = r_base + crtc->gamma_size;
 	b_base = g_base + crtc->gamma_size;
diff --git a/drivers/staging/omapdrm/omap_crtc.c b/drivers/staging/omapdrm/omap_crtc.c
index 490a7f1..8b864af 100644
--- a/drivers/staging/omapdrm/omap_crtc.c
+++ b/drivers/staging/omapdrm/omap_crtc.c
@@ -36,12 +36,6 @@ struct omap_crtc {
 	struct drm_framebuffer *old_fb;
 };
 
-static void omap_crtc_gamma_set(struct drm_crtc *crtc,
-		u16 *red, u16 *green, u16 *blue, uint32_t start, uint32_t size)
-{
-	/* not supported.. at least not yet */
-}
-
 static void omap_crtc_destroy(struct drm_crtc *crtc)
 {
 	struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
@@ -198,7 +192,6 @@ static int omap_crtc_page_flip_locked(struct drm_crtc *crtc,
 }
 
 static const struct drm_crtc_funcs omap_crtc_funcs = {
-	.gamma_set = omap_crtc_gamma_set,
 	.set_config = drm_crtc_helper_set_config,
 	.destroy = omap_crtc_destroy,
 	.page_flip = omap_crtc_page_flip_locked,
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH/RFC 6/6] drm: Make the CRTC gamma_set operation optional
  2012-05-17 11:27 ` [PATCH/RFC 6/6] drm: Make the CRTC gamma_set operation optional Laurent Pinchart
@ 2012-05-17 12:38   ` Rob Clark
  0 siblings, 0 replies; 9+ messages in thread
From: Rob Clark @ 2012-05-17 12:38 UTC (permalink / raw)
  To: Laurent Pinchart, Greg Kroah-Hartman; +Cc: dri-devel

On Thu, May 17, 2012 at 5:27 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Drivers for hardware without gamma support should not be forced to
> implement a no-op gamma set operation.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Rob Clark <rob.clark@linaro.org>

Reviewed-by: Rob Clark <rob@ti.com>

> ---
>  drivers/gpu/drm/drm_crtc.c          |    5 +++++
>  drivers/gpu/drm/drm_fb_helper.c     |    3 +++
>  drivers/staging/omapdrm/omap_crtc.c |    7 -------
>  3 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index bfc9b86..aa80d4a 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -3173,6 +3173,11 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
>        }
>        crtc = obj_to_crtc(obj);
>
> +       if (crtc->funcs->gamma_set == NULL) {
> +               ret = -ENOSYS;
> +               goto out;
> +       }
> +
>        /* memcpy into gamma store */
>        if (crtc_lut->gamma_size != crtc->gamma_size) {
>                ret = -EINVAL;
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index bd92616..f0b81d7 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -136,6 +136,9 @@ static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc)
>  {
>        uint16_t *r_base, *g_base, *b_base;
>
> +       if (crtc->funcs->gamma_set == NULL)
> +               return;
> +
>        r_base = crtc->gamma_store;
>        g_base = r_base + crtc->gamma_size;
>        b_base = g_base + crtc->gamma_size;
> diff --git a/drivers/staging/omapdrm/omap_crtc.c b/drivers/staging/omapdrm/omap_crtc.c
> index 490a7f1..8b864af 100644
> --- a/drivers/staging/omapdrm/omap_crtc.c
> +++ b/drivers/staging/omapdrm/omap_crtc.c
> @@ -36,12 +36,6 @@ struct omap_crtc {
>        struct drm_framebuffer *old_fb;
>  };
>
> -static void omap_crtc_gamma_set(struct drm_crtc *crtc,
> -               u16 *red, u16 *green, u16 *blue, uint32_t start, uint32_t size)
> -{
> -       /* not supported.. at least not yet */
> -}
> -
>  static void omap_crtc_destroy(struct drm_crtc *crtc)
>  {
>        struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
> @@ -198,7 +192,6 @@ static int omap_crtc_page_flip_locked(struct drm_crtc *crtc,
>  }
>
>  static const struct drm_crtc_funcs omap_crtc_funcs = {
> -       .gamma_set = omap_crtc_gamma_set,
>        .set_config = drm_crtc_helper_set_config,
>        .destroy = omap_crtc_destroy,
>        .page_flip = omap_crtc_page_flip_locked,
> --
> 1.7.3.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups
  2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
                   ` (5 preceding siblings ...)
  2012-05-17 11:27 ` [PATCH/RFC 6/6] drm: Make the CRTC gamma_set operation optional Laurent Pinchart
@ 2012-05-21 16:37 ` Alex Deucher
  6 siblings, 0 replies; 9+ messages in thread
From: Alex Deucher @ 2012-05-21 16:37 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: dri-devel

On Thu, May 17, 2012 at 7:27 AM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> Hello,
>
> While studying the DRM core I came across a couple of issues or strange
> constructs. Here are 6 patches that try to fix them.
>
> Criticism is as usual welcome. Please bear with my lack of experience with the
> DRM core :-)
>
> Laurent Pinchart (6):
>  drm: Delete the vblank timer synchronously at cleanup time
>  drm: Miscellaneous typo fixes and documentation updates
>  drm: Don't initialize local ret variable when not needed
>  drm: Constify gem_vm_ops pointer
>  drm: Constify drm_mode_config_funcs pointer
>  drm: Make the CRTC gamma_set operation optional

For the series:

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>


>
>  drivers/gpu/drm/drm_crtc.c                |   19 ++++++++++++-------
>  drivers/gpu/drm/drm_crtc_helper.c         |    2 +-
>  drivers/gpu/drm/drm_edid_load.c           |    8 ++++----
>  drivers/gpu/drm/drm_fb_helper.c           |    8 ++++----
>  drivers/gpu/drm/drm_gem.c                 |    2 +-
>  drivers/gpu/drm/drm_irq.c                 |   23 +++++++++--------------
>  drivers/gpu/drm/drm_lock.c                |    2 +-
>  drivers/gpu/drm/drm_stub.c                |    2 +-
>  drivers/gpu/drm/drm_sysfs.c               |   10 +++++-----
>  drivers/gpu/drm/exynos/exynos_drm_drv.c   |    2 +-
>  drivers/gpu/drm/exynos/exynos_drm_fb.c    |    2 +-
>  drivers/gpu/drm/gma500/framebuffer.c      |    4 ++--
>  drivers/gpu/drm/gma500/psb_drv.c          |    2 +-
>  drivers/gpu/drm/i915/i915_drv.c           |    2 +-
>  drivers/gpu/drm/i915/intel_display.c      |    2 +-
>  drivers/gpu/drm/nouveau/nouveau_display.c |    2 +-
>  drivers/gpu/drm/radeon/radeon_display.c   |    2 +-
>  drivers/gpu/drm/udl/udl_drv.c             |    2 +-
>  drivers/gpu/drm/udl/udl_modeset.c         |    2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c       |    2 +-
>  drivers/staging/omapdrm/omap_crtc.c       |    7 -------
>  drivers/staging/omapdrm/omap_drv.c        |    4 ++--
>  include/drm/drmP.h                        |   12 ++++++------
>  include/drm/drm_crtc.h                    |   23 ++++++++---------------
>  include/drm/drm_crtc_helper.h             |   21 +++++++++++++++++++++
>  25 files changed, 87 insertions(+), 80 deletions(-)
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-05-21 16:37 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-17 11:27 [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Laurent Pinchart
2012-05-17 11:27 ` [PATCH/RFC 1/6] drm: Delete the vblank timer synchronously at cleanup time Laurent Pinchart
2012-05-17 11:27 ` [PATCH/RFC 2/6] drm: Miscellaneous typo fixes and documentation updates Laurent Pinchart
2012-05-17 11:27 ` [PATCH/RFC 3/6] drm: Don't initialize local ret variable when not needed Laurent Pinchart
2012-05-17 11:27 ` [PATCH/RFC 4/6] drm: Constify gem_vm_ops pointer Laurent Pinchart
2012-05-17 11:27 ` [PATCH/RFC 5/6] drm: Constify drm_mode_config_funcs pointer Laurent Pinchart
2012-05-17 11:27 ` [PATCH/RFC 6/6] drm: Make the CRTC gamma_set operation optional Laurent Pinchart
2012-05-17 12:38   ` Rob Clark
2012-05-21 16:37 ` [PATCH/RFC 0/6] Miscellaneous DRM fixes and cleanups Alex Deucher

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.