mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
drm/i915: Clean up DVO pipe select bits
Parametrize the DVO pipe select bits. For consistency with the new way of doing things, let's read out the pipe select bits even when the port is disable, even though we don't need that behaviour for asserts in this case. v2: Order the defines shift,mask,value (Jani) Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180514172423.9302-5-ville.syrjala@linux.intel.com
This commit is contained in:
parent
4add0f6bde
commit
b45a258897
2 changed files with 7 additions and 10 deletions
|
@ -4357,7 +4357,9 @@ enum {
|
||||||
#define _DVOC 0x61160
|
#define _DVOC 0x61160
|
||||||
#define DVOC _MMIO(_DVOC)
|
#define DVOC _MMIO(_DVOC)
|
||||||
#define DVO_ENABLE (1 << 31)
|
#define DVO_ENABLE (1 << 31)
|
||||||
#define DVO_PIPE_B_SELECT (1 << 30)
|
#define DVO_PIPE_SEL_SHIFT 30
|
||||||
|
#define DVO_PIPE_SEL_MASK (1 << 30)
|
||||||
|
#define DVO_PIPE_SEL(pipe) ((pipe) << 30)
|
||||||
#define DVO_PIPE_STALL_UNUSED (0 << 28)
|
#define DVO_PIPE_STALL_UNUSED (0 << 28)
|
||||||
#define DVO_PIPE_STALL (1 << 28)
|
#define DVO_PIPE_STALL (1 << 28)
|
||||||
#define DVO_PIPE_STALL_TV (2 << 28)
|
#define DVO_PIPE_STALL_TV (2 << 28)
|
||||||
|
|
|
@ -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,
|
static bool intel_dvo_get_hw_state(struct intel_encoder *encoder,
|
||||||
enum pipe *pipe)
|
enum pipe *pipe)
|
||||||
{
|
{
|
||||||
struct drm_device *dev = encoder->base.dev;
|
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
|
||||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
|
||||||
struct intel_dvo *intel_dvo = enc_to_dvo(encoder);
|
struct intel_dvo *intel_dvo = enc_to_dvo(encoder);
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
tmp = I915_READ(intel_dvo->dev.dvo_reg);
|
tmp = I915_READ(intel_dvo->dev.dvo_reg);
|
||||||
|
|
||||||
if (!(tmp & DVO_ENABLE))
|
*pipe = (tmp & DVO_PIPE_SEL_MASK) >> DVO_PIPE_SEL_SHIFT;
|
||||||
return false;
|
|
||||||
|
|
||||||
*pipe = PORT_TO_PIPE(tmp);
|
return tmp & DVO_ENABLE;
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void intel_dvo_get_config(struct intel_encoder *encoder,
|
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_val |= DVO_DATA_ORDER_FP | DVO_BORDER_ENABLE |
|
||||||
DVO_BLANK_ACTIVE_HIGH;
|
DVO_BLANK_ACTIVE_HIGH;
|
||||||
|
|
||||||
if (pipe == 1)
|
dvo_val |= DVO_PIPE_SEL(pipe);
|
||||||
dvo_val |= DVO_PIPE_B_SELECT;
|
|
||||||
dvo_val |= DVO_PIPE_STALL;
|
dvo_val |= DVO_PIPE_STALL;
|
||||||
if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
|
if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
|
||||||
dvo_val |= DVO_HSYNC_ACTIVE_HIGH;
|
dvo_val |= DVO_HSYNC_ACTIVE_HIGH;
|
||||||
|
|
Loading…
Reference in a new issue