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);