From: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
To: Maxime Ripard <mripard@kernel.org>
Cc: "Andrzej Hajda" <andrzej.hajda@intel.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Robert Foss" <rfoss@kernel.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Chen-Yu Tsai" <wens@kernel.org>,
"Samuel Holland" <samuel@sholland.org>,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
"Maíra Canal" <mcanal@igalia.com>,
"Raspberry Pi Kernel Maintenance" <kernel-list@raspberrypi.com>,
"Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Andy Yan" <andy.yan@rock-chips.com>,
"Algea Cao" <algea.cao@rock-chips.com>,
"Daniel Stone" <daniels@collabora.com>,
"Liu Ying" <victor.liu@nxp.com>, "Phong LE" <ple@baylibre.com>,
kernel@collabora.com, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, linux-rockchip@lists.infradead.org,
"Maud Spierings" <maud_spierings@hotmail.com>,
"Diederik de Haas" <diederik@cknow-tech.com>
Subject: Re: [PATCH v10 07/69] drm/connector: Add HDMI 2.0 scrambler infrastructure
Date: Wed, 19 Aug 2026 22:33:04 +0300 [thread overview]
Message-ID: <ad65a396-02fb-4816-b978-e3a0c46688b2@collabora.com> (raw)
In-Reply-To: <20260819-amigurumi-lorikeet-of-infinity-fd8c2d@houat>
On 8/19/26 1:12 PM, Maxime Ripard wrote:
> On Fri, Jul 31, 2026 at 07:19:14PM +0300, Cristian Ciocaltea wrote:
>> Add the connector-level infrastructure to support HDMI 2.0 scrambling:
>>
>> - A drm_connector_hdmi_scrambler_supported() helper to report whether
>> the source supports the scrambling capability, based on the presence
>> of the newly introduced .scrambler_{enable|disable}() callbacks in
>> drm_connector_hdmi_funcs are mandatory
>> - A scrambler_needed flag to be managed by the hdmi state helpers based
>> on the negotiated TMDS character rate and the source/sink scrambling
>> capabilities
>> - A scrambler_enabled flag to track whether scrambling is currently
>> active
>> - A delayed work item (scdc_work) to monitor sink-side scrambling status
>> and retry the setup if the sink resets it
>> - A scdc_work_initialized flag to support lazy initialization of the
>> work item on the first scrambling enable and guard the teardown paths
>>
>> These are intended to be used by SCDC scrambling helpers to coordinate
>> scrambling setup and teardown between the source driver and the DRM
>> core.
>>
>> Tested-by: Maud Spierings <maud_spierings@hotmail.com>
>> Tested-by: Diederik de Haas <diederik@cknow-tech.com> # NanoPC-T6 LTS, Rock 5B
>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
>> ---
>> drivers/gpu/drm/drm_connector.c | 31 ++++++++++++---
>> include/drm/drm_connector.h | 83 +++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 109 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
>> index 4721cdeafc84..a18410faf040 100644
>> --- a/drivers/gpu/drm/drm_connector.c
>> +++ b/drivers/gpu/drm/drm_connector.c
>> @@ -622,12 +622,29 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
>> * default with the actual controller capability. A value of zero keeps
>> * the limit inferred from supported_hdmi_ver.
>> */
>> - if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0)
>> + if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0) {
>> + if (!hdmi_funcs->scrambler_enable || !hdmi_funcs->scrambler_disable) {
>> + drm_err(dev, "Scrambler callbacks missing for HDMI 2.x\n");
>> + return -EINVAL;
>> + }
>> +
>> connector->hdmi.max_tmds_char_rate = HDMI_2_0_TMDS_CHAR_RATE_MAX_HZ;
>> - else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_3)
>> - connector->hdmi.max_tmds_char_rate = HDMI_1_3_TMDS_CHAR_RATE_MAX_HZ;
>> - else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_0)
>> - connector->hdmi.max_tmds_char_rate = HDMI_1_0_TMDS_CHAR_RATE_MAX_HZ;
>> + } else {
>> + /*
>> + * Scrambler callbacks are only valid for connectors advertising
>> + * HDMI 2.0 capability. drm_connector_hdmi_scrambler_supported()
>> + * relies on their presence to report scrambling support.
>> + */
>> + if (hdmi_funcs->scrambler_enable || hdmi_funcs->scrambler_disable) {
>> + drm_err(dev, "Scrambler callbacks unexpected for HDMI 1.x\n");
>> + return -EINVAL;
>> + }
>> +
>> + if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_3)
>> + connector->hdmi.max_tmds_char_rate = HDMI_1_3_TMDS_CHAR_RATE_MAX_HZ;
>> + else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_0)
>> + connector->hdmi.max_tmds_char_rate = HDMI_1_0_TMDS_CHAR_RATE_MAX_HZ;
>> + }
>
> I'd put it into a separate test (possibly earlier). Merging both the
> tmds rate default and the scrambler callbacks check makes it messier
> than it would be if we had two separate tests.
Ack. How about the following?
if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0)
connector->hdmi.max_tmds_char_rate = HDMI_2_0_TMDS_CHAR_RATE_MAX_HZ;
else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_3)
connector->hdmi.max_tmds_char_rate = HDMI_1_3_TMDS_CHAR_RATE_MAX_HZ;
else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_0)
connector->hdmi.max_tmds_char_rate = HDMI_1_0_TMDS_CHAR_RATE_MAX_HZ;
if (hdmi_funcs->supported_tmds_char_rate) {
if (hdmi_funcs->supported_tmds_char_rate > connector->hdmi.max_tmds_char_rate) {
drm_err(dev, "Enforced max_tmds_char_rate exceeds %llu spec limit\n",
connector->hdmi.max_tmds_char_rate);
return -EINVAL;
}
connector->hdmi.max_tmds_char_rate = hdmi_funcs->supported_tmds_char_rate;
}
if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0) {
if (!hdmi_funcs->scrambler_enable || !hdmi_funcs->scrambler_disable) {
drm_err(dev, "Scrambler callbacks missing for HDMI 2.x\n");
return -EINVAL;
}
} else {
/*
* Scrambler callbacks are only valid for connectors advertising
* HDMI 2.0 capability. drm_connector_hdmi_scrambler_supported()
* relies on their presence to report scrambling support.
*/
if (hdmi_funcs->scrambler_enable || hdmi_funcs->scrambler_disable) {
drm_err(dev, "Scrambler callbacks unexpected for HDMI 1.x\n");
return -EINVAL;
}
}
>> if (hdmi_funcs->supported_tmds_char_rate) {
>> if (hdmi_funcs->supported_tmds_char_rate > connector->hdmi.max_tmds_char_rate) {
>> @@ -635,6 +652,7 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
>> connector->hdmi.max_tmds_char_rate);
>> return -EINVAL;
>> }
>> +
>> connector->hdmi.max_tmds_char_rate = hdmi_funcs->supported_tmds_char_rate;
>> }
[...]
>> + /**
>> + * @scdc_work: Work item currently used to monitor sink-side scrambling
>> + * status and retry setup if the sink resets it.
>> + */
>> + struct delayed_work scdc_work;
>> +
>> + /**
>> + * @scdc_work_initialized: Tracks whether @scdc_work has been set up via
>> + * INIT_DELAYED_WORK(). The work item is initialized lazily on the first
>> + * scrambling enable, so this guards the teardown paths against touching
>> + * an uninitialized work item.
>> + */
>> + bool scdc_work_initialized;
>> +
>
> Why should we track whether it's initialized or not? I'd always
> initialize it, but only ever schedule something if we're using the
> scrambler.
Having this initialized in the connector would lead to a module dependency
cycle.
Currently the work function lives in drm_hdmi_helper.c, which is built into
drm_display_helper module:
static void drm_connector_hdmi_scdc_work(struct work_struct *work)
{
[...]
if (READ_ONCE(connector->hdmi.scrambler_enabled) &&
!drm_scdc_get_scrambling_status(connector))
drm_connector_hdmi_try_scrambling_setup(connector);
[...]
}
int drm_connector_hdmi_enable_scrambling(struct drm_connector *connector,
const struct drm_connector_state *conn_state)
{
[...]
if (!hdmi->scdc_work_initialized) {
INIT_DELAYED_WORK(&hdmi->scdc_work,
drm_connector_hdmi_scdc_work);
hdmi->scdc_work_initialized = true;
}
[...]
}
If we move INIT_DELAYED_WORK() into the connector (i.e. in drm.ko), the work
function has to be reachable from there. The following attempts to accomplish
that would fail:
- Keep the work function in drm_hdmi_helper.c and export it from
drm_display_helper.
- Move the work function into drm_connector.c and export
drm_connector_hdmi_try_scrambling_setup(), or a wrapper function, from
drm_display_helper.
Either way drm module ends up depending on drm_display_helper, which already
depends on drm:
depmod: ERROR: Cycle detected: drm_display_helper -> drm -> drm_display_helper
My previous approach provided the work function in the connector, and a callback
set by the scrambling helper:
/* Part of drm module */
struct drm_connector_hdmi {
[...]
void (*scdc_cb)(struct drm_connector *connector);
[...]
}
static void drm_connector_hdmi_scdc_work(struct work_struct *work)
{
[...]
if (hdmi->scdc_cb)
hdmi->scdc_cb(connector);
[...]
}
/* Part of drm_display_helper */
int drm_connector_hdmi_enable_scrambling()
{
[...]
hdmi->scdc_cb = drm_scdc_monitor_scrambler;
[...]
}
Since it didn't get positive feedback, I ended up with lazy initialization
instead. I think it's the better of the two, as it keeps all the implementation
logic inside the helper module rather than splitting it across drm and
drm_display_helper.
Thanks,
Cristian
WARNING: multiple messages have this Message-ID (diff)
From: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
To: Maxime Ripard <mripard@kernel.org>
Cc: "Andrzej Hajda" <andrzej.hajda@intel.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Robert Foss" <rfoss@kernel.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Chen-Yu Tsai" <wens@kernel.org>,
"Samuel Holland" <samuel@sholland.org>,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
"Maíra Canal" <mcanal@igalia.com>,
"Raspberry Pi Kernel Maintenance" <kernel-list@raspberrypi.com>,
"Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Andy Yan" <andy.yan@rock-chips.com>,
"Algea Cao" <algea.cao@rock-chips.com>,
"Daniel Stone" <daniels@collabora.com>,
"Liu Ying" <victor.liu@nxp.com>, "Phong LE" <ple@baylibre.com>,
kernel@collabora.com, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, linux-rockchip@lists.infradead.org,
"Maud Spierings" <maud_spierings@hotmail.com>,
"Diederik de Haas" <diederik@cknow-tech.com>
Subject: Re: [PATCH v10 07/69] drm/connector: Add HDMI 2.0 scrambler infrastructure
Date: Wed, 19 Aug 2026 22:33:04 +0300 [thread overview]
Message-ID: <ad65a396-02fb-4816-b978-e3a0c46688b2@collabora.com> (raw)
In-Reply-To: <20260819-amigurumi-lorikeet-of-infinity-fd8c2d@houat>
On 8/19/26 1:12 PM, Maxime Ripard wrote:
> On Fri, Jul 31, 2026 at 07:19:14PM +0300, Cristian Ciocaltea wrote:
>> Add the connector-level infrastructure to support HDMI 2.0 scrambling:
>>
>> - A drm_connector_hdmi_scrambler_supported() helper to report whether
>> the source supports the scrambling capability, based on the presence
>> of the newly introduced .scrambler_{enable|disable}() callbacks in
>> drm_connector_hdmi_funcs are mandatory
>> - A scrambler_needed flag to be managed by the hdmi state helpers based
>> on the negotiated TMDS character rate and the source/sink scrambling
>> capabilities
>> - A scrambler_enabled flag to track whether scrambling is currently
>> active
>> - A delayed work item (scdc_work) to monitor sink-side scrambling status
>> and retry the setup if the sink resets it
>> - A scdc_work_initialized flag to support lazy initialization of the
>> work item on the first scrambling enable and guard the teardown paths
>>
>> These are intended to be used by SCDC scrambling helpers to coordinate
>> scrambling setup and teardown between the source driver and the DRM
>> core.
>>
>> Tested-by: Maud Spierings <maud_spierings@hotmail.com>
>> Tested-by: Diederik de Haas <diederik@cknow-tech.com> # NanoPC-T6 LTS, Rock 5B
>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
>> ---
>> drivers/gpu/drm/drm_connector.c | 31 ++++++++++++---
>> include/drm/drm_connector.h | 83 +++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 109 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
>> index 4721cdeafc84..a18410faf040 100644
>> --- a/drivers/gpu/drm/drm_connector.c
>> +++ b/drivers/gpu/drm/drm_connector.c
>> @@ -622,12 +622,29 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
>> * default with the actual controller capability. A value of zero keeps
>> * the limit inferred from supported_hdmi_ver.
>> */
>> - if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0)
>> + if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0) {
>> + if (!hdmi_funcs->scrambler_enable || !hdmi_funcs->scrambler_disable) {
>> + drm_err(dev, "Scrambler callbacks missing for HDMI 2.x\n");
>> + return -EINVAL;
>> + }
>> +
>> connector->hdmi.max_tmds_char_rate = HDMI_2_0_TMDS_CHAR_RATE_MAX_HZ;
>> - else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_3)
>> - connector->hdmi.max_tmds_char_rate = HDMI_1_3_TMDS_CHAR_RATE_MAX_HZ;
>> - else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_0)
>> - connector->hdmi.max_tmds_char_rate = HDMI_1_0_TMDS_CHAR_RATE_MAX_HZ;
>> + } else {
>> + /*
>> + * Scrambler callbacks are only valid for connectors advertising
>> + * HDMI 2.0 capability. drm_connector_hdmi_scrambler_supported()
>> + * relies on their presence to report scrambling support.
>> + */
>> + if (hdmi_funcs->scrambler_enable || hdmi_funcs->scrambler_disable) {
>> + drm_err(dev, "Scrambler callbacks unexpected for HDMI 1.x\n");
>> + return -EINVAL;
>> + }
>> +
>> + if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_3)
>> + connector->hdmi.max_tmds_char_rate = HDMI_1_3_TMDS_CHAR_RATE_MAX_HZ;
>> + else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_0)
>> + connector->hdmi.max_tmds_char_rate = HDMI_1_0_TMDS_CHAR_RATE_MAX_HZ;
>> + }
>
> I'd put it into a separate test (possibly earlier). Merging both the
> tmds rate default and the scrambler callbacks check makes it messier
> than it would be if we had two separate tests.
Ack. How about the following?
if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0)
connector->hdmi.max_tmds_char_rate = HDMI_2_0_TMDS_CHAR_RATE_MAX_HZ;
else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_3)
connector->hdmi.max_tmds_char_rate = HDMI_1_3_TMDS_CHAR_RATE_MAX_HZ;
else if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_1_0)
connector->hdmi.max_tmds_char_rate = HDMI_1_0_TMDS_CHAR_RATE_MAX_HZ;
if (hdmi_funcs->supported_tmds_char_rate) {
if (hdmi_funcs->supported_tmds_char_rate > connector->hdmi.max_tmds_char_rate) {
drm_err(dev, "Enforced max_tmds_char_rate exceeds %llu spec limit\n",
connector->hdmi.max_tmds_char_rate);
return -EINVAL;
}
connector->hdmi.max_tmds_char_rate = hdmi_funcs->supported_tmds_char_rate;
}
if (hdmi_funcs->supported_hdmi_ver >= HDMI_VERSION_2_0) {
if (!hdmi_funcs->scrambler_enable || !hdmi_funcs->scrambler_disable) {
drm_err(dev, "Scrambler callbacks missing for HDMI 2.x\n");
return -EINVAL;
}
} else {
/*
* Scrambler callbacks are only valid for connectors advertising
* HDMI 2.0 capability. drm_connector_hdmi_scrambler_supported()
* relies on their presence to report scrambling support.
*/
if (hdmi_funcs->scrambler_enable || hdmi_funcs->scrambler_disable) {
drm_err(dev, "Scrambler callbacks unexpected for HDMI 1.x\n");
return -EINVAL;
}
}
>> if (hdmi_funcs->supported_tmds_char_rate) {
>> if (hdmi_funcs->supported_tmds_char_rate > connector->hdmi.max_tmds_char_rate) {
>> @@ -635,6 +652,7 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
>> connector->hdmi.max_tmds_char_rate);
>> return -EINVAL;
>> }
>> +
>> connector->hdmi.max_tmds_char_rate = hdmi_funcs->supported_tmds_char_rate;
>> }
[...]
>> + /**
>> + * @scdc_work: Work item currently used to monitor sink-side scrambling
>> + * status and retry setup if the sink resets it.
>> + */
>> + struct delayed_work scdc_work;
>> +
>> + /**
>> + * @scdc_work_initialized: Tracks whether @scdc_work has been set up via
>> + * INIT_DELAYED_WORK(). The work item is initialized lazily on the first
>> + * scrambling enable, so this guards the teardown paths against touching
>> + * an uninitialized work item.
>> + */
>> + bool scdc_work_initialized;
>> +
>
> Why should we track whether it's initialized or not? I'd always
> initialize it, but only ever schedule something if we're using the
> scrambler.
Having this initialized in the connector would lead to a module dependency
cycle.
Currently the work function lives in drm_hdmi_helper.c, which is built into
drm_display_helper module:
static void drm_connector_hdmi_scdc_work(struct work_struct *work)
{
[...]
if (READ_ONCE(connector->hdmi.scrambler_enabled) &&
!drm_scdc_get_scrambling_status(connector))
drm_connector_hdmi_try_scrambling_setup(connector);
[...]
}
int drm_connector_hdmi_enable_scrambling(struct drm_connector *connector,
const struct drm_connector_state *conn_state)
{
[...]
if (!hdmi->scdc_work_initialized) {
INIT_DELAYED_WORK(&hdmi->scdc_work,
drm_connector_hdmi_scdc_work);
hdmi->scdc_work_initialized = true;
}
[...]
}
If we move INIT_DELAYED_WORK() into the connector (i.e. in drm.ko), the work
function has to be reachable from there. The following attempts to accomplish
that would fail:
- Keep the work function in drm_hdmi_helper.c and export it from
drm_display_helper.
- Move the work function into drm_connector.c and export
drm_connector_hdmi_try_scrambling_setup(), or a wrapper function, from
drm_display_helper.
Either way drm module ends up depending on drm_display_helper, which already
depends on drm:
depmod: ERROR: Cycle detected: drm_display_helper -> drm -> drm_display_helper
My previous approach provided the work function in the connector, and a callback
set by the scrambling helper:
/* Part of drm module */
struct drm_connector_hdmi {
[...]
void (*scdc_cb)(struct drm_connector *connector);
[...]
}
static void drm_connector_hdmi_scdc_work(struct work_struct *work)
{
[...]
if (hdmi->scdc_cb)
hdmi->scdc_cb(connector);
[...]
}
/* Part of drm_display_helper */
int drm_connector_hdmi_enable_scrambling()
{
[...]
hdmi->scdc_cb = drm_scdc_monitor_scrambler;
[...]
}
Since it didn't get positive feedback, I ended up with lazy initialization
instead. I think it's the better of the two, as it keeps all the implementation
logic inside the helper module rather than splitting it across drm and
drm_display_helper.
Thanks,
Cristian
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2026-08-19 19:33 UTC|newest]
Thread overview: 189+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 16:19 [PATCH v10 00/69] Add HDMI 2.0 support to DW HDMI QP TX Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 01/69] video/hdmi: Introduce HDMI version enum Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:25 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 02/69] drm/connector: hdmi: Handle reset() state allocation failure Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:37 ` sashiko-bot
2026-08-13 13:45 ` Maxime Ripard
2026-08-13 13:45 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 03/69] drm/display: hdmi: Rename drmm_connector_hdmi_init() to *_ini2() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 04/69] drm/connector: Add drmm_connector_hdmi_init() with new signature Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-08-19 10:08 ` Maxime Ripard
2026-08-19 10:08 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 05/69] drm/display: bridge_connector: Convert to drmm_connector_hdmi_init() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-08-19 10:06 ` Maxime Ripard
2026-08-19 10:06 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 06/69] drm/probe-helper: Introduce .force_ctx() connector callback Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 17:06 ` sashiko-bot
2026-08-19 9:53 ` Maxime Ripard
2026-08-19 9:53 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 07/69] drm/connector: Add HDMI 2.0 scrambler infrastructure Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-08-19 10:12 ` Maxime Ripard
2026-08-19 10:12 ` Maxime Ripard
2026-08-19 19:33 ` Cristian Ciocaltea [this message]
2026-08-19 19:33 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 08/69] drm/display: scdc-helper: Add macro for connector-prefixed debug messages Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 09/69] drm/display: scdc-helper: Add helper to set SCDC version information Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 10/69] drm/display: hdmi: Add HDMI 2.0 scrambling management helpers Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 17:33 ` sashiko-bot
2026-08-19 12:37 ` Maxime Ripard
2026-08-19 12:37 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 11/69] drm/display: hdmi: Advertise SCDC source version when scrambling Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 12/69] drm/bridge: Fix unlocked list_del in drm_bridge_add() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 17:50 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 13/69] drm/bridge: Fix unlocked list access in drm_bridge_attach() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 14/69] drm/bridge: Remove redundant error check in drm_bridge_helper_reset_crtc() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 18:01 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 15/69] drm/bridge: Add bridge ops for source-side HDMI 2.0 scrambling Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 18:09 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 16/69] drm/display: bridge_connector: Use cached connector status in .get_modes() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 17/69] drm/display: bridge_connector: Switch to .detect_ctx() connector helper Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 18/69] drm/display: bridge_connector: Switch to .force_ctx() " Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 18:31 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 19/69] drm/display: bridge_connector: Wire up HDMI 2.0 scrambler callbacks Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-08-19 12:38 ` Maxime Ripard
2026-08-19 12:38 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 20/69] drm/display: hdmi-state-helper: Add source TMDS rate validation Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-08-13 13:35 ` Maxime Ripard
2026-08-13 13:35 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 21/69] drm/display: hdmi-state-helper: Pass acquire ctx to hotplug helpers Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-08-19 12:39 ` Maxime Ripard
2026-08-19 12:39 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 22/69] drm/display: hdmi-state-helper: Sync SCDC state on hotplug Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 19:02 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 23/69] drm/display: hdmi-state-helper: Set HDMI scrambling requirement Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 19:20 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 24/69] drm/bridge: dw-hdmi-qp: Rate limit i2c read error messages Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 25/69] drm/bridge: dw-hdmi-qp: Provide .{enable,disable}_hpd() PHY ops Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 26/69] drm/bridge: dw-hdmi-qp: Remove unused workqueue include and define Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 27/69] drm/bridge: dw-hdmi-qp: Add HDMI 2.0 scrambling support Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 28/69] drm/bridge: dw-hdmi-qp: Provide dw_hdmi_qp_hpd_notify() helper Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 29/69] drm/rockchip: dw_hdmi_qp: Fix invalid drvdata access in PM ops Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 20:19 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 30/69] drm/rockchip: dw_hdmi_qp: Cancel pending HPD work on suspend Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 20:30 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 31/69] drm/rockchip: dw_hdmi_qp: Add missing newlines in dev_err_probe() messages Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 20:38 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 32/69] drm/rockchip: dw_hdmi_qp: Use local dev variable consistently in bind() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 20:47 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 33/69] drm/rockchip: dw_hdmi_qp: Avoid spurious HPD IRQ thread wakeups Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 34/69] drm/rockchip: dw_hdmi_qp: Mask RK3576 HPD IRQ in io_init Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 21:14 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 35/69] drm/rockchip: dw_hdmi_qp: Implement .{enable,disable}_hpd() PHY ops Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 21:27 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 36/69] drm/rockchip: dw_hdmi_qp: Factor out HPD interrupt (un)mask helpers Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 37/69] drm/rockchip: dw_hdmi_qp: Control the HPD IRQ line via the bridge HPD ops Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 21:47 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 38/69] drm/rockchip: dw_hdmi_qp: Use dw_hdmi_qp_hpd_notify() for HPD reports Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 22:04 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 39/69] drm/bridge: dw-hdmi-qp: Drop unused .setup_hpd() phy op Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 40/69] drm/vc4: hdmi: Use common TMDS char rate constants Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 41/69] drm/vc4: hdmi: Switch to drm_hdmi_mode_needs_scrambling() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 42/69] drm/vc4: hdmi: Switch to .force_ctx() connector helper Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-08-13 13:28 ` Maxime Ripard
2026-08-13 13:28 ` Maxime Ripard
2026-07-31 16:19 ` [PATCH v10 43/69] drm/vc4: hdmi: Propagate -EDEADLK to the top level Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 44/69] drm/vc4: hdmi: Convert to drmm_connector_hdmi_init() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 45/69] drm/vc4: hdmi: Convert to common HDMI 2.0 scrambling infrastructure Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 22:44 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 46/69] drm/vc4: hdmi: Defer pixel clock validation to HDMI helpers Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 47/69] drm/display: hdmi-state-helper: Drop drm_atomic_helper_connector_hdmi_force() Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 48/69] drm/bridge: adv7511: Advertise HDMI 1.2 capabilities Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 49/69] drm/bridge: inno-hdmi: " Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 23:10 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 50/69] drm/bridge: ite-it6263: Drop redundant .mode_valid hook Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:19 ` [PATCH v10 51/69] drm/bridge: ite-it6263: Advertise HDMI 1.3 capabilities Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 23:24 ` sashiko-bot
2026-07-31 16:19 ` [PATCH v10 52/69] drm/bridge: ite-it66121: Advertise HDMI 1.2 capabilities Cristian Ciocaltea
2026-07-31 16:19 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 53/69] drm/bridge: lontium-lt9611: Advertise HDMI 1.4 capabilities Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 54/69] drm/rockchip: rk3066_hdmi: " Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 23:41 ` sashiko-bot
2026-08-19 10:36 ` Heiko Stübner
2026-08-19 10:36 ` Heiko Stübner
2026-07-31 16:20 ` [PATCH v10 55/69] drm/sun4i: hdmi: Convert to drmm_connector_hdmi_init() Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 23:47 ` sashiko-bot
2026-08-13 13:29 ` Maxime Ripard
2026-08-13 13:29 ` Maxime Ripard
2026-07-31 16:20 ` [PATCH v10 56/69] drm/tests: edid: Add 4K@60Hz EDID with 600MHz TMDS Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 57/69] drm/tests: edid: Fix conformity for 1080p+4K YUV420 200MHz EDID Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 58/69] drm/tests: edid: Fix conformity for 4K RGB/YUV 340MHz EDID Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 59/69] drm/tests: bridge: Set supported HDMI version Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 60/69] drm/tests: connector: Convert to drmm_connector_hdmi_init() Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 61/69] drm/tests: connector: Add HDMI max_tmds_char_rate init coverage Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 62/69] drm/tests: connector: Add HDMI source-side scrambler coverage Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 63/69] drm/tests: hdmi_state_helper: Convert to drmm_connector_hdmi_init() Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 64/69] drm/tests: hdmi_state_helper: Add connector-provided max_tmds_char_rate coverage Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 65/69] drm/tests: hdmi_state_helper: Cover source-side scrambling decision Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 66/69] drm/connector: Remove drmm_connector_hdmi_ini2() Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 67/69] drm/connector: Drop redundant hdmi vendor/product fields Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 68/69] drm/connector: Drop redundant hdmi supported_formats field Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
2026-07-31 16:20 ` [PATCH v10 69/69] drm/connector: Drop redundant max_bpc field Cristian Ciocaltea
2026-07-31 16:20 ` Cristian Ciocaltea
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=ad65a396-02fb-4816-b978-e3a0c46688b2@collabora.com \
--to=cristian.ciocaltea@collabora.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=algea.cao@rock-chips.com \
--cc=andrzej.hajda@intel.com \
--cc=andy.yan@rock-chips.com \
--cc=daniels@collabora.com \
--cc=dave.stevenson@raspberrypi.com \
--cc=diederik@cknow-tech.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=kernel-list@raspberrypi.com \
--cc=kernel@collabora.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=luca.ceresoli@bootlin.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=maud_spierings@hotmail.com \
--cc=mcanal@igalia.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=ple@baylibre.com \
--cc=rfoss@kernel.org \
--cc=samuel@sholland.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=victor.liu@nxp.com \
--cc=wens@kernel.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.