Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp5260062rdb; Wed, 13 Dec 2023 03:59:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IFZOqwtACzoZ0JX/sVZH5n9aQmGKjaVvOZsZJRXXR4o/QKXpefcTlL24WJd8i879Dypuyr9 X-Received: by 2002:a05:6a00:b51:b0:6cb:cd66:2102 with SMTP id p17-20020a056a000b5100b006cbcd662102mr9715688pfo.4.1702468764487; Wed, 13 Dec 2023 03:59:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702468764; cv=none; d=google.com; s=arc-20160816; b=ZwEY2lopuXAUcuL8JRdceJ+5Nb14LAtrNE+IJaaVrPHOnVq8qrW9iuD2kgdgdGcZP+ SIkZn6R9ALivJHZCWiynGccA6ELa8BFS4fyARqUZLqN5qLDZGTWbur8DHw5h50O0COaB 47djh/YltVVbHrTu8+LZKYpEOAYZ0uebQMKPb/JX0LmzQ/UPk1HA0PNmZcqFgD7LjFB+ 7L3cn6arDRPPNn1aey9zWk8Bj2gAr9VtgfPVqggC9rv7V22CtVxbIUPzdcBwh0ZZ0T6O DKbljlPiIFX7shn4OaVTp2ZbKNMos1YAvR8ajx4Fgckb3hxXoKPlL6GbIdJ1hlwu2j9t /gcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=fyXRP+lDcGUWL91uKJAg/CGQD1HLIoJn9slNttkFTJM=; fh=VFaDIlaIOAIIPYb4uWXnb5hXrFiO0sABDPiBAsEbUiE=; b=j4FzxKY8JOm0+gUMPWWpVDibH6nY+rdqTe2tUKCS53xNbpYhv3ONk4K7RQYylZzwid GAamOwXmEbfkzhlg4tFy3TlStpEEDUpBr8r0+41qVXF3UvbgAH0G1H9osw/Z5hewgTNL ZjjlPFpmf95XOmmYWR7AqgTFEr6SOEX9evExD8Yw+Z5KR7vrtxZOTQ5/2cgVOkJTjIQY tYBqULti29f1UDKvXRCBnGDQQX86nuj+FTH6Gj5iz6Pzb2jvgBAu0BykXjrc6VXBaMgu UDSf4UgcVrZZatOU0V8SMbPDPx2pDNBjrP/CopILxAZ6qIYaSd9M+Lx14iP1WAE0YINe iZrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=YuE7FGJS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id n22-20020a62e516000000b006ce97669ffdsi9030948pff.358.2023.12.13.03.59.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 03:59:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=YuE7FGJS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id F37D280C0558; Wed, 13 Dec 2023 03:59:22 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233550AbjLML7N (ORCPT + 99 others); Wed, 13 Dec 2023 06:59:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233403AbjLML7M (ORCPT ); Wed, 13 Dec 2023 06:59:12 -0500 Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6170CB0 for ; Wed, 13 Dec 2023 03:59:18 -0800 (PST) Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-dbccb65cff1so645127276.0 for ; Wed, 13 Dec 2023 03:59:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1702468757; x=1703073557; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=fyXRP+lDcGUWL91uKJAg/CGQD1HLIoJn9slNttkFTJM=; b=YuE7FGJSEwLA3kBdRQucpF/5UV6+KVePgeqWrojgDTQeYPotGdTwaKSixDU9G7M2k/ nnGGB8EuIHQV74Ldrgbv13z1uF6Nd0nq8LL7ApbP9qpLEBy4vC1wkMBr0ZvSe5Dyf/Go mAw3xXqTmpUGzLo0LU2pVV+zBiSxP6W6ygd4I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702468757; x=1703073557; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fyXRP+lDcGUWL91uKJAg/CGQD1HLIoJn9slNttkFTJM=; b=Pk1zMjOgspTL5XlxjzZtgegCze/BXuxEBO4F3mIxGZXJieo1VW/tDe0bPTBDzJFWki jTZtbGlzC3CIkXqPox3SULYbFk6JB+nVlVZKcaJ5WDbnX0Kob++nXPe5jV/RqFHoEcCl gX8Ng3/i44HA81cMTX7cXXNinECJsYmwk64GStF5sFkchPTQUcSzqNUgAV14GfDXyXNL GtyuK6nlUJpXgNPobPCKmHTVoygT+uYh14YQ393R/mSh+fcl24a/H+3BIiYJKU6WGt3V IfL5KDc5WTkIbteATT/QQvZRN4aMCOyDSpeMbNoNR8X7xZKzz3GL4UK87ktKmoJbyLq/ otGQ== X-Gm-Message-State: AOJu0YzKEGtnfgndz1awSRgwYMlfWZmiXIolBzbFcfU9RsKpkoWOyNYn VqHbIhEtCZH7Art9xDT0WejaxktJzTdXnicmqSB3cg== X-Received: by 2002:a25:bec5:0:b0:dbc:ad3b:f751 with SMTP id k5-20020a25bec5000000b00dbcad3bf751mr2967257ybm.34.1702468757529; Wed, 13 Dec 2023 03:59:17 -0800 (PST) MIME-Version: 1.0 References: <20231205105341.4100896-1-dario.binacchi@amarulasolutions.com> <20231205105341.4100896-3-dario.binacchi@amarulasolutions.com> In-Reply-To: From: Dario Binacchi Date: Wed, 13 Dec 2023 12:59:05 +0100 Message-ID: Subject: Re: [PATCH v4 02/10] drm/bridge: Fix a use case in the bridge disable logic To: Jagan Teki , Dave Stevenson Cc: Michael Nazzareno Trimarchi , linux-kernel@vger.kernel.org, Amarula patchwork , Andrzej Hajda , Daniel Vetter , David Airlie , Frieder Schrempf , Jernej Skrabec , Jonas Karlman , Laurent Pinchart , Maarten Lankhorst , Maxime Ripard , Neil Armstrong , Robert Foss , Thomas Zimmermann , dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 13 Dec 2023 03:59:23 -0800 (PST) Hi Jagan and Dave, On Wed, Dec 6, 2023 at 2:57=E2=80=AFPM Michael Nazzareno Trimarchi wrote: > > Hi Jagan > > On Wed, Dec 6, 2023 at 2:31=E2=80=AFPM Jagan Teki wrote: > > > > Hi Dario, > > > > On Wed, Dec 6, 2023 at 6:57=E2=80=AFPM Dario Binacchi > > wrote: > > > > > > Hi Dave and Jagan, > > > > > > On Tue, Dec 5, 2023 at 4:39=E2=80=AFPM Dave Stevenson > > > wrote: > > > > > > > > Hi Dario > > > > > > > > On Tue, 5 Dec 2023 at 10:54, Dario Binacchi > > > > wrote: > > > > > > > > > > The patch fixes the code for finding the next bridge with the > > > > > "pre_enable_prev_first" flag set to false. In case this condition= is > > > > > not verified, i. e. there is no subsequent bridge with the flag s= et to > > > > > false, the whole bridge list is traversed, invalidating the "next= " > > > > > variable. > > > > > > > > > > The use of a new iteration variable (i. e. "iter") ensures that t= he value > > > > > of the "next" variable is not invalidated. > > > > > > > > We already have https://patchwork.freedesktop.org/patch/529288/ tha= t > > > > has been reviewed (but not applied) to resolve this. What does this > > > > version do differently and why? > > > > > > My patches only affect drm_atomic_bridge_chain_post_disable(), wherea= s > > > Jagan's patch affects both > > > drm_atomic_bridge_chain_post_disable() and drm_atomic_bridge_chain_pr= e_enable(). > > > I tested Jagan's patch on my system with success and I reviewed with > > > Michael Trimarchi the > > > drm_atomic_bridge_chain_pre_enable() fixing and we think it's okay. > > > We also believe that our changes to post_disable() are better, as we > > > set the 'next' variable only when required, > > > and the code is more optimized since the list_is_last() is not called > > > within the loop. > > > Would it be possible to use Jagan's patch for fixing > > > drm_atomic_bridge_chain_pre_enable() and mine for > > > fixing drm_atomic_bridge_chain_post_disable()? > > > > > > > Can you please share the post-disabled bridge chain list with the > > below example before and after your change? > > We have already git commit the description in how the patch affects > the post_disable. As Dario > reported your patch is ok even in our use case. We don't have a real > use case as the one you describe. > > Can we know how you test it in this use case here? Can you test our > patches of post_disable? > > Thanks > Michael > > > > > Example: > > - Panel > > - Bridge 1 > > - Bridge 2 pre_enable_prev_first > > - Bridge 3 > > - Bridge 4 pre_enable_prev_first > > - Bridge 5 pre_enable_prev_first > > - Bridge 6 > > - Encoder > > > > Thanks, > > Jagan. Starting from my use case: # cat /sys/kernel/debug/dri/32e00000.lcdif/bridge_chains encoder[36] bridge[0] type: 16, ops: 0x0, OF: /soc@0/bus@32c00000/dsi@32e10000:fsl,imx8mn-mipi-dsim bridge[1] type: 16, ops: 0x8, OF: /soc@0/bus@32c00000/dsi@32e10000/panel@0:sharp,ls068b3sx0 I developed a pass through MIPI-DSI bridge driver to try to test your case: # cat /sys/kernel/debug/dri/32e00000.lcdif/bridge_chains encoder[36] bridge[0] type: 16, ops: 0x0, OF: /soc@0/bus@32c00000/dsi@32e10000:fsl,imx8mn-mipi-dsim bridge[1] type: 16, ops: 0x0, OF: /pt_mipi_dsi1:amarula,pt-mipi-dsi bridge[2] type: 16, ops: 0x0, OF: /pt_mipi_dsi2:amarula,pt-mipi-dsi bridge[3] type: 16, ops: 0x0, OF: /pt_mipi_dsi3:amarula,pt-mipi-dsi bridge[4] type: 16, ops: 0x0, OF: /pt_mipi_dsi4:amarula,pt-mipi-dsi bridge[5] type: 16, ops: 0x0, OF: /pt_mipi_dsi5:amarula,pt-mipi-dsi bridge[6] type: 16, ops: 0x8, OF: /pt_mipi_dsi5/panel@0:sharp,ls068b3sx02 The pre_enable_prev_first flag is set through the "amarula,pre_enable_prev_first" dts property I put in my dts. Your and my patches give the same results (result: OK) in both your use case and mine. But If I test my new "enlarged" use case: - Encoder - bridge[0] (samsung-dsim) - bridge[1] pre_enable_prev_first - bridge[2] pre_enable_prev_first - bridge[3] pre_enable_prev_first - bridge[4] pre_enable_prev_first - bridge[5] pre_enable_prev_first - bridge[6] pre_enable_prev_first (Panel) the result is: my patches: KO your patch: OK So, I will remove my patches from the series. Can the driver I implemented to test the use cases (pass through MIPI-DSI) be considered useful for testing these bridge pipelines? Does it make sense to send its patch? Thanks and regards Dario Dario Binacchi Senior Embedded Linux Developer dario.binacchi@amarulasolutions.com __________________________________ Amarula Solutions SRL Via Le Canevare 30, 31100 Treviso, Veneto, IT T. +39 042 243 5310 info@amarulasolutions.com www.amarulasolutions.com