TMD 6x10: fixes to MCG side of the MCG display panel code merge
authorLi Peng <peng.li@intel.com>
Sat, 28 Apr 2012 15:50:29 +0000 (23:50 +0800)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 3 Jul 2012 09:30:53 +0000 (12:30 +0300)
Fixes to MCG PVR code to get the MCG's TMD 6x10 display panel driver
compiling and running in the hybrid kernel.

Signed-off-by: Li Peng <peng.li@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
drivers/staging/mrst.mcg/drv/mdfld_dsi_dbi.c
drivers/staging/mrst.mcg/drv/mdfld_dsi_dpi.c
drivers/staging/mrst.mcg/drv/mdfld_dsi_output.c
drivers/staging/mrst.mcg/drv/mdfld_output.c
drivers/staging/mrst.mcg/drv/tmd_6x10_vid.c
drivers/staging/mrst/drv/psb_drv.h

index cf79b53..ad3b892 100644 (file)
 #include "mdfld_dsi_dbi_dpu.h"
 #include "mdfld_dsi_pkg_sender.h"
 
- #include "psb_powermgmt.h"
-#ifdef CONFIG_GFX_RTPM
- #include <linux/pm_runtime.h>
-#endif
-
-int enable_gfx_rtpm = 0;
+#include "psb_powermgmt.h"
 
 int enter_dsr = 0;
 struct mdfld_dsi_dbi_output *gdbi_output;
 
-#ifdef CONFIG_GFX_RTPM
-static void psb_runtimepm_wq_handler(struct work_struct *work);
-DECLARE_DELAYED_WORK(rtpm_work, psb_runtimepm_wq_handler);
-
-void psb_runtimepm_wq_handler(struct work_struct *work)
-{
-       struct drm_psb_private * dev_priv =  gpDrmDevice->dev_private;
-
-       if(drm_psb_ospm && !enable_gfx_rtpm) {
-               printk(KERN_ALERT "Enable GFX runtime_pm \n");
-
-               dev_priv->rpm_enabled = 1;
-
-               enable_gfx_rtpm = 1;
-
-               pm_runtime_enable(&gpDrmDevice->pdev->dev);
-               pm_runtime_set_active(&gpDrmDevice->pdev->dev);
-
-               pm_runtime_allow(&gpDrmDevice->pdev->dev);
-       }
-}
-#endif
-
-
 /**
  * set refreshing area
  */
@@ -461,8 +432,8 @@ void mdfld_dsi_dbi_enter_dsr (struct mdfld_dsi_dbi_output * dbi_output, int pipe
        }
 
        p_funcs = dbi_output->p_funcs;
-       if (p_funcs && (p_funcs->esd_detection))
-               mdfld_error_detect_correct_timer_end(dev);
+       //if (p_funcs && (p_funcs->esd_detection))
+       //      mdfld_error_detect_correct_timer_end(dev);
 
        mdfld_disable_te(dev, pipe);
 
@@ -607,8 +578,8 @@ static void mdfld_dbi_output_exit_dsr (struct mdfld_dsi_dbi_output * dbi_output,
        /*clean IN_DSR flag*/
        dbi_output->mode_flags &= ~MODE_SETTING_IN_DSR;
 
-       if (p_funcs && (p_funcs->esd_detection))
-               mdfld_error_detect_correct_timer_start(dev);
+       //if (p_funcs && (p_funcs->esd_detection))
+       //      mdfld_error_detect_correct_timer_start(dev);
 fun_exit:
        spin_unlock(&dev_priv->dsr_lock);
 }
