These functions mostly do the same thing so unify them into one. Skip
the INTEL_OUTPUT_MIPI2 code since we don't have that output type.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobs...@gmail.com>
---
 drivers/gpu/drm/gma500/cdv_intel_lvds.c | 27 +---------------------
 drivers/gpu/drm/gma500/gma_lvds.c       | 25 +++++++++++++++++++++
 drivers/gpu/drm/gma500/gma_lvds.h       |  2 ++
 drivers/gpu/drm/gma500/psb_intel_drv.h  |  2 --
 drivers/gpu/drm/gma500/psb_intel_lvds.c | 30 +------------------------
 5 files changed, 29 insertions(+), 57 deletions(-)

diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c 
b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
index 7bf883bb8104..968d627e23d1 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
@@ -71,31 +71,6 @@ static void cdv_intel_lvds_restore(struct drm_connector 
*connector)
 {
 }
 
-static enum drm_mode_status cdv_intel_lvds_mode_valid(struct drm_connector 
*connector,
-                             struct drm_display_mode *mode)
-{
-       struct drm_device *dev = connector->dev;
-       struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
-       struct drm_display_mode *fixed_mode =
-                                       dev_priv->mode_dev.panel_fixed_mode;
-
-       /* just in case */
-       if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
-               return MODE_NO_DBLESCAN;
-
-       /* just in case */
-       if (mode->flags & DRM_MODE_FLAG_INTERLACE)
-               return MODE_NO_INTERLACE;
-
-       if (fixed_mode) {
-               if (mode->hdisplay > fixed_mode->hdisplay)
-                       return MODE_PANEL;
-               if (mode->vdisplay > fixed_mode->vdisplay)
-                       return MODE_PANEL;
-       }
-       return MODE_OK;
-}
-
 static bool cdv_intel_lvds_mode_fixup(struct drm_encoder *encoder,
                                  const struct drm_display_mode *mode,
                                  struct drm_display_mode *adjusted_mode)
@@ -321,7 +296,7 @@ static const struct drm_encoder_helper_funcs
 static const struct drm_connector_helper_funcs
                                cdv_intel_lvds_connector_helper_funcs = {
        .get_modes = cdv_intel_lvds_get_modes,
-       .mode_valid = cdv_intel_lvds_mode_valid,
+       .mode_valid = gma_lvds_mode_valid,
        .best_encoder = gma_best_encoder,
 };
 
diff --git a/drivers/gpu/drm/gma500/gma_lvds.c 
b/drivers/gpu/drm/gma500/gma_lvds.c
index 11efbb14b55c..c36815493366 100644
--- a/drivers/gpu/drm/gma500/gma_lvds.c
+++ b/drivers/gpu/drm/gma500/gma_lvds.c
@@ -93,3 +93,28 @@ void gma_lvds_set_power(struct drm_device *dev, bool on)
        gma_power_end(dev);
 }
 
+enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector,
+                                        struct drm_display_mode *mode)
+{
+       struct drm_device *dev = connector->dev;
+       struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
+       struct drm_display_mode *fixed_mode =
+                                       dev_priv->mode_dev.panel_fixed_mode;
+
+       /* just in case */
+       if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
+               return MODE_NO_DBLESCAN;
+
+       /* just in case */
+       if (mode->flags & DRM_MODE_FLAG_INTERLACE)
+               return MODE_NO_INTERLACE;
+
+       if (fixed_mode) {
+               if (mode->hdisplay > fixed_mode->hdisplay)
+                       return MODE_PANEL;
+               if (mode->vdisplay > fixed_mode->vdisplay)
+                       return MODE_PANEL;
+       }
+       return MODE_OK;
+}
+
diff --git a/drivers/gpu/drm/gma500/gma_lvds.h 
b/drivers/gpu/drm/gma500/gma_lvds.h
index 477d3b5005f7..6b4d8a024da1 100644
--- a/drivers/gpu/drm/gma500/gma_lvds.h
+++ b/drivers/gpu/drm/gma500/gma_lvds.h
@@ -9,5 +9,7 @@
 
 u32 gma_lvds_get_max_backlight(struct drm_device *dev);
 void gma_lvds_set_power(struct drm_device *dev, bool on);
+enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector,
+                                        struct drm_display_mode *mode);
 
 #endif
diff --git a/drivers/gpu/drm/gma500/psb_intel_drv.h 
b/drivers/gpu/drm/gma500/psb_intel_drv.h
index 8ccba116821b..db824aa6b589 100644
--- a/drivers/gpu/drm/gma500/psb_intel_drv.h
+++ b/drivers/gpu/drm/gma500/psb_intel_drv.h
@@ -228,8 +228,6 @@ extern int intelfb_remove(struct drm_device *dev,
 extern bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder,
                                      const struct drm_display_mode *mode,
                                      struct drm_display_mode *adjusted_mode);
-extern enum drm_mode_status psb_intel_lvds_mode_valid(struct drm_connector 
*connector,
-                                    struct drm_display_mode *mode);
 extern int psb_intel_lvds_set_property(struct drm_connector *connector,
                                        struct drm_property *property,
                                        uint64_t value);
diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c 
b/drivers/gpu/drm/gma500/psb_intel_lvds.c
index 06f1bd2250dd..c88697a805e0 100644
--- a/drivers/gpu/drm/gma500/psb_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c
@@ -239,34 +239,6 @@ static void psb_intel_lvds_restore(struct drm_connector 
*connector)
        }
 }
 
-enum drm_mode_status psb_intel_lvds_mode_valid(struct drm_connector *connector,
-                                struct drm_display_mode *mode)
-{
-       struct drm_psb_private *dev_priv = to_drm_psb_private(connector->dev);
-       struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
-       struct drm_display_mode *fixed_mode =
-                                       dev_priv->mode_dev.panel_fixed_mode;
-
-       if (gma_encoder->type == INTEL_OUTPUT_MIPI2)
-               fixed_mode = dev_priv->mode_dev.panel_fixed_mode2;
-
-       /* just in case */
-       if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
-               return MODE_NO_DBLESCAN;
-
-       /* just in case */
-       if (mode->flags & DRM_MODE_FLAG_INTERLACE)
-               return MODE_NO_INTERLACE;
-
-       if (fixed_mode) {
-               if (mode->hdisplay > fixed_mode->hdisplay)
-                       return MODE_PANEL;
-               if (mode->vdisplay > fixed_mode->vdisplay)
-                       return MODE_PANEL;
-       }
-       return MODE_OK;
-}
-
 bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder,
                                  const struct drm_display_mode *mode,
                                  struct drm_display_mode *adjusted_mode)
@@ -509,7 +481,7 @@ static const struct drm_encoder_helper_funcs 
psb_intel_lvds_helper_funcs = {
 const struct drm_connector_helper_funcs
                                psb_intel_lvds_connector_helper_funcs = {
        .get_modes = psb_intel_lvds_get_modes,
-       .mode_valid = psb_intel_lvds_mode_valid,
+       .mode_valid = gma_lvds_mode_valid,
        .best_encoder = gma_best_encoder,
 };
 
-- 
2.36.1

Reply via email to