From 29a5a57c274bc91e89fb3af54716daeab5409caa Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 5 Jul 2011 15:39:06 +0100 Subject: [PATCH] --- yaml --- r: 259678 b: refs/heads/master c: 060351f17401937d65232100405888e7f16d4f4f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/staging/gma500/mrst_bios.c | 29 +++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 31e868eceaed..c5bb439b9b1e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cc976ced8e78332b88e4f4d63e7025d97809e776 +refs/heads/master: 060351f17401937d65232100405888e7f16d4f4f diff --git a/trunk/drivers/staging/gma500/mrst_bios.c b/trunk/drivers/staging/gma500/mrst_bios.c index 0d944c47bc90..103777b6776a 100644 --- a/trunk/drivers/staging/gma500/mrst_bios.c +++ b/trunk/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; + } + } }