From 060351f17401937d65232100405888e7f16d4f4f Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 5 Jul 2011 15:39:06 +0100 Subject: [PATCH] gma500: Read the GCT panel type information for Medfield Missed in the original merge work Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman --- drivers/staging/gma500/mrst_bios.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/staging/gma500/mrst_bios.c b/drivers/staging/gma500/mrst_bios.c index 0d944c47bc9..103777b6776 100644 --- a/drivers/staging/gma500/mrst_bios.c +++ b/drivers/staging/gma500/mrst_bios.c @@ -28,6 +28,12 @@ #include "psb_drm.h" #include "psb_drv.h" #include "mrst_bios.h" +#include "mdfld_output.h" + +static int panel_id; +module_param_named(panel_id, panel_id, int, 0600); +MODULE_PARM_DESC(panel_id, "Panel Identifier"); + void mrst_get_fuse_settings(struct drm_device *dev) { @@ -231,6 +237,27 @@ void mrst_get_vbt_data(struct drm_psb_private *dev_priv) dev_err(dev->dev, "Unknown revision of GCT!\n"); vbt->size = 0; } - /* FIXME: Need to sort out Medfield panel identifiers in future */ + if (IS_MDFLD(dev_priv->dev)){ + if (panel_id == GCT_DETECT) { + if (dev_priv->gct_data.bpi == 2) { + dev_info(dev->dev, "[GFX] PYR Panel Detected\n"); + dev_priv->panel_id = PYR_CMD; + panel_id = PYR_CMD; + } + else if(dev_priv->gct_data.bpi == 0) { + dev_info(dev->dev, "[GFX] TMD Panel Detected.\n"); + dev_priv->panel_id = TMD_VID; + panel_id = TMD_VID; + } + else { + dev_info(dev->dev, "[GFX] Default Panel (TPO)\n"); + dev_priv->panel_id = TPO_CMD; + panel_id = TPO_CMD; + } + } else { + dev_info(dev->dev, "[GFX] Panel Parameter Passed in through cmd line\n"); + dev_priv->panel_id = panel_id; + } + } } -- 2.11.4.GIT