@@ -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;
@@ -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);
@@ -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,
@@ -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;
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.jakobsson@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(-)