From nobody Thu Mar 5 08:43:18 2026 Received: from mail-ej1-f67.google.com (mail-ej1-f67.google.com [209.85.218.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1A182C17B3 for ; Mon, 16 Feb 2026 16:45:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.67 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771260336; cv=none; b=gtM+DXMEeqZZy48+ePwWyKc3vQ+4/jrMqd27cQBDIdTCaj59jXLNBnAQUJpsCwlS4Ha4NWMbL1PgyCIS8WSese6wYTOMjtZIjatfCA0mJ1i3ZTZC1frEHTMu/dcY7Cjky6hx0DBcU2Gax2R3saachqSX+EW+QYFW8wGD89Rx+is= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771260336; c=relaxed/simple; bh=jRfgjXJklYf1AA2nU3PgX94RmBAF02ctBTXxoKEJskI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GIxdOmOeJQQdHKPquhOMfHAAWWy8jbOm1eGEOc7vdQ2cmARy0dh+xmwQkbXKiFsgIarI6IyvgWP6H2YcP56tHtL5BcUr6Kj/QwnPi2HfW1N0A5qKRD0t4+jCt83I3qkiGFVBJZewdQOZOyG2PKyhspF3tQaMnhn2J9LVVpIfHHo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dY9Niz9o; arc=none smtp.client-ip=209.85.218.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dY9Niz9o" Received: by mail-ej1-f67.google.com with SMTP id a640c23a62f3a-b8fc023934dso18313966b.3 for ; Mon, 16 Feb 2026 08:45:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771260330; x=1771865130; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JEn0R38mGrwNqYAUGw253vwfhRvgl/ooBxvHfFpzd00=; b=dY9Niz9oBMKVXTXYtmji0P3xkbTHaL9l3Sij4uszfw1zCnU5lBR43/XL97HlWtLAWK oI11ikVUznjSrdw6nbGHXkrDbAVMHsgPzbg2pTe5A+l+hi0gk9DtyXWzBs7Mr8Zv+KyR 6oNR4WHnGc0N8LyJNMmrAt6zDnCzB8gz+5pexlM11KuCcdCPlTgCI3HGqBim7EtwGD8Q ItAPrUOC69/ox7ihzUCFQe0x+SURxjVRrPVbq2C7iTlS06G5QOpmCz20nwgPW4eEDYFK ehGjbVkAJMklnDb+G9d9stBooXzBV5G6cdqYti6Nsku1H6gtvxC4LgpcdDhPpi5RB6lQ YzmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771260330; x=1771865130; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JEn0R38mGrwNqYAUGw253vwfhRvgl/ooBxvHfFpzd00=; b=u3y78VSqHeboGBrQh3Nz70DtH2/1f8rs3a0X/A4fetMtLx93/h4izWB0JwWNZjsQtZ 4zoNYm4vRujFh7N5J24iiXSNIV/bBH9+GhKBqxKSN9+iJZzahYpn8MMKVoYuF46pPbO2 hfjF5idu0Fb3F8sATCZ9XtCjkjLD6CEMkDlyAjrzQJqy1/xotv2d/oTULzoFl8MHH3Ge tfDdEt3aXqAplo5TevfZsg0MFZE5UDmHNbi1CrSpHpqJcndYmKK+m2jS0ZUH5VcGBuFM eh6bX6w5pN4dLZORIQ0yHR8w8ZgwaRLGfvpOJNrGLAz2353xJaZY6Y0cmSav75FqzVyZ QPXg== X-Forwarded-Encrypted: i=1; AJvYcCV8jcHlrKpGAGmRzdYlCjGHZU/VUAkhq4RKv2Ds+RXWKee8i+psKGTumCDUmb1UIawnawkRFCcbC6ivsMg=@vger.kernel.org X-Gm-Message-State: AOJu0YyVbUL9gSrUnuScAUK8QMHtXsxLkdc75AbAaVLB+1nl/MSrYKVg n41BWBuvp37cbs0gFjaa054nPV/yRbcaeHCLZDN4VDaw2h+lSzGFcYhG26Idic5m X-Gm-Gg: AZuq6aK9xY62iNtCn5oZpAycvUM3L/qZ2FLwtzn0Y/cxNQjikPZXvtA05Y7c1Dmnqxh wVKfqm6uPiI90899Sboj9FpPan0m4+9Rlrq7Y5aHqlJV5LJ7YvCZzTRal/20lMS8gonOi3RsNkQ InzbpazxvvVAotNcgsEOkXe/t7VlUac+x2DGLQBmgWqOAmp0PqOViVOcAOIYgUJjSgBMkA3Q/N9 Vy5P6rEo03Yeh1RO9AEKZoaL3qEvpmsxoet81IuVu/AWgk5EVAVThNO7ZqbsygJwEvFCwu+s2jX iv5wMOKL18y5aS3BLsEur6bt113eITr//s7c/oZiAqTp/3ASN9J4t7jvHljv1Awbltzch1Z6vzh aFK3qZNHm36qpVgpovPC/LvfMXB/q0GtyA/zvv1EtpVJKIjwFD6gFbgIJsW7ju2yTdtho1NwAX2 qOkbgew/eAWL+fPlUSR/ZDVFkEbXn/f0ltOp1CXvdfZozga9WsNZfRPFI/aE0hKI0HzsA4737Fy b4S X-Received: by 2002:a17:907:3e88:b0:b87:20c2:e837 with SMTP id a640c23a62f3a-b8face05dd0mr357799766b.5.1771260330026; Mon, 16 Feb 2026 08:45:30 -0800 (PST) Received: from laptok.lan (87-205-5-123.static.ip.netia.com.pl. [87.205.5.123]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8fc735d185sm264683866b.14.2026.02.16.08.45.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Feb 2026 08:45:29 -0800 (PST) From: =?UTF-8?q?Tomasz=20Paku=C5=82a?= To: alexander.deucher@amd.com, harry.wentland@amd.com, sunpeng.li@amd.com Cc: maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, siqueira@igalia.com, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, tomasz.pakula.oficjalny@gmail.com, bernhard.berger@gmail.com, michel.daenzer@mailbox.org, daniel@fooishbar.org Subject: [PATCH v4 08/27] drm/amd/display: Separate DP/eDP and PCON paths completely Date: Mon, 16 Feb 2026 17:44:57 +0100 Message-ID: <20260216164516.36803-9-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260216164516.36803-1-tomasz.pakula.oficjalny@gmail.com> References: <20260216164516.36803-1-tomasz.pakula.oficjalny@gmail.com> 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: quoted-printable [Why] DP -> HDMI PCONs need a completely separate treatment but they did fall into DP/eDP path in amdgpu_dm_update_freesync_caps() previously. This could sometimes result in weird values assigned to the connector even though it doesn't support VRR at all and needs a bit of HDMI-like treatment. [How] Check if the connected sink is a HDMI -> DP converter earlier and gate DP/eDP path Signed-off-by: Tomasz Paku=C5=82a --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gp= u/drm/amd/display/amdgpu_dm/amdgpu_dm.c index f36059bb0324..2f31fe7265d9 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -13321,6 +13321,7 @@ void amdgpu_dm_update_freesync_caps(struct drm_conn= ector *connector, struct dpcd_caps dpcd_caps =3D {0}; const struct edid *edid; bool freesync_capable =3D false; + bool is_pcon =3D false; enum adaptive_sync_type as_type =3D ADAPTIVE_SYNC_TYPE_NONE; =20 if (!connector->state) { @@ -13349,14 +13350,18 @@ void amdgpu_dm_update_freesync_caps(struct drm_co= nnector *connector, if (!adev->dm.freesync_module || !dc_supports_vrr(sink->ctx->dce_version)) goto update; =20 + /* Gather all data */ edid =3D drm_edid_raw(drm_edid); // FIXME: Get rid of drm_edid_raw() parse_amd_vsdb_cea(amdgpu_dm_connector, edid, &vsdb_info); =20 - if (amdgpu_dm_connector->dc_link) + if (amdgpu_dm_connector->dc_link) { dpcd_caps =3D amdgpu_dm_connector->dc_link->dpcd_caps; + is_pcon =3D dpcd_caps.dongle_type =3D=3D DISPLAY_DONGLE_DP_HDMI_CONVERTE= R; + } =20 - if (sink->sink_signal =3D=3D SIGNAL_TYPE_DISPLAY_PORT || - sink->sink_signal =3D=3D SIGNAL_TYPE_EDP) { + /* DP & eDP excluding PCONs */ + if ((sink->sink_signal =3D=3D SIGNAL_TYPE_EDP || + sink->sink_signal =3D=3D SIGNAL_TYPE_DISPLAY_PORT) && !is_pcon) { /* Some eDP panels only have the refresh rate range info in DisplayID */ if (is_monitor_range_invalid(connector)) parse_edid_displayid_vrr(connector, edid); @@ -13381,14 +13386,16 @@ void amdgpu_dm_update_freesync_caps(struct drm_co= nnector *connector, amdgpu_dm_connector->as_type =3D ADAPTIVE_SYNC_TYPE_EDP; } =20 + /* HDMI */ } else if (sink->sink_signal =3D=3D SIGNAL_TYPE_HDMI_TYPE_A && vsdb_info.= freesync_supported) { monitor_range_from_vsdb(&connector->display_info, &vsdb_info); freesync_capable =3D copy_range_to_amdgpu_connector(connector); } =20 - if (amdgpu_dm_connector->dc_link) + if (amdgpu_dm_connector->dc_link && is_pcon) as_type =3D dm_get_adaptive_sync_support_type(amdgpu_dm_connector->dc_li= nk); =20 + /* DP -> HDMI PCON */ if (as_type =3D=3D FREESYNC_TYPE_PCON_IN_WHITELIST && vsdb_info.freesync_= supported) { amdgpu_dm_connector->pack_sdp_v1_3 =3D true; amdgpu_dm_connector->as_type =3D as_type; --=20 2.53.0