From: Doug Anderson <dianders@chromium.org> To: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Andrzej Hajda <a.hajda@samsung.com>, Neil Armstrong <narmstrong@baylibre.com>, Jonas Karlman <jonas@kwiboo.se>, Jernej Skrabec <jernej.skrabec@siol.net>, Sam Ravnborg <sam@ravnborg.org>, Linus W <linus.walleij@linaro.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Rob Clark <robdclark@chromium.org>, Stephen Boyd <swboyd@chromium.org>, Steev Klimaszewski <steev@kali.org>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, linux-arm-msm <linux-arm-msm@vger.kernel.org>, Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>, Boris Brezillon <boris.brezillon@collabora.com>, Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@linux.ie>, Maxime Ripard <mripard@kernel.org>, Thomas Zimmermann <tzimmermann@suse.de>, dri-devel <dri-devel@lists.freedesktop.org>, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v3 01/12] drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() Date: Wed, 14 Apr 2021 18:19:13 -0700 [thread overview] Message-ID: <CAD=FV=UN38EiYMiwNjysBS6dReKDaf+g2GcgaVt9iF1mTRKg7A@mail.gmail.com> (raw) In-Reply-To: <YGpeo9LV4uAh1B7u@pendragon.ideasonboard.com> Hi, On Sun, Apr 4, 2021 at 5:50 PM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > Hi Doug, > > Thank you for the patch. > > On Fri, Apr 02, 2021 at 03:28:35PM -0700, Douglas Anderson wrote: > > The drm_bridge_chain_pre_enable() is not the proper opposite of > > drm_bridge_chain_post_disable(). It continues along the chain to > > _before_ the starting bridge. Let's fix that. > > > > Fixes: 05193dc38197 ("drm/bridge: Make the bridge chain a double-linked list") > > Signed-off-by: Douglas Anderson <dianders@chromium.org> > > Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> > > --- > > > > (no changes since v1) > > > > drivers/gpu/drm/drm_bridge.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c > > index 64f0effb52ac..044acd07c153 100644 > > --- a/drivers/gpu/drm/drm_bridge.c > > +++ b/drivers/gpu/drm/drm_bridge.c > > @@ -522,6 +522,9 @@ void drm_bridge_chain_pre_enable(struct drm_bridge *bridge) > > list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { > > if (iter->funcs->pre_enable) > > iter->funcs->pre_enable(iter); > > + > > + if (iter == bridge) > > + break; > > This looks good as it matches drm_atomic_bridge_chain_disable(). > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Thanks for your review here and several of the other patches. Can you suggest any plan for getting them landed? It would at least be nice to get the non-controversial ones landed. > I'm curious though, given that the bridge passed to the function should > be the one closest to the encoder, does this make a difference ? Yes, that's how I discovered it originally. Let's see. So if I don't have this patch but have the rest of the series then I get a splat at bootup. This shows that dsi_mgr_bridge_pre_enable() must be "earlier" in the chain than my bridge chip. Here's the splat: msm_dsi_host_get_phy_clk_req: unable to calc clk rate, -22 ------------[ cut here ]------------ disp_cc_mdss_ahb_clk status stuck at 'off' WARNING: CPU: 7 PID: 404 at drivers/clk/qcom/clk-branch.c:92 clk_branch_toggle+0x194/0x280 Modules linked in: joydev CPU: 7 PID: 404 Comm: frecon Tainted: G B 5.12.0-rc3-lockdep+ #2 Hardware name: Google Lazor (rev1 - 2) with LTE (DT) pstate: 60400089 (nZCv daIf +PAN -UAO -TCO BTYPE=--) pc : clk_branch_toggle+0x194/0x280 lr : clk_branch_toggle+0x190/0x280 ... Call trace: clk_branch_toggle+0x194/0x280 clk_branch2_enable+0x28/0x34 clk_core_enable+0x2f4/0x6b4 clk_enable+0x54/0x74 dsi_phy_enable_resource+0x80/0xd8 msm_dsi_phy_enable+0xa8/0x4a8 enable_phy+0x9c/0xf4 dsi_mgr_bridge_pre_enable+0x23c/0x4b0 drm_bridge_chain_pre_enable+0xac/0xe4 ti_sn_bridge_connector_get_modes+0x134/0x1b8 drm_helper_probe_single_connector_modes+0x49c/0x1358 drm_mode_getconnector+0x460/0xe98 drm_ioctl_kernel+0x144/0x228 drm_ioctl+0x418/0x7cc drm_compat_ioctl+0x1bc/0x230 __arm64_compat_sys_ioctl+0x14c/0x188 el0_svc_common+0x128/0x23c do_el0_svc_compat+0x50/0x60 el0_svc_compat+0x24/0x34 el0_sync_compat_handler+0xc0/0xf0 el0_sync_compat+0x174/0x180
WARNING: multiple messages have this Message-ID (diff)
From: Doug Anderson <dianders@chromium.org> To: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Rob Clark <robdclark@chromium.org>, Jernej Skrabec <jernej.skrabec@siol.net>, Thomas Zimmermann <tzimmermann@suse.de>, dri-devel <dri-devel@lists.freedesktop.org>, Jonas Karlman <jonas@kwiboo.se>, David Airlie <airlied@linux.ie>, linux-arm-msm <linux-arm-msm@vger.kernel.org>, Neil Armstrong <narmstrong@baylibre.com>, LKML <linux-kernel@vger.kernel.org>, Steev Klimaszewski <steev@kali.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>, Andrzej Hajda <a.hajda@samsung.com>, Boris Brezillon <boris.brezillon@collabora.com>, Stephen Boyd <swboyd@chromium.org>, Sam Ravnborg <sam@ravnborg.org> Subject: Re: [PATCH v3 01/12] drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() Date: Wed, 14 Apr 2021 18:19:13 -0700 [thread overview] Message-ID: <CAD=FV=UN38EiYMiwNjysBS6dReKDaf+g2GcgaVt9iF1mTRKg7A@mail.gmail.com> (raw) In-Reply-To: <YGpeo9LV4uAh1B7u@pendragon.ideasonboard.com> Hi, On Sun, Apr 4, 2021 at 5:50 PM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > Hi Doug, > > Thank you for the patch. > > On Fri, Apr 02, 2021 at 03:28:35PM -0700, Douglas Anderson wrote: > > The drm_bridge_chain_pre_enable() is not the proper opposite of > > drm_bridge_chain_post_disable(). It continues along the chain to > > _before_ the starting bridge. Let's fix that. > > > > Fixes: 05193dc38197 ("drm/bridge: Make the bridge chain a double-linked list") > > Signed-off-by: Douglas Anderson <dianders@chromium.org> > > Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> > > --- > > > > (no changes since v1) > > > > drivers/gpu/drm/drm_bridge.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c > > index 64f0effb52ac..044acd07c153 100644 > > --- a/drivers/gpu/drm/drm_bridge.c > > +++ b/drivers/gpu/drm/drm_bridge.c > > @@ -522,6 +522,9 @@ void drm_bridge_chain_pre_enable(struct drm_bridge *bridge) > > list_for_each_entry_reverse(iter, &encoder->bridge_chain, chain_node) { > > if (iter->funcs->pre_enable) > > iter->funcs->pre_enable(iter); > > + > > + if (iter == bridge) > > + break; > > This looks good as it matches drm_atomic_bridge_chain_disable(). > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Thanks for your review here and several of the other patches. Can you suggest any plan for getting them landed? It would at least be nice to get the non-controversial ones landed. > I'm curious though, given that the bridge passed to the function should > be the one closest to the encoder, does this make a difference ? Yes, that's how I discovered it originally. Let's see. So if I don't have this patch but have the rest of the series then I get a splat at bootup. This shows that dsi_mgr_bridge_pre_enable() must be "earlier" in the chain than my bridge chip. Here's the splat: msm_dsi_host_get_phy_clk_req: unable to calc clk rate, -22 ------------[ cut here ]------------ disp_cc_mdss_ahb_clk status stuck at 'off' WARNING: CPU: 7 PID: 404 at drivers/clk/qcom/clk-branch.c:92 clk_branch_toggle+0x194/0x280 Modules linked in: joydev CPU: 7 PID: 404 Comm: frecon Tainted: G B 5.12.0-rc3-lockdep+ #2 Hardware name: Google Lazor (rev1 - 2) with LTE (DT) pstate: 60400089 (nZCv daIf +PAN -UAO -TCO BTYPE=--) pc : clk_branch_toggle+0x194/0x280 lr : clk_branch_toggle+0x190/0x280 ... Call trace: clk_branch_toggle+0x194/0x280 clk_branch2_enable+0x28/0x34 clk_core_enable+0x2f4/0x6b4 clk_enable+0x54/0x74 dsi_phy_enable_resource+0x80/0xd8 msm_dsi_phy_enable+0xa8/0x4a8 enable_phy+0x9c/0xf4 dsi_mgr_bridge_pre_enable+0x23c/0x4b0 drm_bridge_chain_pre_enable+0xac/0xe4 ti_sn_bridge_connector_get_modes+0x134/0x1b8 drm_helper_probe_single_connector_modes+0x49c/0x1358 drm_mode_getconnector+0x460/0xe98 drm_ioctl_kernel+0x144/0x228 drm_ioctl+0x418/0x7cc drm_compat_ioctl+0x1bc/0x230 __arm64_compat_sys_ioctl+0x14c/0x188 el0_svc_common+0x128/0x23c do_el0_svc_compat+0x50/0x60 el0_svc_compat+0x24/0x34 el0_sync_compat_handler+0xc0/0xf0 el0_sync_compat+0x174/0x180 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2021-04-15 1:19 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-02 22:28 [PATCH v3 00/12] drm: Fix EDID reading on ti-sn65dsi86 Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-02 22:28 ` [PATCH v3 01/12] drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 0:49 ` Laurent Pinchart 2021-04-05 0:49 ` Laurent Pinchart 2021-04-15 1:19 ` Doug Anderson [this message] 2021-04-15 1:19 ` Doug Anderson 2021-04-15 1:56 ` Laurent Pinchart 2021-04-15 1:56 ` Laurent Pinchart 2021-04-15 14:48 ` Doug Anderson 2021-04-15 14:48 ` Doug Anderson 2021-04-02 22:28 ` [PATCH v3 02/12] drm/bridge: ti-sn65dsi86: Simplify refclk handling Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-02 22:28 ` [PATCH v3 03/12] drm/bridge: ti-sn65dsi86: Remove incorrectly tagged kerneldoc comment Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 0:50 ` Laurent Pinchart 2021-04-05 0:50 ` Laurent Pinchart 2021-04-02 22:28 ` [PATCH v3 04/12] drm/bridge: ti-sn65dsi86: Reorder remove() Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 0:52 ` Laurent Pinchart 2021-04-05 0:52 ` Laurent Pinchart 2021-04-02 22:28 ` [PATCH v3 05/12] drm/bridge: ti-sn65dsi86: Move drm_panel_unprepare() to post_disable() Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 0:58 ` Laurent Pinchart 2021-04-05 0:58 ` Laurent Pinchart 2021-04-02 22:28 ` [PATCH v3 06/12] drm/bridge: ti-sn65dsi86: Get rid of the useless detect() function Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 0:58 ` Laurent Pinchart 2021-04-05 0:58 ` Laurent Pinchart 2021-04-02 22:28 ` [PATCH v3 07/12] drm/bridge: ti-sn65dsi86: Remove extra call: drm_connector_update_edid_property() Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 1:01 ` Laurent Pinchart 2021-04-05 1:01 ` Laurent Pinchart 2021-04-02 22:28 ` [PATCH v3 08/12] drm/bridge: ti-sn65dsi86: Power things properly for reading the EDID Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-02 22:28 ` [PATCH v3 09/12] drm/bridge: ti-sn65dsi86: Fail aux transfers right away if not powered Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-02 22:28 ` [PATCH v3 10/12] drm/bridge: ti-sn65dsi86: Read the EDID only if refclk was provided Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 1:04 ` Laurent Pinchart 2021-04-05 1:04 ` Laurent Pinchart 2021-04-02 22:28 ` [PATCH v3 11/12] drm/bridge: ti-sn65dsi86: Print an error if we fallback to panel modes Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-05 1:04 ` Laurent Pinchart 2021-04-05 1:04 ` Laurent Pinchart 2021-04-02 22:28 ` [PATCH v3 12/12] drm/panel: panel-simple: Use runtime pm to avoid excessive unprepare / prepare Douglas Anderson 2021-04-02 22:28 ` Douglas Anderson 2021-04-15 0:58 ` Laurent Pinchart 2021-04-15 0:58 ` Laurent Pinchart 2021-04-15 1:22 ` Doug Anderson 2021-04-15 1:22 ` Doug Anderson 2021-04-15 1:30 ` Laurent Pinchart 2021-04-15 1:30 ` Laurent Pinchart
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAD=FV=UN38EiYMiwNjysBS6dReKDaf+g2GcgaVt9iF1mTRKg7A@mail.gmail.com' \ --to=dianders@chromium.org \ --cc=a.hajda@samsung.com \ --cc=airlied@linux.ie \ --cc=bjorn.andersson@linaro.org \ --cc=boris.brezillon@collabora.com \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=jernej.skrabec@siol.net \ --cc=jonas@kwiboo.se \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=maarten.lankhorst@linux.intel.com \ --cc=mripard@kernel.org \ --cc=narmstrong@baylibre.com \ --cc=robdclark@chromium.org \ --cc=sam@ravnborg.org \ --cc=stanislav.lisovskiy@intel.com \ --cc=steev@kali.org \ --cc=swboyd@chromium.org \ --cc=tzimmermann@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.