These structs are similar enough to be unified. This will allow unifying
the lvds functions that access the lvds encoder private.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobs...@gmail.com>
---
 drivers/gpu/drm/gma500/cdv_intel_lvds.c | 18 ++----------------
 drivers/gpu/drm/gma500/gma_lvds.c       |  5 +++--
 drivers/gpu/drm/gma500/gma_lvds.h       | 16 ++++++++++++++++
 drivers/gpu/drm/gma500/psb_intel_lvds.c | 24 ++++--------------------
 4 files changed, 25 insertions(+), 38 deletions(-)

diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c 
b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
index 777eb7cf7d7f..b0e7b680f02b 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
@@ -39,20 +39,6 @@
 #define PSB_BACKLIGHT_PWM_CTL_SHIFT    (16)
 #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE)
 
-struct cdv_intel_lvds_priv {
-       /**
-        * Saved LVDO output states
-        */
-       uint32_t savePP_ON;
-       uint32_t savePP_OFF;
-       uint32_t saveLVDS;
-       uint32_t savePP_CONTROL;
-       uint32_t savePP_CYCLE;
-       uint32_t savePFIT_CONTROL;
-       uint32_t savePFIT_PGM_RATIOS;
-       uint32_t saveBLC_PWM_CTL;
-};
-
 static void cdv_intel_lvds_restore(struct drm_connector *connector)
 {
 }
@@ -356,7 +342,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,
 {
        struct gma_encoder *gma_encoder;
        struct gma_connector *gma_connector;
-       struct cdv_intel_lvds_priv *lvds_priv;
+       struct gma_lvds_priv *lvds_priv;
        struct drm_connector *connector;
        struct drm_encoder *encoder;
        struct drm_display_mode *scan;
@@ -387,7 +373,7 @@ void cdv_intel_lvds_init(struct drm_device *dev,
        if (!gma_connector)
                goto err_free_encoder;
 
-       lvds_priv = kzalloc(sizeof(struct cdv_intel_lvds_priv), GFP_KERNEL);
+       lvds_priv = kzalloc(sizeof(*lvds_priv), GFP_KERNEL);
        if (!lvds_priv)
                goto err_free_connector;
 
diff --git a/drivers/gpu/drm/gma500/gma_lvds.c 
b/drivers/gpu/drm/gma500/gma_lvds.c
index bd08ed049c5e..7a81f44a40bd 100644
--- a/drivers/gpu/drm/gma500/gma_lvds.c
+++ b/drivers/gpu/drm/gma500/gma_lvds.c
@@ -8,6 +8,7 @@
 #include "psb_intel_drv.h"
 #include "power.h"
 #include "psb_intel_reg.h"
+#include "gma_lvds.h"
 
 /*
  * Returns the maximum level of the backlight duty cycle field.
@@ -134,8 +135,8 @@ void gma_lvds_save(struct drm_connector *connector)
        struct drm_device *dev = connector->dev;
        struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
-       struct psb_intel_lvds_priv *lvds_priv =
-               (struct psb_intel_lvds_priv *)gma_encoder->dev_priv;
+       struct gma_lvds_priv *lvds_priv =
+               (struct gma_lvds_priv *)gma_encoder->dev_priv;
 
        lvds_priv->savePP_ON = REG_READ(LVDSPP_ON);
        lvds_priv->savePP_OFF = REG_READ(LVDSPP_OFF);
diff --git a/drivers/gpu/drm/gma500/gma_lvds.h 
b/drivers/gpu/drm/gma500/gma_lvds.h
index 52422986be1e..98ad9bc878b7 100644
--- a/drivers/gpu/drm/gma500/gma_lvds.h
+++ b/drivers/gpu/drm/gma500/gma_lvds.h
@@ -7,6 +7,22 @@
 #ifndef _GMA_LVDS_H
 #define _GMA_LVDS_H
 
+struct gma_lvds_priv {
+       /*
+        * Saved LVDO output states
+        */
+       uint32_t savePP_ON;
+       uint32_t savePP_OFF;
+       uint32_t saveLVDS;
+       uint32_t savePP_CONTROL;
+       uint32_t savePP_CYCLE;
+       uint32_t savePFIT_CONTROL;
+       uint32_t savePFIT_PGM_RATIOS;
+       uint32_t saveBLC_PWM_CTL;
+
+       struct gma_i2c_chan *i2c_bus;
+};
+
 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,
diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c 
b/drivers/gpu/drm/gma500/psb_intel_lvds.c
index c00b00d70a30..995e7aac53b9 100644
--- a/drivers/gpu/drm/gma500/psb_intel_lvds.c
+++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c
@@ -37,22 +37,6 @@
 #define PSB_BACKLIGHT_PWM_CTL_SHIFT    (16)
 #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE)
 
-struct psb_intel_lvds_priv {
-       /*
-        * Saved LVDO output states
-        */
-       uint32_t savePP_ON;
-       uint32_t savePP_OFF;
-       uint32_t saveLVDS;
-       uint32_t savePP_CONTROL;
-       uint32_t savePP_CYCLE;
-       uint32_t savePFIT_CONTROL;
-       uint32_t savePFIT_PGM_RATIOS;
-       uint32_t saveBLC_PWM_CTL;
-
-       struct gma_i2c_chan *i2c_bus;
-};
-
 /*
  * Set LVDS backlight level by I2C command
  *
@@ -153,8 +137,8 @@ static void psb_intel_lvds_restore(struct drm_connector 
*connector)
        struct drm_device *dev = connector->dev;
        u32 pp_status;
        struct gma_encoder *gma_encoder = gma_attached_encoder(connector);
-       struct psb_intel_lvds_priv *lvds_priv =
-               (struct psb_intel_lvds_priv *)gma_encoder->dev_priv;
+       struct gma_lvds_priv *lvds_priv =
+               (struct gma_lvds_priv *)gma_encoder->dev_priv;
 
        dev_dbg(dev->dev, "(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n",
                        lvds_priv->savePP_ON,
@@ -455,7 +439,7 @@ void psb_intel_lvds_init(struct drm_device *dev,
 {
        struct gma_encoder *gma_encoder;
        struct gma_connector *gma_connector;
-       struct psb_intel_lvds_priv *lvds_priv;
+       struct gma_lvds_priv *lvds_priv;
        struct drm_connector *connector;
        struct drm_encoder *encoder;
        struct drm_display_mode *scan;  /* *modes, *bios_mode; */
@@ -479,7 +463,7 @@ void psb_intel_lvds_init(struct drm_device *dev,
                goto err_free_encoder;
        }
 
-       lvds_priv = kzalloc(sizeof(struct psb_intel_lvds_priv), GFP_KERNEL);
+       lvds_priv = kzalloc(sizeof(*lvds_priv), GFP_KERNEL);
        if (!lvds_priv) {
                dev_err(dev->dev, "LVDS private allocation error\n");
                goto err_free_connector;
-- 
2.36.1

Reply via email to