From: Boris Brezillon <boris.brezillon@collabora.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Jitao Shi <jitao.shi@mediatek.com>,
Andrzej Hajda <a.hajda@samsung.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
dri-devel@lists.freedesktop.org,
Mark Rutland <mark.rutland@arm.com>,
Neil Armstrong <narmstrong@baylibre.com>,
Thierry Reding <thierry.reding@gmail.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
kernel@collabora.com,
Nikita Yushchenko <nikita.yoush@cogentembedded.com>,
Andrey Smirnov <andrew.smirnov@gmail.com>,
Kyungmin Park <kyungmin.park@samsung.com>,
Chris Healy <cphealy@gmail.com>,
devicetree@vger.kernel.org, Jonas Karlman <jonas@kwiboo.se>,
Rob Herring <robh+dt@kernel.org>,
Jernej Skrabec <jernej.skrabec@siol.net>,
Seung-Woo Kim <sw0312.kim@samsung.com>
Subject: Re: [PATCH v4 04/11] drm/bridge: Make the bridge chain a double-linked list
Date: Fri, 27 Dec 2019 13:39:38 +0100 [thread overview]
Message-ID: <20191227133938.5cf2550f@collabora.com> (raw)
In-Reply-To: <20191224113111.GB14837@ravnborg.org>
On Tue, 24 Dec 2019 12:31:11 +0100
Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Boris.
>
> > Just a reminder of my 2 proposals:
> >
> > 1/ implement the bridge_ops->pre_enable/post_disable() hooks so you can
> > split your enable/disable logic in 2 parts and make sure things are
> > ready when the panel/next bridge tries to send DSI commands
> > 2/ move everything that's needed to send DSI commands out of the
> > ->enable() path (maybe in runtime PM resume/suspend hooks) so you
> > can call that in the DSI transfer path too
> >
> > As pointed out by Laurent, #1 doesn't work because some panel drivers
> > send DSI commands in their ->prepare() hook, and ->pre_enable() methods
> > are called in reverse order, meaning that the DRM panel bridge driver
> > would try to issue DSI commands before the DSI host controllers is ready
> > to send them. I still thing #2 is a good option.
>
> Jitao Shi suggested to extend panels so we had a sequence of:
>
> prepare_power() <= new callback,
> here one should NOT be allowed to send
> DSI commands
> prepare()
> enable()
>
> #
> # panel is now ready to show your favourite christmas movie
> #
>
> disable()
> unprepare()
> unprepare_power() <= new callback
>
>
> Would this help implement what you suggest above?
> Relevant panels would then have to be updated - but this
> is doable.
I didn't look at Jitao's proposal but it looks like it's addressing a
similar issue on the DSI slave/device side: the device probably needs
to be powered before the host can interact with it through the DSI+DPHY
bus. I'm not entirely sure why we'd need another hook to do that since
we already have the ->prepare() one.
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@collabora.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
Nikita Yushchenko <nikita.yoush@cogentembedded.com>,
devicetree@vger.kernel.org, Jitao Shi <jitao.shi@mediatek.com>,
Rob Herring <robh+dt@kernel.org>,
Neil Armstrong <narmstrong@baylibre.com>,
Andrey Smirnov <andrew.smirnov@gmail.com>,
Jonas Karlman <jonas@kwiboo.se>,
Seung-Woo Kim <sw0312.kim@samsung.com>,
Jernej Skrabec <jernej.skrabec@siol.net>,
dri-devel@lists.freedesktop.org,
Kyungmin Park <kyungmin.park@samsung.com>,
Thierry Reding <thierry.reding@gmail.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
kernel@collabora.com, Chris Healy <cphealy@gmail.com>,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCH v4 04/11] drm/bridge: Make the bridge chain a double-linked list
Date: Fri, 27 Dec 2019 13:39:38 +0100 [thread overview]
Message-ID: <20191227133938.5cf2550f@collabora.com> (raw)
In-Reply-To: <20191224113111.GB14837@ravnborg.org>
On Tue, 24 Dec 2019 12:31:11 +0100
Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Boris.
>
> > Just a reminder of my 2 proposals:
> >
> > 1/ implement the bridge_ops->pre_enable/post_disable() hooks so you can
> > split your enable/disable logic in 2 parts and make sure things are
> > ready when the panel/next bridge tries to send DSI commands
> > 2/ move everything that's needed to send DSI commands out of the
> > ->enable() path (maybe in runtime PM resume/suspend hooks) so you
> > can call that in the DSI transfer path too
> >
> > As pointed out by Laurent, #1 doesn't work because some panel drivers
> > send DSI commands in their ->prepare() hook, and ->pre_enable() methods
> > are called in reverse order, meaning that the DRM panel bridge driver
> > would try to issue DSI commands before the DSI host controllers is ready
> > to send them. I still thing #2 is a good option.
>
> Jitao Shi suggested to extend panels so we had a sequence of:
>
> prepare_power() <= new callback,
> here one should NOT be allowed to send
> DSI commands
> prepare()
> enable()
>
> #
> # panel is now ready to show your favourite christmas movie
> #
>
> disable()
> unprepare()
> unprepare_power() <= new callback
>
>
> Would this help implement what you suggest above?
> Relevant panels would then have to be updated - but this
> is doable.
I didn't look at Jitao's proposal but it looks like it's addressing a
similar issue on the DSI slave/device side: the device probably needs
to be powered before the host can interact with it through the DSI+DPHY
bus. I'm not entirely sure why we'd need another hook to do that since
we already have the ->prepare() one.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-12-27 12:39 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-03 14:15 [PATCH v4 00/11] drm: Add support for bus-format negotiation Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 01/11] drm/bridge: Rename bridge helpers targeting a bridge chain Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 02/11] drm/bridge: Introduce drm_bridge_get_next_bridge() Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 03/11] drm: Stop accessing encoder->bridge directly Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 04/11] drm/bridge: Make the bridge chain a double-linked list Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-16 13:54 ` Marek Szyprowski
2019-12-16 13:54 ` Marek Szyprowski
2019-12-16 14:55 ` Boris Brezillon
2019-12-16 14:55 ` Boris Brezillon
2019-12-16 15:02 ` Marek Szyprowski
2019-12-16 15:02 ` Marek Szyprowski
2019-12-16 15:25 ` Boris Brezillon
2019-12-16 15:25 ` Boris Brezillon
2019-12-23 9:55 ` Marek Szyprowski
2019-12-23 9:55 ` Marek Szyprowski
2019-12-24 9:16 ` Andrzej Hajda
2019-12-24 9:16 ` Andrzej Hajda
2019-12-24 9:44 ` Boris Brezillon
2019-12-24 9:44 ` Boris Brezillon
2019-12-24 9:49 ` Boris Brezillon
2019-12-24 9:49 ` Boris Brezillon
2019-12-24 10:03 ` Boris Brezillon
2019-12-24 10:03 ` Boris Brezillon
2019-12-27 10:25 ` Marek Szyprowski
2019-12-27 10:25 ` Marek Szyprowski
2019-12-27 11:03 ` Marek Szyprowski
2019-12-27 11:03 ` Marek Szyprowski
2019-12-24 11:31 ` Sam Ravnborg
2019-12-24 11:31 ` Sam Ravnborg
2019-12-25 1:36 ` Laurent Pinchart
2019-12-25 1:36 ` Laurent Pinchart
2019-12-27 12:39 ` Boris Brezillon [this message]
2019-12-27 12:39 ` Boris Brezillon
2019-12-27 9:42 ` Andrzej Hajda
2019-12-27 9:42 ` Andrzej Hajda
2019-12-27 10:51 ` Laurent Pinchart
2019-12-27 10:51 ` Laurent Pinchart
2019-12-27 12:21 ` Boris Brezillon
2019-12-27 12:21 ` Boris Brezillon
2020-01-01 17:13 ` Laurent Pinchart
2020-01-01 17:13 ` Laurent Pinchart
2019-12-03 14:15 ` [PATCH v4 05/11] drm/bridge: Add the drm_for_each_bridge_in_chain() helper Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 06/11] drm/bridge: Add the drm_bridge_get_prev_bridge() helper Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 07/11] drm/bridge: Clarify the atomic enable/disable hooks semantics Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 18:02 ` Laurent Pinchart
2019-12-03 18:02 ` Laurent Pinchart
2019-12-04 9:00 ` Boris Brezillon
2019-12-04 9:00 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 08/11] drm/bridge: Add a drm_bridge_state object Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 18:17 ` Laurent Pinchart
2019-12-03 18:17 ` Laurent Pinchart
2019-12-04 9:03 ` Boris Brezillon
2019-12-04 9:03 ` Boris Brezillon
2019-12-04 9:12 ` Laurent Pinchart
2019-12-04 9:12 ` Laurent Pinchart
2019-12-04 9:42 ` Boris Brezillon
2019-12-04 9:42 ` Boris Brezillon
2019-12-04 10:38 ` Laurent Pinchart
2019-12-04 10:38 ` Laurent Pinchart
2019-12-03 14:15 ` [PATCH v4 09/11] drm/bridge: Patch atomic hooks to take a drm_bridge_state Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 10/11] drm/bridge: Add an ->atomic_check() hook Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 14:15 ` [PATCH v4 11/11] drm/bridge: Add the necessary bits to support bus format negotiation Boris Brezillon
2019-12-03 14:15 ` Boris Brezillon
2019-12-03 18:19 ` [PATCH v4 00/11] drm: Add support for bus-format negotiation Laurent Pinchart
2019-12-03 18:19 ` Laurent Pinchart
2019-12-04 9:09 ` Boris Brezillon
2019-12-04 9:09 ` Boris Brezillon
2019-12-04 9:15 ` Laurent Pinchart
2019-12-04 9:15 ` Laurent Pinchart
2019-12-04 13:43 ` Neil Armstrong
2019-12-04 13:43 ` Neil Armstrong
2019-12-09 9:43 ` Boris Brezillon
2019-12-09 9:43 ` Boris Brezillon
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=20191227133938.5cf2550f@collabora.com \
--to=boris.brezillon@collabora.com \
--cc=a.hajda@samsung.com \
--cc=andrew.smirnov@gmail.com \
--cc=cphealy@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jernej.skrabec@siol.net \
--cc=jitao.shi@mediatek.com \
--cc=jonas@kwiboo.se \
--cc=kernel@collabora.com \
--cc=kyungmin.park@samsung.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=m.szyprowski@samsung.com \
--cc=mark.rutland@arm.com \
--cc=narmstrong@baylibre.com \
--cc=nikita.yoush@cogentembedded.com \
--cc=robh+dt@kernel.org \
--cc=sam@ravnborg.org \
--cc=sw0312.kim@samsung.com \
--cc=thierry.reding@gmail.com \
/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: link
Be 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.