drm/i915: Clean up the CPT DP .get_hw_state() port readout

Define a TRANS_DP_PIPE_TO_PORT() to make the CPT DP .get_hw_state()
pipe readout neater.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Ville Syrjälä 2015-05-05 17:17:30 +03:00 committed by Daniel Vetter
parent 39e5fa8886
commit adc289d749
2 changed files with 6 additions and 21 deletions

View file

@ -6440,6 +6440,7 @@ enum skl_disp_power_wells {
#define TRANS_DP_PORT_SEL_D (2<<29) #define TRANS_DP_PORT_SEL_D (2<<29)
#define TRANS_DP_PORT_SEL_NONE (3<<29) #define TRANS_DP_PORT_SEL_NONE (3<<29)
#define TRANS_DP_PORT_SEL_MASK (3<<29) #define TRANS_DP_PORT_SEL_MASK (3<<29)
#define TRANS_DP_PIPE_TO_PORT(val) ((((val) & TRANS_DP_PORT_SEL_MASK) >> 29) + PORT_B)
#define TRANS_DP_AUDIO_ONLY (1<<26) #define TRANS_DP_AUDIO_ONLY (1<<26)
#define TRANS_DP_ENH_FRAMING (1<<18) #define TRANS_DP_ENH_FRAMING (1<<18)
#define TRANS_DP_8BPC (0<<9) #define TRANS_DP_8BPC (0<<9)

View file

@ -2186,28 +2186,12 @@ static bool intel_dp_get_hw_state(struct intel_encoder *encoder,
if (IS_GEN7(dev) && port == PORT_A) { if (IS_GEN7(dev) && port == PORT_A) {
*pipe = PORT_TO_PIPE_CPT(tmp); *pipe = PORT_TO_PIPE_CPT(tmp);
} else if (HAS_PCH_CPT(dev) && port != PORT_A) { } else if (HAS_PCH_CPT(dev) && port != PORT_A) {
u32 trans_sel; enum pipe p;
u32 trans_dp;
int i;
switch (intel_dp->output_reg) { for_each_pipe(dev_priv, p) {
case PCH_DP_B: u32 trans_dp = I915_READ(TRANS_DP_CTL(p));
trans_sel = TRANS_DP_PORT_SEL_B; if (TRANS_DP_PIPE_TO_PORT(trans_dp) == port) {
break; *pipe = p;
case PCH_DP_C:
trans_sel = TRANS_DP_PORT_SEL_C;
break;
case PCH_DP_D:
trans_sel = TRANS_DP_PORT_SEL_D;
break;
default:
return true;
}
for_each_pipe(dev_priv, i) {
trans_dp = I915_READ(TRANS_DP_CTL(i));
if ((trans_dp & TRANS_DP_PORT_SEL_MASK) == trans_sel) {
*pipe = i;
return true; return true;
} }
} }