summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2013-08-01 13:58:17 -0700
committerPatrick Georgi <patrick@georgi-clan.de>2013-12-21 13:26:59 +0100
commit771c3aca70e6fa8eb0b3ad5f6b6478578bfb5e85 (patch)
treeb7802f46f2f7bb48732305d7d30869749b08082d
parentdb3157cfee6881d8095c4f96cd1fa5d5da9a5c68 (diff)
downloadcoreboot-771c3aca70e6fa8eb0b3ad5f6b6478578bfb5e85.tar.xz
Slippy/Falco: Fill in right values for PHSYNC and PVSYNC in transcoder flags
Depending upon the values decoded from edid, the function decides the appropriate bits to be set in flags parameter (Important for fastboot to work correctly in kernel) Change-Id: I3b0f914dc2b0fd887eb6a1f706f87b87c86ff856 Reviewed-on: https://gerrit.chromium.org/gerrit/64265 Reviewed-by: Ronald G. Minnich <rminnich@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: http://review.coreboot.org/4423 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r--src/drivers/intel/gma/i915.h4
-rw-r--r--src/drivers/intel/gma/intel_ddi.c10
-rw-r--r--src/mainboard/google/slippy/gma.c4
3 files changed, 14 insertions, 4 deletions
diff --git a/src/drivers/intel/gma/i915.h b/src/drivers/intel/gma/i915.h
index 12a7ee02bb..9a6314e32b 100644
--- a/src/drivers/intel/gma/i915.h
+++ b/src/drivers/intel/gma/i915.h
@@ -228,7 +228,9 @@ u32 intel_ddi_calc_transcoder_flags(u32 pipe_bpp,
enum pipe pipe,
int type,
int lane_count,
- int pf_sz);
+ int pf_sz,
+ u8 phsync,
+ u8 pvsync);
enum transcoder intel_ddi_get_transcoder(enum port port,
enum pipe pipe);
diff --git a/src/drivers/intel/gma/intel_ddi.c b/src/drivers/intel/gma/intel_ddi.c
index ff8ad4cf9e..9ddd781c97 100644
--- a/src/drivers/intel/gma/intel_ddi.c
+++ b/src/drivers/intel/gma/intel_ddi.c
@@ -163,7 +163,9 @@ u32 intel_ddi_calc_transcoder_flags(u32 pipe_bpp,
enum pipe pipe,
int type,
int lane_count,
- int pf_sz)
+ int pf_sz,
+ u8 phsync,
+ u8 pvsync)
{
u32 temp;
@@ -206,7 +208,11 @@ u32 intel_ddi_calc_transcoder_flags(u32 pipe_bpp,
}
}
- /* We need to check for TRANS_DDI_PVSYNC and TRANS_DDI_PHSYNC -- How? */
+ if (phsync)
+ temp |= TRANS_DDI_PHSYNC;
+
+ if (pvsync)
+ temp |= TRANS_DDI_PVSYNC;
if (type == INTEL_OUTPUT_HDMI) {
/* Need to understand when to set TRANS_DDI_MODE_SELECT_HDMI / TRANS_DDI_MODE_SELECT_DVI */
diff --git a/src/mainboard/google/slippy/gma.c b/src/mainboard/google/slippy/gma.c
index 026bba1583..1d79d78478 100644
--- a/src/mainboard/google/slippy/gma.c
+++ b/src/mainboard/google/slippy/gma.c
@@ -293,7 +293,9 @@ void dp_init_dim_regs(struct intel_dp *dp)
dp->pipe,
dp->type,
dp->lane_count,
- dp->pfa_sz);
+ dp->pfa_sz,
+ dp->edid.phsync == '+'?1:0,
+ dp->edid.pvsync == '+'?1:0);
dp->transcoder = intel_ddi_get_transcoder(dp->port,
dp->pipe);