<div><font>I tested it on Loongarch and MIPS, and the results were fine。</font></div><div><includetail><div> </div><div> </div><div style="font:Verdana normal 14px;color:#000;"><div style="FONT-SIZE: 12px;FONT-FAMILY: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="FONT-SIZE: 12px;background:#efefef;padding:8px;"><div id="menu_sender"><b>From: </b> "Neil Armstrong"<narmstrong@baylibre.com>;</div><div><b>Date: </b> Tue, Sep 21, 2021 08:28 AM</div><div><b>To: </b> "Yunlongli"<liyunlonga@uniontech.com>; "Phong LE"<ple@baylibre.com>; "Andrzej Hajda"<a.hajda@samsung.com>; "Robert Foss"<robert.foss@linaro.org>; "David Airlie"<airlied@linux.ie>; "Daniel Vetter"<daniel@ffwll.ch>; <wbr></div><div><b>Cc: </b> "Laurent.pinchart"<Laurent.pinchart@ideasonboard.com>; "Jonas Karlman"<jonas@kwiboo.se>; "Jernej Skrabec"<jernej.skrabec@gmail.com>; "dri-devel"<dri-devel@lists.freedesktop.org>; "linux-kernel"<linux-kernel@vger.kernel.org>; <wbr></div><div><b>Subject: </b> Re: [PATCH] drm: bridge: it66121: Added it66121 chip external screen status judgment</div></div><div> </div><div style="position:relative;"><div id="tmpcontent_res"></div>Hi,<br><br>On 21/09/2021 09:54, Yunlongli wrote:<br>> In the actual tests,  the IT66121 chip sometimes misjudged whether<br>> it had an external screen, so, reference the it66121_user_guid.pdf<br>> about Audio/Video data is stable or not A typical initialization<br>> of HDMI link should be based on interrupt signal and appropriate<br>> register probing. Recommended flow is detailed in IT66121<br>> Programming Guide. Simply put, the microcontroller should monitor<br>> the HPD status first. Upon valid HPD event, move on to check<br>> RxSENDetect register to see if the receiver chip is ready for<br>> further handshaking. When RxSENDetect is asserted, start reading EDID<br>> data through DDC channels and carry on the rest of the handshaking<br>> subsequently.If the micro-controller makes no use of the interrupt<br>> signal as well as the above-mentioned status  registers, the link<br>> establishment might fail. Please do follow the suggested<br>> initialization flow recommended in IT66121 Programming Guide.<br>> So, I add the IT66121_SYS_STATUS_SENDECTECT register status detection.<br><br>Ok, the RxSENDetect is the "rx-sense" detection bit as described in the same doc:<br><br>Receiver detection circuit reports the presence or absence of an active termination at the TMDS Clock Channel (RxSENDetect)<br><br>The usage of the rx-sense signal in hpd_detect() is not clear because this would break detection of "Fake" EDID dongles or idle monitors.<br><br>The dw-hdmi handles the rx-sense, but only to power-on/off the HDMI TX, but only returns the HPD status to DRM without the RX SENSE state,<br>so it only saves power and doesn't change anything on DRM HPD detection.<br><br>So not sure if we should merge this as-is.<br><br>Neil<br><br>> <br>> Signed-off-by: Yunlongli <liyunlonga@uniontech.com><br>> ---<br>>  drivers/gpu/drm/bridge/ite-it66121.c | 2 +-<br>>  1 file changed, 1 insertion(+), 1 deletion(-)<br>> <br>> diff --git a/drivers/gpu/drm/bridge/ite-it66121.c b/drivers/gpu/drm/bridge/ite-it66121.c<br>> index 2f2a09adb4bc..9ed4fa298d11 100644<br>> --- a/drivers/gpu/drm/bridge/ite-it66121.c<br>> +++ b/drivers/gpu/drm/bridge/ite-it66121.c<br>> @@ -523,7 +523,7 @@ static bool it66121_is_hpd_detect(struct it66121_ctx *ctx)<br>>         if (regmap_read(ctx->regmap, IT66121_SYS_STATUS_REG, &val))<br>>           return false;<br>>  <br>> -      return val & IT66121_SYS_STATUS_HPDETECT;<br>> +   return ((val & IT66121_SYS_STATUS_HPDETECT) && (val & IT66121_SYS_STATUS_SENDECTECT));<br>>  }<br>>  <br>>  static int it66121_bridge_attach(struct drm_bridge *bridge,<br>> <br><br></div></div><!--<![endif]--></includetail></div>