From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932984AbeCIWcx (ORCPT ); Fri, 9 Mar 2018 17:32:53 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:42426 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932859AbeCIWYI (ORCPT ); Fri, 9 Mar 2018 17:24:08 -0500 From: Enric Balletbo i Serra To: architt@codeaurora.org, inki.dae@samsung.com, thierry.reding@gmail.com, hjc@rock-chips.com, seanpaul@chromium.org, airlied@linux.ie, tfiga@chromium.org, heiko@sntech.de Cc: dri-devel@lists.freedesktop.org, dianders@chromium.org, a.hajda@samsung.com, ykk@rock-chips.com, kernel@collabora.com, m.szyprowski@samsung.com, linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, rydberg@bitmath.org, krzk@kernel.org, linux-rockchip@lists.infradead.org, kgene@kernel.org, linux-input@vger.kernel.org, orjan.eide@arm.com, wxt@rock-chips.com, jeffy.chen@rock-chips.com, linux-arm-kernel@lists.infradead.org, mark.yao@rock-chips.com, wzz@rock-chips.com, hl@rock-chips.com, jingoohan1@gmail.com, sw0312.kim@samsung.com, linux-kernel@vger.kernel.org, kyungmin.park@samsung.com, Laurent.pinchart@ideasonboard.com, kuankuan.y@gmail.com, hshi@chromium.org, =?UTF-8?q?St=C3=A9phane=20Marchesin?= , Enric Balletbo i Serra Subject: [PATCH v5 09/36] drm/bridge: analogix_dp: Don't use fast link training when panel just powered up Date: Fri, 9 Mar 2018 23:23:00 +0100 Message-Id: <20180309222327.18689-10-enric.balletbo@collabora.com> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180309222327.18689-1-enric.balletbo@collabora.com> References: <20180309222327.18689-1-enric.balletbo@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: zain wang Panel would reset its setting when it powers down. It would forget the last succeeded link training setting. So we can't use the last successful link training setting to do fast link training. Let's reset fast_train_enable in analogix_dp_bridge_disable(); Cc: Stéphane Marchesin Signed-off-by: zain wang Signed-off-by: Sean Paul Signed-off-by: Thierry Escande Signed-off-by: Enric Balletbo i Serra Tested-by: Marek Szyprowski --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 9 +++++---- drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index f9661b410cb9..ea7a80a989c6 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -579,14 +579,14 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp) if (retval != 1) { dev_err(dp->dev, "failed to read downspread %d\n", retval); - dp->fast_train_support = false; + dp->fast_train_enable = false; } else { - dp->fast_train_support = + dp->fast_train_enable = (spread & DP_NO_AUX_HANDSHAKE_LINK_TRAINING) ? true : false; } dev_dbg(dp->dev, "fast link training %s\n", - dp->fast_train_support ? "supported" : "unsupported"); + dp->fast_train_enable ? "supported" : "unsupported"); /* set enhanced mode if available */ analogix_dp_set_enhanced_mode(dp); @@ -793,7 +793,7 @@ static int analogix_dp_fast_link_train(struct analogix_dp_device *dp) static int analogix_dp_train_link(struct analogix_dp_device *dp) { - if (dp->fast_train_support) + if (dp->fast_train_enable) return analogix_dp_fast_link_train(dp); return analogix_dp_full_link_train(dp, dp->video_info.max_lane_count, @@ -1197,6 +1197,7 @@ static void analogix_dp_bridge_disable(struct drm_bridge *bridge) DRM_ERROR("failed to setup the panel ret = %d\n", ret); dp->psr_enable = false; + dp->fast_train_enable = false; dp->dpms_mode = DRM_MODE_DPMS_OFF; } diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h index 6a96ef7e6934..403ff853464b 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h @@ -173,7 +173,7 @@ struct analogix_dp_device { int hpd_gpio; bool force_hpd; bool psr_enable; - bool fast_train_support; + bool fast_train_enable; struct mutex panel_lock; bool panel_is_modeset; -- 2.16.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Enric Balletbo i Serra Subject: [PATCH v5 09/36] drm/bridge: analogix_dp: Don't use fast link training when panel just powered up Date: Fri, 9 Mar 2018 23:23:00 +0100 Message-ID: <20180309222327.18689-10-enric.balletbo@collabora.com> References: <20180309222327.18689-1-enric.balletbo@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180309222327.18689-1-enric.balletbo@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: architt@codeaurora.org, inki.dae@samsung.com, thierry.reding@gmail.com, hjc@rock-chips.com, seanpaul@chromium.org, airlied@linux.ie, tfiga@chromium.org, heiko@sntech.de Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, a.hajda@samsung.com, Laurent.pinchart@ideasonboard.com, ykk@rock-chips.com, kernel@collabora.com, m.szyprowski@samsung.com, linux-samsung-soc@vger.kernel.org, jy0922.shim@samsung.com, rydberg@bitmath.org, krzk@kernel.org, linux-rockchip@lists.infradead.org, kgene@kernel.org, linux-input@vger.kernel.org, orjan.eide@arm.com, wxt@rock-chips.com, jeffy.chen@rock-chips.com, =?UTF-8?q?St=C3=A9phane=20Marchesin?= , linux-arm-kernel@lists.infradead.org, mark.yao@rock-chips.com, wzz@rock-chips.com, hl@rock-chips.com, jingoohan1@gmail.com, sw0312.kim@samsung.com, dianders@chromium.org, kyungmin.park@samsung.com, Enric Balletbo i Serra , kuankuan.y@gmail.com, hshi@chromium.org List-Id: linux-input@vger.kernel.org RnJvbTogemFpbiB3YW5nIDx3enpAcm9jay1jaGlwcy5jb20+CgpQYW5lbCB3b3VsZCByZXNldCBp dHMgc2V0dGluZyB3aGVuIGl0IHBvd2VycyBkb3duLiBJdCB3b3VsZCBmb3JnZXQgdGhlIGxhc3QK c3VjY2VlZGVkIGxpbmsgdHJhaW5pbmcgc2V0dGluZy4gU28gd2UgY2FuJ3QgdXNlIHRoZSBsYXN0 IHN1Y2Nlc3NmdWwgbGluawp0cmFpbmluZyBzZXR0aW5nIHRvIGRvIGZhc3QgbGluayB0cmFpbmlu Zy4gTGV0J3MgcmVzZXQgZmFzdF90cmFpbl9lbmFibGUgaW4KYW5hbG9naXhfZHBfYnJpZGdlX2Rp c2FibGUoKTsKCkNjOiBTdMOpcGhhbmUgTWFyY2hlc2luIDxtYXJjaGV1QGNocm9taXVtLm9yZz4K U2lnbmVkLW9mZi1ieTogemFpbiB3YW5nIDx3enpAcm9jay1jaGlwcy5jb20+ClNpZ25lZC1vZmYt Ynk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpTaWduZWQtb2ZmLWJ5OiBUaGll cnJ5IEVzY2FuZGUgPHRoaWVycnkuZXNjYW5kZUBjb2xsYWJvcmEuY29tPgpTaWduZWQtb2ZmLWJ5 OiBFbnJpYyBCYWxsZXRibyBpIFNlcnJhIDxlbnJpYy5iYWxsZXRib0Bjb2xsYWJvcmEuY29tPgpU ZXN0ZWQtYnk6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbT4KLS0t CgogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgfCA5 ICsrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9j b3JlLmggfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxv Z2l4X2RwX2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhf ZHBfY29yZS5jCmluZGV4IGY5NjYxYjQxMGNiOS4uZWE3YTgwYTk4OWM2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwpAQCAtNTc5 LDE0ICs1NzksMTQgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9wcm9jZXNzX2VxdWFsaXplcl90 cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIAkJaWYgKHJldHZhbCAhPSAx KSB7CiAJCQlkZXZfZXJyKGRwLT5kZXYsICJmYWlsZWQgdG8gcmVhZCBkb3duc3ByZWFkICVkXG4i LAogCQkJCXJldHZhbCk7Ci0JCQlkcC0+ZmFzdF90cmFpbl9zdXBwb3J0ID0gZmFsc2U7CisJCQlk cC0+ZmFzdF90cmFpbl9lbmFibGUgPSBmYWxzZTsKIAkJfSBlbHNlIHsKLQkJCWRwLT5mYXN0X3Ry YWluX3N1cHBvcnQgPQorCQkJZHAtPmZhc3RfdHJhaW5fZW5hYmxlID0KIAkJCQkoc3ByZWFkICYg RFBfTk9fQVVYX0hBTkRTSEFLRV9MSU5LX1RSQUlOSU5HKSA/CiAJCQkJCXRydWUgOiBmYWxzZTsK IAkJfQogCQlkZXZfZGJnKGRwLT5kZXYsICJmYXN0IGxpbmsgdHJhaW5pbmcgJXNcbiIsCi0JCQlk cC0+ZmFzdF90cmFpbl9zdXBwb3J0ID8gInN1cHBvcnRlZCIgOiAidW5zdXBwb3J0ZWQiKTsKKwkJ CWRwLT5mYXN0X3RyYWluX2VuYWJsZSA/ICJzdXBwb3J0ZWQiIDogInVuc3VwcG9ydGVkIik7CiAK IAkJLyogc2V0IGVuaGFuY2VkIG1vZGUgaWYgYXZhaWxhYmxlICovCiAJCWFuYWxvZ2l4X2RwX3Nl dF9lbmhhbmNlZF9tb2RlKGRwKTsKQEAgLTc5Myw3ICs3OTMsNyBAQCBzdGF0aWMgaW50IGFuYWxv Z2l4X2RwX2Zhc3RfbGlua190cmFpbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIAog c3RhdGljIGludCBhbmFsb2dpeF9kcF90cmFpbl9saW5rKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZp Y2UgKmRwKQogewotCWlmIChkcC0+ZmFzdF90cmFpbl9zdXBwb3J0KQorCWlmIChkcC0+ZmFzdF90 cmFpbl9lbmFibGUpCiAJCXJldHVybiBhbmFsb2dpeF9kcF9mYXN0X2xpbmtfdHJhaW4oZHApOwog CiAJcmV0dXJuIGFuYWxvZ2l4X2RwX2Z1bGxfbGlua190cmFpbihkcCwgZHAtPnZpZGVvX2luZm8u bWF4X2xhbmVfY291bnQsCkBAIC0xMTk3LDYgKzExOTcsNyBAQCBzdGF0aWMgdm9pZCBhbmFsb2dp eF9kcF9icmlkZ2VfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogCQlEUk1fRVJS T1IoImZhaWxlZCB0byBzZXR1cCB0aGUgcGFuZWwgcmV0ID0gJWRcbiIsIHJldCk7CiAKIAlkcC0+ cHNyX2VuYWJsZSA9IGZhbHNlOworCWRwLT5mYXN0X3RyYWluX2VuYWJsZSA9IGZhbHNlOwogCWRw LT5kcG1zX21vZGUgPSBEUk1fTU9ERV9EUE1TX09GRjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmggYi9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuaAppbmRleCA2YTk2ZWY3ZTY5 MzQuLjQwM2ZmODUzNDY0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFs b2dpeC9hbmFsb2dpeF9kcF9jb3JlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFs b2dpeC9hbmFsb2dpeF9kcF9jb3JlLmgKQEAgLTE3Myw3ICsxNzMsNyBAQCBzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlIHsKIAlpbnQJCQlocGRfZ3BpbzsKIAlib29sICAgICAgICAgICAgICAgICAg ICBmb3JjZV9ocGQ7CiAJYm9vbAkJCXBzcl9lbmFibGU7Ci0JYm9vbAkJCWZhc3RfdHJhaW5fc3Vw cG9ydDsKKwlib29sCQkJZmFzdF90cmFpbl9lbmFibGU7CiAKIAlzdHJ1Y3QgbXV0ZXgJCXBhbmVs X2xvY2s7CiAJYm9vbAkJCXBhbmVsX2lzX21vZGVzZXQ7Ci0tIAoyLjE2LjEKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: enric.balletbo@collabora.com (Enric Balletbo i Serra) Date: Fri, 9 Mar 2018 23:23:00 +0100 Subject: [PATCH v5 09/36] drm/bridge: analogix_dp: Don't use fast link training when panel just powered up In-Reply-To: <20180309222327.18689-1-enric.balletbo@collabora.com> References: <20180309222327.18689-1-enric.balletbo@collabora.com> Message-ID: <20180309222327.18689-10-enric.balletbo@collabora.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org From: zain wang Panel would reset its setting when it powers down. It would forget the last succeeded link training setting. So we can't use the last successful link training setting to do fast link training. Let's reset fast_train_enable in analogix_dp_bridge_disable(); Cc: St?phane Marchesin Signed-off-by: zain wang Signed-off-by: Sean Paul Signed-off-by: Thierry Escande Signed-off-by: Enric Balletbo i Serra Tested-by: Marek Szyprowski --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 9 +++++---- drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index f9661b410cb9..ea7a80a989c6 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -579,14 +579,14 @@ static int analogix_dp_process_equalizer_training(struct analogix_dp_device *dp) if (retval != 1) { dev_err(dp->dev, "failed to read downspread %d\n", retval); - dp->fast_train_support = false; + dp->fast_train_enable = false; } else { - dp->fast_train_support = + dp->fast_train_enable = (spread & DP_NO_AUX_HANDSHAKE_LINK_TRAINING) ? true : false; } dev_dbg(dp->dev, "fast link training %s\n", - dp->fast_train_support ? "supported" : "unsupported"); + dp->fast_train_enable ? "supported" : "unsupported"); /* set enhanced mode if available */ analogix_dp_set_enhanced_mode(dp); @@ -793,7 +793,7 @@ static int analogix_dp_fast_link_train(struct analogix_dp_device *dp) static int analogix_dp_train_link(struct analogix_dp_device *dp) { - if (dp->fast_train_support) + if (dp->fast_train_enable) return analogix_dp_fast_link_train(dp); return analogix_dp_full_link_train(dp, dp->video_info.max_lane_count, @@ -1197,6 +1197,7 @@ static void analogix_dp_bridge_disable(struct drm_bridge *bridge) DRM_ERROR("failed to setup the panel ret = %d\n", ret); dp->psr_enable = false; + dp->fast_train_enable = false; dp->dpms_mode = DRM_MODE_DPMS_OFF; } diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h index 6a96ef7e6934..403ff853464b 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h @@ -173,7 +173,7 @@ struct analogix_dp_device { int hpd_gpio; bool force_hpd; bool psr_enable; - bool fast_train_support; + bool fast_train_enable; struct mutex panel_lock; bool panel_is_modeset; -- 2.16.1