From nobody Thu Oct 9 00:04:26 2025 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 D5B6823E359 for ; Tue, 24 Jun 2025 05:45:36 +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=1750743938; cv=none; b=R4J/ylGGA/e/R99/yn6SIFpDOZzQRq7S2A0oOSB3NkmkaBTfxVB/wkt7lLhqIAAaeIUZ7OKDXozvh1WVj8FnUi8KNoq9DV67MhKM/gFtc2lyIxJ30/fzVpAhTMRUai9gQCnsuUuSfjrNK6Uad3z/JWyxf/ax0gcSwctutVG0cpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750743938; c=relaxed/simple; bh=0Q4eWHuDIjsNLuAD2efisNWMnDX/t5GYKvZ3RgtlRLU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=u4L+h+nO/Axem2/D+l8t7kvcRVaN/EMGvMdWxz5VAR7Tok9bRGbLg+QJDyUWEhnmg1L4gsysSNrjQcWk2wtO/jf26ceAsoOhWsh1YhhbNT7XurldpgS7iDyQjj9OJx5gyib+izkEWUiwdsKEjtS7tjejEGtauFcFzlpXEWbBCyI= 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=mB8EvmzJ; 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="mB8EvmzJ" Received: from lelvem-sh01.itg.ti.com ([10.180.77.71]) by fllvem-ot03.ext.ti.com (8.15.2/8.15.2) with ESMTP id 55O5isbo1461670; Tue, 24 Jun 2025 00:44:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1750743894; bh=QKmSv3wno1HYmCX/bER/i4oGKbcRPYWiMqv6gdaZ54Y=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=mB8EvmzJDgs9VSB68OqaTDQSd1XCMiXFBZHrsdo1erEUFWIuO+5Ge1TQnltRAs8c2 3L2PJ9ls3mKW6K1XcMWtVkn5k0YgfN7BaW703fETKa1OyZdeeNC7q+kXzu42F6qjBA fn+088aDaQM0VqYn5guNaCNCuKi4UQ+/Zvo3q8xE= Received: from DLEE112.ent.ti.com (dlee112.ent.ti.com [157.170.170.23]) by lelvem-sh01.itg.ti.com (8.18.1/8.18.1) with ESMTPS id 55O5irQj1240895 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA256 bits=128 verify=FAIL); Tue, 24 Jun 2025 00:44:53 -0500 Received: from DLEE107.ent.ti.com (157.170.170.37) by DLEE112.ent.ti.com (157.170.170.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.55; Tue, 24 Jun 2025 00:44:53 -0500 Received: from lelvem-mr06.itg.ti.com (10.180.75.8) by DLEE107.ent.ti.com (157.170.170.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.55 via Frontend Transport; Tue, 24 Jun 2025 00:44:53 -0500 Received: from localhost (jayesh-hp-z2-tower-g5-workstation.dhcp.ti.com [172.24.227.214]) by lelvem-mr06.itg.ti.com (8.18.1/8.18.1) with ESMTP id 55O5iqeE961978; Tue, 24 Jun 2025 00:44:52 -0500 From: Jayesh Choudhary To: , , , , , , , , CC: , , , , , , , , , , , , , , Subject: [PATCH v4 2/5] drm/bridge: cadence: cdns-mhdp8546*: Change drm_connector from structure to pointer Date: Tue, 24 Jun 2025 11:14:45 +0530 Message-ID: <20250624054448.192801-3-j-choudhary@ti.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250624054448.192801-1-j-choudhary@ti.com> References: <20250624054448.192801-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_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") Signed-off-by: Jayesh Choudhary --- 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.c b/drivers/= gpu/drm/bridge/cadence/cdns-mhdp8546-core.c index 6e78c337fdfa..1136daaa6c90 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c @@ -1755,7 +1755,6 @@ static void cdns_mhdp_atomic_enable(struct drm_bridge= *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; @@ -1785,12 +1784,12 @@ static void cdns_mhdp_atomic_enable(struct drm_brid= ge *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)) + mhdp->connector =3D drm_atomic_get_new_connector_for_encoder(state, + bridge->encoder); + if (WARN_ON(!mhdp->connector)) goto out; =20 - conn_state =3D drm_atomic_get_new_connector_state(state, connector); + conn_state =3D drm_atomic_get_new_connector_state(state, mhdp->connector); if (WARN_ON(!conn_state)) goto out; =20 @@ -1853,6 +1852,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; @@ -2133,7 +2133,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); 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