1. 04 Mar, 2019 1 commit
    • Nicholas Kazlauskas's avatar
      lib/igt_kms: Fix commits for planes with multiple possible CRTCs · ed944b45
      Nicholas Kazlauskas authored
      An igt_plane_t is defined per igt_pipe_t. It is treated as its
      own independent resource but DRM planes can be exposed to being used on
      a number of possible CRTCs - making it a shared resource.
      In IGT planes with multiple possible CRTCs are added to the plane list
      for each pipe that the plane supports. The internal state remains
      independent in IGT so when the same plane is modified for multiple
      pipes in a single commit the last pipe to modify it is the one whose
      state gets fully applied.
      This situation happens fairly often in practice - resetting the display
      at the start of the test before a commit will reset the CRTC ID and FB
      ID for each plane.
      For an example, consider the
      igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max test.
      This test will fail for any overlay plane exposed for multiple CRTCs.
      The test tries to set a framebuffer for pipe A but has all the other
      pipes reset the plane state in the same commit. If there are multiple
      pipes on the hardware then the last pipe will be the one to set all the
      plane properties. The driver will receive a commit with no overlay
      plane enabled since the last pipe set CRTC ID and FB ID to 0, disabling
      the plane. The reference CRC capture will be incorrect since not all
      the planes have been enabled and the subsequent CRC captures will
      not match, failing the test.
      The simplest (but hacky) fix to this problem is to only set the
      properties for the plane for the pipe that last had it bound.
      This patch introduces a global plane list on igt_display_t that keeps
      track of the pipe that pipe that last called igt_plane_set_fb. The
      properties for the plane will only be applied from that single pipe
      when commiting the state to DRM.
      No behavioral changes should be introduced by this patch for hardware
      whose planes are only ever exposed one CRTC.
      It would likely be best to eventually modify the igt_pipe_t plane list
      to be a list of pointers to planes instead (igt_plane_t**)
      instead of being the actual plane objects, but that can come later.
      Many areas of the code like to make use of the backpointer to the pipe
      on the plane which makes refactoring the code in that manner a little
      v2: Add igt_plane_set_fb, use igt_plane_t for global plane list (Daniel)
      v3: Leave TODO for filling in all state/props on global planes
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Signed-off-by: Nicholas Kazlauskas's avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
      Reviewed-by: Harry Wentland's avatarHarry Wentland <harry.wentland@amd.com>
  2. 26 Feb, 2019 2 commits
  3. 22 Feb, 2019 1 commit
    • Daniel Vetter's avatar
      tests/kms_lease: exercise uevent · d1e352d1
      Daniel Vetter authored
      And make sure we get the LEASE=1 value, indicating a lessee change.
      v2: Apparently netlink reading can leak EAGAIN out through
      udev_monitor_receive_device. No idea what's going on there, so let's
      wrap some duct tape around it.
      v3: Lyude reported that we might get a few udev events on startup of
      the test. Drain those first.
      v4: Use the igt hotplug library functions, they already take care of
      all the uevent special cases.
      Cc: Lyude Paul <lyude@redhat.com>
      Cc: Keith Packard <keithp@keithp.com>
      Reviewed-by: Lyude Paul's avatarLyude Paul <lyude@redhat.com>
      Signed-off-by: Daniel Vetter's avatarDaniel Vetter <daniel.vetter@intel.com>
  4. 28 Jan, 2019 1 commit
    • Nicholas Kazlauskas's avatar
      tests: Add variable refresh rate tests · d1bd9c6a
      Nicholas Kazlauskas authored
      There are 3 tests for basic variable refresh rate functionality.
      The tests measure flipping at the average between the current mode
      refresh rate and the minimum supported variable refresh rate.
      It tests that VRR is enabled and that the difference between flip
      timestamps converges to the requested rate. It also tests this under
      both S3 and DPMS.
      Potential ideas for future tests:
      - Test behavior inside VRR range with a stepping test
      - Test behavior outside of VRR range
      - Multi-monitor (limited by no async pageflips in DRM atomic API)
      Cc: Harry Wentland <harry.wentland@amd.com>
      Cc: Leo Li <sunpeng.li@amd.com>
      Cc: Manasi Navare <manasi.d.navare@intel.com>
      Signed-off-by: Nicholas Kazlauskas's avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
      Reviewed-by: Harry Wentland's avatarHarry Wentland <harry.wentland@amd.com>
  5. 27 Dec, 2018 1 commit
  6. 27 Nov, 2018 1 commit
  7. 25 Oct, 2018 1 commit
    • Ramalingam C's avatar
      kms_content_protection: Add Content Protection test · 7889b6a8
      Ramalingam C authored
      Pretty simple test:
      - picks the hdcp capable output with suitable pipe and apply modeset.
      - checks the connected sink's hdcp capability through debugfs
      - apply a FB and wait for the flip completion.
      - clears the content protection property
      - verifies that it clears
      - sets the content protection property to desired
      - verifies that it transitions to enabled
      - incase of timeout three reattempts are implemented
      - clear the content protection property and modeset on the crtc
      Above steps are repeated on all HDCP capable connectors for both
      legacy and atomic subtests.
        dynamic subtests are dropped [Daniel]
        debugfs is used to detect the sink's hdcp capability [Daniel]
        data structure is made as global variable.
        debugfs file from connector's debugfs dir is used [Daniel]
        i915_debugfs_connector_dir() usage is modified [Chris]
      Signed-off-by: Sean Paul's avatarSean Paul <seanpaul@chromium.org>
      Signed-off-by: Ramalingam C's avatarRamalingam C <ramalingam.c@intel.com>
      Reviewed-by: Daniel Vetter's avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: Daniel Vetter's avatarDaniel Vetter <daniel.vetter@ffwll.ch>
  8. 17 Oct, 2018 1 commit
  9. 03 Oct, 2018 1 commit
  10. 02 Oct, 2018 1 commit
  11. 01 Oct, 2018 1 commit
  12. 11 Sep, 2018 1 commit
  13. 30 Aug, 2018 1 commit
  14. 08 Jun, 2018 1 commit
  15. 24 May, 2018 1 commit
  16. 11 Apr, 2018 1 commit
  17. 21 Mar, 2018 1 commit
  18. 19 Mar, 2018 1 commit
  19. 16 Mar, 2018 1 commit
  20. 15 Mar, 2018 1 commit
  21. 27 Feb, 2018 3 commits
  22. 15 Jan, 2018 1 commit
  23. 02 Jan, 2018 1 commit
  24. 12 Dec, 2017 1 commit
  25. 22 Nov, 2017 1 commit
  26. 21 Nov, 2017 1 commit
  27. 23 Oct, 2017 1 commit
    • Maarten Lankhorst's avatar
      tests/kms_plane_lowres: Rework tests to work without fbcon, v3. · cdfe9921
      Maarten Lankhorst authored
      kmstest_get_crtc was skipping because at that point the crtc was not
      active yet, instead we should only use igt_assert_plane_visible
      directly. Unexport kmstest_get_crtc, since nothing here should need it.
      While at it fix a small leak in igt_assert_plane_visible, the only
      remaining user.
      Additionally, it' s not allowed to obtain crc on a disabled pipe, so
      wait until the pipe is enabled before allocating the crc.
      Changes since v1:
      - Move igt_pipe_crc_new until after pipe is enabled.
      - Move test_init() into test_setup(), it's redundant..
      - Remove pipe_crc from data, no need to have it there.
      Changes since v2:
      - Increment fb pointer for igt_plane_set_fb, in order to set a different
        fb on each plane correctly.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: default avatarMika Kahola <mika.kahola@intel.com>
  28. 20 Oct, 2017 10 commits