From: Todd Previte <tprevite@gmail.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH V2] drm/i915: Implement Displayport automated testing
Date: Fri, 4 Oct 2013 12:46:44 -0700 [thread overview]
Message-ID: <1380916004-20130-1-git-send-email-tprevite@gmail.com> (raw)
In-Reply-To: <e28f07e502513abe8db6e421386680fef0631eeb>
This initial patch adds support for automated testing of the source device
to the i915 driver. Most of this patch is infrastructure for the tests;
follow up patches will add support for the individual tests with updates
to ACK the tests that are supported (or NAK if the test
fails/is unsupported).
Signed-off-by: Todd Previte <tprevite@gmail.com>
---
drivers/gpu/drm/i915/intel_dp.c | 75 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 72 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 9770160..1f97a1c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -2730,11 +2730,80 @@ intel_dp_get_sink_irq(struct intel_dp *intel_dp, u8 *sink_irq_vector)
return true;
}
+/* Automated test function hook - description forthcoming */
+static bool
+intel_dp_autotest_link_training(struct intel_dp *intel_dp)
+{
+ bool test_result = false;
+ return test_result;
+}
+
+/* Automated test function hook - description forthcoming */
+static bool
+intel_dp_autotest_video_pattern(struct intel_dp *intel_dp)
+{
+ bool test_result = false;
+ return test_result;
+}
+
+/* Automated test function hook - description forthcoming */
+static bool
+intel_dp_autotest_edid(struct intel_dp *intel_dp)
+{
+ bool test_result = false;
+ return test_result;
+}
+
+/* Automated test function hook - description forthcoming */
+static bool
+intel_dp_autotest_phy_pattern(struct intel_dp *intel_dp)
+{
+ bool test_result = false;
+ return test_result;
+}
+
static void
intel_dp_handle_test_request(struct intel_dp *intel_dp)
-{
- /* NAK by default */
- intel_dp_aux_native_write_1(intel_dp, DP_TEST_RESPONSE, DP_TEST_NAK);
+{
+ uint8_t response = DP_TEST_NAK;
+ bool result = false;
+ uint8_t rxdata = 0;
+
+ printk(KERN_DEBUG "Displayport: Recvd automated test request\n");
+ /* Read DP_TEST_REQUEST register to identify the requested test */
+ intel_dp_aux_native_read_retry(intel_dp, DP_TEST_REQUEST, &rxdata, 1);
+ /* Determine which test has been requested */
+ switch (rxdata) {
+ /* ACK/NAK response based on the success or failure of the specified
+ automated test function. Unimplemented tests will NAK as will those
+ that are unsupported. */
+ case DP_TEST_LINK_TRAINING:
+ printk(KERN_DEBUG "Displayport: Executing LINK_TRAINING request\n");
+ result = intel_dp_autotest_link_training(intel_dp);
+ break;
+ case DP_TEST_LINK_PATTERN:
+ printk(KERN_DEBUG "Displayport: Executing TEST_PATTERN request\n");
+ result = intel_dp_autotest_video_pattern(intel_dp);
+ break;
+ case DP_TEST_LINK_EDID_READ:
+ printk(KERN_DEBUG "Displayport: Executing EDID request\n");
+ result = intel_dp_autotest_edid(intel_dp);
+ break;
+ case DP_TEST_LINK_PHY_TEST_PATTERN:
+ printk(KERN_DEBUG "Displayport: Executing PHY_PATTERN request\n");
+ result = intel_dp_autotest_phy_pattern(intel_dp);
+ break;
+ /* Unsupported test case or something went wrong */
+ default:
+ /* Log error here for unhandled test request */
+ printk(KERN_DEBUG "Displayport: Error - unhandled automated test type\n");
+ break;
+ }
+ /* Check for a valid test execution */
+ if (result == true)
+ response = DP_TEST_ACK;
+ /* Send ACK/NAK based on action taken above */
+ intel_dp_aux_native_write_1(intel_dp, DP_TEST_RESPONSE, response);
}
/*
--
1.8.1.2
next parent reply other threads:[~2013-10-04 19:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <e28f07e502513abe8db6e421386680fef0631eeb>
2013-10-04 19:46 ` Todd Previte [this message]
2013-10-04 19:52 ` [PATCH V2] drm/i915: Implement Displayport automated testing Todd Previte
2013-10-04 10:32 [PATCH] " Todd Previte
2013-10-04 19:53 ` [PATCH V2] " Todd Previte
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=1380916004-20130-1-git-send-email-tprevite@gmail.com \
--to=tprevite@gmail.com \
--cc=intel-gfx@lists.freedesktop.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.