[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <30a0040d-2ced-46bd-85db-f92dfdc9e347@ti.com>
Date: Tue, 18 Nov 2025 10:24:43 +0530
From: Harikrishna shenoy <h-shenoy@...com>
To: Tomi Valkeinen <tomi.valkeinen@...asonboard.com>
CC: <Laurent.pinchart@...asonboard.com>, <airlied@...il.com>,
<andrzej.hajda@...el.com>, <andy.yan@...k-chips.com>,
<aradhya.bhatia@...ux.dev>, <devarsht@...com>, <dianders@...omium.org>,
<dri-devel@...ts.freedesktop.org>, <javierm@...hat.com>,
<jernej.skrabec@...il.com>, <jonas@...boo.se>,
<linux-kernel@...r.kernel.org>, <linux@...blig.org>,
<luca.ceresoli@...tlin.com>, <lumag@...nel.org>, <lyude@...hat.com>,
<maarten.lankhorst@...ux.intel.com>, <mordan@...ras.ru>,
<mripard@...nel.org>, <neil.armstrong@...aro.org>, <rfoss@...nel.org>,
<s-jain1@...com>, <simona@...ll.ch>, <tzimmermann@...e.de>, <u-kumar1@...com>
Subject: Re: [PATCH v8 6/6] drm/bridge: cadence: cdns-mhdp8546-core: Handle
HDCP state in bridge atomic check
On 12/11/25 14:52, Tomi Valkeinen wrote:
> Hi,
>
> On 14/10/2025 12:45, Harikrishna Shenoy wrote:
>> Now that we have DBANC framework and legacy connector functions removed,
>> handle the HDCP disabling in bridge atomic check rather than in connector
>> atomic check in !(DBANC) usecase.
>
> This sounds odd. The patch is only adding new code, so "handle the HDCP
> disabling in bridge atomic check rather than in connector atomic check
> in !(DBANC) usecase." doesn't quite make sense.
>
> Afaiu in patch 3 you removed the HDCP code for !DBANC, and here you add
> it for DBANC.
>
> Correct me if I'm wrong, but HDCP support for DBANC is currently broken
> in upstream, as the HDCP code is only for the !DBANC case?
>
> Isn't this patch then similar to patch 2, which is a fix for a missing
> feature with DBANC? So should this also be a fix, and perhaps be moved
> as after patch 2?
>
> Tomi
>
Hi Tomi,
Thanks for the review, yes will update the sequence of patch and move
this after patch 2 and also will add fixes patch.
Regards,
Hari
>> Signed-off-by: Harikrishna Shenoy <h-shenoy@...com>
>> ---
>> .../drm/bridge/cadence/cdns-mhdp8546-core.c | 23 +++++++++++++++++++
>> 1 file changed, 23 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
>> index 06ac5c2ee78f..120eb7ffe20c 100644
>> --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
>> +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
>> @@ -1962,6 +1962,10 @@ static int cdns_mhdp_atomic_check(struct drm_bridge *bridge,
>> {
>> struct cdns_mhdp_device *mhdp = bridge_to_mhdp(bridge);
>> const struct drm_display_mode *mode = &crtc_state->adjusted_mode;
>> + struct drm_connector_state *old_state, *new_state;
>> + struct drm_atomic_state *state = crtc_state->state;
>> + struct drm_connector *conn = mhdp->connector;
>> + u64 old_cp, new_cp;
>>
>> mutex_lock(&mhdp->link_mutex);
>>
>> @@ -1981,6 +1985,25 @@ static int cdns_mhdp_atomic_check(struct drm_bridge *bridge,
>> if (mhdp->info)
>> bridge_state->input_bus_cfg.flags = *mhdp->info->input_bus_flags;
>>
>> + if (conn && mhdp->hdcp_supported) {
>> + old_state = drm_atomic_get_old_connector_state(state, conn);
>> + new_state = drm_atomic_get_new_connector_state(state, conn);
>> + old_cp = old_state->content_protection;
>> + new_cp = new_state->content_protection;
>> +
>> + if (old_state->hdcp_content_type != new_state->hdcp_content_type &&
>> + new_cp != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
>> + new_state->content_protection = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>> + crtc_state = drm_atomic_get_new_crtc_state(state, new_state->crtc);
>> + crtc_state->mode_changed = true;
>> + }
>> +
>> + if (!new_state->crtc) {
>> + if (old_cp == DRM_MODE_CONTENT_PROTECTION_ENABLED)
>> + new_state->content_protection = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>> + }
>> + }
>> +
>> mutex_unlock(&mhdp->link_mutex);
>> return 0;
>> }
>
Powered by blists - more mailing lists