|
@@ -137,19 +137,15 @@ static bool intel_dvo_connector_get_hw_state(struct intel_connector *connector)
|
|
|
static bool intel_dvo_get_hw_state(struct intel_encoder *encoder,
|
|
|
enum pipe *pipe)
|
|
|
{
|
|
|
- struct drm_device *dev = encoder->base.dev;
|
|
|
- struct drm_i915_private *dev_priv = to_i915(dev);
|
|
|
+ struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
|
|
|
struct intel_dvo *intel_dvo = enc_to_dvo(encoder);
|
|
|
u32 tmp;
|
|
|
|
|
|
tmp = I915_READ(intel_dvo->dev.dvo_reg);
|
|
|
|
|
|
- if (!(tmp & DVO_ENABLE))
|
|
|
- return false;
|
|
|
-
|
|
|
- *pipe = PORT_TO_PIPE(tmp);
|
|
|
+ *pipe = (tmp & DVO_PIPE_SEL_MASK) >> DVO_PIPE_SEL_SHIFT;
|
|
|
|
|
|
- return true;
|
|
|
+ return tmp & DVO_ENABLE;
|
|
|
}
|
|
|
|
|
|
static void intel_dvo_get_config(struct intel_encoder *encoder,
|
|
@@ -276,8 +272,7 @@ static void intel_dvo_pre_enable(struct intel_encoder *encoder,
|
|
|
dvo_val |= DVO_DATA_ORDER_FP | DVO_BORDER_ENABLE |
|
|
|
DVO_BLANK_ACTIVE_HIGH;
|
|
|
|
|
|
- if (pipe == 1)
|
|
|
- dvo_val |= DVO_PIPE_B_SELECT;
|
|
|
+ dvo_val |= DVO_PIPE_SEL(pipe);
|
|
|
dvo_val |= DVO_PIPE_STALL;
|
|
|
if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
|
|
|
dvo_val |= DVO_HSYNC_ACTIVE_HIGH;
|