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 F39633DA5AE for ; Wed, 22 Jul 2026 06:37:27 +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=1784702249; cv=none; b=cEjQJelYpYJ3isi2Nuq2DWq0vi62Sj6G8W/aYTeZiXkuh1BNsOeljjGulHzsBxpfpCtTCy+Okt5XJ9voYMej41YVMX2PgZ4fnKZZh3PIobLQpYqnTL+OwocgfIELz8uMjRx/cUB6Ywykh93TxyKcivXXKf7cXaU9/bgzj3zD0aU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784702249; c=relaxed/simple; bh=vrk0zAkx3XteBl/zMHSAsYalFx0A87dpjiTf4rSceZk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DMv7uhxkyU6NzWzIrb8Lp+iCYfSoytXAQuTsYh3Y8WJqYdgpbwm3ZQTPIwQD6q8pJbs7+OpataWXJXZjpBZw8Mjg2rn6B0Hi4KSaLfccbYBHWHQrqcCfSchPz4srpYVoFbqKgy69PZ6CD22q7RZqdLF2Q+0r7ElTVx9ej2yeSUU= 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=BMVVYsR3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=h57sR5I/; 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="BMVVYsR3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="h57sR5I/" 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 66M53bCR3767556 for ; Wed, 22 Jul 2026 06:37:27 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= aQWkOjb7s1/Nv6UGotHwKuaoEbTsQknHkswMzc3hyws=; b=BMVVYsR3DuBHH0Q1 hiqS08YCfOqcHDBjxhsSJrxH5PYamaxjoBGu5de0zleuTdvJMmwljvcNRD632yBM 1jkRCVwq00B4CG97JgOq4vc6AKYOpGY7EH9Ayvd2yfcVipy/2YEkR91ZEpKZwX7/ 1+JhiMKxn8l0kGE6UTeOF6U5LMKud/pQwRfjpAo6EvHimDkvFfjUMpD1p4k7Hjgj E3wWqgj4W7qKbwhsj8vNZAM+8OWovqC+oorm2E0e9VTRFIjVFEHc+LmPk44U28wZ C8LTPoKjvB8/cqzJl32CepnViUofalE1V9rvJIOcLgigH8WA6SLKpPkzxEyk52TP ijZkAg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fjnu4rnab-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 22 Jul 2026 06:37:27 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c0e702df8so181841681cf.2 for ; Tue, 21 Jul 2026 23:37:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784702246; x=1785307046; 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=aQWkOjb7s1/Nv6UGotHwKuaoEbTsQknHkswMzc3hyws=; b=h57sR5I/zM3rPOhMHeY5SJNTSKoxVoxV2fsi/R1u8fqFbn8alfw53iCuNh9+MFYvFE xQSKPO8P4YRrIKguyLe1y4Fz44WKzebFxjRjLAjX5OIVcNpE7khrbTeTL1d+g3rxrWy4 T4yaLIXwS60par05HGJfnTyAIGpWLOrYK5ycnYVkx3BvW9VasApEXJu+FWH07FmCWeMN lyseWKOefg2vGjq640UFZoUvNV8a9dJjmR0ZH5sVwsdsRu17PSEDlzasvFSl8lFJSHOK Zi3nLbEXMqiCrmMd6ZUydQFxKn1bY9heqzmUVKM3j7CoG3AjPMa6t0sSbFlwyXwiMwqN brKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784702246; x=1785307046; 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=aQWkOjb7s1/Nv6UGotHwKuaoEbTsQknHkswMzc3hyws=; b=cD1DZCSRVByvpHWod5K92w5leu9uB0nm4UZYr0uB6WZ40UwfPK5kfwRVb1PldGCgfq hCAyaNO1+d4WGyrErepsBKJvMyVwqAdv7HcTmpNE8V4IWxNbZoxMmb8dr/0ERkVROT6B z22Ym5vxpOfVLT8zkjeBPw/DXPhB0iirKjSNakSS8bINbdHfbYWEUNq8Phaf4MT4p1D+ Q9Z1l93wgRPhXaOXnQSLQbRCJf6Jd3O4BE9/Fvsk63Vxw0aZ4np/FLswK5HoUUXBeIjn JAfOnS+THv1gAnDD+sWfxCa8H5t77iclq14WKRd0LU25Ve8YzaN52m+AVe2SKOpvg6SW Y1sw== X-Forwarded-Encrypted: i=1; AHgh+RoS/KRiTycZI6v44SLdkHSyfcD4XMBmsEZvo15siLBAQSRYCU85DsTAM6UfPVCAhKhgXH/W2QchGFQKIC0=@vger.kernel.org X-Gm-Message-State: AOJu0YyyWuGf4115Lnt9k4lEJurC3nOCCNXkhdv1Kml20aQDiHW4IxcK EAsR/Tza+HWeDk/LGc1usAWCBWGAV6Ugp63oxNVn0deG7Kq9WvPAWKZ2WP7SAh6vQDaXuqI5D3r NknGR2pt2HjJVizLBpCsxj6Mysj/DM7pDwJYkgQmfy4inBLotvT3k+T7Zf8+ysf3h4Q4= X-Gm-Gg: AR+sD12D70NKtwac4RGbPqVVKj57SqLCXvFFQhijL0hIakq6795XEHNaWvmLhh/DnH/ u31aJB+IUNNzYoddKisGyEm+V8JHRn69Opc+9AZ+hBN4KI16xBjR6d4WXIDQRlULCSeom1TvN0e 2/jhTkrYjq2cp1zArhCoPCNcg4KUbsvKZpQVdpVikvo0p+pjuCNrk+WhMIka9snP46nbNwC7JsR hbqlyr7FhgmIfzeaGg6Z7fjaArIwvCeNwHkwayTIntjQSWfCT5j2pvbLIMUzaF54ZbzJF9vjF9G mp6Pnxo5QUDuo1cM9FT5dcO3X6ZTSJm2+d3E2vROjf2/afGjEvUcOq7Hp+bulrt0W+G0l9NPu/W EB2wM5QFMkZGHG6sOcqsKyZFlkbO2KI/8tMQaUJGIhAO87rnMvvrpEhQ7dMm9J78mOYyWINwrhe yE0AETtqIpGYU0Dg== X-Received: by 2002:a05:622a:4111:b0:51c:257c:8164 with SMTP id d75a77b69052e-5213c5f3e47mr203448131cf.25.1784702245885; Tue, 21 Jul 2026 23:37:25 -0700 (PDT) X-Received: by 2002:a05:622a:4111:b0:51c:257c:8164 with SMTP id d75a77b69052e-5213c5f3e47mr203447931cf.25.1784702245372; Tue, 21 Jul 2026 23:37:25 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5b2a9b8c6f6sm309696e87.4.2026.07.21.23.37.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 23:37:23 -0700 (PDT) From: Dmitry Baryshkov Date: Wed, 22 Jul 2026 09:36:34 +0300 Subject: [PATCH 19/24] drm/msm/dp: drop redundant panel->connector 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: <20260722-drm-msm-display-interface-v1-19-368c10fe62fd@oss.qualcomm.com> References: <20260722-drm-msm-display-interface-v1-0-368c10fe62fd@oss.qualcomm.com> In-Reply-To: <20260722-drm-msm-display-interface-v1-0-368c10fe62fd@oss.qualcomm.com> To: Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=8683; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=vrk0zAkx3XteBl/zMHSAsYalFx0A87dpjiTf4rSceZk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBqYGTpwZg19pnYNYwwmnZyD1Iob53kPueOk/9S7 uTOir7FvBCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCamBk6QAKCRCLPIo+Aiko 1RCxB/0TJAx9rW7Zo9Jif7MP7sO3ErixKjMLFJOIMSqd4qeLuC8qaWCWIYEB++ScRJK/GMGWyvL WpJDEmQN87EgZEYdLlCY9WdkWskvFO16fdNDhLZi0Mu+LsKdHaVfLVV9LHDYFEAYMpGQQLwaVi/ uYwbEbe7G3WZeyxBS8eEDIu/eb6inaDxpmbVqzSR/Hh9CUXnZ0ogFEO9/eb4xS85IRnDbrqeOgO 8XbKPkEeX9xlQVRC7lW1Cr9JZLdUetjYfmBtyoy8dO2DsUlPVckwaRvedkb94aUBsahuFLkiRad jLRlABsrcKywTcvp4wCEhv7ro5fkwf0DEqnNK7ixylMgiFit X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: vrO3G8AdMIRjU5wa4LaYifl4hWn08fxF X-Authority-Analysis: v=2.4 cv=KLhqylFo c=1 sm=1 tr=0 ts=6a606527 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=zDF9bxl-6Y4pHeVFKNQA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIyMDA2MCBTYWx0ZWRfX07y32ltLiTHe JzzaK+1WN/p6+6pvFfp9R8yG9yXBgQ9NK6i19p5p1ZOhofNhwwWFrcomEvVjqCIoSSUtaoimudQ pazS+JY/SDNZ4OBzvcTC2MaZNBPQtKi5Eq8cQpI0CSlFIfirsH7dOHiHECDMM/0U1/aremkTG3u Y+6LeAWwmyobO3sP5GJo2tn4ALRWACqJzUFkKc0VqI3JcSs/dK5/4AALJwxmdKrUBEH9Q8XFi/p OcRYL87oadMHxpEJSQkLfIshAIlpdY+IuwDeBoK3n94fSiIoBdKaQpiUAIZHmaTgohyeIX4ovyx KO39ga4h/lXDor/U37Nj3PqqCxc4Th3DfWgBjK/EmZoiCpHTkEYyidAYprv1yHQ+a2s6vy1cZqs 8C05J9PNCkz+oLtJWViYSvqjpoYUqllR2BW9SfW58y5wERkeM9BTLq9/yojxrJ8k2KMlMaXmhgm rvtLImlOeN3/wPAQi3A== X-Proofpoint-ORIG-GUID: vrO3G8AdMIRjU5wa4LaYifl4hWn08fxF X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIyMDA2MCBTYWx0ZWRfXwbwUVDTSxrXz wiWU4Qb0MXxak9h2lQnZQVlJIvwafTG5a1PqGIbRU6pQXUTNo9jJ/E3Kd/nKkvtvvKMjkHxaCIi chzknQqic90a22SFyxilVll39zGHdYk= 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-22_02,2026-07-21_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607220060 struct msm_dp_panel kept its own copy of the drm_connector, a plain alias of msm_dp.connector assigned once in msm_dp_modeset_init(). It was only dereferenced in three places, each of which either already has a connector at hand or is reached from a caller that does: - msm_dp_display_set_mode() runs from the .atomic_enable bridge callback, which can fetch the connector from the atomic state; - msm_dp_display_get_modes() is called from the .get_modes bridge callback, which is passed the connector; - msm_dp_panel_handle_sink_request() is called from msm_dp_display_process_hpd_high(), which holds the connector. Pass the connector down to those functions and drop the duplicate field. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/dp/dp_display.c | 27 +++++++++++---------------- drivers/gpu/drm/msm/dp/dp_display.h | 3 ++- drivers/gpu/drm/msm/dp/dp_drm.c | 2 +- drivers/gpu/drm/msm/dp/dp_panel.c | 5 +++-- drivers/gpu/drm/msm/dp/dp_panel.h | 4 ++-- 5 files changed, 19 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 7f55cace596f..461420a72820 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -304,7 +304,7 @@ static int msm_dp_display_process_hpd_high(struct msm_dp_display_private *dp) dp->msm_dp_display.psr_supported = dp->panel->psr_cap.version && psr_enabled; dp->audio_supported = info->has_audio; - msm_dp_panel_handle_sink_request(dp->panel, drm_edid); + msm_dp_panel_handle_sink_request(dp->panel, drm_edid, connector); /* * set sink to normal operation mode -- D0 @@ -600,7 +600,8 @@ static int msm_dp_init_sub_modules(struct msm_dp_display_private *dp) static int msm_dp_display_set_mode(struct msm_dp *msm_dp_display, const struct drm_display_mode *adjusted_mode, - struct msm_dp_panel *msm_dp_panel) + struct msm_dp_panel *msm_dp_panel, + struct drm_connector *connector) { struct msm_dp_display_private *dp; u32 bpp; @@ -611,7 +612,7 @@ static int msm_dp_display_set_mode(struct msm_dp *msm_dp_display, if (msm_dp_display_check_video_test(msm_dp_display)) bpp = msm_dp_display_get_test_bpp(msm_dp_display); else - bpp = msm_dp_panel->connector->display_info.bpc * 3; + bpp = connector->display_info.bpc * 3; msm_dp_panel->msm_dp_mode.bpp = bpp ? bpp : 24; /* Default bpp */ msm_dp_panel->msm_dp_mode.v_active_low = @@ -619,7 +620,7 @@ static int msm_dp_display_set_mode(struct msm_dp *msm_dp_display, msm_dp_panel->msm_dp_mode.h_active_low = !!(adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC); msm_dp_panel->msm_dp_mode.out_fmt_is_yuv_420 = - drm_mode_is_420_only(&msm_dp_panel->connector->display_info, adjusted_mode) && + drm_mode_is_420_only(&connector->display_info, adjusted_mode) && msm_dp_panel->vsc_sdp_supported; msm_dp_panel_init_panel_info(msm_dp_panel); @@ -769,18 +770,14 @@ enum drm_mode_status msm_dp_bridge_mode_valid(struct drm_bridge *bridge, return MODE_OK; } -int msm_dp_display_get_modes(struct msm_dp *dp) +int msm_dp_display_get_modes(struct msm_dp *dp, struct drm_connector *connector) { - struct msm_dp_display_private *msm_dp_display; - if (!dp) { DRM_ERROR("invalid params\n"); return 0; } - msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display); - - return drm_edid_connector_add_modes(msm_dp_display->panel->connector); + return drm_edid_connector_add_modes(connector); } bool msm_dp_display_check_video_test(struct msm_dp *dp) @@ -1350,13 +1347,10 @@ static int msm_dp_modeset_init(struct msm_display *display, struct drm_device *dev, struct drm_encoder *encoder) { struct msm_dp *msm_dp_display = container_of(display, struct msm_dp, display); - struct msm_dp_display_private *msm_dp_priv; int ret; msm_dp_display->drm_dev = dev; - msm_dp_priv = container_of(msm_dp_display, struct msm_dp_display_private, msm_dp_display); - ret = msm_dp_bridge_init(msm_dp_display, dev, encoder); if (ret) { DRM_DEV_ERROR(dev->dev, @@ -1373,8 +1367,6 @@ static int msm_dp_modeset_init(struct msm_display *display, return ret; } - msm_dp_priv->panel->connector = msm_dp_display->connector; - return 0; } @@ -1438,9 +1430,12 @@ void msm_dp_bridge_atomic_pre_enable(struct drm_bridge *drm_bridge, struct msm_dp_display_private *msm_dp_display; struct drm_crtc *crtc; struct drm_crtc_state *crtc_state; + struct drm_connector *connector; msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display); + connector = drm_atomic_get_new_connector_for_encoder(state, drm_bridge->encoder); + crtc = drm_atomic_get_new_crtc_for_encoder(state, drm_bridge->encoder); if (!crtc) return; @@ -1451,7 +1446,7 @@ void msm_dp_bridge_atomic_pre_enable(struct drm_bridge *drm_bridge, * state and runs before the bridge's .atomic_enable(), so the mode must * be programmed here, in .atomic_pre_enable(). */ - msm_dp_display_set_mode(dp, &crtc_state->adjusted_mode, msm_dp_display->panel); + msm_dp_display_set_mode(dp, &crtc_state->adjusted_mode, msm_dp_display->panel, connector); } void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h index 8c34a473c7db..f1523dbe33d5 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.h +++ b/drivers/gpu/drm/msm/dp/dp_display.h @@ -28,7 +28,8 @@ struct msm_dp { bool psr_supported; }; -int msm_dp_display_get_modes(struct msm_dp *msm_dp_display); +int msm_dp_display_get_modes(struct msm_dp *msm_dp_display, + struct drm_connector *connector); bool msm_dp_display_check_video_test(struct msm_dp *msm_dp_display); int msm_dp_display_get_test_bpp(struct msm_dp *msm_dp_display); void msm_dp_display_signal_audio_start(struct msm_dp *msm_dp_display); diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c index da005babe411..8dbe7d682ddf 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.c +++ b/drivers/gpu/drm/msm/dp/dp_drm.c @@ -32,7 +32,7 @@ static int msm_dp_bridge_get_modes(struct drm_bridge *bridge, struct drm_connect dp = to_dp_bridge(bridge)->msm_dp_display; /* pluggable case assumes EDID is read when HPD */ - rc = msm_dp_display_get_modes(dp); + rc = msm_dp_display_get_modes(dp, connector); if (rc <= 0) { DRM_ERROR("failed to get DP sink modes, rc=%d\n", rc); return rc; diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c b/drivers/gpu/drm/msm/dp/dp_panel.c index bde4a772d22c..30a44e7e8e62 100644 --- a/drivers/gpu/drm/msm/dp/dp_panel.c +++ b/drivers/gpu/drm/msm/dp/dp_panel.c @@ -305,7 +305,8 @@ static u8 msm_dp_panel_get_edid_checksum(const struct edid *edid) } void msm_dp_panel_handle_sink_request(struct msm_dp_panel *msm_dp_panel, - const struct drm_edid *drm_edid) + const struct drm_edid *drm_edid, + struct drm_connector *connector) { struct msm_dp_panel_private *panel; @@ -324,7 +325,7 @@ void msm_dp_panel_handle_sink_request(struct msm_dp_panel *msm_dp_panel, if (edid) checksum = msm_dp_panel_get_edid_checksum(edid); else - checksum = msm_dp_panel->connector->real_edid_checksum; + checksum = connector->real_edid_checksum; msm_dp_link_send_edid_checksum(panel->link, checksum); msm_dp_link_send_test_response(panel->link); diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h b/drivers/gpu/drm/msm/dp/dp_panel.h index 53b7b4463551..f73e11e57ced 100644 --- a/drivers/gpu/drm/msm/dp/dp_panel.h +++ b/drivers/gpu/drm/msm/dp/dp_panel.h @@ -33,7 +33,6 @@ struct msm_dp_panel { u8 downstream_ports[DP_MAX_DOWNSTREAM_PORTS]; struct msm_dp_link_info link_info; - struct drm_connector *connector; struct msm_dp_display_mode msm_dp_mode; struct msm_dp_panel_psr psr_cap; bool video_test; @@ -51,7 +50,8 @@ int msm_dp_panel_read_link_caps(struct msm_dp_panel *msm_dp_panel, u32 msm_dp_panel_get_mode_bpp(struct msm_dp_panel *msm_dp_panel, u32 mode_max_bpp, u32 mode_pclk_khz); void msm_dp_panel_handle_sink_request(struct msm_dp_panel *msm_dp_panel, - const struct drm_edid *drm_edid); + const struct drm_edid *drm_edid, + struct drm_connector *connector); void msm_dp_panel_tpg_config(struct msm_dp_panel *msm_dp_panel, bool enable); void msm_dp_panel_clear_dsc_dto(struct msm_dp_panel *msm_dp_panel); -- 2.47.3