From: Pekka Paalanen <ppaalanen@gmail.com>
To: Maxime Ripard <mripard@kernel.org>
Cc: "Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Emma Anholt" <emma@anholt.net>,
"Jonathan Corbet" <corbet@lwn.net>,
"Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>, "Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
"Hans Verkuil" <hverkuil@xs4all.nl>,
dri-devel@lists.freedesktop.org,
linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev
Subject: Re: [PATCH RFC v2 05/37] drm/connector: hdmi: Add output BPC to the connector state
Date: Thu, 21 Sep 2023 11:48:45 +0300 [thread overview]
Message-ID: <20230921114845.7edb1d37@eldfell> (raw)
In-Reply-To: <20230920-kms-hdmi-connector-state-v2-5-17932daddd7d@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 6038 bytes --]
On Wed, 20 Sep 2023 16:35:20 +0200
Maxime Ripard <mripard@kernel.org> wrote:
> We'll add automatic selection of the output BPC in a following patch,
> but let's add it to the HDMI connector state already.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> drivers/gpu/drm/drm_atomic.c | 4 +++-
> drivers/gpu/drm/drm_atomic_state_helper.c | 6 +++++-
> drivers/gpu/drm/drm_connector.c | 13 ++++++++++++-
> include/drm/drm_connector.h | 13 ++++++++++++-
> 4 files changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index b1b56dcaa76b..8dce0a2f2ac3 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1143,9 +1143,11 @@ static void drm_atomic_connector_print_state(struct drm_printer *p,
> drm_printf(p, "\tcolorspace=%s\n", drm_get_colorspace_name(state->colorspace));
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
> - connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)
> + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) {
> drm_printf(p, "\tbroadcast_rgb=%s\n",
> drm_hdmi_connector_get_broadcast_rgb_name(state->hdmi.broadcast_rgb));
> + drm_printf(p, "\toutput_bpc=%u\n", state->hdmi.output_bpc);
> + }
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
> if (state->writeback_job && state->writeback_job->fb)
> diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
> index 0f7e5ba555b8..2c9b52ae1b56 100644
> --- a/drivers/gpu/drm/drm_atomic_state_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_state_helper.c
> @@ -569,6 +569,9 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
> void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector,
> struct drm_connector_state *new_state)
> {
> + new_state->max_bpc = 8;
> + new_state->max_requested_bpc = 8;
> + new_state->hdmi.output_bpc = 8;
Hi,
will this be forcing all drivers using these helpers to default to max bpc = 8?
I believe at least amdgpu would disagree. The defaults were changed in
the recent years, IIRC to avoid extra modesets during boot-up when
desktops prefer highest possible bpc for a mode.
The 'max bpc' property itself is a manual workaround for faulty
hardware that does not correctly indicate the max bpc it can handle. It
should not default to be a limiting factor.
> new_state->hdmi.broadcast_rgb = DRM_HDMI_BROADCAST_RGB_AUTO;
> }
> EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset);
> @@ -651,7 +654,8 @@ int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector,
> struct drm_connector_state *new_state =
> drm_atomic_get_new_connector_state(state, connector);
>
> - if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb) {
> + if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb ||
> + old_state->hdmi.output_bpc != new_state->hdmi.output_bpc) {
> struct drm_crtc *crtc = new_state->crtc;
> struct drm_crtc_state *crtc_state;
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b45471d540ac..f55f5918411c 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -459,6 +459,7 @@ EXPORT_SYMBOL(drmm_connector_init);
> * @funcs: callbacks for this connector
> * @connector_type: user visible type of the connector
> * @ddc: optional pointer to the associated ddc adapter
> + * @max_bpc: Maximum bits per char the HDMI connector supports
> *
> * Initialises a preallocated HDMI connector. Connectors can be
> * subclassed as part of driver connector objects.
> @@ -475,7 +476,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc)
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc)
> {
> int ret;
>
> @@ -487,6 +489,15 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> if (ret)
> return ret;
>
> + if (max_bpc) {
> + if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12))
> + return -EINVAL;
> +
> + drm_connector_attach_hdr_output_metadata_property(connector);
> + drm_connector_attach_max_bpc_property(connector, 8, max_bpc);
> + connector->max_bpc = max_bpc;
> + }
> +
> return 0;
> }
> EXPORT_SYMBOL(drmm_connector_hdmi_init);
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index fdcf64ab91a9..d0bcb835c857 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1056,6 +1056,11 @@ struct drm_connector_state {
> * Broadcast RGB selection value.
> */
> enum drm_hdmi_broadcast_rgb broadcast_rgb;
> +
> + /**
> + * @output_bpc: Bits per character to output.
Is it not bits per channel?
> + */
> + unsigned int output_bpc;
> } hdmi;
> };
>
> @@ -1700,6 +1705,11 @@ struct drm_connector {
> */
> struct drm_property_blob *path_blob_ptr;
>
> + /**
> + * @max_bpc: Maximum bits per character the connector supports.
channel?
> + */
> + unsigned int max_bpc;
> +
> /**
> * @max_bpc_property: Default connector property for the max bpc to be
> * driven out of the connector.
> @@ -1939,7 +1949,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc);
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc);
> void drm_connector_attach_edid_property(struct drm_connector *connector);
> int drm_connector_register(struct drm_connector *connector);
> void drm_connector_unregister(struct drm_connector *connector);
>
Thanks,
pq
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Pekka Paalanen <ppaalanen@gmail.com>
To: Maxime Ripard <mripard@kernel.org>
Cc: "Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Emma Anholt" <emma@anholt.net>,
"Jonathan Corbet" <corbet@lwn.net>,
"Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>, "Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
"Hans Verkuil" <hverkuil@xs4all.nl>,
dri-devel@lists.freedesktop.org,
linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev
Subject: Re: [PATCH RFC v2 05/37] drm/connector: hdmi: Add output BPC to the connector state
Date: Thu, 21 Sep 2023 11:48:45 +0300 [thread overview]
Message-ID: <20230921114845.7edb1d37@eldfell> (raw)
In-Reply-To: <20230920-kms-hdmi-connector-state-v2-5-17932daddd7d@kernel.org>
[-- Attachment #1.1: Type: text/plain, Size: 6038 bytes --]
On Wed, 20 Sep 2023 16:35:20 +0200
Maxime Ripard <mripard@kernel.org> wrote:
> We'll add automatic selection of the output BPC in a following patch,
> but let's add it to the HDMI connector state already.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> drivers/gpu/drm/drm_atomic.c | 4 +++-
> drivers/gpu/drm/drm_atomic_state_helper.c | 6 +++++-
> drivers/gpu/drm/drm_connector.c | 13 ++++++++++++-
> include/drm/drm_connector.h | 13 ++++++++++++-
> 4 files changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index b1b56dcaa76b..8dce0a2f2ac3 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1143,9 +1143,11 @@ static void drm_atomic_connector_print_state(struct drm_printer *p,
> drm_printf(p, "\tcolorspace=%s\n", drm_get_colorspace_name(state->colorspace));
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
> - connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)
> + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) {
> drm_printf(p, "\tbroadcast_rgb=%s\n",
> drm_hdmi_connector_get_broadcast_rgb_name(state->hdmi.broadcast_rgb));
> + drm_printf(p, "\toutput_bpc=%u\n", state->hdmi.output_bpc);
> + }
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
> if (state->writeback_job && state->writeback_job->fb)
> diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
> index 0f7e5ba555b8..2c9b52ae1b56 100644
> --- a/drivers/gpu/drm/drm_atomic_state_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_state_helper.c
> @@ -569,6 +569,9 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
> void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector,
> struct drm_connector_state *new_state)
> {
> + new_state->max_bpc = 8;
> + new_state->max_requested_bpc = 8;
> + new_state->hdmi.output_bpc = 8;
Hi,
will this be forcing all drivers using these helpers to default to max bpc = 8?
I believe at least amdgpu would disagree. The defaults were changed in
the recent years, IIRC to avoid extra modesets during boot-up when
desktops prefer highest possible bpc for a mode.
The 'max bpc' property itself is a manual workaround for faulty
hardware that does not correctly indicate the max bpc it can handle. It
should not default to be a limiting factor.
> new_state->hdmi.broadcast_rgb = DRM_HDMI_BROADCAST_RGB_AUTO;
> }
> EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset);
> @@ -651,7 +654,8 @@ int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector,
> struct drm_connector_state *new_state =
> drm_atomic_get_new_connector_state(state, connector);
>
> - if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb) {
> + if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb ||
> + old_state->hdmi.output_bpc != new_state->hdmi.output_bpc) {
> struct drm_crtc *crtc = new_state->crtc;
> struct drm_crtc_state *crtc_state;
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b45471d540ac..f55f5918411c 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -459,6 +459,7 @@ EXPORT_SYMBOL(drmm_connector_init);
> * @funcs: callbacks for this connector
> * @connector_type: user visible type of the connector
> * @ddc: optional pointer to the associated ddc adapter
> + * @max_bpc: Maximum bits per char the HDMI connector supports
> *
> * Initialises a preallocated HDMI connector. Connectors can be
> * subclassed as part of driver connector objects.
> @@ -475,7 +476,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc)
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc)
> {
> int ret;
>
> @@ -487,6 +489,15 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> if (ret)
> return ret;
>
> + if (max_bpc) {
> + if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12))
> + return -EINVAL;
> +
> + drm_connector_attach_hdr_output_metadata_property(connector);
> + drm_connector_attach_max_bpc_property(connector, 8, max_bpc);
> + connector->max_bpc = max_bpc;
> + }
> +
> return 0;
> }
> EXPORT_SYMBOL(drmm_connector_hdmi_init);
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index fdcf64ab91a9..d0bcb835c857 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1056,6 +1056,11 @@ struct drm_connector_state {
> * Broadcast RGB selection value.
> */
> enum drm_hdmi_broadcast_rgb broadcast_rgb;
> +
> + /**
> + * @output_bpc: Bits per character to output.
Is it not bits per channel?
> + */
> + unsigned int output_bpc;
> } hdmi;
> };
>
> @@ -1700,6 +1705,11 @@ struct drm_connector {
> */
> struct drm_property_blob *path_blob_ptr;
>
> + /**
> + * @max_bpc: Maximum bits per character the connector supports.
channel?
> + */
> + unsigned int max_bpc;
> +
> /**
> * @max_bpc_property: Default connector property for the max bpc to be
> * driven out of the connector.
> @@ -1939,7 +1949,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc);
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc);
> void drm_connector_attach_edid_property(struct drm_connector *connector);
> int drm_connector_register(struct drm_connector *connector);
> void drm_connector_unregister(struct drm_connector *connector);
>
Thanks,
pq
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 170 bytes --]
_______________________________________________
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: Pekka Paalanen <ppaalanen@gmail.com>
To: Maxime Ripard <mripard@kernel.org>
Cc: "Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Emma Anholt" <emma@anholt.net>,
"Jonathan Corbet" <corbet@lwn.net>,
"Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>, "Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
"Hans Verkuil" <hverkuil@xs4all.nl>,
dri-devel@lists.freedesktop.org,
linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev
Subject: Re: [PATCH RFC v2 05/37] drm/connector: hdmi: Add output BPC to the connector state
Date: Thu, 21 Sep 2023 11:48:45 +0300 [thread overview]
Message-ID: <20230921114845.7edb1d37@eldfell> (raw)
In-Reply-To: <20230920-kms-hdmi-connector-state-v2-5-17932daddd7d@kernel.org>
[-- Attachment #1.1: Type: text/plain, Size: 6038 bytes --]
On Wed, 20 Sep 2023 16:35:20 +0200
Maxime Ripard <mripard@kernel.org> wrote:
> We'll add automatic selection of the output BPC in a following patch,
> but let's add it to the HDMI connector state already.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> drivers/gpu/drm/drm_atomic.c | 4 +++-
> drivers/gpu/drm/drm_atomic_state_helper.c | 6 +++++-
> drivers/gpu/drm/drm_connector.c | 13 ++++++++++++-
> include/drm/drm_connector.h | 13 ++++++++++++-
> 4 files changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index b1b56dcaa76b..8dce0a2f2ac3 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1143,9 +1143,11 @@ static void drm_atomic_connector_print_state(struct drm_printer *p,
> drm_printf(p, "\tcolorspace=%s\n", drm_get_colorspace_name(state->colorspace));
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
> - connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)
> + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) {
> drm_printf(p, "\tbroadcast_rgb=%s\n",
> drm_hdmi_connector_get_broadcast_rgb_name(state->hdmi.broadcast_rgb));
> + drm_printf(p, "\toutput_bpc=%u\n", state->hdmi.output_bpc);
> + }
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
> if (state->writeback_job && state->writeback_job->fb)
> diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
> index 0f7e5ba555b8..2c9b52ae1b56 100644
> --- a/drivers/gpu/drm/drm_atomic_state_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_state_helper.c
> @@ -569,6 +569,9 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
> void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector,
> struct drm_connector_state *new_state)
> {
> + new_state->max_bpc = 8;
> + new_state->max_requested_bpc = 8;
> + new_state->hdmi.output_bpc = 8;
Hi,
will this be forcing all drivers using these helpers to default to max bpc = 8?
I believe at least amdgpu would disagree. The defaults were changed in
the recent years, IIRC to avoid extra modesets during boot-up when
desktops prefer highest possible bpc for a mode.
The 'max bpc' property itself is a manual workaround for faulty
hardware that does not correctly indicate the max bpc it can handle. It
should not default to be a limiting factor.
> new_state->hdmi.broadcast_rgb = DRM_HDMI_BROADCAST_RGB_AUTO;
> }
> EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset);
> @@ -651,7 +654,8 @@ int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector,
> struct drm_connector_state *new_state =
> drm_atomic_get_new_connector_state(state, connector);
>
> - if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb) {
> + if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb ||
> + old_state->hdmi.output_bpc != new_state->hdmi.output_bpc) {
> struct drm_crtc *crtc = new_state->crtc;
> struct drm_crtc_state *crtc_state;
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b45471d540ac..f55f5918411c 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -459,6 +459,7 @@ EXPORT_SYMBOL(drmm_connector_init);
> * @funcs: callbacks for this connector
> * @connector_type: user visible type of the connector
> * @ddc: optional pointer to the associated ddc adapter
> + * @max_bpc: Maximum bits per char the HDMI connector supports
> *
> * Initialises a preallocated HDMI connector. Connectors can be
> * subclassed as part of driver connector objects.
> @@ -475,7 +476,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc)
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc)
> {
> int ret;
>
> @@ -487,6 +489,15 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> if (ret)
> return ret;
>
> + if (max_bpc) {
> + if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12))
> + return -EINVAL;
> +
> + drm_connector_attach_hdr_output_metadata_property(connector);
> + drm_connector_attach_max_bpc_property(connector, 8, max_bpc);
> + connector->max_bpc = max_bpc;
> + }
> +
> return 0;
> }
> EXPORT_SYMBOL(drmm_connector_hdmi_init);
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index fdcf64ab91a9..d0bcb835c857 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1056,6 +1056,11 @@ struct drm_connector_state {
> * Broadcast RGB selection value.
> */
> enum drm_hdmi_broadcast_rgb broadcast_rgb;
> +
> + /**
> + * @output_bpc: Bits per character to output.
Is it not bits per channel?
> + */
> + unsigned int output_bpc;
> } hdmi;
> };
>
> @@ -1700,6 +1705,11 @@ struct drm_connector {
> */
> struct drm_property_blob *path_blob_ptr;
>
> + /**
> + * @max_bpc: Maximum bits per character the connector supports.
channel?
> + */
> + unsigned int max_bpc;
> +
> /**
> * @max_bpc_property: Default connector property for the max bpc to be
> * driven out of the connector.
> @@ -1939,7 +1949,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc);
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc);
> void drm_connector_attach_edid_property(struct drm_connector *connector);
> int drm_connector_register(struct drm_connector *connector);
> void drm_connector_unregister(struct drm_connector *connector);
>
Thanks,
pq
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
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: Pekka Paalanen <ppaalanen@gmail.com>
To: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>,
Emma Anholt <emma@anholt.net>, Jonathan Corbet <corbet@lwn.net>,
linux-kernel@vger.kernel.org,
Samuel Holland <samuel@sholland.org>,
Sandy Huang <hjc@rock-chips.com>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
linux-doc@vger.kernel.org, Hans Verkuil <hverkuil@xs4all.nl>,
linux-rockchip@lists.infradead.org, Chen-Yu Tsai <wens@csie.org>,
dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org,
linux-sunxi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH RFC v2 05/37] drm/connector: hdmi: Add output BPC to the connector state
Date: Thu, 21 Sep 2023 11:48:45 +0300 [thread overview]
Message-ID: <20230921114845.7edb1d37@eldfell> (raw)
In-Reply-To: <20230920-kms-hdmi-connector-state-v2-5-17932daddd7d@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 6038 bytes --]
On Wed, 20 Sep 2023 16:35:20 +0200
Maxime Ripard <mripard@kernel.org> wrote:
> We'll add automatic selection of the output BPC in a following patch,
> but let's add it to the HDMI connector state already.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> drivers/gpu/drm/drm_atomic.c | 4 +++-
> drivers/gpu/drm/drm_atomic_state_helper.c | 6 +++++-
> drivers/gpu/drm/drm_connector.c | 13 ++++++++++++-
> include/drm/drm_connector.h | 13 ++++++++++++-
> 4 files changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index b1b56dcaa76b..8dce0a2f2ac3 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1143,9 +1143,11 @@ static void drm_atomic_connector_print_state(struct drm_printer *p,
> drm_printf(p, "\tcolorspace=%s\n", drm_get_colorspace_name(state->colorspace));
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
> - connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)
> + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) {
> drm_printf(p, "\tbroadcast_rgb=%s\n",
> drm_hdmi_connector_get_broadcast_rgb_name(state->hdmi.broadcast_rgb));
> + drm_printf(p, "\toutput_bpc=%u\n", state->hdmi.output_bpc);
> + }
>
> if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
> if (state->writeback_job && state->writeback_job->fb)
> diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
> index 0f7e5ba555b8..2c9b52ae1b56 100644
> --- a/drivers/gpu/drm/drm_atomic_state_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_state_helper.c
> @@ -569,6 +569,9 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
> void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector,
> struct drm_connector_state *new_state)
> {
> + new_state->max_bpc = 8;
> + new_state->max_requested_bpc = 8;
> + new_state->hdmi.output_bpc = 8;
Hi,
will this be forcing all drivers using these helpers to default to max bpc = 8?
I believe at least amdgpu would disagree. The defaults were changed in
the recent years, IIRC to avoid extra modesets during boot-up when
desktops prefer highest possible bpc for a mode.
The 'max bpc' property itself is a manual workaround for faulty
hardware that does not correctly indicate the max bpc it can handle. It
should not default to be a limiting factor.
> new_state->hdmi.broadcast_rgb = DRM_HDMI_BROADCAST_RGB_AUTO;
> }
> EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset);
> @@ -651,7 +654,8 @@ int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector,
> struct drm_connector_state *new_state =
> drm_atomic_get_new_connector_state(state, connector);
>
> - if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb) {
> + if (old_state->hdmi.broadcast_rgb != new_state->hdmi.broadcast_rgb ||
> + old_state->hdmi.output_bpc != new_state->hdmi.output_bpc) {
> struct drm_crtc *crtc = new_state->crtc;
> struct drm_crtc_state *crtc_state;
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b45471d540ac..f55f5918411c 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -459,6 +459,7 @@ EXPORT_SYMBOL(drmm_connector_init);
> * @funcs: callbacks for this connector
> * @connector_type: user visible type of the connector
> * @ddc: optional pointer to the associated ddc adapter
> + * @max_bpc: Maximum bits per char the HDMI connector supports
> *
> * Initialises a preallocated HDMI connector. Connectors can be
> * subclassed as part of driver connector objects.
> @@ -475,7 +476,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc)
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc)
> {
> int ret;
>
> @@ -487,6 +489,15 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> if (ret)
> return ret;
>
> + if (max_bpc) {
> + if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12))
> + return -EINVAL;
> +
> + drm_connector_attach_hdr_output_metadata_property(connector);
> + drm_connector_attach_max_bpc_property(connector, 8, max_bpc);
> + connector->max_bpc = max_bpc;
> + }
> +
> return 0;
> }
> EXPORT_SYMBOL(drmm_connector_hdmi_init);
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index fdcf64ab91a9..d0bcb835c857 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1056,6 +1056,11 @@ struct drm_connector_state {
> * Broadcast RGB selection value.
> */
> enum drm_hdmi_broadcast_rgb broadcast_rgb;
> +
> + /**
> + * @output_bpc: Bits per character to output.
Is it not bits per channel?
> + */
> + unsigned int output_bpc;
> } hdmi;
> };
>
> @@ -1700,6 +1705,11 @@ struct drm_connector {
> */
> struct drm_property_blob *path_blob_ptr;
>
> + /**
> + * @max_bpc: Maximum bits per character the connector supports.
channel?
> + */
> + unsigned int max_bpc;
> +
> /**
> * @max_bpc_property: Default connector property for the max bpc to be
> * driven out of the connector.
> @@ -1939,7 +1949,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> int connector_type,
> - struct i2c_adapter *ddc);
> + struct i2c_adapter *ddc,
> + unsigned int max_bpc);
> void drm_connector_attach_edid_property(struct drm_connector *connector);
> int drm_connector_register(struct drm_connector *connector);
> void drm_connector_unregister(struct drm_connector *connector);
>
Thanks,
pq
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2023-09-21 18:15 UTC|newest]
Thread overview: 184+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-20 14:35 [PATCH RFC v2 00/37] drm/connector: Create HDMI Connector infrastructure Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 01/37] drm/connector: Introduce an HDMI connector Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 02/37] drm/connector: hdmi: Create a custom state Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 15:57 ` kernel test robot
2023-09-20 14:35 ` [PATCH RFC v2 03/37] drm/connector: hdmi: Add Broadcast RGB property Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-21 8:39 ` Pekka Paalanen
2023-09-21 8:39 ` Pekka Paalanen
2023-09-21 8:39 ` Pekka Paalanen
2023-09-21 8:39 ` Pekka Paalanen
2023-09-20 14:35 ` [PATCH RFC v2 04/37] drm/connector: hdmi: Add helper to get the RGB range Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 05/37] drm/connector: hdmi: Add output BPC to the connector state Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-21 8:48 ` Pekka Paalanen [this message]
2023-09-21 8:48 ` Pekka Paalanen
2023-09-21 8:48 ` Pekka Paalanen
2023-09-21 8:48 ` Pekka Paalanen
2023-09-21 8:56 ` Jani Nikula
2023-09-21 8:56 ` Jani Nikula
2023-09-21 8:56 ` Jani Nikula
2023-09-21 8:56 ` Jani Nikula
2023-09-20 14:35 ` [PATCH RFC v2 06/37] drm/connector: hdmi: Add support for output format Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 07/37] drm/connector: hdmi: Add HDMI compute clock helper Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 17:15 ` Jernej Škrabec
2023-09-20 17:15 ` Jernej Škrabec
2023-09-20 17:15 ` Jernej Škrabec
2023-09-20 17:15 ` Jernej Škrabec
2023-09-20 14:35 ` [PATCH RFC v2 08/37] drm/connector: hdmi: Calculate TMDS character rate Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 09/37] drm/connector: hdmi: Add custom hook to filter " Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 10/37] drm/connector: hdmi: Compute bpc and format automatically Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 11/37] drm/connector: hdmi: Add Infoframes generation Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 17:11 ` Jernej Škrabec
2023-09-20 17:11 ` Jernej Škrabec
2023-09-20 17:11 ` Jernej Škrabec
2023-09-20 17:11 ` Jernej Škrabec
2023-09-21 0:58 ` kernel test robot
2023-09-21 3:13 ` kernel test robot
2023-10-13 9:58 ` Dan Carpenter
2023-09-20 14:35 ` [PATCH RFC v2 12/37] drm/connector: hdmi: Create Infoframe DebugFS entries Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 13/37] drm/vc4: hdmi: Create destroy state implementation Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 14/37] drm/vc4: hdmi: Switch to HDMI connector Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 15/37] drm/rockchip: inno_hdmi: Remove useless mode_fixup Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 16/37] drm/rockchip: inno_hdmi: Remove useless copy of drm_display_mode Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 17/37] drm/rockchip: inno_hdmi: Switch encoder hooks to atomic Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 18/37] drm/rockchip: inno_hdmi: Get rid of mode_set Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 19/37] drm/rockchip: inno_hdmi: no need to store vic Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 20/37] drm/rockchip: inno_hdmi: Remove unneeded has audio flag Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 21/37] drm/rockchip: inno_hdmi: Remove useless input format Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 22/37] drm/rockchip: inno_hdmi: Remove useless output format Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 23/37] drm/rockchip: inno_hdmi: Remove useless colorimetry Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 24/37] drm/rockchip: inno_hdmi: Remove useless enum Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 25/37] drm/rockchip: inno_hdmi: Remove tmds rate from structure Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 26/37] drm/rockchip: inno_hdmi: Remove useless coeff_csc matrix Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 27/37] drm/rockchip: inno_hdmi: Remove useless mode_valid Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 28/37] drm/rockchip: inno_hdmi: Move infoframe disable to separate function Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 29/37] drm/rockchip: inno_hdmi: Create mask retrieval functions Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 30/37] drm/rockchip: inno_hdmi: Switch to infoframe type Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 31/37] drm/rockchip: inno_hdmi: Remove unused drm device pointer Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 32/37] drm/rockchip: inno_hdmi: Switch to HDMI connector Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 33/37] drm/sun4i: hdmi: Convert encoder to atomic Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 34/37] drm/sun4i: hdmi: Move mode_set into enable Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 35/37] drm/sun4i: hdmi: Switch to container_of_const Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 36/37] drm/sun4i: hdmi: Consolidate atomic_check and mode_valid Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` [PATCH RFC v2 37/37] drm/sun4i: hdmi: Switch to HDMI connector Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-20 14:35 ` Maxime Ripard
2023-09-21 16:29 ` [PATCH RFC v2 00/37] drm/connector: Create HDMI Connector infrastructure Hans Verkuil
2023-09-21 16:29 ` Hans Verkuil
2023-09-21 16:29 ` Hans Verkuil
2023-09-21 16:29 ` Hans Verkuil
2023-09-21 16:48 ` Maxime Ripard
2023-09-21 16:48 ` Maxime Ripard
2023-09-21 16:48 ` Maxime Ripard
2023-09-21 16:48 ` Maxime Ripard
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=20230921114845.7edb1d37@eldfell \
--to=ppaalanen@gmail.com \
--cc=airlied@gmail.com \
--cc=corbet@lwn.net \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=emma@anholt.net \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=hverkuil@xs4all.nl \
--cc=jernej.skrabec@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=samuel@sholland.org \
--cc=tzimmermann@suse.de \
--cc=wens@csie.org \
/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.