OSDN Git Service

Merge tag 'drm-intel-next-2018-05-14' of git://anongit.freedesktop.org/drm/drm-intel...
authorDave Airlie <airlied@redhat.com>
Tue, 15 May 2018 21:10:13 +0000 (07:10 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 15 May 2018 21:10:13 +0000 (07:10 +1000)
Last drm/i915 changes for v4.18:

- NV12 enabling (Chandra, Maarten)
- ICL workarounds (Oscar)
- ICL basic DPLL enabling (Paulo)
- GVT updates
- DP link config refactoring (Jani)
- Module parameter to override DMC firmware (Jani)
- PSR updates (José, DK, Daniel, Ville)
- ICL DP vswing programming (Manasi)
- ICL DBuf slice updates (Mahesh)
- Selftest fixes and updates (Chris, Matthew, Oscar)
- Execlist fixes and updates (Chris)
- Stolen memory first 4k fix (Hans de Goede)
- wait_for fixes (Mika)
- Tons of GEM improvements (Chris)
- Plenty of other fixes and improvements (Everyone)
- Crappy changelog (Me)

Signed-off-by: Dave Airlie <airlied@redhat.com>
# gpg: Signature made Mon 14 May 2018 11:04:24 PM AEST
# gpg:                using RSA key D398079D26ABEE6F
# gpg: Good signature from "Jani Nikula <jani.nikula@intel.com>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 1565 A65B 77B0 632E 1124  E59C D398 079D 26AB EE6F

# Conflicts:
# drivers/gpu/drm/i915/intel_lrc.c
# drivers/gpu/drm/i915/intel_sprite.c
Link: https://patchwork.freedesktop.org/patch/msgid/87k1s51bvw.fsf@intel.com
1  2 
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/intel_lrc.c
drivers/gpu/drm/i915/intel_sprite.c

Simple merge
Simple merge
Simple merge
@@@ -1005,36 -1060,44 +1005,37 @@@ intel_check_sprite_plane(struct intel_p
                src_y = src->y1 >> 16;
                src_h = drm_rect_height(src) >> 16;
  
 +              src->x1 = src_x << 16;
 +              src->x2 = (src_x + src_w) << 16;
 +              src->y1 = src_y << 16;
 +              src->y2 = (src_y + src_h) << 16;
 +
                if (intel_format_is_yuv(fb->format->format) &&
 -                  fb->format->format != DRM_FORMAT_NV12) {
 -                      src_x &= ~1;
 -                      src_w &= ~1;
 -
 -                      /*
 -                       * Must keep src and dst the
 -                       * same if we can't scale.
 -                       */
 -                      if (!can_scale)
 -                              crtc_w &= ~1;
 -
 -                      if (crtc_w == 0)
 -                              state->base.visible = false;
++                  fb->format->format != DRM_FORMAT_NV12 &&
 +                  (src_x % 2 || src_w % 2)) {
 +                      DRM_DEBUG_KMS("src x/w (%u, %u) must be a multiple of 2 for YUV planes\n",
 +                                    src_x, src_w);
 +                      return -EINVAL;
                }
 -      }
  
 -      /* Check size restrictions when scaling */
 -      if (state->base.visible && (src_w != crtc_w || src_h != crtc_h)) {
 -              unsigned int width_bytes;
 -              int cpp = fb->format->cpp[0];
 +              /* Check size restrictions when scaling */
 +              if (src_w != crtc_w || src_h != crtc_h) {
 +                      unsigned int width_bytes;
 +                      int cpp = fb->format->cpp[0];
  
 -              WARN_ON(!can_scale);
 +                      WARN_ON(!can_scale);
  
 -              /* FIXME interlacing min height is 6 */
 +                      width_bytes = ((src_x * cpp) & 63) + src_w * cpp;
  
 -              if (crtc_w < 3 || crtc_h < 3)
 -                      state->base.visible = false;
 -
 -              if (src_w < 3 || src_h < 3)
 -                      state->base.visible = false;
 -
 -              width_bytes = ((src_x * cpp) & 63) + src_w * cpp;
 -
 -              if (INTEL_GEN(dev_priv) < 9 && (src_w > 2048 || src_h > 2048 ||
 -                  width_bytes > 4096 || fb->pitches[0] > 4096)) {
 -                      DRM_DEBUG_KMS("Source dimensions exceed hardware limits\n");
 -                      return -EINVAL;
 +                      /* FIXME interlacing min height is 6 */
 +                      if (INTEL_GEN(dev_priv) < 9 && (
 +                           src_w < 3 || src_h < 3 ||
 +                           src_w > 2048 || src_h > 2048 ||
 +                           crtc_w < 3 || crtc_h < 3 ||
 +                           width_bytes > 4096 || fb->pitches[0] > 4096)) {
 +                              DRM_DEBUG_KMS("Source dimensions exceed hardware limits\n");
 +                              return -EINVAL;
 +                      }
                }
        }