From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753942AbcC1Ods (ORCPT ); Mon, 28 Mar 2016 10:33:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41689 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752468AbcC1Odq (ORCPT ); Mon, 28 Mar 2016 10:33:46 -0400 From: Lyude To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: arthur.j.runyan@intel.com, =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Jani Nikula , Lyude , David Airlie , linux-kernel@vger.kernel.org (open list), Daniel Vetter Subject: [PATCH v4 RESEND 0/5] Move workarounds from intel_dp_dpcd_read_wake() into drm's DP helpers Date: Mon, 28 Mar 2016 10:33:21 -0400 Message-Id: <1459175606-13875-1-git-send-email-cpaul@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 28 Mar 2016 14:33:45 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Resending this because it looks like replying to my previous series of patches causes patchwork to pick up patches from the original version of this and try to apply them along with this one. This series of patches takes all of the workarounds we used in intel_dp_dpcd_read_wake() for working around misbehaving sinks into drm's DP aux transaction helpers, so that they can be applied to all aux transactions across each driver. While this patch series was intended to fix issues with the ThinkPad T560 not bringing displays connected to it's dock back up properly after suspend, this should fix a lot of other various DP issues by ensuring that we retry transactions appropriately in every possible failure scenario. Changes since v3 - Split the patch that moves the logic out of intel_dp_dpcd_read_wake() into multiple patches for each workaround that we apply, so that bisecting this change isn't difficult in the event that this breaks something - Made sure that drm_dp_dpcd_read() only returns the error it encountered during the first attempted aux transaction, since the error that following retries encounter might be different from the original Changes since v2 - Reworked the patch again to incorporate all of the behavior of intel_dp_dpcd_read_wake() into drm_dp_dpcd_read() and drm_dp_dpcd_access() Changes since v1 - Patch has been reworked to take the retry logic out of intel_dp_mst_resume() and into drm_dp_dpcd_access(), based off a suggestion from Daniel Vetter - Commit message is much longer and gives a better description of the issue this was originally intended to workaround. Lyude (5): drm/dp_helper: Increase retry interval to 1000us drm/dp_helper: Always wait before retrying native aux transactions drm/dp_helper: Retry aux transactions on all errors drm/dp_helper: Perform throw-away read before actual read in drm_dp_dpcd_read() drm/i915: Get rid of intel_dp_dpcd_read_wake() drivers/gpu/drm/drm_dp_helper.c | 55 ++++++++++++++++------------ drivers/gpu/drm/i915/intel_dp.c | 79 ++++++++++++----------------------------- 2 files changed, 54 insertions(+), 80 deletions(-) -- 2.5.5 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v4 RESEND 0/5] Move workarounds from intel_dp_dpcd_read_wake() into drm's DP helpers Date: Mon, 28 Mar 2016 10:33:21 -0400 Message-ID: <1459175606-13875-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: David Airlie , arthur.j.runyan@intel.com, open list , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org UmVzZW5kaW5nIHRoaXMgYmVjYXVzZSBpdCBsb29rcyBsaWtlIHJlcGx5aW5nIHRvIG15IHByZXZp b3VzIHNlcmllcyBvZiBwYXRjaGVzCmNhdXNlcyBwYXRjaHdvcmsgdG8gcGljayB1cCBwYXRjaGVz IGZyb20gdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBhbmQKdHJ5IHRvIGFwcGx5IHRoZW0g YWxvbmcgd2l0aCB0aGlzIG9uZS4KClRoaXMgc2VyaWVzIG9mIHBhdGNoZXMgdGFrZXMgYWxsIG9m IHRoZSB3b3JrYXJvdW5kcyB3ZSB1c2VkIGluCmludGVsX2RwX2RwY2RfcmVhZF93YWtlKCkgZm9y IHdvcmtpbmcgYXJvdW5kIG1pc2JlaGF2aW5nIHNpbmtzIGludG8gZHJtJ3MgRFAKYXV4IHRyYW5z YWN0aW9uIGhlbHBlcnMsIHNvIHRoYXQgdGhleSBjYW4gYmUgYXBwbGllZCB0byBhbGwgYXV4IHRy YW5zYWN0aW9ucwphY3Jvc3MgZWFjaCBkcml2ZXIuIFdoaWxlIHRoaXMgcGF0Y2ggc2VyaWVzIHdh cyBpbnRlbmRlZCB0byBmaXggaXNzdWVzIHdpdGggdGhlClRoaW5rUGFkIFQ1NjAgbm90IGJyaW5n aW5nIGRpc3BsYXlzIGNvbm5lY3RlZCB0byBpdCdzIGRvY2sgYmFjayB1cCBwcm9wZXJseQphZnRl ciBzdXNwZW5kLCB0aGlzIHNob3VsZCBmaXggYSBsb3Qgb2Ygb3RoZXIgdmFyaW91cyBEUCBpc3N1 ZXMgYnkgZW5zdXJpbmcKdGhhdCB3ZSByZXRyeSB0cmFuc2FjdGlvbnMgYXBwcm9wcmlhdGVseSBp biBldmVyeSBwb3NzaWJsZSBmYWlsdXJlIHNjZW5hcmlvLgoKCQkJCUNoYW5nZXMgc2luY2UgdjMK LSBTcGxpdCB0aGUgcGF0Y2ggdGhhdCBtb3ZlcyB0aGUgbG9naWMgb3V0IG9mIGludGVsX2RwX2Rw Y2RfcmVhZF93YWtlKCkgaW50bwogIG11bHRpcGxlIHBhdGNoZXMgZm9yIGVhY2ggd29ya2Fyb3Vu ZCB0aGF0IHdlIGFwcGx5LCBzbyB0aGF0IGJpc2VjdGluZyB0aGlzCiAgY2hhbmdlIGlzbid0IGRp ZmZpY3VsdCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGJyZWFrcyBzb21ldGhpbmcKCi0gTWFkZSBz dXJlIHRoYXQgZHJtX2RwX2RwY2RfcmVhZCgpIG9ubHkgcmV0dXJucyB0aGUgZXJyb3IgaXQgZW5j b3VudGVyZWQgZHVyaW5nCiAgdGhlIGZpcnN0IGF0dGVtcHRlZCBhdXggdHJhbnNhY3Rpb24sIHNp bmNlIHRoZSBlcnJvciB0aGF0IGZvbGxvd2luZyByZXRyaWVzCiAgZW5jb3VudGVyIG1pZ2h0IGJl IGRpZmZlcmVudCBmcm9tIHRoZSBvcmlnaW5hbAoKCQkJCUNoYW5nZXMgc2luY2UgdjIKLSBSZXdv cmtlZCB0aGUgcGF0Y2ggYWdhaW4gdG8gaW5jb3Jwb3JhdGUgYWxsIG9mIHRoZSBiZWhhdmlvciBv ZgogIGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCkgaW50byBkcm1fZHBfZHBjZF9yZWFkKCkgYW5k IGRybV9kcF9kcGNkX2FjY2VzcygpCgoJCQkJQ2hhbmdlcyBzaW5jZSB2MQotIFBhdGNoIGhhcyBi ZWVuIHJld29ya2VkIHRvIHRha2UgdGhlIHJldHJ5IGxvZ2ljIG91dCBvZiBpbnRlbF9kcF9tc3Rf cmVzdW1lKCkKICBhbmQgaW50byBkcm1fZHBfZHBjZF9hY2Nlc3MoKSwgYmFzZWQgb2ZmIGEgc3Vn Z2VzdGlvbiBmcm9tIERhbmllbCBWZXR0ZXIKCi0gQ29tbWl0IG1lc3NhZ2UgaXMgbXVjaCBsb25n ZXIgYW5kIGdpdmVzIGEgYmV0dGVyIGRlc2NyaXB0aW9uIG9mIHRoZQogIGlzc3VlIHRoaXMgd2Fz IG9yaWdpbmFsbHkgaW50ZW5kZWQgdG8gd29ya2Fyb3VuZC4KCkx5dWRlICg1KToKICBkcm0vZHBf aGVscGVyOiBJbmNyZWFzZSByZXRyeSBpbnRlcnZhbCB0byAxMDAwdXMKICBkcm0vZHBfaGVscGVy OiBBbHdheXMgd2FpdCBiZWZvcmUgcmV0cnlpbmcgbmF0aXZlIGF1eCB0cmFuc2FjdGlvbnMKICBk cm0vZHBfaGVscGVyOiBSZXRyeSBhdXggdHJhbnNhY3Rpb25zIG9uIGFsbCBlcnJvcnMKICBkcm0v ZHBfaGVscGVyOiBQZXJmb3JtIHRocm93LWF3YXkgcmVhZCBiZWZvcmUgYWN0dWFsIHJlYWQgaW4K ICAgIGRybV9kcF9kcGNkX3JlYWQoKQogIGRybS9pOTE1OiBHZXQgcmlkIG9mIGludGVsX2RwX2Rw Y2RfcmVhZF93YWtlKCkKCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jIHwgNTUgKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyB8IDc5ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDgwIGRlbGV0aW9ucygtKQoKLS0gCjIuNS41Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK