提交 3d099a05 编写于 作者: D Daniel Vetter

drm/i915: Add new CRC sources

On pre-gen5 and vlv we can't use the pipe source when TV-out or a DP
port is connected to the pipe. Hence we need to expose new CRC
sources.

Also simplify the existing pipe source platform code a bit by
rejecting all unhandled sources by default.
Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
上级 b073aeaa
...@@ -1915,6 +1915,10 @@ static const char * const pipe_crc_sources[] = { ...@@ -1915,6 +1915,10 @@ static const char * const pipe_crc_sources[] = {
"plane2", "plane2",
"pf", "pf",
"pipe", "pipe",
"TV",
"DP-B",
"DP-C",
"DP-D",
}; };
static const char *pipe_crc_source_name(enum intel_pipe_crc_source source) static const char *pipe_crc_source_name(enum intel_pipe_crc_source source)
...@@ -1953,14 +1957,14 @@ static int ilk_pipe_crc_ctl_reg(enum intel_pipe_crc_source source, ...@@ -1953,14 +1957,14 @@ static int ilk_pipe_crc_ctl_reg(enum intel_pipe_crc_source source,
case INTEL_PIPE_CRC_SOURCE_PLANE2: case INTEL_PIPE_CRC_SOURCE_PLANE2:
*val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_SPRITE_ILK; *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_SPRITE_ILK;
break; break;
case INTEL_PIPE_CRC_SOURCE_PF:
return -EINVAL;
case INTEL_PIPE_CRC_SOURCE_PIPE: case INTEL_PIPE_CRC_SOURCE_PIPE:
*val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PIPE_ILK; *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PIPE_ILK;
break; break;
default: case INTEL_PIPE_CRC_SOURCE_NONE:
*val = 0; *val = 0;
break; break;
default:
return -EINVAL;
} }
return 0; return 0;
...@@ -1979,11 +1983,11 @@ static int ivb_pipe_crc_ctl_reg(enum intel_pipe_crc_source source, ...@@ -1979,11 +1983,11 @@ static int ivb_pipe_crc_ctl_reg(enum intel_pipe_crc_source source,
case INTEL_PIPE_CRC_SOURCE_PF: case INTEL_PIPE_CRC_SOURCE_PF:
*val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PF_IVB; *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PF_IVB;
break; break;
case INTEL_PIPE_CRC_SOURCE_PIPE: case INTEL_PIPE_CRC_SOURCE_NONE:
return -EINVAL;
default:
*val = 0; *val = 0;
break; break;
default:
return -EINVAL;
} }
return 0; return 0;
......
...@@ -1224,6 +1224,11 @@ enum intel_pipe_crc_source { ...@@ -1224,6 +1224,11 @@ enum intel_pipe_crc_source {
INTEL_PIPE_CRC_SOURCE_PLANE2, INTEL_PIPE_CRC_SOURCE_PLANE2,
INTEL_PIPE_CRC_SOURCE_PF, INTEL_PIPE_CRC_SOURCE_PF,
INTEL_PIPE_CRC_SOURCE_PIPE, INTEL_PIPE_CRC_SOURCE_PIPE,
/* TV/DP on pre-gen5/vlv can't use the pipe source. */
INTEL_PIPE_CRC_SOURCE_TV,
INTEL_PIPE_CRC_SOURCE_DP_B,
INTEL_PIPE_CRC_SOURCE_DP_C,
INTEL_PIPE_CRC_SOURCE_DP_D,
INTEL_PIPE_CRC_SOURCE_MAX, INTEL_PIPE_CRC_SOURCE_MAX,
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册