[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <130b1508-82fd-4c90-a04f-e6ddab712ca2@ti.com>
Date: Wed, 10 Sep 2025 15:18:34 +0530
From: Harikrishna Shenoy <h-shenoy@...com>
To: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
CC: <andrzej.hajda@...el.com>, <neil.armstrong@...aro.org>, <rfoss@...nel.org>,
<Laurent.pinchart@...asonboard.com>, <jonas@...boo.se>,
<jernej.skrabec@...il.com>, <maarten.lankhorst@...ux.intel.com>,
<mripard@...nel.org>, <tzimmermann@...e.de>, <airlied@...il.com>,
<simona@...ll.ch>, <lumag@...nel.org>, <dianders@...omium.org>,
<andy.yan@...k-chips.com>, <linux@...blig.org>,
<viro@...iv.linux.org.uk>, <aradhya.bhatia@...ux.dev>,
<javierm@...hat.com>, <tomi.valkeinen@...asonboard.com>,
<dri-devel@...ts.freedesktop.org>, <linux-kernel@...r.kernel.org>,
<devarsht@...com>, <u-kumar1@...com>, <s-jain1@...com>,
<lyude@...hat.com>, <luca.ceresoli@...tlin.com>
Subject: Re: [PATCH v6 2/6] drm/bridge: cadence: cdns-mhdp8546*: Change
drm_connector from structure to pointer
On 9/9/25 19:42, Dmitry Baryshkov wrote:
> On Tue, Sep 09, 2025 at 02:38:20PM +0530, Harikrishna Shenoy wrote:
>> From: Jayesh Choudhary <j-choudhary@...com>
>>
>> After adding DBANC framework, mhdp->connector is not initialised during
>> bridge_attach(). The connector is however required in few driver calls
>> like cdns_mhdp_hdcp_enable() and cdns_mhdp_modeset_retry_fn().
>> Use drm_connector pointer instead of structure, set it in bridge_enable()
>> and clear it in bridge_disable(), and make appropriate changes.
>>
>> Fixes: c932ced6b585 ("drm/tidss: Update encoder/bridge chain connect model")
> Same question. If HDCP was broken, then this should be fixing
> 6a3608eae6d3 ("drm: bridge: cdns-mhdp8546: Enable HDCP") instead.
This patch fixes null pointer de-reference,for which we require
connector as pointer
and this patch aligns the driver to use pointer instead of connector
structure.
HDCP state change which was handled in connector helper, have moved it
to bridge helpers
in patch 6 of series.
Note:HDCP is not supported (Driver is used by only TI K3 Soc and HDCP is
not supported).
>
>> Signed-off-by: Jayesh Choudhary <j-choudhary@...com>
>> ---
>> drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 12 ++++++------
>> drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h | 2 +-
>> drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c | 8 ++++----
>> 3 files changed, 11 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h
>> index bad2fc0c7306..b297db53ba28 100644
>> --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h
>> +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h
>> @@ -375,7 +375,7 @@ struct cdns_mhdp_device {
>> */
>> struct mutex link_mutex;
>>
>> - struct drm_connector connector;
>> + struct drm_connector *connector;
>> struct drm_bridge bridge;
>>
>> struct cdns_mhdp_link link;
>> diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c
>> index 42248f179b69..59f18c3281ef 100644
>> --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c
>> +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c
>> @@ -394,7 +394,7 @@ static int _cdns_mhdp_hdcp_disable(struct cdns_mhdp_device *mhdp)
>> int ret;
>>
>> dev_dbg(mhdp->dev, "[%s:%d] HDCP is being disabled...\n",
>> - mhdp->connector.name, mhdp->connector.base.id);
>> + mhdp->connector->name, mhdp->connector->base.id);
>>
>> ret = cdns_mhdp_hdcp_set_config(mhdp, 0, false);
>>
>> @@ -445,7 +445,7 @@ static int cdns_mhdp_hdcp_check_link(struct cdns_mhdp_device *mhdp)
>>
>> dev_err(mhdp->dev,
>> "[%s:%d] HDCP link failed, retrying authentication\n",
>> - mhdp->connector.name, mhdp->connector.base.id);
>> + mhdp->connector->name, mhdp->connector->base.id);
>>
>> ret = _cdns_mhdp_hdcp_disable(mhdp);
>> if (ret) {
>> @@ -487,13 +487,13 @@ static void cdns_mhdp_hdcp_prop_work(struct work_struct *work)
>> struct cdns_mhdp_device *mhdp = container_of(hdcp,
>> struct cdns_mhdp_device,
>> hdcp);
>> - struct drm_device *dev = mhdp->connector.dev;
>> + struct drm_device *dev = mhdp->connector->dev;
>> struct drm_connector_state *state;
>>
>> drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
>> mutex_lock(&mhdp->hdcp.mutex);
>> if (mhdp->hdcp.value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
>> - state = mhdp->connector.state;
>> + state = mhdp->connector->state;
>> state->content_protection = mhdp->hdcp.value;
>> }
>> mutex_unlock(&mhdp->hdcp.mutex);
>> --
>> 2.34.1
>>
Powered by blists - more mailing lists