Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp5783245imw; Wed, 20 Jul 2022 12:27:02 -0700 (PDT) X-Google-Smtp-Source: AGRyM1t1aKHc6Jz2wqYBc70LJXQB+GTruiNMBNglc93orWr7+3rSq9FUy3mOFATDwKPgS5vJsp/B X-Received: by 2002:a17:906:478b:b0:72b:5cd6:3f50 with SMTP id cw11-20020a170906478b00b0072b5cd63f50mr36344129ejc.514.1658345222015; Wed, 20 Jul 2022 12:27:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658345222; cv=none; d=google.com; s=arc-20160816; b=ket8trG+34txXEzCFv/mfQyCEtwMse94F2thb2cNevVr4nvNp6McE02682it8lOlSP vhd7Lc2M7PbJb+NJaM33IfHPz5XdGtMdKbvk5+KfCfk5zZwHuLHeoBGBYclHdhQ+SikN bjcfkxA0/3TXUb7hxMe8KYxPDtFoXkSB6QryD7UaIppg1xMLOPATXmbpRJe1vo6LYmvS 8Ck83EbjEl+d/oV+CdrkyS5eonGxs6ruTUO7sVKW3rd1JJPETrXxpZKcjOBUwHGp2UJk /2tCBDW2cFLtv6R24VVqjcjDuZRt8PhwsC8aYhCtr4kC1c+RkZavjNyaAhjhwimaxZYP q8HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=eexJ36nvuL8bRqZvUCoc5No3yUPaYbMdtcGk3//pGSs=; b=Uoh1wmYzoedpdNoCxELMHSzOcxsNkNgIk9UaYCmguLy4/NnUlwUQOjvLw5ty5Goklj +Ad1cHntzKf3eY4QECTdjU633WBfHoqk3n3/S9Yt+YuDen5MPZ6jCkmKTfRNavebtLES zRtS1BWkCLkEI+8t7AGnbXAZzbANutMhtnfXr8xr2x+jBHmeCYd2I/u/o3lqtWTrwsct 2hjZZWekW2syqCanuYshTK67mGonDL+YUrJwPP6iGRJEfyOuLE1nYhR0axPVhpy3TXRB B6iZsDlH0gF+y4NvGpkCh1nFJqpegLHqBZHU74xOspF8RWQJQsiA0KXKhmYGQuZCWxN7 PWKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=FMS43N7X; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i18-20020a05640242d200b0043a72951a14si21365434edc.304.2022.07.20.12.26.24; Wed, 20 Jul 2022 12:27:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=FMS43N7X; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229735AbiGTSwq (ORCPT + 99 others); Wed, 20 Jul 2022 14:52:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229446AbiGTSwc (ORCPT ); Wed, 20 Jul 2022 14:52:32 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C466548C8F for ; Wed, 20 Jul 2022 11:52:31 -0700 (PDT) Received: from notapiano (pool-98-113-53-228.nycmny.fios.verizon.net [98.113.53.228]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nfraprado) by madras.collabora.co.uk (Postfix) with ESMTPSA id 907116601795; Wed, 20 Jul 2022 19:52:29 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1658343150; bh=va90EplYMG3DyUMu78yTVvvF39C/aIb5s4BDbKlppvI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=FMS43N7XhHXUoBywTxfxyiQJENXZ/Thn7exStAh2dPf99x3n/vHJ1z6c90otMiUMn qulrSJ2f5pi+RPSvtwXe/MgAREjeKPe1qbqE5KQCllVy7WOEcG2mxwFCXz8SLTsp6z a3zRRwi5ApZK1wr8uMvmM6KU8AePS6JLBl3zRYVl3b9lyWgKWXAOiLYca/LIqzojkP Hq4twZq6zdw1UH5LN/Pcjtk1nvtoW/3GAF6Kk1oaBcQDyZ9h8nt4k8b5h+T3xbpWyB 4IFH0ZQOaPqIYba6V0cCnxtOC6Tzi0/po4kqtjjNRa/IOZgI0A2zkJncCzaINfe70j IClrvjUS3Re3A== Date: Wed, 20 Jul 2022 14:52:26 -0400 From: =?utf-8?B?TsOtY29sYXMgRi4gUi4gQS4=?= Prado To: AngeloGioacchino Del Regno Cc: Doug Anderson , kernel@collabora.com, Daniel Vetter , David Airlie , Sam Ravnborg , Thierry Reding , dri-devel , LKML Subject: Re: [PATCH 1/3] drm/panel-edp: Add panel entry for R140NWF5 RH Message-ID: <20220720185226.tf4y2ofmuz3ifejr@notapiano> References: <20220719203857.1488831-1-nfraprado@collabora.com> <20220719203857.1488831-2-nfraprado@collabora.com> <194631de-2e3f-6e1f-65f6-76dbef04483e@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <194631de-2e3f-6e1f-65f6-76dbef04483e@collabora.com> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 20, 2022 at 09:49:35AM +0200, AngeloGioacchino Del Regno wrote: > Il 20/07/22 00:40, Doug Anderson ha scritto: > > Hi, > > > > On Tue, Jul 19, 2022 at 1:39 PM N?colas F. R. A. Prado > > wrote: > > > > > > Add panel identification entry for the IVO R140NWF5 RH (product ID: > > > 0x057d) panel. > > > > > > Signed-off-by: N?colas F. R. A. Prado > > > > > > --- > > > The comments on the driver indicate that the T3 timing should be set on > > > hpd_absent, while hpd_reliable would have a shorter time just while the > > > HPD line stabilizes on low after power is supplied. > > > > Right. Ideally hpd_reliable is 0 unless you've got a badly-designed panel. > > > > > > > But can we really assume that the HPD line will be reliable at all > > > before the DDIC is done booting up, at which point the HPD line is > > > brought up? IOW, shouldn't we always delay T3 (by setting hpd_reliable = > > > T3), since only then we're really sure that the DDIC is done setting up > > > and the HPD line is reliable? > > > > If the panel is hooked up properly, then the HPD pin should be pulled > > low at the start and then should only go high after the panel is ready > > for us to talk to it, right? So it's not like the DDIC has to boot up > > and actively init the state. I would assume that the initial state of > > the "HPD output" from the panel's IC would be one of the following: > > * A floating input. > > * A pulled down input. > > * An output driven low. > > > > In any of those cases just adding a pull down on the line would be > > enough to ensure that the HPD line is reliable until the panel comes > > around and actively drives the line high. > > > > Remember, this is eDP and it's not something that's hot-plugged, so > > there's no debouncing involved and in a properly designed system there > > should be no time needed for the signal to stabilize. I would also > > point out that on the oficial eDP docs the eDP timing diagram doesn't > > show the initial state of "HPD" as "unknown". It shows it as low. > > > > Now, that all being said, I have seen at least one panel that glitched > > itself at bootup. After you powered it on it would blip its HPD line > > high before it had actually finished booting. Then the HPD would go > > low again before finally going high after the panel finished booting. > > This is the reason for "hpd_reliable". > > > > If you've got a board with a well-designed panel but the hookup > > between the panel and the board is wrong (maybe the board is missing a > > pulldown on the HPD line?) then you can just set the "no-hpd" property > > for your board. That will tell the kernel to just always delay the > > "hpd-absent" delay. > > Thank you for the detailed explanation, this does clear all doubts from what me and Angelo were discussing. > > We were concerned exactly about glitchy HPD during DDIC init, as I didn't > want to trust it because the only testing we could do was on just two units... > > ...but if you're sure that I was too much paranoid about that, that's good, > as it means I will be a bit more "relaxed" on this topic next time :-) > > > > I've set the T3 delay to hpd_absent in this series, following what's > > > instructed in the comments, but I'd like to discuss whether we shouldn't > > > be setting T3 on hpd_reliable instead, for all panels, to be on the > > > safer side. > > > > The way it's specified right now is more flexible, though, isn't it? > > This way if you're on a board where the HPD truly _isn't_ stable then > > you can just set the "no-hpd" and it will automatically use the > > "hpd_absent" delay, right? > > Yes, indeed. I just wasn't sure that flexibility brought us anything, but after your explanation above it makes much more sense now, thanks! > > For Chromebooks, that's totally doable, thanks to the bootloader seeking for > proper machine compatibles, so yes I agree with that. > > > > > > drivers/gpu/drm/panel/panel-edp.c | 8 ++++++++ > > > 1 file changed, 8 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c > > > index 3626469c4cc2..675d793d925e 100644 > > > --- a/drivers/gpu/drm/panel/panel-edp.c > > > +++ b/drivers/gpu/drm/panel/panel-edp.c > > > @@ -1854,6 +1854,12 @@ static const struct panel_delay delay_100_500_e200 = { > > > .enable = 200, > > > }; > > > > > > +static const struct panel_delay delay_200_500_e200 = { > > > + .hpd_absent = 200, > > > + .unprepare = 500, > > > + .enable = 200, > > > +}; > > > + > > > #define EDP_PANEL_ENTRY(vend_chr_0, vend_chr_1, vend_chr_2, product_id, _delay, _name) \ > > > { \ > > > .name = _name, \ > > > @@ -1882,6 +1888,8 @@ static const struct edp_panel_entry edp_panels[] = { > > > > > > EDP_PANEL_ENTRY('C', 'M', 'N', 0x114c, &innolux_n116bca_ea1.delay, "N116BCA-EA1"), > > > > > > + EDP_PANEL_ENTRY('I', 'V', 'O', 0x057d, &delay_200_500_e200, "R140NWF5 RH"), > > > + > > > > This looks fine to me: > > > > Reviewed-by: Douglas Anderson > > > > I'm happy to apply this in a day or two assuming you're OK with my > > explanation above. > > Thank you for the long mail, your explanation was truly helpful! > (especially for me being paranoid :-P) > > So, I agree to go with that one, for which: > > Reviewed-by: AngeloGioacchino Del Regno > > Nic, green light? Yep. I haven't seen any issues with keeping the hpd_reliable as 0 in the machine I have access to, and Douglas' explanation cleared up all the doubts of how this all works, so, Douglas, please feel free to merge this as is. In that case, since patch 3 was also merged already I'll send a v2 just for patch 2 separately. Thanks, N?colas