From: Boris Brezillon <boris.brezillon@collabora.com> To: dri-devel@lists.freedesktop.org Cc: Lucas Stach <l.stach@pengutronix.de>, Chris Healy <cphealy@gmail.com>, Andrey Smirnov <andrew.smirnov@gmail.com>, Nikita Yushchenko <nikita.yoush@cogentembedded.com>, kernel@collabora.com, Daniel Vetter <daniel@ffwll.ch>, Inki Dae <inki.dae@samsung.com>, Joonyoung Shim <jy0922.shim@samsung.com>, Seung-Woo Kim <sw0312.kim@samsung.com>, Kyungmin Park <kyungmin.park@samsung.com>, Thierry Reding <thierry.reding@gmail.com>, Sam Ravnborg <sam@ravnborg.org>, Philipp Zabel <p.zabel@pengutronix.de>, Rob Clark <robdclark@gmail.com>, Andrzej Hajda <a.hajda@samsung.com>, Neil Armstrong <narmstrong@baylibre.com>, Laurent Pinchart <Laurent.pinchart@ideasonboard.com>, Jonas Karlman <jonas@kwiboo.se>, Jernej Skrabec <jernej.skrabec@siol.net>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org, Eric Anholt <eric@anholt.net>, Boris Brezillon <boris.brezillon@collabora.com> Subject: [PATCH v4 00/11] drm: Add support for bus-format negotiation Date: Tue, 3 Dec 2019 15:15:04 +0100 [thread overview] Message-ID: <20191203141515.3597631-1-boris.brezillon@collabora.com> (raw) This patch series aims at adding support for runtime bus-format negotiation between all elements of the 'encoder -> bridges -> connector/display' section of the pipeline. In order to support that, we need drm bridges to fully take part in the atomic state validation process, which requires adding a drm_bridge_state and a new drm_bridge_funcs.atomic_check() hook. Once those basic building blocks are in place, we can add new hooks to allow bus format negotiation (those are called just before ->atomic_check()). The bus format selection is done at runtime by testing all possible combinations across the whole bridge chain until one is reported to work. No Major changes in this v4. I think I addressed all comments I got from Neil and Laurent (thanks for the detailed reviews BTW). Note that this version only contains core changes. Once those changes are merged I'll send the imx/panel/lvds-codec specific bits. A more detailed changelog is provided in each patch. This patch series is also available here [1]. Thanks, Boris [1]https://github.com/bbrezillon/linux-0day/commits/drm-bridge-busfmt-v4 Boris Brezillon (11): drm/bridge: Rename bridge helpers targeting a bridge chain drm/bridge: Introduce drm_bridge_get_next_bridge() drm: Stop accessing encoder->bridge directly drm/bridge: Make the bridge chain a double-linked list drm/bridge: Add the drm_for_each_bridge_in_chain() helper drm/bridge: Add the drm_bridge_get_prev_bridge() helper drm/bridge: Clarify the atomic enable/disable hooks semantics drm/bridge: Add a drm_bridge_state object drm/bridge: Patch atomic hooks to take a drm_bridge_state drm/bridge: Add an ->atomic_check() hook drm/bridge: Add the necessary bits to support bus format negotiation .../drm/bridge/analogix/analogix_dp_core.c | 41 +- drivers/gpu/drm/drm_atomic.c | 39 + drivers/gpu/drm/drm_atomic_helper.c | 53 +- drivers/gpu/drm/drm_bridge.c | 756 +++++++++++++++--- drivers/gpu/drm/drm_encoder.c | 15 +- drivers/gpu/drm/drm_probe_helper.c | 4 +- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 13 +- drivers/gpu/drm/mediatek/mtk_hdmi.c | 8 +- drivers/gpu/drm/msm/edp/edp_bridge.c | 10 +- drivers/gpu/drm/omapdrm/omap_drv.c | 4 +- drivers/gpu/drm/omapdrm/omap_encoder.c | 3 +- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 10 +- drivers/gpu/drm/vc4/vc4_dsi.c | 18 +- include/drm/drm_atomic.h | 3 + include/drm/drm_bridge.h | 404 +++++++++- include/drm/drm_encoder.h | 7 +- 16 files changed, 1174 insertions(+), 214 deletions(-) -- 2.23.0
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@collabora.com> To: dri-devel@lists.freedesktop.org Cc: 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, Sam Ravnborg <sam@ravnborg.org>, 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>, Boris Brezillon <boris.brezillon@collabora.com> Subject: [PATCH v4 00/11] drm: Add support for bus-format negotiation Date: Tue, 3 Dec 2019 15:15:04 +0100 [thread overview] Message-ID: <20191203141515.3597631-1-boris.brezillon@collabora.com> (raw) This patch series aims at adding support for runtime bus-format negotiation between all elements of the 'encoder -> bridges -> connector/display' section of the pipeline. In order to support that, we need drm bridges to fully take part in the atomic state validation process, which requires adding a drm_bridge_state and a new drm_bridge_funcs.atomic_check() hook. Once those basic building blocks are in place, we can add new hooks to allow bus format negotiation (those are called just before ->atomic_check()). The bus format selection is done at runtime by testing all possible combinations across the whole bridge chain until one is reported to work. No Major changes in this v4. I think I addressed all comments I got from Neil and Laurent (thanks for the detailed reviews BTW). Note that this version only contains core changes. Once those changes are merged I'll send the imx/panel/lvds-codec specific bits. A more detailed changelog is provided in each patch. This patch series is also available here [1]. Thanks, Boris [1]https://github.com/bbrezillon/linux-0day/commits/drm-bridge-busfmt-v4 Boris Brezillon (11): drm/bridge: Rename bridge helpers targeting a bridge chain drm/bridge: Introduce drm_bridge_get_next_bridge() drm: Stop accessing encoder->bridge directly drm/bridge: Make the bridge chain a double-linked list drm/bridge: Add the drm_for_each_bridge_in_chain() helper drm/bridge: Add the drm_bridge_get_prev_bridge() helper drm/bridge: Clarify the atomic enable/disable hooks semantics drm/bridge: Add a drm_bridge_state object drm/bridge: Patch atomic hooks to take a drm_bridge_state drm/bridge: Add an ->atomic_check() hook drm/bridge: Add the necessary bits to support bus format negotiation .../drm/bridge/analogix/analogix_dp_core.c | 41 +- drivers/gpu/drm/drm_atomic.c | 39 + drivers/gpu/drm/drm_atomic_helper.c | 53 +- drivers/gpu/drm/drm_bridge.c | 756 +++++++++++++++--- drivers/gpu/drm/drm_encoder.c | 15 +- drivers/gpu/drm/drm_probe_helper.c | 4 +- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 13 +- drivers/gpu/drm/mediatek/mtk_hdmi.c | 8 +- drivers/gpu/drm/msm/edp/edp_bridge.c | 10 +- drivers/gpu/drm/omapdrm/omap_drv.c | 4 +- drivers/gpu/drm/omapdrm/omap_encoder.c | 3 +- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 10 +- drivers/gpu/drm/vc4/vc4_dsi.c | 18 +- include/drm/drm_atomic.h | 3 + include/drm/drm_bridge.h | 404 +++++++++- include/drm/drm_encoder.h | 7 +- 16 files changed, 1174 insertions(+), 214 deletions(-) -- 2.23.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2019-12-03 14:15 UTC|newest] Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-03 14:15 Boris Brezillon [this message] 2019-12-03 14:15 ` [PATCH v4 00/11] drm: Add support for bus-format negotiation 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 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=20191203141515.3597631-1-boris.brezillon@collabora.com \ --to=boris.brezillon@collabora.com \ --cc=Laurent.pinchart@ideasonboard.com \ --cc=a.hajda@samsung.com \ --cc=andrew.smirnov@gmail.com \ --cc=cphealy@gmail.com \ --cc=daniel@ffwll.ch \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=eric@anholt.net \ --cc=inki.dae@samsung.com \ --cc=jernej.skrabec@siol.net \ --cc=jonas@kwiboo.se \ --cc=jy0922.shim@samsung.com \ --cc=kernel@collabora.com \ --cc=kyungmin.park@samsung.com \ --cc=l.stach@pengutronix.de \ --cc=mark.rutland@arm.com \ --cc=narmstrong@baylibre.com \ --cc=nikita.yoush@cogentembedded.com \ --cc=p.zabel@pengutronix.de \ --cc=robdclark@gmail.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: 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.