From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Algea Cao <algea.cao@rock-chips.com>
Cc: daniel@ffwll.ch, jernej.skrabec@siol.net,
laurent.pinchart+renesas@ideasonboard.com, heiko@sntech.de,
jonas@kwiboo.se, airlied@linux.ie, kuankuan.y@gmail.com,
narmstrong@baylibre.com, maarten.lankhorst@linux.intel.com,
hjc@rock-chips.com, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, a.hajda@samsung.com,
mripard@kernel.org, tzimmermann@suse.de, jbrunet@baylibre.com,
linux-rockchip@lists.infradead.org, darekm@google.com,
sam@ravnborg.org, linux-arm-kernel@lists.infradead.org,
cychiang@chromium.org
Subject: Re: [PATCH 1/6] drm: Add connector atomic_begin/atomic_flush
Date: Wed, 12 Aug 2020 12:26:44 +0300 [thread overview]
Message-ID: <20200812092644.GD6057@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20200812083407.856-1-algea.cao@rock-chips.com>
Hi Algea,
Thank you for the patch.
On Wed, Aug 12, 2020 at 04:34:07PM +0800, Algea Cao wrote:
> In some situations, connector should get some work done
> when plane is updating. Such as when change output color
> format, hdmi should send AVMUTE to make screen black before
> crtc updating color format, or screen may flash. After color
> updating, hdmi should clear AVMUTE bring screen back to normal.
>
> The process is as follows:
> AVMUTE -> Update CRTC -> Update HDMI -> Clear AVMUTE
>
> So we introduce connector atomic_begin/atomic_flush.
Implementing this through .atomic_begin() and .atomic_flush() seems like
a pretty big hack to me. Furthermore, I think this should be implemented
as bridge operations, not at the connector level, as the HDMI encoder
may not be the component that implements the drm_connector.
> Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
>
> ---
>
> drivers/gpu/drm/drm_atomic_helper.c | 46 ++++++++++++++++++++++++
> include/drm/drm_modeset_helper_vtables.h | 19 ++++++++++
> 2 files changed, 65 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index f68c69a45752..f4abd700d2c4 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2471,6 +2471,8 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> struct drm_atomic_state *old_state,
> uint32_t flags)
> {
> + struct drm_connector *connector;
> + struct drm_connector_state *old_connector_state, *new_connector_state;
> struct drm_crtc *crtc;
> struct drm_crtc_state *old_crtc_state, *new_crtc_state;
> struct drm_plane *plane;
> @@ -2479,6 +2481,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> bool active_only = flags & DRM_PLANE_COMMIT_ACTIVE_ONLY;
> bool no_disable = flags & DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET;
>
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_begin)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flush beginning [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_begin(connector, old_connector_state);
> + }
> +
> for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
> const struct drm_crtc_helper_funcs *funcs;
>
> @@ -2550,6 +2574,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
>
> funcs->atomic_flush(crtc, old_crtc_state);
> }
> +
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_flush)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flushing [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_flush(connector, old_connector_state);
> + }
> }
> EXPORT_SYMBOL(drm_atomic_helper_commit_planes);
>
> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> index 421a30f08463..10f3f2e2fe28 100644
> --- a/include/drm/drm_modeset_helper_vtables.h
> +++ b/include/drm/drm_modeset_helper_vtables.h
> @@ -1075,6 +1075,25 @@ struct drm_connector_helper_funcs {
> void (*atomic_commit)(struct drm_connector *connector,
> struct drm_connector_state *state);
>
> + /**
> + * @atomic_begin:
> + *
> + * flush atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_begin)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> +
> + /**
> + * @atomic_begin:
> + *
> + * begin atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_flush)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> /**
> * @prepare_writeback_job:
> *
--
Regards,
Laurent Pinchart
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Algea Cao <algea.cao@rock-chips.com>
Cc: daniel@ffwll.ch, jernej.skrabec@siol.net,
laurent.pinchart+renesas@ideasonboard.com, heiko@sntech.de,
jonas@kwiboo.se, airlied@linux.ie, kuankuan.y@gmail.com,
narmstrong@baylibre.com, maarten.lankhorst@linux.intel.com,
hjc@rock-chips.com, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, a.hajda@samsung.com,
mripard@kernel.org, tzimmermann@suse.de, jbrunet@baylibre.com,
linux-rockchip@lists.infradead.org, darekm@google.com,
sam@ravnborg.org, linux-arm-kernel@lists.infradead.org,
cychiang@chromium.org
Subject: Re: [PATCH 1/6] drm: Add connector atomic_begin/atomic_flush
Date: Wed, 12 Aug 2020 12:26:44 +0300 [thread overview]
Message-ID: <20200812092644.GD6057@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20200812083407.856-1-algea.cao@rock-chips.com>
Hi Algea,
Thank you for the patch.
On Wed, Aug 12, 2020 at 04:34:07PM +0800, Algea Cao wrote:
> In some situations, connector should get some work done
> when plane is updating. Such as when change output color
> format, hdmi should send AVMUTE to make screen black before
> crtc updating color format, or screen may flash. After color
> updating, hdmi should clear AVMUTE bring screen back to normal.
>
> The process is as follows:
> AVMUTE -> Update CRTC -> Update HDMI -> Clear AVMUTE
>
> So we introduce connector atomic_begin/atomic_flush.
Implementing this through .atomic_begin() and .atomic_flush() seems like
a pretty big hack to me. Furthermore, I think this should be implemented
as bridge operations, not at the connector level, as the HDMI encoder
may not be the component that implements the drm_connector.
> Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
>
> ---
>
> drivers/gpu/drm/drm_atomic_helper.c | 46 ++++++++++++++++++++++++
> include/drm/drm_modeset_helper_vtables.h | 19 ++++++++++
> 2 files changed, 65 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index f68c69a45752..f4abd700d2c4 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2471,6 +2471,8 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> struct drm_atomic_state *old_state,
> uint32_t flags)
> {
> + struct drm_connector *connector;
> + struct drm_connector_state *old_connector_state, *new_connector_state;
> struct drm_crtc *crtc;
> struct drm_crtc_state *old_crtc_state, *new_crtc_state;
> struct drm_plane *plane;
> @@ -2479,6 +2481,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> bool active_only = flags & DRM_PLANE_COMMIT_ACTIVE_ONLY;
> bool no_disable = flags & DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET;
>
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_begin)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flush beginning [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_begin(connector, old_connector_state);
> + }
> +
> for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
> const struct drm_crtc_helper_funcs *funcs;
>
> @@ -2550,6 +2574,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
>
> funcs->atomic_flush(crtc, old_crtc_state);
> }
> +
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_flush)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flushing [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_flush(connector, old_connector_state);
> + }
> }
> EXPORT_SYMBOL(drm_atomic_helper_commit_planes);
>
> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> index 421a30f08463..10f3f2e2fe28 100644
> --- a/include/drm/drm_modeset_helper_vtables.h
> +++ b/include/drm/drm_modeset_helper_vtables.h
> @@ -1075,6 +1075,25 @@ struct drm_connector_helper_funcs {
> void (*atomic_commit)(struct drm_connector *connector,
> struct drm_connector_state *state);
>
> + /**
> + * @atomic_begin:
> + *
> + * flush atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_begin)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> +
> + /**
> + * @atomic_begin:
> + *
> + * begin atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_flush)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> /**
> * @prepare_writeback_job:
> *
--
Regards,
Laurent Pinchart
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Algea Cao <algea.cao@rock-chips.com>
Cc: jernej.skrabec@siol.net,
laurent.pinchart+renesas@ideasonboard.com, jonas@kwiboo.se,
airlied@linux.ie, kuankuan.y@gmail.com, narmstrong@baylibre.com,
hjc@rock-chips.com, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, a.hajda@samsung.com,
tzimmermann@suse.de, jbrunet@baylibre.com,
linux-rockchip@lists.infradead.org, darekm@google.com,
sam@ravnborg.org, linux-arm-kernel@lists.infradead.org,
cychiang@chromium.org
Subject: Re: [PATCH 1/6] drm: Add connector atomic_begin/atomic_flush
Date: Wed, 12 Aug 2020 12:26:44 +0300 [thread overview]
Message-ID: <20200812092644.GD6057@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20200812083407.856-1-algea.cao@rock-chips.com>
Hi Algea,
Thank you for the patch.
On Wed, Aug 12, 2020 at 04:34:07PM +0800, Algea Cao wrote:
> In some situations, connector should get some work done
> when plane is updating. Such as when change output color
> format, hdmi should send AVMUTE to make screen black before
> crtc updating color format, or screen may flash. After color
> updating, hdmi should clear AVMUTE bring screen back to normal.
>
> The process is as follows:
> AVMUTE -> Update CRTC -> Update HDMI -> Clear AVMUTE
>
> So we introduce connector atomic_begin/atomic_flush.
Implementing this through .atomic_begin() and .atomic_flush() seems like
a pretty big hack to me. Furthermore, I think this should be implemented
as bridge operations, not at the connector level, as the HDMI encoder
may not be the component that implements the drm_connector.
> Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
>
> ---
>
> drivers/gpu/drm/drm_atomic_helper.c | 46 ++++++++++++++++++++++++
> include/drm/drm_modeset_helper_vtables.h | 19 ++++++++++
> 2 files changed, 65 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index f68c69a45752..f4abd700d2c4 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2471,6 +2471,8 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> struct drm_atomic_state *old_state,
> uint32_t flags)
> {
> + struct drm_connector *connector;
> + struct drm_connector_state *old_connector_state, *new_connector_state;
> struct drm_crtc *crtc;
> struct drm_crtc_state *old_crtc_state, *new_crtc_state;
> struct drm_plane *plane;
> @@ -2479,6 +2481,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> bool active_only = flags & DRM_PLANE_COMMIT_ACTIVE_ONLY;
> bool no_disable = flags & DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET;
>
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_begin)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flush beginning [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_begin(connector, old_connector_state);
> + }
> +
> for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
> const struct drm_crtc_helper_funcs *funcs;
>
> @@ -2550,6 +2574,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
>
> funcs->atomic_flush(crtc, old_crtc_state);
> }
> +
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_flush)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flushing [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_flush(connector, old_connector_state);
> + }
> }
> EXPORT_SYMBOL(drm_atomic_helper_commit_planes);
>
> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> index 421a30f08463..10f3f2e2fe28 100644
> --- a/include/drm/drm_modeset_helper_vtables.h
> +++ b/include/drm/drm_modeset_helper_vtables.h
> @@ -1075,6 +1075,25 @@ struct drm_connector_helper_funcs {
> void (*atomic_commit)(struct drm_connector *connector,
> struct drm_connector_state *state);
>
> + /**
> + * @atomic_begin:
> + *
> + * flush atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_begin)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> +
> + /**
> + * @atomic_begin:
> + *
> + * begin atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_flush)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> /**
> * @prepare_writeback_job:
> *
--
Regards,
Laurent Pinchart
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Algea Cao <algea.cao@rock-chips.com>
Cc: a.hajda@samsung.com, kuankuan.y@gmail.com, hjc@rock-chips.com,
tzimmermann@suse.de, dri-devel@lists.freedesktop.org,
sam@ravnborg.org, airlied@linux.ie, heiko@sntech.de,
jernej.skrabec@siol.net,
laurent.pinchart+renesas@ideasonboard.com, jonas@kwiboo.se,
mripard@kernel.org, darekm@google.com,
linux-rockchip@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, cychiang@chromium.org,
linux-kernel@vger.kernel.org, narmstrong@baylibre.com,
jbrunet@baylibre.com, maarten.lankhorst@linux.intel.com,
daniel@ffwll.ch
Subject: Re: [PATCH 1/6] drm: Add connector atomic_begin/atomic_flush
Date: Wed, 12 Aug 2020 12:26:44 +0300 [thread overview]
Message-ID: <20200812092644.GD6057@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20200812083407.856-1-algea.cao@rock-chips.com>
Hi Algea,
Thank you for the patch.
On Wed, Aug 12, 2020 at 04:34:07PM +0800, Algea Cao wrote:
> In some situations, connector should get some work done
> when plane is updating. Such as when change output color
> format, hdmi should send AVMUTE to make screen black before
> crtc updating color format, or screen may flash. After color
> updating, hdmi should clear AVMUTE bring screen back to normal.
>
> The process is as follows:
> AVMUTE -> Update CRTC -> Update HDMI -> Clear AVMUTE
>
> So we introduce connector atomic_begin/atomic_flush.
Implementing this through .atomic_begin() and .atomic_flush() seems like
a pretty big hack to me. Furthermore, I think this should be implemented
as bridge operations, not at the connector level, as the HDMI encoder
may not be the component that implements the drm_connector.
> Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
>
> ---
>
> drivers/gpu/drm/drm_atomic_helper.c | 46 ++++++++++++++++++++++++
> include/drm/drm_modeset_helper_vtables.h | 19 ++++++++++
> 2 files changed, 65 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index f68c69a45752..f4abd700d2c4 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2471,6 +2471,8 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> struct drm_atomic_state *old_state,
> uint32_t flags)
> {
> + struct drm_connector *connector;
> + struct drm_connector_state *old_connector_state, *new_connector_state;
> struct drm_crtc *crtc;
> struct drm_crtc_state *old_crtc_state, *new_crtc_state;
> struct drm_plane *plane;
> @@ -2479,6 +2481,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
> bool active_only = flags & DRM_PLANE_COMMIT_ACTIVE_ONLY;
> bool no_disable = flags & DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET;
>
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_begin)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flush beginning [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_begin(connector, old_connector_state);
> + }
> +
> for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
> const struct drm_crtc_helper_funcs *funcs;
>
> @@ -2550,6 +2574,28 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
>
> funcs->atomic_flush(crtc, old_crtc_state);
> }
> +
> + for_each_oldnew_connector_in_state(old_state, connector,
> + old_connector_state,
> + new_connector_state, i) {
> + const struct drm_connector_helper_funcs *funcs;
> +
> + if (!connector->state->crtc)
> + continue;
> +
> + if (!connector->state->crtc->state->active)
> + continue;
> +
> + funcs = connector->helper_private;
> +
> + if (!funcs || !funcs->atomic_flush)
> + continue;
> +
> + DRM_DEBUG_ATOMIC("flushing [CONNECTOR:%d:%s]\n",
> + connector->base.id, connector->name);
> +
> + funcs->atomic_flush(connector, old_connector_state);
> + }
> }
> EXPORT_SYMBOL(drm_atomic_helper_commit_planes);
>
> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> index 421a30f08463..10f3f2e2fe28 100644
> --- a/include/drm/drm_modeset_helper_vtables.h
> +++ b/include/drm/drm_modeset_helper_vtables.h
> @@ -1075,6 +1075,25 @@ struct drm_connector_helper_funcs {
> void (*atomic_commit)(struct drm_connector *connector,
> struct drm_connector_state *state);
>
> + /**
> + * @atomic_begin:
> + *
> + * flush atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_begin)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> +
> + /**
> + * @atomic_begin:
> + *
> + * begin atomic update
> + *
> + * This callback is used by the atomic modeset helpers but it is optional.
> + */
> + void (*atomic_flush)(struct drm_connector *connector,
> + struct drm_connector_state *state);
> /**
> * @prepare_writeback_job:
> *
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2020-08-12 9:27 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-12 8:31 [PATCH 0/6] Support change dw-hdmi output color Algea Cao
2020-08-12 8:31 ` Algea Cao
2020-08-12 8:31 ` Algea Cao
2020-08-12 8:31 ` Algea Cao
2020-08-12 8:34 ` [PATCH 1/6] drm: Add connector atomic_begin/atomic_flush Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 9:26 ` Laurent Pinchart [this message]
2020-08-12 9:26 ` Laurent Pinchart
2020-08-12 9:26 ` Laurent Pinchart
2020-08-12 9:26 ` Laurent Pinchart
2020-08-12 10:16 ` kernel test robot
2020-08-12 10:16 ` kernel test robot
2020-08-12 8:34 ` [PATCH 2/6] drm: bridge: dw-hdmi: Implement " Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 9:22 ` Laurent Pinchart
2020-08-12 9:22 ` Laurent Pinchart
2020-08-12 9:22 ` Laurent Pinchart
2020-08-12 9:22 ` Laurent Pinchart
2020-08-12 8:34 ` [PATCH 3/6] drm: bridge: dw-hdmi: Introduce previous_pixelclock/previous_tmdsclock Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-12 8:34 ` Algea Cao
2020-08-24 9:53 ` Neil Armstrong
2020-08-24 9:53 ` Neil Armstrong
2020-08-24 9:53 ` Neil Armstrong
2020-08-24 9:53 ` Neil Armstrong
2020-08-12 8:35 ` [PATCH 4/6] drm/rockchip: dw_hdmi: Add vendor hdmi properties Algea Cao
2020-08-12 8:35 ` Algea Cao
2020-08-12 8:35 ` Algea Cao
2020-08-12 8:35 ` Algea Cao
2020-08-12 9:33 ` Laurent Pinchart
2020-08-12 9:33 ` Laurent Pinchart
2020-08-12 9:33 ` Laurent Pinchart
2020-08-12 9:33 ` Laurent Pinchart
2020-08-12 11:08 ` crj
2020-08-12 13:30 ` Laurent Pinchart
2020-08-12 13:30 ` Laurent Pinchart
2020-08-12 13:30 ` Laurent Pinchart
2020-08-12 13:30 ` Laurent Pinchart
2020-08-13 7:42 ` Pekka Paalanen
2020-08-13 7:42 ` Pekka Paalanen
2020-08-13 7:42 ` Pekka Paalanen
2020-08-13 7:42 ` Pekka Paalanen
2020-08-13 10:45 ` Laurent Pinchart
2020-08-13 10:45 ` Laurent Pinchart
2020-08-13 10:45 ` Laurent Pinchart
2020-08-13 10:45 ` Laurent Pinchart
2020-08-14 8:23 ` Pekka Paalanen
2020-08-14 8:23 ` Pekka Paalanen
2020-08-14 8:23 ` Pekka Paalanen
2020-08-14 8:23 ` Pekka Paalanen
2020-08-12 8:36 ` [PATCH 5/6] drm/rockchip: dw_hdmi: Add get_output_bus_format Algea Cao
2020-08-12 8:36 ` Algea Cao
2020-08-12 8:36 ` Algea Cao
2020-08-12 8:36 ` Algea Cao
2020-08-12 8:36 ` [PATCH 6/6] drm: bridge: dw-hdmi: Get output bus format when dw-hdmi is the only bridge Algea Cao
2020-08-12 8:36 ` Algea Cao
2020-08-12 8:36 ` Algea Cao
2020-08-12 8:36 ` Algea Cao
2020-08-24 9:50 ` Neil Armstrong
2020-08-24 9:50 ` Neil Armstrong
2020-08-24 9:50 ` Neil Armstrong
2020-08-24 9:50 ` Neil Armstrong
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=20200812092644.GD6057@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=a.hajda@samsung.com \
--cc=airlied@linux.ie \
--cc=algea.cao@rock-chips.com \
--cc=cychiang@chromium.org \
--cc=daniel@ffwll.ch \
--cc=darekm@google.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=jbrunet@baylibre.com \
--cc=jernej.skrabec@siol.net \
--cc=jonas@kwiboo.se \
--cc=kuankuan.y@gmail.com \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=narmstrong@baylibre.com \
--cc=sam@ravnborg.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: 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.