1. 26 Jun, 2020 1 commit
    • Ankit Nautiyal's avatar
      lib/igt_kms: Add support for detecting connector events · daadfa50
      Ankit Nautiyal authored
      Currently, the event_detect function checks the property val for
      "HOTPLUG" and "LEASE" both of which are set to '1' when these events
      are sent.
      
      This cannot be used for detecting connector events such as HDCP event
      as connector events are sent along with property to signify which
      property of which connector has changed. Connector ID and property id
      are provided along with "CONNECTOR" and "PROPERTY" as udev
      property-value pairs. Eg. for HDCP, the connector id of the connector
      whose hdcp status changed, and the property id of the
      ‘CONTENT_PROTECTION’ property are sent with uevent.
      
      This patch modifies the event_detect function to check multiple
      properties with different expected values. It also adds support to
      detect connector event for a given pair of connector and property ids.
      
      v2: Simplified the event_detect conditional statements. (Ram)
          Changed the api name for detecting connnector events. (Anshuman)
          Added check for "HOTPLUG" property value for connector events.
      v3: Used ARRAY_SIZE() instead of constants. (Ram)
      v4: Rebase
      Signed-off-by: Ankit Nautiyal's avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
      Reviewed-by: Ramalingam C's avatarRamalingam C <ramalingam.c@intel.com>
      Acked-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      daadfa50
  2. 01 Jun, 2020 1 commit
  3. 15 Apr, 2020 1 commit
    • Arkadiusz Hiler's avatar
      tests/kms_chamelium: Test HPD for different mode handling scenarios · 04a8ae8a
      Arkadiusz Hiler authored
      The default scenario is now performing all hotplugs with modes disabled
      on all connectors. This is the quickest of the tests and represents
      userspace not caring about the new display (e.g. explicitly disabled).
      
      *-hpd-enable-disable-mode covers the most common userspace behavior
      where each hotplug event is accompanied by a corresponding enabling /
      disabling commit.
      
      *-hpd-with-enabled-mode explicitly targets the scenario where we have
      mode enabled and never disable it as we do hotplugs to reproduce the
      issue we see with TypeC connectors for ICL and TGL.
      
      v2:
       - refresh igt_display output state after reprobing
       - get mode and set pipe only after we have connector plugged in
      
      v3: fix VGA subtest names (Kunal)
      
      Cc: Kunal Joshi <kunal1.joshi@intel.com>
      Cc: Imre Deak <imre.deak@intel.com>
      Issue: intel#323Signed-off-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      Reviewed-by: KunalJoshi95's avatarKunal Joshi <kunal1.joshi@intel.com>
      04a8ae8a
  4. 07 Feb, 2020 2 commits
  5. 06 Feb, 2020 1 commit
    • Ville Syrjälä's avatar
      lib/igt_kms: Add igt_reduce_format() · 97e9179c
      Ville Syrjälä authored
      Add a helper to reduce a pixel format to a "base" format.
      Ie. group all formats to some idea of classes based on the
      bits per pixel + component sizes etc. ignoring any component ordering.
      Let's us skip potentially redundant tests when all we might care
      about is testing each format "class" the once.
      
      v2: Add some docs (Chris)
      
      Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> #irc
      Signed-off-by: Ville Syrjälä's avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      97e9179c
  6. 04 Dec, 2019 1 commit
  7. 29 Nov, 2019 1 commit
  8. 09 Sep, 2019 1 commit
  9. 15 Aug, 2019 3 commits
  10. 06 Aug, 2019 1 commit
  11. 11 Jul, 2019 1 commit
  12. 05 Jul, 2019 2 commits
  13. 10 Jun, 2019 1 commit
  14. 06 Jun, 2019 1 commit
    • Rodrigo Siqueira's avatar
      tests/kms_flip: Skip VBlank tests in modules without VBlank · 2d244aed
      Rodrigo Siqueira authored
      The kms_flip test relies on VBlank support, and this situation may
      exclude some virtual drivers to take advantage of this set of tests.
      This commit adds a mechanism that checks if a module has VBlank. If the
      target module has VBlank support, kms_flip will run all the VBlank
      tests; otherwise, the VBlank tests will be skipped. Additionally, this
      commit improves the test coverage by checks if the function
      drmWaitVBlank() returns EOPNOTSUPP (i.e., no VBlank support).
      
      V7: Skip seq number checking and busy flip if the device doesn't support
      vblank
      
      V6: Set errno to zero before call drmWaitVBlank() (Chris Wilson)
      
      V5: Drop the DRM_VBLANK_NEXTONMISS (Chris Wilson)
      
      V4: Replace DRM_VBLANK_ABSOLUTE by DRM_VBLANK_RELATIVE and
      DRM_VBLANK_NEXTONMISS
      
      V3: Add documentation (Daniel Vetter)
      
      V2: Add new branch coverage to check if VBlank is enabled or not and
      update commit message
      
      V1: Chris Wilson
        - Change function name from igt_there_is_vblank to kms_has_vblank
        - Move vblank function check from igt_aux to igt_kms
        - Utilizes memset in dummy_vbl variable
        - Directly return the result of drmWaitVBlank()
      Acked-by: Daniel Vetter's avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: Rodrigo Siqueira's avatarRodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      2d244aed
  15. 04 Jun, 2019 1 commit
    • Simon Ser's avatar
      lib/igt_kms: introduce igt_kms_get_hdmi_audio_edid · e81b020f
      Simon Ser authored
      This new function uses igt_edid to generate an EDID suitable for testing HDMI
      audio. It's imported from kms_chamelium with minor edits, it's used there and
      in kms_hdmi_inject. A (unexported for now) generate_hdmi_audio_edid function
      enables generation of EDIDs with arbitrary SAD and speaker blocks.
      
      This obsoletes kmstest_edid_add_audio.
      
      The sanity check for the HDMI audio EDID has been moved from
      lib/tests/igt_hdmi_inject.c to lib/tests/igt_edid.c.
      Signed-off-by: Simon Ser's avatarSimon Ser <simon.ser@intel.com>
      Reviewed-by: Martin Peres's avatarMartin Peres <martin.peres@linux.intel.com>
      e81b020f
  16. 01 Apr, 2019 2 commits
  17. 12 Mar, 2019 1 commit
  18. 11 Mar, 2019 1 commit
  19. 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
      trickier.
      
      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>
      ed944b45
  20. 26 Feb, 2019 2 commits
  21. 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>
      d1e352d1
  22. 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>
      d1bd9c6a
  23. 27 Dec, 2018 1 commit
  24. 27 Nov, 2018 1 commit
  25. 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.
      
      v2:
        dynamic subtests are dropped [Daniel]
      v3:
        debugfs is used to detect the sink's hdcp capability [Daniel]
        data structure is made as global variable.
      v4:
        debugfs file from connector's debugfs dir is used [Daniel]
      v5:
        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>
      7889b6a8
  26. 17 Oct, 2018 1 commit
  27. 03 Oct, 2018 1 commit
  28. 02 Oct, 2018 1 commit
  29. 01 Oct, 2018 1 commit
  30. 11 Sep, 2018 1 commit
  31. 30 Aug, 2018 1 commit
  32. 08 Jun, 2018 1 commit
  33. 24 May, 2018 1 commit
  34. 11 Apr, 2018 1 commit