From nobody Mon Feb 9 17:34:58 2026 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (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 C609E31A810 for ; Tue, 3 Feb 2026 18:56:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144998; cv=none; b=iCVH2TZsZQYRMOXJbksGTveUdzwyPJcaEvSrt4HzSHR0Saz2ybNVZFM3pWxY5fnmQdfwpoOoBK8pyfpcyqnhbGngLy1ysyYr7IqZHoz1mppsYcq6XQCwc/pw84HfAhXtXKj5rfVy3JVDJWoHzYknnkSOBmYuoYVMr0FVLHbWOtw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770144998; c=relaxed/simple; bh=EXXhW+vY+on8irImlwrQF5evF6ufFZSN+OzlAK0OVB0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=M9a+avxiTpcDl3ZgZmeLa9GNd5CUGTDeoFUtnsknc/irGtTTTOCJqt7AXSPJXSQjBMpKxyk9k3DcYs2QJbHEERvwKNytVu0nPuIXA/FOwGcOO0KoUxNvlggs2R0mal6AUCw6fStYfDVeCmqWALrwcOKOXUYluVQg0udPyNJV4w4= 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=JLgRf8/Z; arc=none smtp.client-ip=209.85.218.42 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="JLgRf8/Z" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-b8862767cf2so70986566b.1 for ; Tue, 03 Feb 2026 10:56:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770144995; x=1770749795; 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=3Vvinyd/bDfTMBX7NZU90g5DKWFs8k0OH4aETYAERXs=; b=JLgRf8/Z15PbxkxSkdnNk8QuC+n7NS7mURzDKBql6AFav/o0McsWJNl+8A52UTjuZW qeSVCqsnzcsWWdNe/1jP+dhyWG3pLwDBIRllqaUiZ5KxLq6qh56FrHkx9c9VMS/93DIi SaPiLPMlwaBvOeC6h5nGQOhKyjS5iZmxlzxeSqt/NwzasfqIxoRdWLjTFQztq9uazs32 OIwGMazrpBDUiAtZWuxhzCVCHTUchb2aZu0jLxT0Wew75fxKvcDEWzjEQ5phEOt2SOZ3 2CjN7d4PdNzj5xtbSm/i2WP/dSY34Qf4JlM85Z7P/RrjOpcCioiwuODVh8JprHi/xRx1 osTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770144995; x=1770749795; 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=3Vvinyd/bDfTMBX7NZU90g5DKWFs8k0OH4aETYAERXs=; b=kwRGD6DgskHCVA8A3C8P4t69aPIEerstuAcbWzXFPvW15bFOoQcBEg4xq4eFJb6AVn 7Qk0dKfK3JHktk2+s7SEHAdSSVEgZxZEL+Rvsh0RX6IxFg4bRaUyizDufLWUHdeqTGxk 5+IpOiWm3m0039JvSGz5xHIhf56gA8484cAOgfwgLtyxuw2Uw3QrxzBhy28+RFo5hGsG FWfh5Kuz3BhDPss1VbJDNI/j/lrelqlkg3keXNvrri5M/AwFR0gRXaJ/agGQy6W+6n6O QoIbax85QAT9O1zUgAN8/oD9KlV2gfAkgan40ljWGh3/Dr68VKR2Jhiz0PaqgL96iELa SM1g== X-Forwarded-Encrypted: i=1; AJvYcCXuUCFNxTDlsvi2Wn9AWxTQpgXQzPOqsv38pAuf8Ox5aRdlkjhdYrFyE0uRWgZgVTFUPnscaUvVfVAeiiw=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3V11Lb2p+qgf39W+96QEyVlgkorw8vV2A0EGFS8ctayHEgINr 2dwFAaKHe3+E8j0Spnyq5R6fQpEPm8iLVoeRmzKqeFou3l/czUd3j2Q/ X-Gm-Gg: AZuq6aKqCOmoOkLe0OQ3uENubZqH9+9Y8LUeSpUgO1Qm/ZIvfuIzbSPSboZFH0Z2vpZ y23HptnJTsgNijGuWOM/tc2/9W7kGtIti8wA1jzjXxhXZYQpyRKAyaycXW0AIFngA+8H44yMdeR fxvQAXRiVqN4jKp3GKNoBAQCbkxjsckRR/vkq6MZr2Z/aXIWVvFngH+CC2B+HQCCIiDGi3YJzTv 4koSJbOMvmixyHq6Hy1KAmFhi5WouY1wukf7HghlEUNdURcCxd6iWSFs9csYfV6jR87LgIs9Zle XLs5pK0npycxCUDaqnLXXnCvCr7sMVrOpKEm9A667MNCbEqHEM0zffYWXe9EGppgXh9i9KO9+v2 zE1/W3FFQaY6ICs0jeqoaxx8ziGT54RxFGBNgAdX+1hkCqgOB6i1CMJ/tZCozlN7ah8Q/gAaPA5 8MrLOv7WQaUftxuWX4ziQSWeuW1upnOg4A/dTldDgXP19f/e7b7df2n2fQt97K4wSw X-Received: by 2002:a17:907:3f08:b0:b8e:7dcb:7f23 with SMTP id a640c23a62f3a-b8e9ef22f6amr20457566b.2.1770144995003; Tue, 03 Feb 2026 10:56:35 -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-b8e9fad97a7sm16715766b.0.2026.02.03.10.56.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Feb 2026 10:56:34 -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, admin@ptr1337.dev Subject: [PATCH v3 04/19] drm/amd/display: Use bigger VRR range if found in AMD vsdb Date: Tue, 3 Feb 2026 19:56:11 +0100 Message-ID: <20260203185626.55428-5-tomasz.pakula.oficjalny@gmail.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260203185626.55428-1-tomasz.pakula.oficjalny@gmail.com> References: <20260203185626.55428-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] Some monitors only expose their full VRR range in AMD vsdb for some reason. [How] Compare exposed ranges and use the bigger one. This check could be merged with the previous one but it's better to keep them separate to easily convey their meaning. Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4177 Signed-off-by: Tomasz Paku=C5=82a --- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 856007bba4d9..284f5b326c18 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -13242,6 +13242,18 @@ static bool copy_range_to_amdgpu_connector(struct = drm_connector *conn) return is_freesync_capable(range); } =20 +/* + * Returns true if range from AMD vsdb is bigger + */ +static bool compare_ranges(struct drm_connector *conn, + struct amdgpu_hdmi_vsdb_info *vsdb) +{ + struct drm_monitor_range_info *range =3D &conn->display_info.monitor_rang= e; + + return (vsdb->max_refresh_rate_hz - vsdb->min_refresh_rate_hz) > + (range->max_vfreq - range->min_vfreq); +} + /** * amdgpu_dm_update_freesync_caps - Update Freesync capabilities * @@ -13313,6 +13325,10 @@ void amdgpu_dm_update_freesync_caps(struct drm_con= nector *connector, if (is_monitor_range_invalid(connector)) monitor_range_from_vsdb(&connector->display_info, &vsdb_info); =20 + /* Use bigger range if found in AMD vsdb */ + if (compare_ranges(connector, &vsdb_info)) + monitor_range_from_vsdb(&connector->display_info, &vsdb_info); + if (dpcd_caps.allow_invalid_MSA_timing_param) freesync_capable =3D copy_range_to_amdgpu_connector(connector); =20 --=20 2.52.0