[RFC PATCH 21/37] DRM: mode: Un-staticise drm_mode_new_from_umode

Daniel Stone daniels at collabora.com
Wed Mar 18 21:33:20 PDT 2015


Signed-off-by: Daniel Stone <daniels at collabora.com>
---
 drivers/gpu/drm/drm_crtc.c  | 51 -------------------------------------------
 drivers/gpu/drm/drm_modes.c | 53 +++++++++++++++++++++++++++++++++++++++++++++
 include/drm/drm_modes.h     |  2 ++
 3 files changed, 55 insertions(+), 51 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index c7ee172..8bb8dbf 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1746,58 +1746,7 @@ static void drm_crtc_convert_to_umode(struct drm_mode_modeinfo *out,
 	out->name[DRM_DISPLAY_MODE_LEN-1] = 0;
 }
 
-/**
- * drm_mode_new_from_umode - convert a modeinfo into a drm_display_mode
- * @dev: DRM device to create mode for
- * @in: drm_mode_modeinfo to use
- *
- * Convert a drm_mode_modeinfo into a drm_display_mode structure to return to
- * the caller.
- *
- * Returns:
- * New drm_display_mode on success, NULL on failure
- */
-static struct drm_display_mode *drm_mode_new_from_umode(struct drm_device *dev,
-				  const struct drm_mode_modeinfo *in)
-{
-	struct drm_display_mode *out;
-
-	out = drm_mode_create(dev);
-	if (!out)
-		return NULL;
-
-	if (in->clock > INT_MAX || in->vrefresh > INT_MAX)
-		goto err;
-
-	if ((in->flags & DRM_MODE_FLAG_3D_MASK) > DRM_MODE_FLAG_3D_MAX)
-		goto err;
-
-	out->clock = in->clock;
-	out->hdisplay = in->hdisplay;
-	out->hsync_start = in->hsync_start;
-	out->hsync_end = in->hsync_end;
-	out->htotal = in->htotal;
-	out->hskew = in->hskew;
-	out->vdisplay = in->vdisplay;
-	out->vsync_start = in->vsync_start;
-	out->vsync_end = in->vsync_end;
-	out->vtotal = in->vtotal;
-	out->vscan = in->vscan;
-	out->vrefresh = in->vrefresh;
-	out->flags = in->flags;
-	out->type = in->type;
-	strncpy(out->name, in->name, DRM_DISPLAY_MODE_LEN);
-	out->name[DRM_DISPLAY_MODE_LEN-1] = 0;
 
-	out->status = drm_mode_validate_basic(out);
-	if (out->status != MODE_OK)
-		goto err;
-
-	return out;
-err:
-	drm_mode_destroy(dev, out);
-	return NULL;
-}
 
 /**
  * drm_mode_getresources - get graphics configuration
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index 213b11e..f4922e9 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -892,6 +892,59 @@ struct drm_display_mode *drm_mode_duplicate(struct drm_device *dev,
 EXPORT_SYMBOL(drm_mode_duplicate);
 
 /**
+ * drm_mode_new_from_umode - convert a modeinfo into a drm_display_mode
+ * @dev: DRM device to create mode for
+ * @in: drm_mode_modeinfo to use
+ *
+ * Convert a drm_mode_modeinfo into a drm_display_mode structure to return to
+ * the caller.
+ *
+ * Returns:
+ * New drm_display_mode on success, NULL on failure
+ */
+struct drm_display_mode *drm_mode_new_from_umode(struct drm_device *dev,
+				  const struct drm_mode_modeinfo *in)
+{
+	struct drm_display_mode *out;
+
+	out = drm_mode_create(dev);
+	if (!out)
+		return NULL;
+
+	if (in->clock > INT_MAX || in->vrefresh > INT_MAX)
+		goto err;
+
+	if ((in->flags & DRM_MODE_FLAG_3D_MASK) > DRM_MODE_FLAG_3D_MAX)
+		goto err;
+
+	out->clock = in->clock;
+	out->hdisplay = in->hdisplay;
+	out->hsync_start = in->hsync_start;
+	out->hsync_end = in->hsync_end;
+	out->htotal = in->htotal;
+	out->hskew = in->hskew;
+	out->vdisplay = in->vdisplay;
+	out->vsync_start = in->vsync_start;
+	out->vsync_end = in->vsync_end;
+	out->vtotal = in->vtotal;
+	out->vscan = in->vscan;
+	out->vrefresh = in->vrefresh;
+	out->flags = in->flags;
+	out->type = in->type;
+	strncpy(out->name, in->name, DRM_DISPLAY_MODE_LEN);
+	out->name[DRM_DISPLAY_MODE_LEN-1] = 0;
+
+	out->status = drm_mode_validate_basic(out);
+	if (out->status != MODE_OK)
+		goto err;
+
+	return out;
+err:
+	drm_mode_destroy(dev, out);
+	return NULL;
+}
+
+/**
  * drm_mode_equal - test modes for equality
  * @mode1: first mode
  * @mode2: second mode
diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
index 0616188..cd014c0 100644
--- a/include/drm/drm_modes.h
+++ b/include/drm/drm_modes.h
@@ -216,6 +216,8 @@ void drm_mode_copy(struct drm_display_mode *dst,
 		   const struct drm_display_mode *src);
 struct drm_display_mode *drm_mode_duplicate(struct drm_device *dev,
 					    const struct drm_display_mode *mode);
+struct drm_display_mode *drm_mode_new_from_umode(struct drm_device *dev,
+				  const struct drm_mode_modeinfo *in);
 bool drm_mode_equal(const struct drm_display_mode *mode1,
 		    const struct drm_display_mode *mode2);
 bool drm_mode_equal_no_clocks_no_stereo(const struct drm_display_mode *mode1,
-- 
2.3.2



More information about the dri-devel mailing list