mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-28 15:13:55 +08:00
drm/i915: Reject odd pipe source width with double wide/dual link
In order to guarantee that pipe_src_w/h matches the user mode h/vdisplay we must not adjust pipe_src_w to accommodate double wide/dual link. Instead just reject the mode outright. This will allows us to rely on crtc_state->mode for plane clipping. Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20171123190502.28449-2-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
a63b8e7958
commit
0574bd882e
@ -6372,9 +6372,18 @@ static int intel_crtc_compute_config(struct intel_crtc *crtc,
|
||||
* - LVDS dual channel mode
|
||||
* - Double wide pipe
|
||||
*/
|
||||
if ((intel_crtc_has_type(pipe_config, INTEL_OUTPUT_LVDS) &&
|
||||
intel_is_dual_link_lvds(dev)) || pipe_config->double_wide)
|
||||
pipe_config->pipe_src_w &= ~1;
|
||||
if (pipe_config->pipe_src_w & 1) {
|
||||
if (pipe_config->double_wide) {
|
||||
DRM_DEBUG_KMS("Odd pipe source width not supported with double wide pipe\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (intel_crtc_has_type(pipe_config, INTEL_OUTPUT_LVDS) &&
|
||||
intel_is_dual_link_lvds(dev)) {
|
||||
DRM_DEBUG_KMS("Odd pipe source width not supported with dual link LVDS\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
/* Cantiga+ cannot handle modes with a hsync front porch of 0.
|
||||
* WaPruneModeWithIncorrectHsyncOffset:ctg,elk,ilk,snb,ivb,vlv,hsw.
|
||||
|
Loading…
Reference in New Issue
Block a user