Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp288741iob; Thu, 28 Apr 2022 02:20:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzE9kb7ABX47uaplBx01LKvmQIo7rHiBhJz9VciROYGQqGIS5aEoXZljIv7Yvb/Aula5f5C X-Received: by 2002:aa7:9852:0:b0:50d:6d10:2094 with SMTP id n18-20020aa79852000000b0050d6d102094mr9554901pfq.4.1651137635360; Thu, 28 Apr 2022 02:20:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651137635; cv=none; d=google.com; s=arc-20160816; b=ZBq6gUjKIMOZ0yEC6YR/bu4nHuInCnYdDp5qu8I5L29bJYBKOan2KlBy4Yj1c/6vH3 y0wwPjav6vlnrMxc4VRA0cxtSaJ9jpOF9Mftj0mhgIl+jxuZEiB2oguhjDPqpCt3+tAt nAHu+2hUCJIByZsp+1XE9G5l9Yp4hrkLzOYkiu8RyDgHwiqTUq98dnLeesMuRvqqslC+ 3NlpzldtW6rgln5lV0Bi6jnx14XSNzAuwLJ14zDfx4/82hNL4/Hbs91DfNaKdi7l5FkI A2C5oYYjeKDFZc22ikjMAEHM3/1ShH0XqM+xEozBMRvdNqRAq7FOnqfHML86Kv9gdEB5 +TTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=GBFLXMdrqZoM8pTN9XOZZVLOcyL+2U8hpcEKfTTlXlY=; b=bRDO74qc1//SG2/lfOhMP/Q+ysLQxhm10bqO96rJkDKYIZp4oYf6vLrFRak+ilFp3M 3uSJbLnbBT5JaZuXmZWopZrB7iWtLf/0m0qp52GTpHfKT/GM7IPvOBZPWo512It5Vodh ZmO4mN4TVXsyiwF4C1TMrrnhrw5gmvfSKEioc3V6gq/P3IoLRhd8wD+y40IDK0A3i8HH dpKUE1AAcqKiQoVpxtldhyDskeUu8Hs3CR2hEaf/GzZsNfsOG05VNipaNulAs6bUFBHf RKcWfNCrZfguANFgv5vwZ58PN4/DndbT5RDiCnldurn7DDbmsxdfA7tiC2G5PRJv8YOb jGug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=acPfvYBo; 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=amarulasolutions.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x78-20020a627c51000000b004fa5a66305esi3549730pfc.36.2022.04.28.02.20.15; Thu, 28 Apr 2022 02:20:35 -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=@amarulasolutions.com header.s=google header.b=acPfvYBo; 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=amarulasolutions.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344076AbiD1I2s (ORCPT + 99 others); Thu, 28 Apr 2022 04:28:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37376 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344075AbiD1I2q (ORCPT ); Thu, 28 Apr 2022 04:28:46 -0400 Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7968D972D6 for ; Thu, 28 Apr 2022 01:25:31 -0700 (PDT) Received: by mail-ej1-x62d.google.com with SMTP id r13so8038862ejd.5 for ; Thu, 28 Apr 2022 01:25:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GBFLXMdrqZoM8pTN9XOZZVLOcyL+2U8hpcEKfTTlXlY=; b=acPfvYBo2zGMcnL/ebZtDurllXBYVvGnQWuYbMdEyr/qKgqwEyxoxvyTBSgGBJRepN 576veejTCJPrq5g0WnVeEqMKfXhzQy9BrtyfSMjgpZ299k+IXH5ISoEUe3gZsd0S4135 94XlelFYgIROHiCxNIMcPrWG5fGhxOUK7zwS0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GBFLXMdrqZoM8pTN9XOZZVLOcyL+2U8hpcEKfTTlXlY=; b=vlRlu4UCtZBjsOGljyDyIIWpMCoMXMf+YLzzT1JcOoqgTNAah9Eg9PfJ+hLf2WahdW lixFmStrQGHLe3EebwilyxayDa1e5GwuMmeQQfGCr0Jkxd2hZSRd9fE1KcZuwxiYMmV/ 9Yg4Yxa86WBQ+8QZ+DEWw75dwy3NpvsmGb1jSHZDVavRnMOKDm/S/XQa6k151Xrkc75l QrfaL7oL4CF1aVYZuFkU668JthTINncnv4dmDAAap0mB7eSSoz07lMkkO828AIFZO5Bd F9nAGnyUMIfsp7BDsi7UCwpTbhNUiSZNGPhzft12klmVehAOoHxaErgxulLGMfqjWitX sVOw== X-Gm-Message-State: AOAM533UTzFa0qZqmhzrIDKru7F3B7F5jumhobgVatuHVcXIUfezWXnp /Pchqckcl0Y+EFEK/TqJ+mglAUlkq1dMX/eIbv2+6w== X-Received: by 2002:a17:906:1315:b0:6ef:5903:c5d1 with SMTP id w21-20020a170906131500b006ef5903c5d1mr30037607ejb.537.1651134329995; Thu, 28 Apr 2022 01:25:29 -0700 (PDT) MIME-Version: 1.0 References: <20220420231230.58499-1-bjorn.andersson@linaro.org> <20220420231230.58499-2-bjorn.andersson@linaro.org> <20220421082358.ivpmtak3ednvddrc@houat> <20220427143410.bectqumq62qmlv5x@houat> <8cc97a1b-f03a-3303-4357-fc26abe58fcd@samsung.com> In-Reply-To: <8cc97a1b-f03a-3303-4357-fc26abe58fcd@samsung.com> From: Jagan Teki Date: Thu, 28 Apr 2022 13:55:18 +0530 Message-ID: Subject: Re: [PATCH 2/2] Revert "drm: of: Lookup if child node has panel or bridge" To: Marek Szyprowski Cc: Maxime Ripard , Paul Kocialkowski , Bjorn Andersson , Maarten Lankhorst , Thomas Zimmermann , David Airlie , Daniel Vetter , Thierry Reding , Rob Clark , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Linus Walleij , Laurent Pinchart , Robert Foss Content-Type: text/plain; charset="UTF-8" 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 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 Hi Marek, On Thu, Apr 28, 2022 at 11:47 AM Marek Szyprowski wrote: > > Hi Maxime, > > On 27.04.2022 16:34, Maxime Ripard wrote: > > On Tue, Apr 26, 2022 at 01:40:31PM +0530, Jagan Teki wrote: > >> On Tue, Apr 26, 2022 at 1:24 PM Paul Kocialkowski > >> wrote: > >>> On Thu 21 Apr 22, 10:59, Paul Kocialkowski wrote: > >>>> On Thu 21 Apr 22, 10:23, Maxime Ripard wrote: > >>>>> On Thu, Apr 21, 2022 at 01:15:54PM +0530, Jagan Teki wrote: > >>>>>> + Linus > >>>>>> + Marek > >>>>>> + Laurent > >>>>>> + Robert > >>>>>> > >>>>>> On Thu, Apr 21, 2022 at 4:40 AM Bjorn Andersson > >>>>>> wrote: > >>>>>>> Commit '80253168dbfd ("drm: of: Lookup if child node has panel or > >>>>>>> bridge")' attempted to simplify the case of expressing a simple panel > >>>>>>> under a DSI controller, by assuming that the first non-graph child node > >>>>>>> was a panel or bridge. > >>>>>>> > >>>>>>> Unfortunately for non-trivial cases the first child node might not be a > >>>>>>> panel or bridge. Examples of this can be a aux-bus in the case of > >>>>>>> DisplayPort, or an opp-table represented before the panel node. > >>>>>>> > >>>>>>> In these cases the reverted commit prevents the caller from ever finding > >>>>>>> a reference to the panel. > >>>>>>> > >>>>>>> This reverts commit '80253168dbfd ("drm: of: Lookup if child node has > >>>>>>> panel or bridge")', in favor of using an explicit graph reference to the > >>>>>>> panel in the trivial case as well. > >>>>>> This eventually breaks many child-based devm_drm_of_get_bridge > >>>>>> switched drivers. Do you have any suggestions on how to proceed to > >>>>>> succeed in those use cases as well? > >>>>> I guess we could create a new helper for those, like > >>>>> devm_drm_of_get_bridge_with_panel, or something. > >>>> Oh wow I feel stupid for not thinking about that. > >>>> > >>>> Yeah I agree that it seems like the best option. > >>> Should I prepare a patch with such a new helper? > >>> > >>> The idea would be to keep drm_of_find_panel_or_bridge only for the of graph > >>> case and add one for the child node case, maybe: > >>> drm_of_find_child_panel_or_bridge. > >>> > >>> I really don't have a clear idea of which driver would need to be switched > >>> over though. Could someone (Jagan?) let me know where it would be needed? > >> sun6i_mipi_dsi > > It doesn't look like sun6i_mipi_dsi is using devm_drm_of_get_bridge at all? > > > >> exynos_drm_dsi > > If you reference 711c7adc4687, I don't see why we would need to switch > > it back to the old behaviour. It wasn't iterating over its child node > > before, so what does the switch to drm_of_get_bridge broke exactly? > > It broke getting the panel if it is a direct child of the DSI device > node. It worked before because it used following code: > > dsi->panel = of_drm_find_panel(device->dev.of_node); > > which got replaced by devm_drm_of_get_bridge(). Yes, we need to revert that change back to find the individual panel and bridge. I'm preparing a patch for it. Jagan.