On Tue, 24 Jan 2017, Manasi Navare <manasi.d.navare@xxxxxxxxx> wrote: > Thanks for this patch. I have tested this on DPR 120 compliance test device > and verified that it works as expected. > > Manasi > > On Fri, Jan 20, 2017 at 07:04:06PM +0200, Jani Nikula wrote: >> There is no point in setting intel_dp->compliance.test_type, and >> proceeding with the autotests, if we're about to NAK the request. Some >> drive-by cleanups while at it. >> >> v2: look at the ACK bit, as the result may also contain >> TEST_EDID_CHECKSUM_WRITE >> > > Reviewed-by: Manasi Navare <manasi.d.navare@xxxxxxxxx> > Tested-by: Manasi Navare <manasi.d.navare@xxxxxxxxx> Thanks for the review and testing, pushed to drm-intel-next-queued. BR, Jani. >> Cc: Manasi Navare <manasi.d.navare@xxxxxxxxx> >> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> >> --- >> drivers/gpu/drm/i915/intel_dp.c | 21 +++++++++------------ >> 1 file changed, 9 insertions(+), 12 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c >> index e80d620846c8..247fbf352576 100644 >> --- a/drivers/gpu/drm/i915/intel_dp.c >> +++ b/drivers/gpu/drm/i915/intel_dp.c >> @@ -3985,45 +3985,42 @@ static uint8_t intel_dp_autotest_phy_pattern(struct intel_dp *intel_dp) >> static void intel_dp_handle_test_request(struct intel_dp *intel_dp) >> { >> uint8_t response = DP_TEST_NAK; >> - uint8_t rxdata = 0; >> - int status = 0; >> + uint8_t request = 0; >> + int status; >> >> - status = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_REQUEST, &rxdata, 1); >> + status = drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_REQUEST, &request); >> if (status <= 0) { >> DRM_DEBUG_KMS("Could not read test request from sink\n"); >> goto update_status; >> } >> >> - switch (rxdata) { >> + switch (request) { >> case DP_TEST_LINK_TRAINING: >> DRM_DEBUG_KMS("LINK_TRAINING test requested\n"); >> - intel_dp->compliance.test_type = DP_TEST_LINK_TRAINING; >> response = intel_dp_autotest_link_training(intel_dp); >> break; >> case DP_TEST_LINK_VIDEO_PATTERN: >> DRM_DEBUG_KMS("TEST_PATTERN test requested\n"); >> - intel_dp->compliance.test_type = DP_TEST_LINK_VIDEO_PATTERN; >> response = intel_dp_autotest_video_pattern(intel_dp); >> break; >> case DP_TEST_LINK_EDID_READ: >> DRM_DEBUG_KMS("EDID test requested\n"); >> - intel_dp->compliance.test_type = DP_TEST_LINK_EDID_READ; >> response = intel_dp_autotest_edid(intel_dp); >> break; >> case DP_TEST_LINK_PHY_TEST_PATTERN: >> DRM_DEBUG_KMS("PHY_PATTERN test requested\n"); >> - intel_dp->compliance.test_type = DP_TEST_LINK_PHY_TEST_PATTERN; >> response = intel_dp_autotest_phy_pattern(intel_dp); >> break; >> default: >> - DRM_DEBUG_KMS("Invalid test request '%02x'\n", rxdata); >> + DRM_DEBUG_KMS("Invalid test request '%02x'\n", request); >> break; >> } >> >> + if (response & DP_TEST_ACK) >> + intel_dp->compliance.test_type = request; >> + >> update_status: >> - status = drm_dp_dpcd_write(&intel_dp->aux, >> - DP_TEST_RESPONSE, >> - &response, 1); >> + status = drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_RESPONSE, response); >> if (status <= 0) >> DRM_DEBUG_KMS("Could not write test response to sink\n"); >> } >> -- >> 2.1.4 >> -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx