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>
This commit is contained in:
Родитель
b073aeaa28
Коммит
3d099a05b1
|
@ -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,
|
||||||
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,
|
||||||
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 {
|
||||||
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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче