public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Todd Previte <tprevite@gmail.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2] Displayport compliance testing
Date: Tue, 22 Jul 2014 08:41:11 +0200	[thread overview]
Message-ID: <20140722064111.GE15237@phenom.ffwll.local> (raw)
In-Reply-To: <1405365047-6866-1-git-send-email-tprevite@gmail.com>

On Mon, Jul 14, 2014 at 12:10:35PM -0700, Todd Previte wrote:
> >This patch set adds the foundational support for Displayport compliance testing in the
> >i915 driver. It implements the framework for automated test support that preclude the
> >need (most) for operator input during testing. Tests for AUX transactions, EDID reads
> >and basic link training have also been included, along with any support and utility
> >functions required. Some changes have also been made to existing code to accommodate
> >compliance testing.
> 
> V2:
> - Addressed review feedback from the mailing list
> - Broke up patches into smaller, easily managed chunks
> - Reordered the patches such that they can be applied in order
> - Fixed checkpatch.pl errors across the patchset  
> - Updated and enhanced functionality for the EDID test function
> - Completely revamped the mode set operations for compliance testing

Ok, high level review of the overall approach.

So your design is to implement special functions for each test procedure.
This has two issues:
- We have duplicated code we test, which has a really high chance to be
  different from what users actually run on their systems. And so dp
  validation won't actually validate the real code. Example would be the
  fallback edid reading tests using defer/nacks. The drm i2c helpers
  already have logic for this (including fallback modes), but very likely
  it doesn't quite match the dp requirements. So we need to adjust that
  (presuming the dp standard is sane).
- Even if we can fix this there's still lots of important code in the
  probe paths we can't test with this. Userspace updates edids through the
  get_connector ioctl, and there's lots of additional logic in-between
  until we reach the dp connector implementation in intel_dp.c.

So what I'd like to see is that the test procedures are implemented in
userspace, using nothing more than the standard kms interfaces.

Afaics we need three steps overall:
- Get a shot hpd pulse and notice that we should do a validation test
  sequence. We need to get this information to userspace, and the best
  approach would be a uevent on the connector in sysfs. We can supply any
  additional metadata (like the test mode) userspace needs with uevent
  attributes.

- Do the test from userspace. Depending upon what exactly needs to be done
  we might need to extend the properties exposed to userspace, e.g. dp
  link parameters.

- Give the result (edid checksum, ...) back to the dp sink/validator. A
  generic dp aux transaction interface for userspace in the dp helpers,
  maybe even as a real /dev node should fit the bill.

dp validation has the potential to automatically test a pile of code for
which we currently have 0 automated test coverage at all. I want to fully
seize this opportunity instead of doing the bare minimum to get a (rather
useless) certification.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

  parent reply	other threads:[~2014-07-22  6:41 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-14 19:10 [PATCH v2] Displayport compliance testing Todd Previte
2014-07-14 19:10 ` [PATCH 01/12] drm/i915: Add automated testing support for " Todd Previte
2014-07-21 22:09   ` Paulo Zanoni
2014-07-30 14:49   ` Paulo Zanoni
2014-07-14 19:10 ` [PATCH 02/12] drm/i915: Add a function to compute the EDID checksum for Displayport compliance Todd Previte
2014-07-21 22:28   ` Paulo Zanoni
2014-07-14 19:10 ` [PATCH 03/12] drm/i915: Add counters in the drm_dp_aux struct for I2C NACKs and DEFERs Todd Previte
2014-07-21 22:37   ` Paulo Zanoni
2014-11-04 22:17     ` [PATCH 02/10] " Todd Previte
2014-11-04 22:26       ` Daniel Vetter
2014-07-14 19:10 ` [PATCH 04/12] drm/i915: Add wrapper function for intel_crtc_set_config() Todd Previte
2014-07-21 23:34   ` Paulo Zanoni
2014-07-14 19:10 ` [PATCH 05/12] drm/i915: Add a function to get the EDID preferred mode for Displayport compliance testing Todd Previte
2014-07-21 23:41   ` Paulo Zanoni
2014-07-14 19:10 ` [PATCH 06/12] drm/i915: Add a constant and function for getting the Displayport compliance failsafe video mode Todd Previte
2014-07-21 23:42   ` Paulo Zanoni
2014-07-14 19:10 ` [PATCH 07/12] drm/i915: Update EDID automated test function for Displayport compliance Todd Previte
2014-07-29 22:37   ` Paulo Zanoni
2014-07-31 18:27     ` Todd Previte
2014-07-14 19:10 ` [PATCH 08/12] drm/i915: Improve reliability for Displayport link training Todd Previte
2014-07-30 14:07   ` Paulo Zanoni
2014-07-30 15:25     ` Daniel Vetter
2014-07-14 19:10 ` [PATCH 09/12] drm/i915: Update intel_dp_check_link_status() for Displayport compliance testing Todd Previte
2014-07-30 14:29   ` Paulo Zanoni
2014-07-14 19:10 ` [PATCH 10/12] drm/i915: Update link training automated test function for Displayport compliance Todd Previte
2014-07-22  6:15   ` Daniel Vetter
2014-07-22 20:40     ` Jesse Barnes
2014-07-22 20:44       ` Daniel Vetter
2014-07-22 21:03         ` Jesse Barnes
2014-07-14 19:10 ` [PATCH 11/12] drm/i915: Minor code clean up in intel_dp.c Todd Previte
2014-07-15  7:47   ` Daniel Vetter
2014-07-15 15:35     ` Todd Previte
2014-07-14 19:10 ` [PATCH 12/12] drm/i915: Add a delay in Displayport AUX transactions for compliance testing Todd Previte
2014-07-15  7:46   ` Daniel Vetter
2014-07-15 15:34     ` Todd Previte
2014-07-30 14:46       ` Paulo Zanoni
2014-07-22  6:41 ` Daniel Vetter [this message]
2014-07-22 20:48   ` [PATCH v2] Displayport " Jesse Barnes
2014-07-22 20:53     ` Daniel Vetter
2014-07-22 21:11       ` Jesse Barnes
2014-07-29 21:53         ` Paulo Zanoni
2014-07-30  9:31           ` Daniel Vetter
2014-07-31 18:27           ` Todd Previte
2014-07-22 20:57     ` Jesse Barnes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140722064111.GE15237@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=tprevite@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox