From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 493C83B27FC for ; Mon, 20 Jul 2026 06:11:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784527924; cv=none; b=Pv0yBjjhexrfgJS27+q7CdspYNdmVEW9FWPOXQQNgfhdyHxnRQch0k4WP5qAwVCqTbL8bi9FXQ7MknGKnsmbIU2foQAF0bVuNTdfS/c9+Ps3iKB13LXnEnkAX1GeCqEEjBeCHA10oyve6ZJxqswkMY1FJXj5N24NKrQViBYk0TA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784527924; c=relaxed/simple; bh=iJwLCpzlsBGfwCY2/7QRL+lJXpcG2vTyp3jMaoa9lNE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=irLkGE+ms6B1Ktf5k0P25rpXe7W1OGyoUu9mn/JS9BL8HqFQfmsUNidY3XJzFixJDkYKZOXsVuDUWklxISqwz1d3lvjZ/RBcpqTkFDVFPn/mLwIbsGwolnuMKCsLhxgdX1it4rXwSJb744jK0V75GfXG9wCSuvAjSn64FzRNuCQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=nfc0b8yc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jM5my5zE; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="nfc0b8yc"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jM5my5zE" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66JNvNSv649802 for ; Mon, 20 Jul 2026 06:11:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= lhiQV8OxOvmaAeJu25Jj+stsPzIy4U8Brw014ne08/0=; b=nfc0b8ycJqKhwX1V 561eSKp5y8FsK24IQle6o8A8IY2nzy51gRhYdzDVwhTIxxd4lqFovZ0DitA+avkg IuaQvUtmrPEvhpTZQL3JQmHLSzRQeGPoQLxko9CtaO85s/LkKAeXwA0FWFhgQi0b ATiRhL/43wz+dlR7YbzgT3N2o0T8ll5f1nWe3g93ioopqcNWz60YF+BDuJKYfmPI tBBTj+COb4cGR+1NU6SNb5s1JYEvJqHXPvU/6E7iMQ6RGHXZTIG/NnZT9A9MDYxV J0UEyrh1oV7Fc6cobkZb5WXxs/45FDXtCCrypGnnVUXJQ4x0P6i2y60amzYWC/uf lIFETw== Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fg2bvvn4m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Jul 2026 06:11:50 +0000 (GMT) Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-8e9489f62bfso216591596d6.2 for ; Sun, 19 Jul 2026 23:11:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784527910; x=1785132710; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lhiQV8OxOvmaAeJu25Jj+stsPzIy4U8Brw014ne08/0=; b=jM5my5zEzbFPd8UwBc1/YwG4nx3A+QTjzwKxpf/6kc5NdvQ0QxIc3FdcBw//cHm4lr V9UeKs54NkaZTBH7zwS0wYXRB11fqcULLMleSGLAfDpWEjMY/gQaFmZKXoIoiaJeg8Pq ppWc/zakA2o183y/METG45xv0RoGPUp6MjwSOJPExstDRpAVAgzn9Hhq2yv2OLOCbPRf 6+nwSJTLQJ3/RduSK1hpZ9J4M64+veZQi58EDOR0Loi5ncRWAEMpRB9JLoSSeR9A5yhT FyC+UsyR9jgQowjlx0CUNNWbY4hFHucnsSXKyVXd+6EZZIPkAq65CT0wdsS/5hcqJgqR Fchg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784527910; x=1785132710; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=lhiQV8OxOvmaAeJu25Jj+stsPzIy4U8Brw014ne08/0=; b=NNZNLXpS2Iy9msH2jJHW9FtATKtF6P1itD8X3nkNZgDE4VwFzy+NrzDaHeJH5A6SrY gg+ld2nzxVnZlzYn3km/aKiERZtOhYrMmC/FCJH5qt3h4sr8CWEaqiE7UP9ePMvExqZR jQdQMCYr1GPJd5TAZ7Z/6uv60tT0sLtu7FAfhqNMT1IQY5MnTWUt4+GrhLi2gpgyjnUz w9M+sfqKH/KZrMuVIiISPDStSCcW4Ohr8hJ363+rxmn/oiZGB/M8wUTBCDs/8q/HZ9gy 4q7cNrV5//95Qi4K0f4hzTuRgv0klYx3RpCKRppqXtE9Sm2YwDIAH00pVJoxExE+6dde ET6Q== X-Forwarded-Encrypted: i=1; AHgh+RpJXGAJD0IbYWzTs13eNh5tHZYK0ciMivmLQ83SnJCj73Se3BNKacNkjHNB1hMztwCULy8FFLzLdklAEiI=@vger.kernel.org X-Gm-Message-State: AOJu0Yyj529IuBrNSnJfD95/V1jD0mqKAyPbimPu9cuzZ7HgEwV8XbfQ HXXrrwbo9hDTu5W6ZlGQGXXScBH6vRZXxBsRgYpiAqTZogN1IfjP2oXyUkXazkiVlZ+6V5CerYG aDSRW5gWQMdxpdHTvmbqFCQa2wLJtG+G7mr/OIUgHgsXXLlj9hdQP9XYaTRao0gC2RTc= X-Gm-Gg: AfdE7clEqk05rRIYYBw5o5+CVvWKEko4txpgzpP8w5pCLwLZ//1AsLZS3zlvjvxEU7Y toFumRXzlU5e8E2HUQeOaPzuCBJgVrZxr4cCtMW+ESfr/cRjM76tuWX6WnVeXlk1JJ5wh+umV4d Xuc7maTD9EU1KU7nvcRAhS9CZJVru90QR96u2ngc0ct97vujPGKJZJYRzj3QXwiE2WtMxGXmZpU 3/KsftpqCc0raeNJT5qfTvVBsYhFyd8rsnyKv3At/6Ec/o7FP/s9BAnw5NYSiZ7qS9YMKkdQOvr MAiW6RnXT82eMmuj4b0Ls9dibcpfMeTgHPcPBY0TLqqk9StbryLiJuJ837CZ7OUeLpC9DduL71Q jBWbajaMi3PiIzhw9U1C8solG4ggnID+ZkH+iXQfebt8JUbotaI+gB71q5T7fDbQ= X-Received: by 2002:a05:6214:c48:b0:8e9:78d7:6b98 with SMTP id 6a1803df08f44-90778353e4emr120793896d6.6.1784527909691; Sun, 19 Jul 2026 23:11:49 -0700 (PDT) X-Received: by 2002:a05:6214:c48:b0:8e9:78d7:6b98 with SMTP id 6a1803df08f44-90778353e4emr120793766d6.6.1784527909281; Sun, 19 Jul 2026 23:11:49 -0700 (PDT) Received: from yongmou2.ap.qualcomm.com (Global_NAT1_IAD_FW.qualcomm.com. [129.46.232.65]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-90778588a39sm84793216d6.20.2026.07.19.23.11.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2026 23:11:49 -0700 (PDT) From: Yongxing Mou Date: Mon, 20 Jul 2026 14:08:20 +0800 Subject: [PATCH v8 13/15] drm/msm/dp: make bridge helpers use dp_display to allow re-use Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260720-dp_mstclean-v8-13-bea261bf4e7d@oss.qualcomm.com> References: <20260720-dp_mstclean-v8-0-bea261bf4e7d@oss.qualcomm.com> In-Reply-To: <20260720-dp_mstclean-v8-0-bea261bf4e7d@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Yongxing Mou , Abhinav Kumar , Dmitry Baryshkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784527840; l=8509; i=yongxing.mou@oss.qualcomm.com; s=20250910; h=from:subject:message-id; bh=DdyEaeCdVA9QEZM1o4gUYj/xzzxduNmsf5XNmE5oshE=; b=TQ1HKjVi2QpOVMyigPVcFMvgitfp52W/1+G1F0F9EQjeqDFFNC/ivzXG6THNvTfYwih7i0S9U l7S2uxAfNWbB5D3/UO+WFvA3lXbo08XfWOHY+V1eCYPBqH7pFxxTSHE X-Developer-Key: i=yongxing.mou@oss.qualcomm.com; a=ed25519; pk=rAy5J1eP+V7OXqH5FJ7ngMCtUrnHhut30ZTldOj52UM= X-Proofpoint-GUID: 6s_qUMxVHAc9ZIp0igSpVg708bmF5X43 X-Authority-Analysis: v=2.4 cv=EcH4hvmC c=1 sm=1 tr=0 ts=6a5dbc26 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=C3Dk8TwHQYyIj7nOf9RCJw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=COk6AnOGAAAA:8 a=EUspDBNiAAAA:8 a=LmD7BKvqrCyCckpIDn8A:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIwMDA2NyBTYWx0ZWRfX5Vh9NqiWyCSK o70538pvnN4N8PnpsX/iW6X4XhLuqHpK3ZiV4YVbSMIfWnNbPzsOrONPCLPqLLWQepuQW7MrkZR v2ep6/gFR9ivTDtZxSor/wEf6PP2gkZySG0pdbveUas/bUOwDHvLLQRIink24RZV+W3ARo8tFly QnngxYR/OY9sf3kNWNCXhgTSHvFI5VdcihUZD1BN9nPW6fYjoQfj4o+4xxrC9B6LacOC2Ru65WW 9vyrG3IXfZNmTSTgalMWTMfPv3vqDqnNK4r+6GcvclCpkhYerIdrxjpnSHfOKRyMbOnQiy6eG68 CqD0nnvDZeOP88HbrSbx5UvDlJ+7wPRh+XRW/IMpdcBU6lMR+HD4caQXNSVjR3tq8fGuyRip7AC ZIQyLTDVRJfGDHW++CwZTKc777i656sy3T82tk5nNZ8AJ+OroGGWWAf4MYZJNBehIXbWJ74yUQk KkqFiLGMVQs9r+gm3nA== X-Proofpoint-ORIG-GUID: 6s_qUMxVHAc9ZIp0igSpVg708bmF5X43 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIwMDA2NyBTYWx0ZWRfXzc2E2ZFozrMg 4Kg5Kje2c4ZmJrEnLwrbtMk/cOLe5/C9/zQilOIPpk54uCkrEQkBqiexE5qraZgGTDlfSS/OiqB YBqacGXZqahvxM3JWmnBQYEuq74aGFE= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-19_08,2026-07-17_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 clxscore=1015 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607200067 From: Abhinav Kumar dp_bridge helpers take drm_bridge as an input and extract the dp_display object to be used in the dp_display module. Rather than doing it in a roundabout way, directly pass the dp_display object to these helpers so that the MST bridge can also re-use the same helpers. Signed-off-by: Abhinav Kumar Signed-off-by: Yongxing Mou Reviewed-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/dp/dp_display.c | 29 +++++++++------------------ drivers/gpu/drm/msm/dp/dp_display.h | 7 +++++++ drivers/gpu/drm/msm/dp/dp_drm.c | 39 ++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/msm/dp/dp_drm.h | 9 --------- 4 files changed, 54 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index d1a3a6f6c303..deb21cee1183 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -740,24 +740,21 @@ static int msm_dp_display_disable(struct msm_dp_display_private *dp) /** * msm_dp_bridge_mode_valid - callback to determine if specified mode is valid - * @bridge: Pointer to drm bridge structure + * @dp: Pointer to dp display structure * @info: display info * @mode: Pointer to drm mode structure * Returns: Validity status for specified mode */ -enum drm_mode_status msm_dp_bridge_mode_valid(struct drm_bridge *bridge, - const struct drm_display_info *info, - const struct drm_display_mode *mode) +enum drm_mode_status msm_dp_display_mode_valid(struct msm_dp *dp, + const struct drm_display_info *info, + const struct drm_display_mode *mode) { const u32 num_components = 3, default_bpp = 24; struct msm_dp_display_private *msm_dp_display; struct msm_dp_link_info *link_info; u32 mode_rate_khz = 0, supported_rate_khz = 0, mode_bpp = 0; - struct msm_dp *dp; int mode_pclk_khz = mode->clock; - dp = to_dp_bridge(bridge)->msm_dp_display; - if (!dp || !mode_pclk_khz || !dp->connector) { DRM_ERROR("invalid params\n"); return -EINVAL; @@ -1408,11 +1405,9 @@ int msm_dp_modeset_init(struct msm_dp *msm_dp_display, struct drm_device *dev, return 0; } -void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, - struct drm_atomic_commit *state) +void msm_dp_display_atomic_enable(struct msm_dp *msm_dp_display, + struct drm_atomic_commit *state) { - struct msm_dp_bridge *msm_dp_bridge = to_dp_bridge(drm_bridge); - struct msm_dp *msm_dp_display = msm_dp_bridge->msm_dp_display; struct drm_crtc *crtc; struct drm_crtc_state *crtc_state; int rc = 0; @@ -1421,7 +1416,7 @@ void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, dp = container_of(msm_dp_display, struct msm_dp_display_private, msm_dp_display); crtc = drm_atomic_get_new_crtc_for_encoder(state, - drm_bridge->encoder); + msm_dp_display->bridge->encoder); if (!crtc) return; crtc_state = drm_atomic_get_new_crtc_state(state, crtc); @@ -1451,11 +1446,8 @@ void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, drm_dbg_dp(msm_dp_display->drm_dev, "type=%d Done\n", msm_dp_display->connector_type); } -void msm_dp_bridge_atomic_disable(struct drm_bridge *drm_bridge, - struct drm_atomic_commit *state) +void msm_dp_display_atomic_disable(struct msm_dp *dp) { - struct msm_dp_bridge *msm_dp_bridge = to_dp_bridge(drm_bridge); - struct msm_dp *dp = msm_dp_bridge->msm_dp_display; struct msm_dp_display_private *msm_dp_display; msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display); @@ -1472,11 +1464,8 @@ static void msm_dp_display_unprepare(struct msm_dp_display_private *dp) drm_dbg_dp(dp->drm_dev, "type=%d Done\n", msm_dp_display->connector_type); } -void msm_dp_bridge_atomic_post_disable(struct drm_bridge *drm_bridge, - struct drm_atomic_commit *state) +void msm_dp_display_atomic_post_disable(struct msm_dp *dp) { - struct msm_dp_bridge *msm_dp_bridge = to_dp_bridge(drm_bridge); - struct msm_dp *dp = msm_dp_bridge->msm_dp_display; struct msm_dp_display_private *msm_dp_display; msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display); diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h index 0b65e16c790d..5116f7bbbd02 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.h +++ b/drivers/gpu/drm/msm/dp/dp_display.h @@ -33,5 +33,12 @@ void msm_dp_display_signal_audio_start(struct msm_dp *msm_dp_display); void msm_dp_display_signal_audio_complete(struct msm_dp *msm_dp_display); void msm_dp_display_set_psr(struct msm_dp *dp, bool enter); void msm_dp_display_debugfs_init(struct msm_dp *msm_dp_display, struct dentry *dentry, bool is_edp); +void msm_dp_display_atomic_post_disable(struct msm_dp *dp_display); +void msm_dp_display_atomic_disable(struct msm_dp *dp_display); +void msm_dp_display_atomic_enable(struct msm_dp *dp_display, + struct drm_atomic_commit *state); +enum drm_mode_status msm_dp_display_mode_valid(struct msm_dp *dp, + const struct drm_display_info *info, + const struct drm_display_mode *mode); #endif /* _DP_DISPLAY_H_ */ diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c index 763ae4239bd3..aa98f101b093 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.c +++ b/drivers/gpu/drm/msm/dp/dp_drm.c @@ -49,6 +49,43 @@ static void msm_dp_bridge_debugfs_init(struct drm_bridge *bridge, struct dentry msm_dp_display_debugfs_init(dp, root, false); } +static void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, + struct drm_atomic_commit *state) +{ + struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); + struct msm_dp *dp = dp_bridge->msm_dp_display; + + msm_dp_display_atomic_enable(dp, state); +} + +static void msm_dp_bridge_atomic_disable(struct drm_bridge *drm_bridge, + struct drm_atomic_commit *state) +{ + struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); + struct msm_dp *dp = dp_bridge->msm_dp_display; + + msm_dp_display_atomic_disable(dp); +} + +static void msm_dp_bridge_atomic_post_disable(struct drm_bridge *drm_bridge, + struct drm_atomic_commit *state) +{ + struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); + struct msm_dp *dp = dp_bridge->msm_dp_display; + + msm_dp_display_atomic_post_disable(dp); +} + +static enum drm_mode_status msm_dp_bridge_mode_valid(struct drm_bridge *drm_bridge, + const struct drm_display_info *info, + const struct drm_display_mode *mode) +{ + struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); + struct msm_dp *dp = dp_bridge->msm_dp_display; + + return msm_dp_display_mode_valid(dp, info, mode); +} + static const struct drm_bridge_funcs msm_dp_bridge_ops = { .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, @@ -115,7 +152,7 @@ static void msm_edp_bridge_atomic_enable(struct drm_bridge *drm_bridge, return; } - msm_dp_bridge_atomic_enable(drm_bridge, state); + msm_dp_display_atomic_enable(dp, state); } static void msm_edp_bridge_atomic_disable(struct drm_bridge *drm_bridge, diff --git a/drivers/gpu/drm/msm/dp/dp_drm.h b/drivers/gpu/drm/msm/dp/dp_drm.h index 4bd788ea05d5..da412c788503 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.h +++ b/drivers/gpu/drm/msm/dp/dp_drm.h @@ -27,15 +27,6 @@ int msm_dp_bridge_init(struct msm_dp *msm_dp_display, struct drm_device *dev, enum drm_connector_status msm_dp_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector); -void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, - struct drm_atomic_commit *state); -void msm_dp_bridge_atomic_disable(struct drm_bridge *drm_bridge, - struct drm_atomic_commit *state); -void msm_dp_bridge_atomic_post_disable(struct drm_bridge *drm_bridge, - struct drm_atomic_commit *state); -enum drm_mode_status msm_dp_bridge_mode_valid(struct drm_bridge *bridge, - const struct drm_display_info *info, - const struct drm_display_mode *mode); void msm_dp_bridge_hpd_enable(struct drm_bridge *bridge); void msm_dp_bridge_hpd_disable(struct drm_bridge *bridge); void msm_dp_bridge_hpd_notify(struct drm_bridge *bridge, -- 2.43.0