From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=pass header.oldest-pass=0 smtp.remote-ip=136.143.188.112 ARC-Seal: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=pass; t=1793894152; b=zWWk+pa4UFdDbIH6SOuuntHxAR9oUIZLxkfNL75AQClxnv+kvy35HriQFr+GrmelmSdD fDfxA9bk8eQjg9VD2yvK4TlzvCiRku14WrTJgkp+OKSeeo254VAr9l/z83ZH5tImoYFMq gqy0SRMBePVN6Pa2ToUhCM8XV0dVTMBT3qlLkWoct4VEWeNhAScWiVMb8fRBFP3mzh6xc +1TNOizZu74hnvTLWsOTGPK4ujygczVnFxCPIwi/BKiPxYqVGUQ3k6A83OmHOj4uQ+hnz /kKjxPNCj0BkPfXokMpa/U9E9iy0/U+PbfM6JrLHn1n9Iin1U/u4iv0gMqi2PwoAonQ== ARC-Message-Signature: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793894152; h=DMARC-Filter:DKIM-Signature:Received:From:Date:Subject:MIME-Version: Content-Type:Content-Transfer-Encoding:Message-Id:References: In-Reply-To:To:Cc:X-Mailer; bh=VSQNShoB0NRUJv6LH1J7WdPfdRWQNf3+ZOl8d69TG6Q=; b=eDV77zlnkcbRTj1bB8KqNwRQXvxOpfSauciWeVEbz4ICjCTfqVgM5N31sHp5SWogoz4J c16TaY5MFBsJwTa+x2hpF88cC755+GegJq/FsaVfxaO4EPdNi/VnGmnkNrz1pRRaMnXWy qQpJyUreAvXcDeDa5eFr1TNKTTOk9jTtyAD35B6/q6NA8EIaSVci2Vk1p+/xusrNNCmHS +RJdPutTFHKPGhMdPozjghwA25CckT6pLUi3SOxUbenY/xGmnxkT0c66ExmJcNmteJ4RW XwlI4Eov/vRaw3+CIspwA5SKv7ggrbENaVHiVdoxycI4aBCH4bcMrhMrqgl5C/yYzHg== ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=zohomail header.b=kQP8xFig; arc=pass header.oldest-pass=0 smtp.remote-ip=136.143.188.112 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DDAE606F97F; Thu, 5 Nov 2026 15:55:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 4DDAE606F97F Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key, unprotected) header.d=collabora.com header.i=@collabora.com header.a=rsa-sha256 header.s=zohomail header.b=kQP8xFig ARC-Seal: i=1; a=rsa-sha256; t=1793894067; cv=none; d=zohomail.com; s=zohoarc; b=MFsFdQgnegm1B3xQ8huk7GZLc4TUC3KxCXfA9bIAiy9iBmjsxQJwnPFVYr1gkl1xMv0LywG3IAdwU6OY+GoEg6GIkmpM1y3yitE7mq4mDbyqpMkwvHhbK/VsppZIXQ4z7F5kHg8dmojkmPeWWyJPFpwMSgalzX8ecjE5U+WdUzw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1793894067; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=VSQNShoB0NRUJv6LH1J7WdPfdRWQNf3+ZOl8d69TG6Q=; b=enbBslQS4Hcyt8BocoexXCoAWDT6h1/pMBjf6NJAVKB2rKsJRS1BV4dj1uiAxYpMvPkTGtdMBmYSAlOVNLS4rEyueGPYpVSc59aY52CbBp/hLR7BU/XuYKYdEoybbqY8ofzaFAnY7Q5XtzCl5cU3yosdqIDWSTx2c5Co53nhqw8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: a=rsa-sha256; b=kQP8xFig6aOPYeuyosbN72pQeWl5WEcYA53Fe34V8KiBDKpXwHHJGEzoTSxEkVM4mjSiw7mH/WKENojMGdmYDUkvL/KbrcYnK8eip/sK+bxCA5Jja7o5ZHi+x1296zjdGKVkhzmyL2gWjERVRK03I1oV9yhI+YOSr/wYmCTgOxo=; c=relaxed/relaxed; s=zohomail; d=collabora.com; v=1; bh=VSQNShoB0NRUJv6LH1J7WdPfdRWQNf3+ZOl8d69TG6Q=; h=Content-Description:Content-ID:Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Resent-Sender:Resent-Cc:Resent-Date:Resent-To:Reply-To:Resent-Message-ID:Resent-From:Sender:Subject:To:Date:From:Message-Id:Reply-To:Subject:To:Cc; Received: by smtp.zohomail.com with SMTPS id 1793894066538358.0060003364383; Thu, 5 Nov 2026 07:54:26 -0800 (PST) From: Nicolas Frattaroli Date: Thu, 05 Nov 2026 16:52:09 +0100 Subject: [PATCH v2 18/27] video/hdmi: Add support for QMS in VTEM EMP packing X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261105-vrr-limiter-uapi-v2-18-55f4215be2c2@collabora.com> References: <20261105-vrr-limiter-uapi-v2-0-55f4215be2c2@collabora.com> In-Reply-To: <20261105-vrr-limiter-uapi-v2-0-55f4215be2c2@collabora.com> To: Xaver Hugl , Vidith Madhu , "Borah, Chaitanya Kumar" , Leo Li , Harry Wentland , Fangzhi Zuo , Daniel Stone , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Helge Deller , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , =?utf-8?q?Michel_D=C3=A4nzer?= Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com, Derek Foreman , wayland-devel@lists.freedesktop.org, Nicolas Frattaroli X-Mailer: b4 0.15.2 Add the necessary struct members and packing code to allow the hdmi_emp_infoframe_vtem_pack function to write VTEM packets with HDMI Quick Media Switching (QMS) data. Co-developed-by: Derek Foreman Signed-off-by: Derek Foreman Signed-off-by: Nicolas Frattaroli --- drivers/video/hdmi.c | 6 ++++-- include/linux/hdmi.h | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/video/hdmi.c b/drivers/video/hdmi.c index ed9abc7ad228..c164f69a646a 100644 --- a/drivers/video/hdmi.c +++ b/drivers/video/hdmi.c @@ -1994,7 +1994,7 @@ ssize_t hdmi_emp_infoframe_vtem_pack(struct hdmi_emp_infoframe_vtem *vtem, ptr[1] = BIT(7) | BIT(6); ptr[2] = 0; - ptr[3] = BIT(7) | BIT(2); + ptr[3] = BIT(7) | BIT(2) | (vtem->qms_en ? BIT(1) : 0); ptr[4] = 0; ptr[5] = 1; @@ -2005,10 +2005,12 @@ ssize_t hdmi_emp_infoframe_vtem_pack(struct hdmi_emp_infoframe_vtem *vtem, /* This is where the VTEM part starts */ ptr[10] = (vtem->fva_factor_m1 << 4) | + (vtem->qms_en ? BIT(2) : 0) | (vtem->m_const ? BIT(1) : 0) | (vtem->game_vrr_en ? BIT(0) : 0); ptr[11] = vtem->base_vfront; - ptr[12] = vtem->base_refresh_rate >> 8 & 0x3; + ptr[12] = (vtem->next_tfr << 3) | + (vtem->base_refresh_rate >> 8 & 0x3); ptr[13] = vtem->base_refresh_rate & 0xFF; return 14; diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h index 71e2b36896af..8eaa127f0cb5 100644 --- a/include/linux/hdmi.h +++ b/include/linux/hdmi.h @@ -243,10 +243,12 @@ struct hdmi_emp_infoframe_vtem { unsigned char length; bool game_vrr_en; + bool qms_en; bool m_const; unsigned char fva_factor_m1; unsigned char base_vfront; u16 base_refresh_rate; + u8 next_tfr; }; void hdmi_avi_infoframe_init(struct hdmi_avi_infoframe *frame); -- 2.56.0