[RFC i-g-t 0/4] intel-gpu-tools: Add support for the Chamelium

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For a very long time, we've had basically no automated testing coverage of
hotplugging functionality mainly because the only way to test this sort of
thing was to manually plug and unplug the connectors yourself. As well, this
also means we could never automate testing of various DisplayPort quirks, MST,
etc. At long last however, we might finally have a solution for this.

A while back, the ChromeOS guys came up with a device known as the Chamelium:

	https://www.chromium.org/chromium-os/testing/chamelium

And actually sent both me and airlied one. This little device allows us to
emulate any kind of display we want, along with simulating hotplugs and various
quirky behaviors with displays. On top of that, it even allows for grabbing the
video input on all of the connectors, manual control of the i2c line for all of
the display connectors, etc.

With this patch series, we can now actually write intel-gpu-tools tests with
this gadget!

However, there's a couple of things that haven't been done yet and need to be
kept in mind:

 - The current fpga_tio board that the Chamelium uses unfortunately doesn't
   have native support for DisplayPort MST on it's DisplayPort receivers (they
   only go up to version 1.1a of the spec). While annoying testing MST with
   this isn't impossible, as we can implement all of the hotplugging paths we
   care about by manually controlling the i2c line and emulating an MST
   display. IMO, this is really the biggest thing we need coverage for anyway.
   This hasn't been done yet, but it's definitely on my to-do list.

 - While writing this patch series, I found that quite a few of the RPC calls
   for chameleond don't work as expected. For instance, I have had absolutely
   no luck getting CRCs from any of the display types that the chamelium
   supports. This isn't a huge deal though, since we usually just use the
   native CRC read back on the GPU anyway.

 - Among other things that are broken with the chameleon, video signal
   detection for DisplayPort is one of them. After the first plug/unplug cycle,
   the DisplayPort receiver gets stuck and gives the wrong results for
   WaitForInputStable. Luckily I've already got a fix I'll be submitting to the
   ChromeOS guys when I get around to setting up their homebrew git tools:

	https://github.com/Lyude/chameleond/tree/wip/chameleon-fixes

   For now, expect the dp-display tests to fail without those patches.

Lyude (4):
  igt_aux: Add igt_skip_without_suspend_support()
  igt_aux: Add igt_set_autoresume_delay()
  igt_aux: Add some list helpers from wayland
  Add support for hotplug testing with the Chamelium

 configure.ac           |  13 +
 lib/Makefile.am        |  10 +-
 lib/igt.h              |   1 +
 lib/igt_aux.c          |  94 ++++++++
 lib/igt_aux.h          |  41 ++++
 lib/igt_chamelium.c    | 628 +++++++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_chamelium.h    |  77 ++++++
 lib/igt_kms.c          | 107 +++++++++
 lib/igt_kms.h          |  13 +-
 scripts/run-tests.sh   |   4 +-
 tests/Makefile.am      |   5 +-
 tests/Makefile.sources |   1 +
 tests/chamelium.c      | 549 ++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 1538 insertions(+), 5 deletions(-)
 create mode 100644 lib/igt_chamelium.c
 create mode 100644 lib/igt_chamelium.h
 create mode 100644 tests/chamelium.c

-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux