From: Daniel Vetter <daniel@ffwll.ch>
To: Paulo Zanoni <przanoni@gmail.com>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH v2] Displayport compliance testing
Date: Wed, 30 Jul 2014 11:31:11 +0200 [thread overview]
Message-ID: <20140730093111.GI4747@phenom.ffwll.local> (raw)
In-Reply-To: <CA+gsUGSKPpEGtKOnneNVqMNRrNTi_O6kR=vRq=z8nb0MDJ=fNg@mail.gmail.com>
On Tue, Jul 29, 2014 at 06:53:57PM -0300, Paulo Zanoni wrote:
> 2014-07-22 18:11 GMT-03:00 Jesse Barnes <jbarnes@virtuousgeek.org>:
> > On Tue, 22 Jul 2014 22:53:44 +0200
> > Daniel Vetter <daniel@ffwll.ch> wrote:
> >
> >> On Tue, Jul 22, 2014 at 10:48 PM, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> >> > Are you saying
> >> > you'll reject this approach entirely?
> >>
> >> I'm saying that I don't see terrible lot of value in adding a bunch of
> >> code for a sticker, and that we should look into making it actually
> >> useful by testing the paths that end-users end up using. And we have
> >> to keep this working once it's merged.
> >>
> >> But if it doesn't make sense to make this sticker useful while still
> >> being able to get it then I'll reconsider.
> >
> > Yeah I think it depends on the test. We're supposed to go through
> > existing paths for testing e.g. link training with different params
> > (though with a fixed fb and mode), so getting coverage there is
> > something we want regardless. But getting something like probing
> > covered as part of the compliance testing may be something else
> > entirely...
>
> I was finally able to take some time to read the spec, and I agree
> that the hybrid approach looks like the way to go. Some tests require
> specifically-crafted FBs, while some other tests cause real hotplug
> events to be sent from the sink. If there's an unknown/unspecified
> user-space running when the tests are happening, who knows how it is
> going to react? Of course, for tests that can be implemented directly
> inside the Kernel still using the "standard" code paths, we should do
> it in the Kernel.
>
> One possible approach that I thought would be the following:
> - Each DP encoder provides its own debugfs file for DP test compiance
> (e.g., /sys/kernel/debug/dri/0/i915_ddi_b_dp_test_compliance).
> - If the file is not open, any requests for tests that require special
> actions from our driver - outside of the normal behavior - will be
> NACKed.
Yeah that sounds like a reasonable safety measure to make sure we don't do
stupid things (e.g. malicious DP connector trying to break into the
kernel).
> - If the file is open, we ACK test requests and print special strings
> to the debugfs file telling the user-space app what it's supposed to
> do. We could use simple strings like "set the preferred mode", "set
> failsafe mode", "set mode using FB test pattern Y", etc. A stringly
> typed protocol :)
We need to check how much work this is, since we'll probably need to
implement polling. Otoh we've just done that for the crc interfaces, so
shouldn't be too much fuzz.
If userspace needs to do special dp aux transactions I still think we
should simply expose a proper dp aux interface, similar to i2c.
> - The user-space app needs to be the DRM master, open the debugfs
> file, parse the operations it prints and act accordingly, and listen
> to the hotplug events sent by the Kernel.
> - If some special corner quirky case needs to be done (e.g., train
> link with a specific number of lanes), the Kernel should store this
> information at struct intel_dp, and then when a modeset is done on
> this encoder, we check if the debugfs file is open (i.e., we're doing
> compliance testing) and then we use the specified configuration. With
> this, we can probably avoid special uevents or debug-only
> connector/encoder properties.
> - The user-space app could be part of intel-gpu-tools.
>
> Anyway, this is just an alternate idea to Daniel's suggestion, and
> many other possible implementation ideas would work for me. Todd, what
> is your opinion?
Well I've only tossed out a rough idea that we should try to use the same
paths for validation as userspace is using in general. Sounds like you
have some good ideas how to get there in practice.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
next prev parent reply other threads:[~2014-07-30 9:31 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 ` [PATCH v2] Displayport " Daniel Vetter
2014-07-22 20:48 ` 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 [this message]
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=20140730093111.GI4747@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=przanoni@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