From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9DF2BC433F5 for ; Sat, 18 Sep 2021 07:25:52 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 493C16112E for ; Sat, 18 Sep 2021 07:25:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 493C16112E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=uniontech.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 04FF56E0E4; Sat, 18 Sep 2021 07:25:36 +0000 (UTC) X-Greylist: delayed 430 seconds by postgrey-1.36 at gabe; Sat, 18 Sep 2021 04:02:54 UTC Received: from qq.com (smtpbg429.qq.com [183.3.255.33]) by gabe.freedesktop.org (Postfix) with ESMTPS id C90C16E0D5 for ; Sat, 18 Sep 2021 04:02:54 +0000 (UTC) X-QQ-mid: bizesmtp47t1631937327txlrmwdz Received: from localhost.localdomain (unknown [124.126.19.250]) by esmtp6.qq.com (ESMTP) with id ; Sat, 18 Sep 2021 11:55:25 +0800 (CST) X-QQ-SSF: 0140000000000050D000000B0000000 X-QQ-FEAT: 1eo3oJ4iu3CXzawabx1UThWMAM5nZaz0mhKymUHU66ZwBk56u4Q5GYrIrIqDj TgbXcwb95umOfEWUQTkcGmAZra8MKPmAFqjmAj+Y6QGX0obMiTKxTtRY9caq8O6JIlMXIDz VTHB78lW81+4XIYH3Qohl2+e2YvHu38/o5lylQNoIHPMsuQsy9MxWZFFIraxTF++lUo1jia 3HMsObmwEnvrYsSiN6s3J6397G/m9hrBl+dJVxiuWST46tauUxOqS+4p5iNAwC7FpRzgjIl L3q83tZyN8TWFEMYGURZXh0mFcwTaaRVs1xTMUd6h0Hk3OQf/bZ9euE6sDA/jddPMW9dzUi P3zH3YqnqqR55JzFgFfP+Uc1Wnve0sumzm56MoS X-QQ-GoodBg: 1 From: Yunlongli To: ple@baylibre.com, narmstrong@baylibre.com, a.hajda@samsung.com, robert.foss@linaro.org, airlied@linux.ie, daniel@ffwll.ch Cc: Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, liyunlonga@uniontech.com Subject: [PATCH] drm: bridge: it66121: Added it66121 chip external screen status judgment. Date: Sat, 18 Sep 2021 11:55:02 +0800 Message-Id: <20210918035502.26486-1-liyunlonga@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign7 X-QQ-Bgrelay: 1 X-Mailman-Approved-At: Sat, 18 Sep 2021 07:25:35 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" fix: Add further confirm if external screens are involved. log: In the actual tests, the IT66121 chip sometimes misjudged whether it had an external screen, so, reference the it66121_user_guid.pdf about Audio/Video data is stable or not A typical initialization of HDMI link should be based on interrupt signal and appropriate register probing. Recommended flow is detailed in IT66121 Programming Guide. Simply put, the microcontroller should monitor the HPD status first. Upon valid HPD event, move on to check RxSENDetect register to see if the receiver chip is ready for further handshaking. When RxSENDetect is asserted, start reading EDID data through DDC channels and carry on the rest of the handshaking subsequently.If the micro-controller makes no use of the interrupt signal as well as the above-mentioned status registers, the link establishment might fail. Please do follow the suggested initialization flow recommended in IT66121 Programming Guide. So, I add the IT66121_SYS_STATUS_SENDECTECT register status detection. Signed-off-by: Yunlongli --- drivers/gpu/drm/bridge/ite-it66121.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/ite-it66121.c b/drivers/gpu/drm/bridge/ite-it66121.c index 2f2a09adb4bc..9ed4fa298d11 100644 --- a/drivers/gpu/drm/bridge/ite-it66121.c +++ b/drivers/gpu/drm/bridge/ite-it66121.c @@ -523,7 +523,7 @@ static bool it66121_is_hpd_detect(struct it66121_ctx *ctx) if (regmap_read(ctx->regmap, IT66121_SYS_STATUS_REG, &val)) return false; - return val & IT66121_SYS_STATUS_HPDETECT; + return ((val & IT66121_SYS_STATUS_HPDETECT) && (val & IT66121_SYS_STATUS_SENDECTECT)); } static int it66121_bridge_attach(struct drm_bridge *bridge, -- 2.20.1