@@ -711,13 +682,6 @@ void mdfld_dsi_dbi_exit_dsr (struct drm_device *dev, u32 update_src, void *p_sur
 
        dbi_output = dsr_info->dbi_outputs;
 
-#ifdef CONFIG_PM_RUNTIME
-        if(drm_psb_ospm && !enable_gfx_rtpm) {
-//                pm_runtime_allow(&gpDrmDevice->pdev->dev);
-//             schedule_delayed_work(&rtpm_work, 120 * 1000);
-        }
-#endif
-
        /*for each output, exit dsr*/
        for(i=0; i<dsr_info->dbi_output_num; i++) {
                /*if panel has been turned off, skip*/
@@ -1078,12 +1042,6 @@ struct mdfld_dsi_encoder *mdfld_dsi_dbi_init(struct drm_device *dev,
                else
                        p_funcs->dsi_controller_init(dsi_config, pipe, true);
        }
-       if (dsi_connector->status == connector_status_connected) {
-               if (pipe == 0)
-                       dev_priv->panel_desc |= DISPLAY_A;
-               if (pipe == 2)
-                       dev_priv->panel_desc |= DISPLAY_C;
-       }
        /* mdfld_dsi_controller_dbi_init(dsi_config, pipe); */
 
        /* TODO: get panel info from DDB */
@@ -1136,13 +1094,9 @@ struct mdfld_dsi_encoder *mdfld_dsi_dbi_init(struct drm_device *dev,
 
        dev_priv->dsr_fb_update = 0;
        dev_priv->b_dsr_enable = false;
-       dev_priv->b_async_flip_enable = false;
-       dev_priv->exit_idle = mdfld_dsi_dbi_exit_dsr;
-       dev_priv->async_flip_update_fb = mdfld_dsi_dbi_async_flip_fb_update;
-       dev_priv->async_check_fifo_empty = mdfld_dsi_dbi_async_check_fifo_empty;
-#if defined(CONFIG_MDFLD_DSI_DPU) || defined(CONFIG_MDFLD_DSI_DSR)
-       dev_priv->b_dsr_enable_config = true;
-#endif /*CONFIG_MDFLD_DSI_DSR*/
+       //dev_priv->b_async_flip_enable = false;
+       //dev_priv->async_flip_update_fb = mdfld_dsi_dbi_async_flip_fb_update;
+       //dev_priv->async_check_fifo_empty = mdfld_dsi_dbi_async_check_fifo_empty;
 
        dbi_output->first_boot = true;
        dbi_output->mode_flags = MODE_SETTING_IN_ENCODER;
index 7434e00..a2cf8b2 100644 (file)
@@ -1759,13 +1759,10 @@ static int __dpi_panel_power_off(struct mdfld_dsi_config *dsi_config,
                                        OSPM_UHB_FORCE_POWER_ON))
                return -EAGAIN;
 
-       ctx->lastbrightnesslevel = psb_brightness;
        if (p_funcs->set_brightness(dsi_config, 0))
                DRM_ERROR("Failed to set panel brightness\n");
 
        /*save the plane informaton, for it will updated*/
-       ctx->dspsurf = dev_priv->init_screen_start;
-       ctx->dsplinoff = dev_priv->init_screen_offset;
        ctx->pipestat = REG_READ(regs->pipestat_reg);
        ctx->dspcntr = REG_READ(regs->dspcntr_reg);
        ctx->dspstride= REG_READ(regs->dspstride_reg);
@@ -1907,16 +1904,12 @@ static int __mdfld_dsi_dpi_set_power(struct drm_encoder *encoder, bool on)
        int pipe;
        struct drm_device *dev;
        struct drm_psb_private *dev_priv;
-       static int last_ospm_suspend = -1;
 
        if (!encoder) {
                DRM_ERROR("Invalid encoder\n");
                return -EINVAL;
        }
 
-       PSB_DEBUG_ENTRY("%s, last_ospm_suspend = %s\n", (on ? "on" : "off"),
-                       (last_ospm_suspend ? "true" : "false"));
-
        dsi_encoder = MDFLD_DSI_ENCODER(encoder);
        dpi_output = MDFLD_DSI_DPI_OUTPUT(dsi_encoder);
        dsi_config = mdfld_dsi_encoder_get_config(dsi_encoder);
@@ -1929,40 +1922,25 @@ static int __mdfld_dsi_dpi_set_power(struct drm_encoder *encoder, bool on)
        if (dsi_connector->status != connector_status_connected)
                return 0;
 
-       mutex_lock(&dsi_config->context_lock);
-
-       if (last_ospm_suspend == -1)
-               last_ospm_suspend = false;
-
        if (dpi_output->first_boot && dsi_config->dsi_hw_context.panel_on) {
                printk(KERN_ALERT "skip panle power setting for first boot!"
                                " panel is already powered on\n");
                goto fun_exit;
        }
 
-       /**
-        * if ospm has turned panel off, but dpms tries to turn panel on, skip
-        */
-       if (dev_priv->dpms_on_off && on && last_ospm_suspend)
-               goto fun_exit;
-
        switch (on) {
        case true:
                /* panel is already on */
                if (dsi_config->dsi_hw_context.panel_on)
                        goto fun_exit;
                /* For DPMS case, just turn on/off panel */
-               if (dev_priv->dpms_on_off) {
+               {
                        if (mdfld_dsi_dpi_panel_turn_on(dsi_config)) {
                                DRM_ERROR("Faild to turn on panel\n");
                                goto set_power_err;
                        }
-               } else {
-                       if (__dpi_panel_power_on(dsi_config, p_funcs)) {
-                               DRM_ERROR("Faild to turn on panel\n");
-                               goto set_power_err;
-                       }
-               }
+               } 
+
                /**
                 * If power on, turn off color mode by default,
                 * let panel in full color mode
@@ -1970,23 +1948,13 @@ static int __mdfld_dsi_dpi_set_power(struct drm_encoder *encoder, bool on)
                mdfld_dsi_dpi_set_color_mode(dsi_config, false);
 
                dsi_config->dsi_hw_context.panel_on = 1;
-               last_ospm_suspend = false;
                break;
        case false:
-               if (dev_priv->dpms_on_off &&
-                               dsi_config->dsi_hw_context.panel_on) {
+               if (dsi_config->dsi_hw_context.panel_on) {
                        if (mdfld_dsi_dpi_panel_shut_down(dsi_config))
                                DRM_ERROR("Faild to shutdown panel\n");
-
-                       last_ospm_suspend = false;
-               } else if (!dev_priv->dpms_on_off && !last_ospm_suspend) {
-                       if (__dpi_panel_power_off(dsi_config, p_funcs)) {
-                               DRM_ERROR("Faild to turn off panel\n");
-                               goto set_power_err;
-                       }
-                       /* ospm suspend called? */
-                       last_ospm_suspend = true;
                }
+
                dsi_config->dsi_hw_context.panel_on = 0;
                break;
        default:
@@ -1994,11 +1962,9 @@ static int __mdfld_dsi_dpi_set_power(struct drm_encoder *encoder, bool on)
        }
 
 fun_exit:
-       mutex_unlock(&dsi_config->context_lock);
        PSB_DEBUG_ENTRY("successfully\n");
        return 0;
 set_power_err:
-       mutex_unlock(&dsi_config->context_lock);
        PSB_DEBUG_ENTRY("unsuccessfully!!!!\n");
        return -EAGAIN;
 }
