From nobody Mon Feb 9 05:06:49 2026 Received: from fllvem-ot04.ext.ti.com (fllvem-ot04.ext.ti.com [198.47.19.246]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E836222B8B9 for ; Wed, 21 May 2025 07:33:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.47.19.246 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747812807; cv=none; b=DpeQhF9UphQaUWkY7wkUU7k5yzQeUpqH95PCghPsvLTvaIr5A6fuGyKZFU4/vKhnGSONthm/692UzjIMyJVGnQvyJ3b2B/ZxZd5SMJKSNH3AYY+5FZ/Bsv1yrwQb7BRZtC3Ubhn1KEJw9kOP2AyvP874mvs/8Njzs859URISHw0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747812807; c=relaxed/simple; bh=I8Ykh65vPHTzVgLSZXoDXsnk85rbPPSfczOEZ7/zLkE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kWi9zajQ+eH86KyJ8qM15oFdORBc8SCoXNH/85Qws8ZgLdNdZHF/pJOZgg1Rcmb7it3fOQSxy+U7/HLwb0Yhrmmt6YlCZ8gwwDgmTI/6LlwNqbPtZwoTc8sABbe+V9GEDZ+NBRfpYkPBiBpZIiAqAL3P/AYzO+yZfw11jZlUnIU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com; spf=pass smtp.mailfrom=ti.com; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=QbJllpgh; arc=none smtp.client-ip=198.47.19.246 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ti.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="QbJllpgh" Received: from lelvem-sh02.itg.ti.com ([10.180.78.226]) by fllvem-ot04.ext.ti.com (8.15.2/8.15.2) with ESMTP id 54L7Wg7w272056; Wed, 21 May 2025 02:32:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1747812762; bh=ERFJooSfJlL9/YRWqddt2gXryT1aSLvVABRJgdqPkKk=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=QbJllpghKHT6Nhv6gjjdkIuSZ3K0T+OHsXP9QdlpGMpaA/GMxNHRE9mqAxDldrGHb PeNKxKawy5KNNXhV28NGt8dMGTW2r4aR9VHOzsnowUzmFN/KaUHMXeY+XQTpn1Ad/b fl2l5Jx6LcAtYGK5BnXJTtws9th3TCCSfwl571DU= Received: from DFLE100.ent.ti.com (dfle100.ent.ti.com [10.64.6.21]) by lelvem-sh02.itg.ti.com (8.18.1/8.18.1) with ESMTPS id 54L7Wg0o551172 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=FAIL); Wed, 21 May 2025 02:32:42 -0500 Received: from DFLE109.ent.ti.com (10.64.6.30) by DFLE100.ent.ti.com (10.64.6.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Wed, 21 May 2025 02:32:41 -0500 Received: from lelvsmtp6.itg.ti.com (10.180.75.249) by DFLE109.ent.ti.com (10.64.6.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Wed, 21 May 2025 02:32:41 -0500 Received: from localhost (jayesh-hp-z2-tower-g5-workstation.dhcp.ti.com [10.24.72.182]) by lelvsmtp6.itg.ti.com (8.15.2/8.15.2) with ESMTP id 54L7WeFQ068568; Wed, 21 May 2025 02:32:41 -0500 From: Jayesh Choudhary To: , , , , , , , CC: , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v2 1/3] drm/bridge: cadence: cdns-mhdp8546-core: Remove legacy support for connector initialisation in bridge Date: Wed, 21 May 2025 13:02:35 +0530 Message-ID: <20250521073237.366463-2-j-choudhary@ti.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250521073237.366463-1-j-choudhary@ti.com> References: <20250521073237.366463-1-j-choudhary@ti.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea Content-Type: text/plain; charset="utf-8" Now that we have DBANC framework, remove the connector initialisation code as that piece of code is not called if DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is used. Only TI K3 platforms consume this driver and tidss (their display controller) has this flag set. So this legacy support can be dropped. Signed-off-by: Jayesh Choudhary Reviewed-by: Andy Yan --- .../drm/bridge/cadence/cdns-mhdp8546-core.c | 186 +++--------------- 1 file changed, 25 insertions(+), 161 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/= gpu/drm/bridge/cadence/cdns-mhdp8546-core.c index b431e7efd1f0..66bd916c2fe9 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c @@ -1444,56 +1444,6 @@ static const struct drm_edid *cdns_mhdp_edid_read(st= ruct cdns_mhdp_device *mhdp, return drm_edid_read_custom(connector, cdns_mhdp_get_edid_block, mhdp); } =20 -static int cdns_mhdp_get_modes(struct drm_connector *connector) -{ - struct cdns_mhdp_device *mhdp =3D connector_to_mhdp(connector); - const struct drm_edid *drm_edid; - int num_modes; - - if (!mhdp->plugged) - return 0; - - drm_edid =3D cdns_mhdp_edid_read(mhdp, connector); - - drm_edid_connector_update(connector, drm_edid); - - if (!drm_edid) { - dev_err(mhdp->dev, "Failed to read EDID\n"); - return 0; - } - - num_modes =3D drm_edid_connector_add_modes(connector); - drm_edid_free(drm_edid); - - /* - * HACK: Warn about unsupported display formats until we deal - * with them correctly. - */ - if (connector->display_info.color_formats && - !(connector->display_info.color_formats & - mhdp->display_fmt.color_format)) - dev_warn(mhdp->dev, - "%s: No supported color_format found (0x%08x)\n", - __func__, connector->display_info.color_formats); - - if (connector->display_info.bpc && - connector->display_info.bpc < mhdp->display_fmt.bpc) - dev_warn(mhdp->dev, "%s: Display bpc only %d < %d\n", - __func__, connector->display_info.bpc, - mhdp->display_fmt.bpc); - - return num_modes; -} - -static int cdns_mhdp_connector_detect(struct drm_connector *conn, - struct drm_modeset_acquire_ctx *ctx, - bool force) -{ - struct cdns_mhdp_device *mhdp =3D connector_to_mhdp(conn); - - return cdns_mhdp_detect(mhdp); -} - static u32 cdns_mhdp_get_bpp(struct cdns_mhdp_display_fmt *fmt) { u32 bpp; @@ -1547,114 +1497,6 @@ bool cdns_mhdp_bandwidth_ok(struct cdns_mhdp_device= *mhdp, return true; } =20 -static -enum drm_mode_status cdns_mhdp_mode_valid(struct drm_connector *conn, - const struct drm_display_mode *mode) -{ - struct cdns_mhdp_device *mhdp =3D connector_to_mhdp(conn); - - 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 int cdns_mhdp_connector_atomic_check(struct drm_connector *conn, - struct drm_atomic_state *state) -{ - struct cdns_mhdp_device *mhdp =3D connector_to_mhdp(conn); - struct drm_connector_state *old_state, *new_state; - struct drm_crtc_state *crtc_state; - u64 old_cp, new_cp; - - if (!mhdp->hdcp_supported) - return 0; - - old_state =3D drm_atomic_get_old_connector_state(state, conn); - new_state =3D drm_atomic_get_new_connector_state(state, conn); - old_cp =3D old_state->content_protection; - new_cp =3D new_state->content_protection; - - if (old_state->hdcp_content_type !=3D new_state->hdcp_content_type && - new_cp !=3D DRM_MODE_CONTENT_PROTECTION_UNDESIRED) { - new_state->content_protection =3D DRM_MODE_CONTENT_PROTECTION_DESIRED; - goto mode_changed; - } - - if (!new_state->crtc) { - if (old_cp =3D=3D DRM_MODE_CONTENT_PROTECTION_ENABLED) - new_state->content_protection =3D DRM_MODE_CONTENT_PROTECTION_DESIRED; - return 0; - } - - if (old_cp =3D=3D new_cp || - (old_cp =3D=3D DRM_MODE_CONTENT_PROTECTION_DESIRED && - new_cp =3D=3D DRM_MODE_CONTENT_PROTECTION_ENABLED)) - return 0; - -mode_changed: - crtc_state =3D drm_atomic_get_new_crtc_state(state, new_state->crtc); - crtc_state->mode_changed =3D true; - - return 0; -} - -static const struct drm_connector_helper_funcs cdns_mhdp_conn_helper_funcs= =3D { - .detect_ctx =3D cdns_mhdp_connector_detect, - .get_modes =3D cdns_mhdp_get_modes, - .mode_valid =3D cdns_mhdp_mode_valid, - .atomic_check =3D cdns_mhdp_connector_atomic_check, -}; - -static const struct drm_connector_funcs cdns_mhdp_conn_funcs =3D { - .fill_modes =3D drm_helper_probe_single_connector_modes, - .atomic_duplicate_state =3D drm_atomic_helper_connector_duplicate_state, - .atomic_destroy_state =3D drm_atomic_helper_connector_destroy_state, - .reset =3D drm_atomic_helper_connector_reset, - .destroy =3D drm_connector_cleanup, -}; - -static int cdns_mhdp_connector_init(struct cdns_mhdp_device *mhdp) -{ - u32 bus_format =3D MEDIA_BUS_FMT_RGB121212_1X36; - struct drm_connector *conn =3D &mhdp->connector; - struct drm_bridge *bridge =3D &mhdp->bridge; - int ret; - - conn->polled =3D DRM_CONNECTOR_POLL_HPD; - - ret =3D drm_connector_init(bridge->dev, conn, &cdns_mhdp_conn_funcs, - DRM_MODE_CONNECTOR_DisplayPort); - if (ret) { - dev_err(mhdp->dev, "Failed to initialize connector with drm\n"); - return ret; - } - - drm_connector_helper_add(conn, &cdns_mhdp_conn_helper_funcs); - - ret =3D drm_display_info_set_bus_formats(&conn->display_info, - &bus_format, 1); - if (ret) - return ret; - - ret =3D drm_connector_attach_encoder(conn, bridge->encoder); - if (ret) { - dev_err(mhdp->dev, "Failed to attach connector to encoder\n"); - return ret; - } - - if (mhdp->hdcp_supported) - ret =3D drm_connector_attach_content_protection_property(conn, true); - - return ret; -} - static int cdns_mhdp_attach(struct drm_bridge *bridge, struct drm_encoder *encoder, enum drm_bridge_attach_flags flags) @@ -1671,9 +1513,11 @@ static int cdns_mhdp_attach(struct drm_bridge *bridg= e, return ret; =20 if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) { - ret =3D cdns_mhdp_connector_init(mhdp); - if (ret) - goto aux_unregister; + ret =3D -EINVAL; + dev_err(mhdp->dev, + "Connector initialisation not supported in bridge_attach %d\n", + ret); + goto aux_unregister; } =20 spin_lock(&mhdp->start_lock); @@ -2158,6 +2002,25 @@ static const struct drm_edid *cdns_mhdp_bridge_edid_= read(struct drm_bridge *brid return cdns_mhdp_edid_read(mhdp, connector); } =20 +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 =3D 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 =3D { .atomic_enable =3D cdns_mhdp_atomic_enable, .atomic_disable =3D cdns_mhdp_atomic_disable, @@ -2172,6 +2035,7 @@ static const struct drm_bridge_funcs cdns_mhdp_bridge= _funcs =3D { .edid_read =3D cdns_mhdp_bridge_edid_read, .hpd_enable =3D cdns_mhdp_bridge_hpd_enable, .hpd_disable =3D cdns_mhdp_bridge_hpd_disable, + .mode_valid =3D cdns_mhdp_bridge_mode_valid, }; =20 static bool cdns_mhdp_detect_hpd(struct cdns_mhdp_device *mhdp, bool *hpd_= pulse) --=20 2.34.1 From nobody Mon Feb 9 05:06:49 2026 Received: from fllvem-ot03.ext.ti.com (fllvem-ot03.ext.ti.com [198.47.19.245]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2D7C1FF7B3 for ; Wed, 21 May 2025 07:33:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.47.19.245 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747812807; cv=none; b=Ew3+lgy0eGdQMDQ3IS9cguQi5UDwkLEf9cq+otWuWTn3iskczk/fKYdXhQvrRyZfndLg4sr4YkYZBi0kL97gZwTGz1G9zAA2a6LO+qdAFhTN8OGaW2KXhv+rR/VqUE3B8npH9AUeZfmoYuS271zs/pT1k1GT6wVjGxEZ+Yaw2gs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747812807; c=relaxed/simple; bh=pGCewBvUQcajbnqPcdoM/Wht0W9seRzI2RdA1UbW0ag=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hmBKBZc2Uch6UvHWNTHYai7T68ENCz6c0Qu2IZF6ViMfsZ1EnYtXcKCVisHflrBAif/jVxsxltW2RfmolKWZKidgL0tmnW8/Wny42WPh8eAS6Iq/he+1ruc9KDQxnPtF+36QwtpzF50tIq8HhQybuNEjeCC97Shx8MiuIpX2M8U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com; spf=pass smtp.mailfrom=ti.com; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=wesQXpKF; arc=none smtp.client-ip=198.47.19.245 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ti.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="wesQXpKF" Received: from fllvem-sh03.itg.ti.com ([10.64.41.86]) by fllvem-ot03.ext.ti.com (8.15.2/8.15.2) with ESMTP id 54L7Wign1453527; Wed, 21 May 2025 02:32:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1747812764; bh=yVSr3YB+2nlZq6UOXBQ0B15Z+eKkYbvipMs0niL+ABg=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=wesQXpKF6S6PsVRyR2I+0ag+yuofWj6o4DUOQoxL+L4as0GkkXBGeWpwUSg3pDmCd 5Hs5CxVYOfdH5C2Yf8inK+mJCv+zO4Xq8Id272JeEbBJAIOIcOJkECyQXo1Hx786k3 lIjJocZ4Ix7rn2xQCg6KLLqjRXfNucTvR22/vUTA= Received: from DFLE113.ent.ti.com (dfle113.ent.ti.com [10.64.6.34]) by fllvem-sh03.itg.ti.com (8.18.1/8.18.1) with ESMTPS id 54L7WiTb2560693 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=FAIL); Wed, 21 May 2025 02:32:44 -0500 Received: from DFLE111.ent.ti.com (10.64.6.32) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Wed, 21 May 2025 02:32:43 -0500 Received: from lelvsmtp6.itg.ti.com (10.180.75.249) by DFLE111.ent.ti.com (10.64.6.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Wed, 21 May 2025 02:32:43 -0500 Received: from localhost (jayesh-hp-z2-tower-g5-workstation.dhcp.ti.com [10.24.72.182]) by lelvsmtp6.itg.ti.com (8.15.2/8.15.2) with ESMTP id 54L7WgVb068580; Wed, 21 May 2025 02:32:43 -0500 From: Jayesh Choudhary To: , , , , , , , CC: , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v2 2/3] drm/bridge: cadence: cdns-mhdp8546*: Change drm_connector from pointer to structure Date: Wed, 21 May 2025 13:02:36 +0530 Message-ID: <20250521073237.366463-3-j-choudhary@ti.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250521073237.366463-1-j-choudhary@ti.com> References: <20250521073237.366463-1-j-choudhary@ti.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea Content-Type: text/plain; charset="utf-8" After adding DBANC framework, mhdp->connector is not initialised during bridge calls. But the asyncronous work scheduled depends on the connector. We cannot get to drm_atomic_state in these asyncronous calls running on worker threads. So we need to store the data that we need in mhdp bridge structure. Like other bridge drivers, use drm_connector pointer instead of structure and make appropriate changes to the conditionals and assignments related to mhdp->connector. Also, in the atomic enable call, move the connector and connector state calls above, so that we do have a connector before we can retry the asyncronous work in case of any failure. Fixes: fb43aa0acdfd ("drm: bridge: Add support for Cadence MHDP8546 DPI/DP = bridge") Signed-off-by: Jayesh Choudhary --- .../drm/bridge/cadence/cdns-mhdp8546-core.c | 28 +++++++++---------- .../drm/bridge/cadence/cdns-mhdp8546-core.h | 2 +- .../drm/bridge/cadence/cdns-mhdp8546-hdcp.c | 8 +++--- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/= gpu/drm/bridge/cadence/cdns-mhdp8546-core.c index 66bd916c2fe9..5388e62f230b 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c @@ -740,7 +740,7 @@ static void cdns_mhdp_fw_cb(const struct firmware *fw, = void *context) bridge_attached =3D mhdp->bridge_attached; spin_unlock(&mhdp->start_lock); if (bridge_attached) { - if (mhdp->connector.dev) + if (mhdp->connector) drm_kms_helper_hotplug_event(mhdp->bridge.dev); else drm_bridge_hpd_notify(&mhdp->bridge, cdns_mhdp_detect(mhdp)); @@ -1759,17 +1759,25 @@ static void cdns_mhdp_atomic_enable(struct drm_brid= ge *bridge, struct cdns_mhdp_device *mhdp =3D bridge_to_mhdp(bridge); struct cdns_mhdp_bridge_state *mhdp_state; struct drm_crtc_state *crtc_state; - struct drm_connector *connector; struct drm_connector_state *conn_state; struct drm_bridge_state *new_state; const struct drm_display_mode *mode; u32 resp; - int ret; + int ret =3D 0; =20 dev_dbg(mhdp->dev, "bridge enable\n"); =20 mutex_lock(&mhdp->link_mutex); =20 + mhdp->connector =3D drm_atomic_get_new_connector_for_encoder(state, + bridge->encoder); + if (WARN_ON(!mhdp->connector)) + goto out; + + conn_state =3D drm_atomic_get_new_connector_state(state, mhdp->connector); + if (WARN_ON(!conn_state)) + goto out; + if (mhdp->plugged && !mhdp->link_up) { ret =3D cdns_mhdp_link_up(mhdp); if (ret < 0) @@ -1789,15 +1797,6 @@ static void cdns_mhdp_atomic_enable(struct drm_bridg= e *bridge, cdns_mhdp_reg_write(mhdp, CDNS_DPTX_CAR, resp | CDNS_VIF_CLK_EN | CDNS_VIF_CLK_RSTN); =20 - connector =3D drm_atomic_get_new_connector_for_encoder(state, - bridge->encoder); - if (WARN_ON(!connector)) - goto out; - - conn_state =3D drm_atomic_get_new_connector_state(state, connector); - if (WARN_ON(!conn_state)) - goto out; - if (mhdp->hdcp_supported && mhdp->hw_state =3D=3D MHDP_HW_READY && conn_state->content_protection =3D=3D @@ -1857,6 +1856,7 @@ static void cdns_mhdp_atomic_disable(struct drm_bridg= e *bridge, cdns_mhdp_hdcp_disable(mhdp); =20 mhdp->bridge_enabled =3D false; + mhdp->connector =3D NULL; cdns_mhdp_reg_read(mhdp, CDNS_DP_FRAMER_GLOBAL_CONFIG, &resp); resp &=3D ~CDNS_DP_FRAMER_EN; resp |=3D CDNS_DP_NO_VIDEO_MODE; @@ -2157,7 +2157,7 @@ static void cdns_mhdp_modeset_retry_fn(struct work_st= ruct *work) =20 mhdp =3D container_of(work, typeof(*mhdp), modeset_retry_work); =20 - conn =3D &mhdp->connector; + conn =3D mhdp->connector; =20 /* Grab the locks before changing connector property */ mutex_lock(&conn->dev->mode_config.mutex); @@ -2234,7 +2234,7 @@ static void cdns_mhdp_hpd_work(struct work_struct *wo= rk) int ret; =20 ret =3D cdns_mhdp_update_link_status(mhdp); - if (mhdp->connector.dev) { + if (mhdp->connector) { if (ret < 0) schedule_work(&mhdp->modeset_retry_work); else 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; =20 - struct drm_connector connector; + struct drm_connector *connector; struct drm_bridge bridge; =20 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_dev= ice *mhdp) int ret; =20 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); =20 ret =3D cdns_mhdp_hdcp_set_config(mhdp, 0, false); =20 @@ -445,7 +445,7 @@ static int cdns_mhdp_hdcp_check_link(struct cdns_mhdp_d= evice *mhdp) =20 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); =20 ret =3D _cdns_mhdp_hdcp_disable(mhdp); if (ret) { @@ -487,13 +487,13 @@ static void cdns_mhdp_hdcp_prop_work(struct work_stru= ct *work) struct cdns_mhdp_device *mhdp =3D container_of(hdcp, struct cdns_mhdp_device, hdcp); - struct drm_device *dev =3D mhdp->connector.dev; + struct drm_device *dev =3D mhdp->connector->dev; struct drm_connector_state *state; =20 drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); mutex_lock(&mhdp->hdcp.mutex); if (mhdp->hdcp.value !=3D DRM_MODE_CONTENT_PROTECTION_UNDESIRED) { - state =3D mhdp->connector.state; + state =3D mhdp->connector->state; state->content_protection =3D mhdp->hdcp.value; } mutex_unlock(&mhdp->hdcp.mutex); --=20 2.34.1 From nobody Mon Feb 9 05:06:49 2026 Received: from fllvem-ot03.ext.ti.com (fllvem-ot03.ext.ti.com [198.47.19.245]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2DF222B5AB for ; Wed, 21 May 2025 07:33:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.47.19.245 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747812807; cv=none; b=gFm/pz5TIYXdKMD7mzEmbvj6HDGroosbeniuSMnGbrFSpHGMLZ0Ps3bSJLfZVfk+f4pD5YDg+KJryusxiE/MCRn58ir9hGkM0fRbqH8AVllnbjFw2ogUEZcaUe6hEayfYC0GGYbgXlHoyvUUCoGd5p+o0Nl+UxsJWogX69pZnUI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747812807; c=relaxed/simple; bh=4xy0GtmVIfQ2QmtWEg3U4POfKZANBBL/YbFJJPsQhnk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=t4LhAUuXJr/aGxyMrO00k+iqG9q8viWS6ccFjG+eJf8HOgbUAIR0fya27JW63cP5NLf1xXK8O7R4OSRys11MVbHZUeSY5+gGUlpQiK6E0nSILQsPqHRHgJyrcR5F0n9bPXSdq0fMGkhdf3KgJ9YdhHhRI9Rjgp2H1m4tGq4xoTI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com; spf=pass smtp.mailfrom=ti.com; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b=wMajyIMe; arc=none smtp.client-ip=198.47.19.245 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=ti.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ti.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ti.com header.i=@ti.com header.b="wMajyIMe" Received: from lelvem-sh02.itg.ti.com ([10.180.78.226]) by fllvem-ot03.ext.ti.com (8.15.2/8.15.2) with ESMTP id 54L7Wksa1453531; Wed, 21 May 2025 02:32:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1747812766; bh=wnVuh0PbidAUtWt49KC5+f9+/6VHlmPLQ1bqwa8wfnc=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=wMajyIMekHJWqr+Pv4nTna5cTslglswOn4SuQvPcRWTt3+ZBtm/xaNquyoz7IbJ9M 5RIDw+BjiIah3HKS00MygD8Ukp2wa8THFiyaI16F8iCE8R4Prp2YmSdcMygbN81rfD wQABbkUjmur5sKTXZHDiTp5yuVwER2KB5eHDL/XM= Received: from DFLE100.ent.ti.com (dfle100.ent.ti.com [10.64.6.21]) by lelvem-sh02.itg.ti.com (8.18.1/8.18.1) with ESMTPS id 54L7Wk0I551191 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=FAIL); Wed, 21 May 2025 02:32:46 -0500 Received: from DFLE111.ent.ti.com (10.64.6.32) by DFLE100.ent.ti.com (10.64.6.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Wed, 21 May 2025 02:32:45 -0500 Received: from lelvsmtp6.itg.ti.com (10.180.75.249) by DFLE111.ent.ti.com (10.64.6.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Wed, 21 May 2025 02:32:45 -0500 Received: from localhost (jayesh-hp-z2-tower-g5-workstation.dhcp.ti.com [10.24.72.182]) by lelvsmtp6.itg.ti.com (8.15.2/8.15.2) with ESMTP id 54L7WimM068593; Wed, 21 May 2025 02:32:45 -0500 From: Jayesh Choudhary To: , , , , , , , CC: , , , , , , , , , , , , , , , , , , , Subject: [RFC PATCH v2 3/3] drm/bridge: cadence: cdns-mhdp8546-core: Reduce log level for DPCD read/write Date: Wed, 21 May 2025 13:02:37 +0530 Message-ID: <20250521073237.366463-4-j-choudhary@ti.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250521073237.366463-1-j-choudhary@ti.com> References: <20250521073237.366463-1-j-choudhary@ti.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea Content-Type: text/plain; charset="utf-8" Reduce the log level for cdns_mhdp_dpcd_read and cdns_mhdp_dpcd_write errors in cdns_mhdp_transfer function as in case of failure, there is flooding of these prints along with other indicators like EDID failure logs which are fairly intuitive in themselves rendering these error logs useless. Also, the caller functions for the cdns_mhdp_transfer in drm_dp_helper.c (which calls it 32 times), has debug log level in case transfer fails. So having a superseding log level in cdns_mhdp_transfer seems bad. Signed-off-by: Jayesh Choudhary --- drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/= gpu/drm/bridge/cadence/cdns-mhdp8546-core.c index 5388e62f230b..71d35d0d3e74 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c @@ -782,7 +782,7 @@ static ssize_t cdns_mhdp_transfer(struct drm_dp_aux *au= x, if (!ret) continue; =20 - dev_err(mhdp->dev, + dev_dbg(mhdp->dev, "Failed to write DPCD addr %u\n", msg->address + i); =20 @@ -792,7 +792,7 @@ static ssize_t cdns_mhdp_transfer(struct drm_dp_aux *au= x, ret =3D cdns_mhdp_dpcd_read(mhdp, msg->address, msg->buffer, msg->size); if (ret) { - dev_err(mhdp->dev, + dev_dbg(mhdp->dev, "Failed to read DPCD addr %u\n", msg->address); =20 --=20 2.34.1