1. 22 May, 2018 1 commit
  2. 21 May, 2018 1 commit
  3. 20 May, 2018 1 commit
  4. 18 May, 2018 22 commits
  5. 17 May, 2018 4 commits
    • Stanislav Lisovskiy's avatar
      i915: content-type property for HDMI connector · 6553b123
      Stanislav Lisovskiy authored
      Added encoding of drm content_type property from drm_connector_state
      within AVI infoframe in order to properly handle external HDMI TV
      content-type setting.
      
      This requires also manipulationg ITC bit, as stated in
      HDMI spec.
      
      v2:
       * Moved helper function which attaches content type property
         to the drm core, as was suggested.
         Removed redundant connector state initialization.
      
      v3:
       * Removed caps in drm_content_type_enum_list.
         After some discussion it turned out that HDMI Spec 1.4
         was wrongly assuming that IT Content(itc) bit doesn't affect
         Content type states, however itc bit needs to be manupulated
         as well. In order to not expose additional property for itc,
         for sake of simplicity it was decided to bind those together
         in same "content type" property.
      
      v4:
       * Added it_content checking in intel_digital_connector_atomic_check.
         Fixed documentation for new content type enum.
      
      v5:
       * Moved patch revision's description to commit messages.
      
      v6:
       * Minor naming fix for the content type enumeration string.
      
      v7:
       * Fix parameter name for documentation and parameter alignment
         in order not to get warning. Added Content Type description to
         new HDMI connector properties section.
      
      v8:
       * Thrown away unneeded numbers from HDMI content-type property
         description. Switch to strings desription instead of plain
         definitions.
      
      v9:
       * Moved away hdmi specific content-type enum from
         drm_connector_state. Content type property should probably not
         be bound to any specific connector interface in
         drm_connector_state.
         Same probably should be done to hdmi_picture_aspect_ration enum
         which is also contained in drm_connector_state. Added special
         helper function to get derive hdmi specific relevant infoframe
         fields.
      
      v10:
       * Added usage description to HDMI properties kernel doc.
      
      v11:
       * Created centralized function for filling HDMI AVI infoframe, based
         on correspondent DRM property value.
      Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180515135928.31092-3-stanislav.lisovskiy@intel.com
      [vsyrjala: clean up checkpatch multiple blank lines warnings]
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      6553b123
    • Stanislav Lisovskiy's avatar
      drm: content-type property for HDMI connector · 50525c33
      Stanislav Lisovskiy authored
      Added content_type property to drm_connector_state
      in order to properly handle external HDMI TV content-type setting.
      
      v2:
       * Moved helper function which attaches content type property
         to the drm core, as was suggested.
         Removed redundant connector state initialization.
      
      v3:
       * Removed caps in drm_content_type_enum_list.
         After some discussion it turned out that HDMI Spec 1.4
         was wrongly assuming that IT Content(itc) bit doesn't affect
         Content type states, however itc bit needs to be manupulated
         as well. In order to not expose additional property for itc,
         for sake of simplicity it was decided to bind those together
         in same "content type" property.
      
      v4:
       * Added it_content checking in intel_digital_connector_atomic_check.
         Fixed documentation for new content type enum.
      
      v5:
       * Moved patch revision's description to commit messages.
      
      v6:
       * Minor naming fix for the content type enumeration string.
      
      v7:
       * Fix parameter name for documentation and parameter alignment
         in order not to get warning. Added Content Type description to
         new HDMI connector properties section.
      
      v8:
       * Thrown away unneeded numbers from HDMI content-type property
         description. Switch to strings desription instead of plain
         definitions.
      
      v9:
       * Moved away hdmi specific content-type enum from
         drm_connector_state. Content type property should probably not
         be bound to any specific connector interface in
         drm_connector_state.
         Same probably should be done to hdmi_picture_aspect_ration enum
         which is also contained in drm_connector_state. Added special
         helper function to get derive hdmi specific relevant infoframe
         fields.
      
      v10:
       * Added usage description to HDMI properties kernel doc.
      
      v11:
       * Created centralized function for filling HDMI AVI infoframe, based
         on correspondent DRM property value.
      Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180515135928.31092-2-stanislav.lisovskiy@intel.com
      [vsyrjala: clean up checkpatch multiple blank lines warnings]
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      50525c33
    • Philippe Cornu's avatar
    • Maxime Ripard's avatar
      drm/vc4: plane: Expand the lower bits by repeating the higher bits · 3257ec79
      Maxime Ripard authored
      The vc4 HVS uses an internal RGB888 representation of the frames, and will
      by default expand formats using a lower depth using zeros.
      
      This causes an issue when we try to use other compositing software such as
      pixman that fill the missing bits by repeating the higher significant bits.
      As such, we can't check the display output in a reliable way by doing a
      software composition and an hardware one and compare both.
      
      To prevent this, force the same behaviour so that we can do such things.
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180517133759.25626-1-maxime.ripard@bootlin.com
      3257ec79
  6. 15 May, 2018 2 commits
  7. 14 May, 2018 3 commits
  8. 11 May, 2018 6 commits
    • Maarten Lankhorst's avatar
      Merge remote-tracking branch 'drm/drm-next' into drm-misc-next · 94cc2fde
      Maarten Lankhorst authored
      drm-misc-next is still based on v4.16-rc7, and was getting a bit stale.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      94cc2fde
    • Shashank Sharma's avatar
      drm: Add and handle new aspect ratios in DRM layer · 900aa8ad
      Shashank Sharma authored
      HDMI 2.0/CEA-861-F introduces two new aspect ratios:
      - 64:27
      - 256:135
      
      This patch:
      -  Adds new DRM flags for to represent these new aspect ratios.
      -  Adds new cases to handle these aspect ratios while converting
      from user->kernel mode or vise versa.
      
      This patch was once reviewed and merged, and later reverted due
      to lack of DRM client protection, while adding aspect ratio bits
      in user modes. This is a re-spin of the series, with DRM client
      cap protection.
      
      The previous series can be found here:
      https://pw-emeril.freedesktop.org/series/10850/Signed-off-by: default avatarShashank Sharma <shashank.sharma@intel.com>
      Reviewed-by: Sean Paul <seanpaul@chromium.org> (V2)
      Reviewed-by: Jose Abreu <Jose.Abreu@synopsys.com> (V2)
      
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Jose Abreu <Jose.Abreu@synopsys.com>
      Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
      
      V3: rebase
      V4: rebase
      V5: corrected the macro name for an aspect ratio, in a switch case.
      V6: rebase
      V7: rebase
      V8: rebase
      V9: rebase
      V10: rebase
      V11: rebase
      V12: rebase
      V13: rebase
      V14: rebase
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1525777785-9740-11-git-send-email-ankit.k.nautiyal@intel.com
      900aa8ad
    • Shashank Sharma's avatar
      drm: Add aspect ratio parsing in DRM layer · 222ec161
      Shashank Sharma authored
      Current DRM layer functions don't parse aspect ratio information
      while converting a user mode->kernel mode or vice versa. This
      causes modeset to pick mode with wrong aspect ratio, eventually
      causing failures in HDMI compliance test cases, due to wrong VIC.
      
      This patch adds aspect ratio information in DRM's mode conversion
      and mode comparision functions, to make sure kernel picks mode
      with right aspect ratio (as per the VIC).
      
      Background:
      This patch was once reviewed and merged, and later reverted due to
      lack of DRM cap protection. This is a re-spin of this patch, this
      time with DRM cap protection, to avoid aspect ratio information, when
      the client doesn't request for it.
      
      Review link: https://pw-emeril.freedesktop.org/patch/104068/
      Background discussion: https://patchwork.kernel.org/patch/9379057/Signed-off-by: default avatarShashank Sharma <shashank.sharma@intel.com>
      Signed-off-by: default avatarLin, Jia <lin.a.jia@intel.com>
      Signed-off-by: default avatarAkashdeep Sharma <akashdeep.sharma@intel.com>
      Reviewed-by: Jim Bride <jim.bride@linux.intel.com> (V2)
      Reviewed-by: Jose Abreu <Jose.Abreu@synopsys.com> (V4)
      
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Cc: Jim Bride <jim.bride@linux.intel.com>
      Cc: Jose Abreu <Jose.Abreu@synopsys.com>
      Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
      
      V3: modified the aspect-ratio check in drm_mode_equal as per new flags
          provided by Ville. https://patchwork.freedesktop.org/patch/188043/
      V4: rebase
      V5: rebase
      V6: As recommended by Ville, avoided matching of aspect-ratio in
          drm_fb_helper, while trying to find a common mode among connectors
          for the target clone mode.
      V7: rebase
      V8: rebase
      V9: rebase
      V10: rebase
      V11: rebase
      V12: rebase
      V13: rebase
      V14: rebase
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1525777785-9740-10-git-send-email-ankit.k.nautiyal@intel.com
      222ec161
    • Ankit Nautiyal's avatar
      drm: Expose modes with aspect ratio, only if requested · c3ff0cdb
      Ankit Nautiyal authored
      We parse the EDID and add all the modes in the connector's modelist.
      This adds CEA modes with aspect ratio information too, regardless of
      whether user space requested this information or not.
      
      This patch:
      -prunes the modes with aspect-ratio information, from the
       drm_mode_get_connector modelist supplied to the user, if the
       user-space has not set the aspect ratio DRM client cap. However if
       such a mode is unique in the list, it is kept in the list, with
       aspect-ratio flags reset.
      -prepares a list of exposed modes, which is used to find unique modes
       if aspect-ratio is not allowed.
      -adds a new list_head 'exposed_head' in drm_mode_display, to traverse
       the list of exposed modes.
      
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Cc: Shashank Sharma <shashank.sharma@intel.com>
      Cc: Jose Abreu <jose.abreu@synopsys.com>
      Signed-off-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
      
      V3: As suggested by Ville, modified the mechanism of pruning of modes
          with aspect-ratio, if the aspect-ratio is not supported. Instead
          of straight away pruning such a mode, the mode is retained with
          aspect ratio bits set to zero, provided it is unique.
      V4: rebase
      V5: Addressed review comments from Ville:
          -used a pointer to store last valid mode.
          -avoided, modifying of picture_aspect_ratio in kernel mode,
           instead only flags bits of user mode are reset (if aspect-ratio
           is not supported).
      V6: As suggested by Ville, corrected the mode pruning logic and
          elaborated the mode pruning logic and the assumptions taken.
      V7: rebase
      V8: rebase
      V9: rebase
      V10: rebase
      V11: Fixed the issue caused in kms_3d test, and enhanced the pruning
           logic to correctly identify and prune modes with aspect-ratio,
           if aspect-ratio cap is not set.
      V12: As suggested by Ville, added another list_head in
           drm_mode_display to traverse the list of exposed modes and
           avoided duplication of modes.
      V13: Minor modifications, as suggested by Ville.
      v14: As suggested by Daniel Vetter and Ville Syrjala, corrected the
           pruning logic to avoid any dependency in the order of mode with
           aspect-ratio.
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1525777785-9740-9-git-send-email-ankit.k.nautiyal@intel.com
      c3ff0cdb
    • Ankit Nautiyal's avatar
      drm: Handle aspect ratio info in legacy modeset path · ace5bf0e
      Ankit Nautiyal authored
      If the user-space does not support aspect-ratio, and requests for a
      modeset with mode having aspect ratio bits set, then the given
      user-mode must be rejected. Secondly, while preparing a user-mode from
      kernel mode, the aspect-ratio info must not be given, if aspect-ratio
      is not supported by the user.
      
      This patch:
      1. rejects the modes with aspect-ratio info, during modeset, if the
         user does not support aspect ratio.
      2. does not load the aspect-ratio info in user-mode structure, if
         aspect ratio is not supported.
      3. adds helper functions for determining if aspect-ratio is expected
         in user-mode and for allowing/disallowing the aspect-ratio, if its
         not expected.
      Signed-off-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
      
      V3: Addressed review comments from Ville:
          Do not corrupt the current crtc state by updating aspect-ratio on
          the fly.
      V4: rebase
      V5: As suggested by Ville, rejected the modeset calls for modes with
          aspect ratio, if the user does not set aspect-ratio cap.
      V6: Used the helper functions for determining if aspect-ratio is
          expected in the user-mode.
      V7: rebase
      V8: rebase
      V9: rebase
      V10: Modified the commit-message
      V11: rebase
      V12: Merged the patch for adding aspect-ratio helper functions
           with this patch.
      V13: Minor modifications as suggested by Ville.
      V14: Removed helper functions, as they were used only once in legacy
           modeset path, as suggested by Daniel Vetter.
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1525777785-9740-8-git-send-email-ankit.k.nautiyal@intel.com
      ace5bf0e
    • Ankit Nautiyal's avatar
      drm: Add DRM client cap for aspect-ratio · 7595bda2
      Ankit Nautiyal authored
      To enable aspect-ratio support in DRM, blindly exposing the aspect
      ratio information along with mode, can break things in existing
      non-atomic user-spaces which have no intention or support to use this
      aspect ratio information.
      
      To avoid this, a new drm client cap is required to enable a non-atomic
      user-space to advertise if it supports modes with aspect-ratio. Based
      on this cap value, the kernel will take a call on exposing the aspect
      ratio info in modes or not.
      
      This patch adds the client cap for aspect-ratio.
      
      Since no atomic-userspaces blow up on receiving aspect-ratio
      information, the client cap for aspect-ratio is always enabled
      for atomic clients.
      
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Cc: Shashank Sharma <shashank.sharma@intel.com>
      Signed-off-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
      
      V3: rebase
      V4: As suggested by Marteen Lankhorst modified the commit message
          explaining the need to use the DRM cap for aspect-ratio. Also,
          tweaked the comment lines in the code for better understanding and
          clarity, as recommended by Shashank Sharma.
      V5: rebase
      V6: rebase
      V7: rebase
      V8: rebase
      V9: rebase
      V10: rebase
      V11: rebase
      V12: As suggested by Daniel Vetter and Ville Syrjala,
           always enable aspect-ratio client cap for atomic userspaces,
           if no atomic userspace breaks on aspect-ratio bits.
      V13: rebase
      V14: rebase
      Reviewed-by: default avatarShashank Sharma <shashank.sharma@intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1525777785-9740-7-git-send-email-ankit.k.nautiyal@intel.com
      7595bda2