@@ -2019,11 +1985,6 @@ void mdfld_dsi_dpi_set_power(struct drm_encoder *encoder, bool on)
 
        dpi_output = MDFLD_DSI_DPI_OUTPUT(dsi_encoder);
 
-       if (pipe)
-               if (!(dev_priv->panel_desc & DISPLAY_B) ||
-                               !(dev_priv->panel_desc & DISPLAY_C))
-                       return;
-
        if (pipe) {
                mipi_reg = MIPI_C;
                pipeconf_reg = PIPECCONF;
@@ -2094,20 +2055,11 @@ void mdfld_dsi_dpi_dpms(struct drm_encoder *encoder, int mode)
 
        PSB_DEBUG_ENTRY(
                        "%s\n", (mode == DRM_MODE_DPMS_ON ? "on" : "off"));
-       if (!gbdispstatus) {
-               PSB_DEBUG_ENTRY(
-               "panel in suspend status, skip turn on/off from DMPS");
-               return ;
-       }
 
-       mutex_lock(&dev_priv->dpms_mutex);
-       dev_priv->dpms_on_off = true;
        if (mode == DRM_MODE_DPMS_ON)
                mdfld_dsi_dpi_set_power(encoder, true);
        else
                mdfld_dsi_dpi_set_power(encoder, false);
-       dev_priv->dpms_on_off = false;
-       mutex_unlock(&dev_priv->dpms_mutex);
 }
 
 bool mdfld_dsi_dpi_mode_fixup(struct drm_encoder *encoder,
@@ -2586,60 +2538,12 @@ mode_set_err:
 
 void mdfld_dsi_dpi_save(struct drm_encoder *encoder)
 {
-       printk(KERN_ALERT"%s\n", __func__);
-
-       if (!encoder)
-               return;
-
-       /*turn off*/
-       __mdfld_dsi_dpi_set_power(encoder, false);
+       return;
 }
 
 void mdfld_dsi_dpi_restore(struct drm_encoder *encoder)
 {
-       printk(KERN_ALERT"%s\n", __func__);
-
-       if (!encoder)
-               return;
-
-       /*turn on*/
-       __mdfld_dsi_dpi_set_power(encoder, true);
-}
-
-/**
- * Exit from DSR
- */
-void mdfld_dsi_dpi_exit_idle(struct drm_device *dev,
-                               u32 update_src,
-                               void *p_surfaceAddr,
-                               bool check_hw_on_only)
-{
-       struct drm_psb_private * dev_priv = dev->dev_private;
-       unsigned long irqflags;
-
-       /* PSB_DEBUG_ENTRY("\n"); */
-
-       if (!ospm_power_is_hw_on(OSPM_DISPLAY_ISLAND)) {
-               DRM_ERROR("hw begin failed\n");
-               return;
-       }
-
-       spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
-       if (dev_priv->b_is_in_idle) {
-               /* update the surface base address. */
-               if (p_surfaceAddr) {
-                       REG_WRITE(DSPASURF, *((u32 *)p_surfaceAddr));
-#if defined(CONFIG_MDFD_DUAL_MIPI)
-                       REG_WRITE(DSPCSURF, *((u32 *)p_surfaceAddr));
-#endif
-               }
-
-               mid_enable_pipe_event(dev_priv, 0);
-               psb_enable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-               dev_priv->b_is_in_idle = false;
-               dev_priv->dsr_idle_count = 0;
-       }
-       spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
+       return;
 }
 
 /*
@@ -2718,17 +2622,6 @@ struct mdfld_dsi_encoder *mdfld_dsi_dpi_init(struct drm_device *dev,
        dsi_connector->status = connector_status_connected;
 #endif
 
-       /**
-        * TODO: can we keep these code out of display driver as
-        * it will make display driver hard to be maintained
-        */
-       if (dsi_connector->status == connector_status_connected) {
-               if (pipe == 0)
-                       dev_priv->panel_desc |= DISPLAY_A;
-               if (pipe == 2)
-                       dev_priv->panel_desc |= DISPLAY_C;
-       }
-
        dpi_output = kzalloc(sizeof(struct mdfld_dsi_dpi_output), GFP_KERNEL);
        if (!dpi_output) {
                DRM_ERROR("No memory\n");
@@ -2789,11 +2682,6 @@ struct mdfld_dsi_encoder *mdfld_dsi_dpi_init(struct drm_device *dev,
 
        dev_priv->dsr_fb_update = 0;
        dev_priv->b_dsr_enable = false;
-       dev_priv->exit_idle = mdfld_dsi_dpi_exit_idle;
-#if defined(CONFIG_MDFLD_DSI_DPU) || defined(CONFIG_MDFLD_DSI_DSR)
-       dev_priv->b_dsr_enable_config = true;
-#endif /*CONFIG_MDFLD_DSI_DSR*/
-
 
 #ifdef CONFIG_SUPPORT_TOSHIBA_MIPI_DISPLAY
        dev_priv->dpi_panel_on = true;
index 866b46a..575e594 100755 (executable)
@@ -462,79 +462,6 @@ static enum drm_connector_status mdfld_dsi_connector_detect
        return dsi_connector->status;
 }
 
-static int mdfld_dsi_connector_set_property(struct drm_connector *connector,
-                                       struct drm_property *property,
-                                       uint64_t value)
-{
-       struct drm_encoder *encoder = connector->encoder;
-       struct backlight_device *psb_bd;
-
-       PSB_DEBUG_ENTRY("\n");
-
-       if (!strcmp(property->name, "scaling mode") && encoder) {
-               struct psb_intel_crtc * psb_crtc = to_psb_intel_crtc(encoder->crtc);
-               bool bTransitionFromToCentered;
-               uint64_t curValue;
-
-               if (!psb_crtc)
-                       goto set_prop_error;
-
-               switch (value) {
-               case DRM_MODE_SCALE_FULLSCREEN:
-                       break;
-               case DRM_MODE_SCALE_CENTER:
-                       break;
-               case DRM_MODE_SCALE_NO_SCALE:
-                       break;
-               case DRM_MODE_SCALE_ASPECT:
-                       break;
-               default:
-                       goto set_prop_error;
-               }
-
-               if (drm_connector_property_get_value(connector, property, &curValue))
-                       goto set_prop_error;
-
-               if (curValue == value)
-                       goto set_prop_done;
-
-               if (drm_connector_property_set_value(connector, property, value))
-                       goto set_prop_error;
-
-               bTransitionFromToCentered = (curValue == DRM_MODE_SCALE_NO_SCALE) ||
-                       (value == DRM_MODE_SCALE_NO_SCALE);
-
-               if (psb_crtc->saved_mode.hdisplay != 0 &&
-                   psb_crtc->saved_mode.vdisplay != 0) {
-                       if (bTransitionFromToCentered) {
-                               if (!drm_crtc_helper_set_mode(encoder->crtc, &psb_crtc->saved_mode,
-                                           encoder->crtc->x, encoder->crtc->y, encoder->crtc->fb))
-                                       goto set_prop_error;
-                       } else {
-                               struct drm_encoder_helper_funcs *pEncHFuncs  = encoder->helper_private;
-                               pEncHFuncs->mode_set(encoder, &psb_crtc->saved_mode,
-                                                    &psb_crtc->saved_adjusted_mode);
-                       }
-               }
-       } else if (!strcmp(property->name, "backlight") && encoder) {
-               PSB_DEBUG_ENTRY("backlight level = %d\n", (int)value);
-               if (drm_connector_property_set_value(connector, property, value))
-                       goto set_prop_error;
-               else {
-                       PSB_DEBUG_ENTRY("set brightness to %d", (int)value);
-                       psb_bd = psb_get_backlight_device();
-                       if(psb_bd) {
-                               psb_bd->props.brightness = value;
-                               psb_set_brightness(psb_bd);
-                       }
-               }
-       } 
-set_prop_done:
-    return 0;
-set_prop_error:
-    return -1;
-}
-
 static void mdfld_dsi_connector_destroy(struct drm_connector * connector)
 {
        struct psb_intel_output * psb_output = to_psb_intel_output(connector);
@@ -620,57 +547,7 @@ static int mdfld_dsi_connector_mode_valid(struct drm_connector * connector, stru
 
 static void mdfld_dsi_connector_dpms(struct drm_connector *connector, int mode)
 {
-#ifdef CONFIG_PM_RUNTIME
-       struct drm_device * dev = connector->dev;
-       struct drm_psb_private * dev_priv = dev->dev_private;
-       bool panel_on, panel_on1, panel_on2;
-#endif
-       /*first, execute dpms*/
        drm_helper_connector_dpms(connector, mode);
-
-#ifdef CONFIG_PM_RUNTIME
-       if(is_panel_vid_or_cmd(dev)) {
-               /*DPI panel*/
-               panel_on = dev_priv->dpi_panel_on;
-               panel_on2 = dev_priv->dpi_panel_on2;
-       } else {
-               /*DBI panel*/
-               panel_on = dev_priv->dbi_panel_on;
-               panel_on2 = dev_priv->dbi_panel_on2;
-       }
-
-
-       if (!ospm_power_using_hw_begin(OSPM_DISPLAY_ISLAND,
-                               OSPM_UHB_ONLY_IF_ON))
-               return ;
-
-       acquire_ospm_lock();
-       if (dev_priv->bhdmiconnected)
-               panel_on1 = (REG_READ(HDMIB_CONTROL) & HDMIB_PORT_EN);
-       else
-               panel_on1 = false;
-       release_ospm_lock();
-
-       /*then check all display panels + monitors status*/
-       if (!panel_on && !panel_on2 && !panel_on1) {
-               /*request rpm idle*/
-               if(dev_priv->rpm_enabled) {
-                       pm_request_idle(&dev->pdev->dev);
-               }
-       }
-
-       /**
-        * if rpm wasn't enabled yet, try to allow it
-        * FIXME: won't enable rpm for DPI since DPI
-        * CRTC setting is a little messy now.
-        * Enable it later!
-        */
-#if 0 /* revist to check if we can enable rpm for DPI */
-       if(!dev_priv->rpm_enabled && !is_panel_vid_or_cmd(dev))
-               ospm_runtime_pm_allow(dev);
-#endif
-       ospm_power_using_hw_end(OSPM_DISPLAY_ISLAND);
-#endif
 }
 
 static struct drm_encoder * mdfld_dsi_connector_best_encoder(struct drm_connector * connector) 
@@ -706,7 +583,6 @@ static const struct drm_connector_funcs mdfld_dsi_connector_funcs = {
        .restore = mdfld_dsi_connector_restore,
        .detect = mdfld_dsi_connector_detect,
        .fill_modes = drm_helper_probe_single_connector_modes,
-       .set_property = mdfld_dsi_connector_set_property,
        .destroy = mdfld_dsi_connector_destroy,
 };
 
@@ -1162,12 +1038,6 @@ int mdfld_dsi_output_init(struct drm_device *dev,
                }
                encoder->private = dsi_config;
                dsi_config->encoders[MDFLD_DSI_ENCODER_DBI] = encoder;
-
-               if (pipe == 2)
-                       dev_priv->encoder2 = encoder;
-       
-               if (pipe == 0)
-                       dev_priv->encoder0 = encoder;
        }
        
        if(p_vid_funcs) {
@@ -1178,12 +1048,6 @@ int mdfld_dsi_output_init(struct drm_device *dev,
                }
                encoder->private = dsi_config;
                dsi_config->encoders[MDFLD_DSI_ENCODER_DPI] = encoder;
-
-               if (pipe == 2)
-                       dev_priv->encoder2 = encoder;
-
-               if (pipe == 0)
-                       dev_priv->encoder0 = encoder;
        }
        
        drm_sysfs_connector_add(connector);
index 30c4730..da80019 100644 (file)
 
 #include "displays/tpo_cmd.h"
 #include "displays/tpo_vid.h"
-#include "displays/tmd_cmd.h"
 #include "displays/tmd_vid.h"
-#include "displays/pyr_cmd.h"
-#include "displays/pyr_vid.h"
 #include "displays/tmd_6x10_vid.h"
-#include "displays/h8c7_vid.h"
-#include "displays/auo_sc1_vid.h"
-#include "displays/auo_sc1_cmd.h"
-#include "displays/gi_sony_vid.h"
-#include "displays/gi_sony_cmd.h"
-#include "displays/h8c7_cmd.h"
 #include "displays/hdmi.h"
 #include "psb_drv.h"
 
@@ -114,58 +105,10 @@ void init_panel(struct drm_device* dev, int mipi_pipe, enum panel_type p_type)
        struct panel_funcs * p_vid_funcs = NULL;
        int ret = 0;
 
-       dev_priv->cur_pipe = mipi_pipe;
        p_cmd_funcs = kzalloc(sizeof(struct panel_funcs), GFP_KERNEL);
        p_vid_funcs = kzalloc(sizeof(struct panel_funcs), GFP_KERNEL);
        
        switch (p_type) {
-       case TPO_CMD:
-               kfree(p_vid_funcs);
-               p_vid_funcs = NULL;
-               tpo_cmd_init(dev, p_cmd_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, p_cmd_funcs, NULL);
-               break;
-       case TPO_VID:
-               kfree(p_cmd_funcs);
-               p_cmd_funcs = NULL;
-               tpo_vid_init(dev, p_vid_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, NULL, p_vid_funcs);
-               break;
-       case AUO_SC1_CMD:
-               kfree(p_vid_funcs);
-               p_vid_funcs = NULL;
-               auo_sc1_cmd_init(dev, p_cmd_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, p_cmd_funcs,
-                               NULL);
-               break;
-       case AUO_SC1_VID:
-               kfree(p_cmd_funcs);
-               p_cmd_funcs = NULL;
-               auo_sc1_vid_init(dev, p_vid_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, NULL,
-                               p_vid_funcs);
-               break;
-       case GI_SONY_CMD:
-               kfree(p_vid_funcs);
-               p_vid_funcs = NULL;
-               gi_sony_cmd_init(dev, p_cmd_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, p_cmd_funcs,
-                               NULL);
-               break;
-       case H8C7_CMD:
-               kfree(p_vid_funcs);
-               p_vid_funcs = NULL;
-               h8c7_cmd_init(dev, p_cmd_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, p_cmd_funcs,
-                               NULL);
-               break;
-       case GI_SONY_VID:
-               kfree(p_cmd_funcs);
-               p_cmd_funcs = NULL;
-               gi_sony_vid_init(dev, p_vid_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, NULL,
-                               p_vid_funcs);
-               break;
        case TMD_6X10_VID:
                kfree(p_cmd_funcs);
                p_cmd_funcs = NULL;
@@ -175,44 +118,12 @@ void init_panel(struct drm_device* dev, int mipi_pipe, enum panel_type p_type)
                                        NULL,
                                        p_vid_funcs);
                break;
-       case H8C7_VID:
-               kfree(p_cmd_funcs);
-               p_cmd_funcs = NULL;
-               h8c7_vid_init(dev, p_vid_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe,
-                                       NULL,
-                                       NULL,
-                                       p_vid_funcs);
-               break;
        case TMD_CMD:
                /*tmd_cmd_init(dev, p_cmd_funcs);*/
                kfree(p_vid_funcs);
                p_vid_funcs = NULL;
                ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, p_cmd_funcs, NULL);
                break;
-       case TMD_VID:
-               kfree(p_cmd_funcs);
-               p_cmd_funcs = NULL;
-               tmd_vid_init(dev, p_vid_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, NULL, p_vid_funcs);
-               break;
-       case PYR_CMD:
-               kfree(p_vid_funcs);
-               p_vid_funcs = NULL;
-               pyr_cmd_init(dev, p_cmd_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, p_cmd_funcs, NULL);
-               break;
-       case PYR_VID:
-               /*pyr_vid_init(dev, p_vid_funcs);*/
-               kfree(p_cmd_funcs);
-               p_cmd_funcs = NULL;
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, NULL, p_vid_funcs);
-               break;
-       case TPO:       /*TPO panel supports both cmd & vid interfaces*/
-               tpo_cmd_init(dev, p_cmd_funcs);
-               tpo_vid_init(dev, p_vid_funcs);
-               ret = mdfld_dsi_output_init(dev, mipi_pipe, NULL, p_cmd_funcs, p_vid_funcs);
-               break;
        case TMD:
        case PYR:
                kfree(p_vid_funcs);
index 1c7af16..00eff4d 100755 (executable)
@@ -657,7 +657,7 @@ struct drm_display_mode *pr2_vid_get_config_mode(struct drm_device *dev)
                PSB_DEBUG_ENTRY("vtotal is %d\n", mode->vtotal);
                PSB_DEBUG_ENTRY("clock is %d\n", mode->clock);
        } else {
-               mode->hdisplay = 800;
+               mode->hdisplay = 600;
                mode->vdisplay = 1024;
                mode->hsync_start = 823;
                mode->hsync_end = 831;
index 3845907..64b2b75 100644 (file)
@@ -922,6 +922,8 @@ struct drm_psb_private {
         */
        uint32_t swap_chain_flag;
 
+       spinlock_t dsr_lock;
+
        bool hdmi_done_reading_edid;
        bool xserver_start;