diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-10-16 16:55:58 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-10-21 12:33:42 -0400 |
commit | 3d099a05b121727bfa797391ea1da15eb33eac16 (patch) | |
tree | 25e7e4a8cc84c51da29c6513805d3417a6dd0a5d | |
parent | b073aeaa28b43b00b5c90096c76e872dca4d4ee4 (diff) |
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: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/i915/i915_debugfs.c | 16 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 5 |
2 files changed, 15 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 061182a0ce1b..d7ee350fc6a3 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c | |||
@@ -1915,6 +1915,10 @@ static const char * const pipe_crc_sources[] = { | |||
1915 | "plane2", | 1915 | "plane2", |
1916 | "pf", | 1916 | "pf", |
1917 | "pipe", | 1917 | "pipe", |
1918 | "TV", | ||
1919 | "DP-B", | ||
1920 | "DP-C", | ||
1921 | "DP-D", | ||
1918 | }; | 1922 | }; |
1919 | 1923 | ||
1920 | static const char *pipe_crc_source_name(enum intel_pipe_crc_source source) | 1924 | 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 | case INTEL_PIPE_CRC_SOURCE_PLANE2: | 1957 | case INTEL_PIPE_CRC_SOURCE_PLANE2: |
1954 | *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_SPRITE_ILK; | 1958 | *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_SPRITE_ILK; |
1955 | break; | 1959 | break; |
1956 | case INTEL_PIPE_CRC_SOURCE_PF: | ||
1957 | return -EINVAL; | ||
1958 | case INTEL_PIPE_CRC_SOURCE_PIPE: | 1960 | case INTEL_PIPE_CRC_SOURCE_PIPE: |
1959 | *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PIPE_ILK; | 1961 | *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PIPE_ILK; |
1960 | break; | 1962 | break; |
1961 | default: | 1963 | case INTEL_PIPE_CRC_SOURCE_NONE: |
1962 | *val = 0; | 1964 | *val = 0; |
1963 | break; | 1965 | break; |
1966 | default: | ||
1967 | return -EINVAL; | ||
1964 | } | 1968 | } |
1965 | 1969 | ||
1966 | return 0; | 1970 | return 0; |
@@ -1979,11 +1983,11 @@ static int ivb_pipe_crc_ctl_reg(enum intel_pipe_crc_source source, | |||
1979 | case INTEL_PIPE_CRC_SOURCE_PF: | 1983 | case INTEL_PIPE_CRC_SOURCE_PF: |
1980 | *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PF_IVB; | 1984 | *val = PIPE_CRC_ENABLE | PIPE_CRC_SOURCE_PF_IVB; |
1981 | break; | 1985 | break; |
1982 | case INTEL_PIPE_CRC_SOURCE_PIPE: | 1986 | case INTEL_PIPE_CRC_SOURCE_NONE: |
1983 | return -EINVAL; | ||
1984 | default: | ||
1985 | *val = 0; | 1987 | *val = 0; |
1986 | break; | 1988 | break; |
1989 | default: | ||
1990 | return -EINVAL; | ||
1987 | } | 1991 | } |
1988 | 1992 | ||
1989 | return 0; | 1993 | return 0; |
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index dee03325d596..07e4949c5f3c 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -1224,6 +1224,11 @@ enum intel_pipe_crc_source { | |||
1224 | INTEL_PIPE_CRC_SOURCE_PLANE2, | 1224 | INTEL_PIPE_CRC_SOURCE_PLANE2, |
1225 | INTEL_PIPE_CRC_SOURCE_PF, | 1225 | INTEL_PIPE_CRC_SOURCE_PF, |
1226 | INTEL_PIPE_CRC_SOURCE_PIPE, | 1226 | INTEL_PIPE_CRC_SOURCE_PIPE, |
1227 | /* TV/DP on pre-gen5/vlv can't use the pipe source. */ | ||
1228 | INTEL_PIPE_CRC_SOURCE_TV, | ||
1229 | INTEL_PIPE_CRC_SOURCE_DP_B, | ||
1230 | INTEL_PIPE_CRC_SOURCE_DP_C, | ||
1231 | INTEL_PIPE_CRC_SOURCE_DP_D, | ||
1227 | INTEL_PIPE_CRC_SOURCE_MAX, | 1232 | INTEL_PIPE_CRC_SOURCE_MAX, |
1228 | }; | 1233 | }; |
1229 | 1234 | ||