[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1863b264-98fe-42c6-ba0a-c9e1ba74774b@ti.com>
Date: Mon, 24 Nov 2025 15:00:46 +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 RESEND v9 2/6] drm/bridge: cadence: cdns-mhdp8546-core:
Add mode_valid hook to drm_bridge_funcs
On 21/11/25 18:13, Tomi Valkeinen wrote:
> Hi,
>
> On 20/11/2025 14:14, Harikrishna Shenoy wrote:
>> From: Jayesh Choudhary <j-choudhary@...com>
>>
>> Add cdns_mhdp_bridge_mode_valid() to check if specific mode is valid for
>> this bridge or not. In the legacy usecase with
>> !DRM_BRIDGE_ATTACH_NO_CONNECTOR we were using the hook from
>> drm_connector_helper_funcs but with DRM_BRIDGE_ATTACH_NO_CONNECTOR
>> we need to have mode_valid() in drm_bridge_funcs.
>
> This looks fine, but a fix should always explain what the issue is. What
> is the behavior without this patch, if DRM_BRIDGE_ATTACH_NO_CONNECTOR is
> set?
>
> Tomi
Hi Tomi,
Without this patch some modes which should get rejected based on
bandwidth requirement will not be rejected as mode check/validation will
not hit 'cdns_mhdp_bandwidth_ok'as with DRM_BRIDGE_ATTACH_NO_CONNECTOR
flag set we use hooks from drm_bridge_funcs.
will include this in commit message.
Regards,
Hari
>
>> Fixes: c932ced6b585 ("drm/tidss: Update encoder/bridge chain connect model")
>> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@...asonboard.com>
>> Signed-off-by: Jayesh Choudhary <j-choudhary@...com>
>> Signed-off-by: Harikrishna Shenoy <h-shenoy@...com>
>> ---
>> .../drm/bridge/cadence/cdns-mhdp8546-core.c | 20 +++++++++++++++++++
>> 1 file changed, 20 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
>> index f3076e9cdabbe..7178a01e4d4d8 100644
>> --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
>> +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
>> @@ -2162,6 +2162,25 @@ static const struct drm_edid *cdns_mhdp_bridge_edid_read(struct drm_bridge *brid
>> return cdns_mhdp_edid_read(mhdp, connector);
>> }
>>
>> +static enum drm_mode_status
>> +cdns_mhdp_bridge_mode_valid(struct drm_bridge *bridge,
>> + const struct drm_display_info *info,
>> + const struct drm_display_mode *mode)
>> +{
>> + struct cdns_mhdp_device *mhdp = bridge_to_mhdp(bridge);
>> +
>> + mutex_lock(&mhdp->link_mutex);
>> +
>> + if (!cdns_mhdp_bandwidth_ok(mhdp, mode, mhdp->link.num_lanes,
>> + mhdp->link.rate)) {
>> + mutex_unlock(&mhdp->link_mutex);
>> + return MODE_CLOCK_HIGH;
>> + }
>> +
>> + mutex_unlock(&mhdp->link_mutex);
>> + return MODE_OK;
>> +}
>> +
>> static const struct drm_bridge_funcs cdns_mhdp_bridge_funcs = {
>> .atomic_enable = cdns_mhdp_atomic_enable,
>> .atomic_disable = cdns_mhdp_atomic_disable,
>> @@ -2176,6 +2195,7 @@ static const struct drm_bridge_funcs cdns_mhdp_bridge_funcs = {
>> .edid_read = cdns_mhdp_bridge_edid_read,
>> .hpd_enable = cdns_mhdp_bridge_hpd_enable,
>> .hpd_disable = cdns_mhdp_bridge_hpd_disable,
>> + .mode_valid = cdns_mhdp_bridge_mode_valid,
>> };
>>
>> static bool cdns_mhdp_detect_hpd(struct cdns_mhdp_device *mhdp, bool *hpd_pulse)
>
Powered by blists - more mailing lists