From patchwork Wed Dec 24 01:02:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 65 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 C33571DF74F for ; Wed, 24 Dec 2025 01:03:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766538210; cv=none; b=iGvirPZy0Am+K+lbgR13RnvEdPbNFmTl51UdghugbnctlQ7SiBV9j9BiMYk1EIa7dJaULNAJc569azKJPsiOGot8ZTW87yGSM8Nqezg/I24LCCM8gLKztGzTN45TW3T8kgcARc/8fG1Zd6UgBPHI18lWiWwOrZEmfTkqzd5QiUg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766538210; c=relaxed/simple; bh=8Tzjobm822RrqnHK47PTxRb1kubRyL6ECDVZddDDmG0=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=IgCPVaKkCNZMDaydMy2N+bOhCWs0BvYC0PFUGiUs6dByweJv9yXHvFOKnNZ9BplUBpqLSX9fEsf7W+04UndNSQafBXuO9i7Or2Awplgzr5b5cv9yDkorbPd+YP7ZL2lIUApi53dVuS9l109ZsOdHUmVELgMa9dhWFrrdMmnRv/c= 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=Qy1JAWIw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XSe8VrzV; arc=none smtp.client-ip=205.220.180.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="Qy1JAWIw"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XSe8VrzV" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BNNpvkN561263 for ; Wed, 24 Dec 2025 01:03:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=Qy1p7dz4KTgtjDJxH7zF/s /gw1hKlABNOIK2uPdIh+s=; b=Qy1JAWIw5RxuLOv5JvoPQDQ3fp2u1Bt3JcmncW eKmUgS6Ym8+vieeKqVJzLTpZZSTHiDCrqEvyKQDTe1lZ6YKVl7Im6YwwtdaUHVuI vm5KPTtIZT9tBcv9JEaiAtWz37t7lchbtbti2t6D+xYTMPA6v/6W4QAKUHXQMuG8 7NUFdw/gT45rzolt2V9zL7KnSFGWM7MwjyvYjLh/xseR1yTYTCCLhrPY2Re961RN +2DeqPhnzjcP6Mako0ao8Db3AJO5qxu9UsjuM1ICh7xNMIJHbRtAek5E43CbeYnY YpcwpAXRwKi5kKtEG2XRunwQSnQXi3OEnVOXNFWJnTmXyMPw== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b7u9csxkm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 24 Dec 2025 01:03:27 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-88a2f8e7d8dso144835866d6.1 for ; Tue, 23 Dec 2025 17:03:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1766538207; x=1767143007; darn=lists.linux.dev; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=Qy1p7dz4KTgtjDJxH7zF/s/gw1hKlABNOIK2uPdIh+s=; b=XSe8VrzVV78tMv4l/hkH3L70TRtw9TzfbsjJCZ6UKeMFJ2sb7kOitVnq/jQLWkYQgl B1ArDYLOpa/ShQsjSP+dzMV+16UEhEeGH5V+VS3oeTiyDUUpDK0FU1510qT+u2M6MnHU OYy5ZyM5ccvukmEMiFLbcmQzq3dsq7CsRufBYmaXg9/Bx7Uwl/Osn4kFH5l5Bbk9KDf4 Wy6Wu7ejdwAZCbhzZZSpNyubnQgVm3IS1Mz4pRFVZOJQbbSVSfamsqH/UpUnFdIfM6/3 6RRRuoGX5Urr8NNiAj2rfqA62YoiVOGbeloPV60L6akwN37+kz481OAIpj6ef2stpLt2 CDjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766538207; x=1767143007; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Qy1p7dz4KTgtjDJxH7zF/s/gw1hKlABNOIK2uPdIh+s=; b=JNLzKcJ6jB41yrOcJLntpySgDNtPU6j2aKEgsZPFN5x6Zr9T8gYeRciYWbDTgi+UWv 7ocgVbfXumUwyhplMxXrzGLLDugU/xE/M8CaWXmK85PqSBHj5CSG78uF17qAvYFlPrsP UF6ihqRWTZomF7MgbzzPurvnRgr+FSox+3sPhOp3sYkTtDymuF238vXp+TqpMotXPh2M p5A1i7e9aP6iBwvTaKS2GdyEb7LnUBGV4Z23YW4H3Le0rTkRHGB2R09QJ0tG5NkJLZjr gzH5HSVeWRAz1LX+uPPD8RKrli4fBjzEMnWEjioGtNDJCT0Cb+yQrdTZDYzp9CUquJWs 7How== X-Forwarded-Encrypted: i=1; AJvYcCVTUWeNEM+aHpxecmTHWT6yM4is5x8krw84PO4geuVUJvOlS6Bv0XLQlCvb/8UBs6UhL/FIZYjZqw10dA==@lists.linux.dev X-Gm-Message-State: AOJu0Yxfg3/LdJmxjVE1n+BQ5dfpbG+/IWyPSLMGa9I3YkOwYrb+G18b oZDRkGIXcSDZxvRUyXyA12ZyGCmsO8K4sK/5GvZCa/Gb68aQ9kvllUymv/E6nD96CecDDRdUGkA xY0SKzz9yKuCHNTePrY4Z2NijjpBX5sxAaEI/t/HcxwFjmXa4j3dLvw5wcqZM6n5G2g== X-Gm-Gg: AY/fxX4ynWHcumVZBBW+yoRcTgn81iMfajPw6Ozo3nWBxQauEVD91eDUqB9oGXBn28H rjXmSY0k057q/+ChaOtvJmMJKqBsAan+HmYWJ6Pq7PeezcsTpLTmYspn5aU9vJs32YBsRQAHcik zzSi75sEic1SIWzI8nLq0xNfFzOY1uvl23us8eo6ADadyIiFMFMhXmmC1Nr/yOm1IjZWenEuVOo snRxZzXl03s0QWm9JVtUAEI5FuLRAXGPVZgSX6CGIiGpbpHyoRa/O8blJX1IcmGbEced2RGlfiO lYp5KAcMOm+gfqRWo8ftNvJdYnb3N6dNmXcS+DMG4B2MlYrD++jsbMlsMDQFni2se1PIdqlbpxQ KTzUamfetmaLH4m09+tuxxJz13IK9QZQBmMb/QQxQgRTBt0SljdeR83W30FaxZ1JWuTTd1N9gDz ca+7m5QEOGWnE64caglvX4H90= X-Received: by 2002:a05:6214:f0c:b0:882:762c:6b84 with SMTP id 6a1803df08f44-88d833b5f7bmr300845886d6.35.1766538206515; Tue, 23 Dec 2025 17:03:26 -0800 (PST) X-Google-Smtp-Source: AGHT+IFpimNXfH3oYorddWUqgTrbXV1EPp13vtXQqLBq5K7iNXJf5pz619uZUKkotZ/5noUnChRCWA== X-Received: by 2002:a05:6214:f0c:b0:882:762c:6b84 with SMTP id 6a1803df08f44-88d833b5f7bmr300844926d6.35.1766538205726; Tue, 23 Dec 2025 17:03:25 -0800 (PST) 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-59a18628284sm4545268e87.93.2025.12.23.17.03.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Dec 2025 17:03:23 -0800 (PST) From: Dmitry Baryshkov Subject: [PATCH v3 00/10] drm/connector: hdmi: limit infoframes per driver capabilities, second approach Date: Wed, 24 Dec 2025 03:02:49 +0200 Message-Id: <20251224-limit-infoframes-2-v3-0-7fd3cacfefed@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIALk7S2kC/33NwQ6DIAyA4VcxnIcBFJWd9h7LDqhlNhHZwJEtx ncfetrB7NLkb9KvCwngEQI5ZwvxEDGgm1IUp4x0g57uQLFPTQQTkilR0xEtzhQn44zXFgIVtGp VAVIpqJUm6fDhweB7R6+31AOG2fnP/iPybfuXi5wyWqlact72TLL24kLIny89ds7aPA2yqVH8S s2hJDbJNEaanpWClwfSuq5fUggn7AUBAAA= X-Change-ID: 20250927-limit-infoframes-2-6b93e599e79a To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Liu Ying , Chun-Kuang Hu , Philipp Zabel , Matthias Brugger , AngeloGioacchino Del Regno , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-rockchip@lists.infradead.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3625; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=8Tzjobm822RrqnHK47PTxRb1kubRyL6ECDVZddDDmG0=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpSzvXIbwsPmKZGaTML8UxKouye9UbF18LUF9dB OPRCcT9gdmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaUs71wAKCRCLPIo+Aiko 1TjRB/46NUvByKDGyDwWo/bdFXCvMaCYCrhtMnS2CnzdVUkBWOQJlGAUXoB3wgO8QCfRpICSP2W INpd5UxrZkAO42oYeNdfDx9bRfJlcwUtxLc7db6mthobHJmKl+I5N0AfogED8Hvx74hjRSCWqMq 0grAUH6HRdRV8dnY514V1FOVRkeFgLB3TZG9iUGZb1sBJL0psbTYtrX5Bm08kmyA233ESSy+Yx/ 5TfM2F5sL/SA+jPiyyJQvV2vEMXoBYQGoTe6Lf+FK4s6VRPPxlEqKzNwHl7dibcDXxpHkQxTISf uj/97ZaUsT+ooSkpOia7cPAXHcz4hjmR1XSw4mh/qatb3yss X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: lsmBUAUYT6KUro83HFMO2BpeXbxFTFd9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjI0MDAwNyBTYWx0ZWRfX++Jjvukv2qja 6bCCPMd4t+TfiI4/3QtNaSaqG8MEzsTrO6wVRAhrpd0yxju20ihRaqQik9YCO3VHGCwtv3fKodr 4R7HqzEOQSBLOT4RL2JL0SPiIGHkAcPqH6LMoyqD0WlwJe4qT02GpvZ4qTLIZxjD4PZjhPSMj6C 0cb2t1XeKk8/dmReQ4vO1DouF/X+ANAsU8T5Xs3lLrH18Oq+vmZ10MMYHqHpxjBlejRmZVFisKo kHlSqjTyBgbKIHQ6Z93Vi8JgyitdLwE1OyKSzQlY2kpDsXpTA1HAuEEYSQNinii7MlOmrxmfgwA Ytz4z89jTxS17BHLJPCZn6PNxmUJEuItP93DMMHe9jJli0VdcWeVmJIS4sv1e4aG1AiVBdI14ZI AtbLJJlXTRH36h7G8h9kzS2XBayDhKv2cuMWHTNYuQEk3rQFcc/Wv+OV4Nph4uuuFeC5lRoSt/R GCaBBA2s+VxLKm+efaA== X-Authority-Analysis: v=2.4 cv=HsN72kTS c=1 sm=1 tr=0 ts=694b3bdf cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=cAKecciHRQCNmb6kppMA:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-ORIG-GUID: lsmBUAUYT6KUro83HFMO2BpeXbxFTFd9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-23_05,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512240007 Status: O It's not uncommon for the particular device to support only a subset of HDMI InfoFrames. Currently it's mostly ignored by the framework: it calls write_infoframe() / clear_infoframe() callbacks for all frames and expects them to return success even if the InfoFrame is not supported. Sort that out, making sure that all interfaces are consistent: - split function interfaces, having a pair of callbacks per each InfoFrame type. - write_infoframe() / clear_infoframe() functions return -EOPNOTSUPP for unsupported InfoFrames. - don't create and enable unsupported InfoFrames. - limit debugfs to provide supported InfoFrames only. Signed-off-by: Dmitry Baryshkov --- Changes in v3: - Added DRM KUnit tests verifying InfoFrames behaviour (Maxime) - Reworked the patchset, having per-infoframe callbacks rather than extra flags (Maxime) - Link to v2: https://lore.kernel.org/r/20250928-limit-infoframes-2-v2-0-6f8f5fd04214@oss.qualcomm.com Changes in v2: - Fixed build issue in common code - Fixed comments regarding HDR / audio frames (Diedrik) - In adv7511 actually check for the HDR frame (the comment was correct) rather than the audio infoframe (c&p error). - Link to v1: https://lore.kernel.org/r/20250927-limit-infoframes-2-v1-0-697511bd050b@oss.qualcomm.com --- Dmitry Baryshkov (10): drm/tests: hdmi: check the infoframes behaviour drm/vc4: hdmi: implement clear_infoframe drm/sun4i: hdmi_enc: implement clear_infoframe stub drm/connector: make clear_infoframe callback mandatory for HDMI connectors drm/bridge: refactor HDMI InfoFrame callbacks drm/display: hdmi_state_helper: split InfoFrame functions per type drm/display: hdmi_state_helper: reject Audio IF updates if it's not supported drm/display: hdmi_state_helper: don't generate unsupported InfoFrames drm/display: bridge_connector: dynamically generate HDMI callbacks drm/debug: don't register files for unsupported HDMI InfoFrames drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 180 ++++--- drivers/gpu/drm/bridge/ite-it6263.c | 95 ++-- drivers/gpu/drm/bridge/lontium-lt9611.c | 143 +++--- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 110 +++-- drivers/gpu/drm/display/drm_bridge_connector.c | 190 +++++++- drivers/gpu/drm/display/drm_hdmi_state_helper.c | 94 ++-- drivers/gpu/drm/drm_connector.c | 6 + drivers/gpu/drm/drm_debugfs.c | 7 + drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 8 +- drivers/gpu/drm/mediatek/mtk_hdmi_v2.c | 110 +++-- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 195 ++++---- drivers/gpu/drm/rockchip/inno_hdmi.c | 47 +- drivers/gpu/drm/rockchip/rk3066_hdmi.c | 47 +- drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 42 +- drivers/gpu/drm/tests/drm_client_modeset_test.c | 3 + drivers/gpu/drm/tests/drm_connector_test.c | 19 + drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 525 +++++++++++++++++++++ drivers/gpu/drm/tests/drm_kunit_edid.h | 119 +++++ drivers/gpu/drm/vc4/vc4_hdmi.c | 105 ++++- include/drm/drm_bridge.h | 127 ++++- include/drm/drm_connector.h | 105 +++-- 21 files changed, 1762 insertions(+), 515 deletions(-) --- base-commit: e05b08d7d0162cf77fff119367fb1a2d5ab3e669 change-id: 20250927-limit-infoframes-2-6b93e599e79a Best regards,