From nobody Fri Oct 3 13:32:06 2025 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 9E73213B58B for ; Sat, 30 Aug 2025 00:23:10 +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=1756513392; cv=none; b=lfBJwqUTorah3JyIgrB8fYUqH4g26yupOffAtuo8U8eg4QlT4LSn9HxnqVkfIH0wb0n1eCsaZNfwnxGhDheqQvU9R0x6PLOdNxwxLCShDOiIc+lM6UjrVsNDdiVwCEPpZa71PhOMQm0H2oQhFHOSeKuf1FUXPSr5x7zLSke68cw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513392; c=relaxed/simple; bh=voT7aMvCokvd0wqw9VJDsY1XcFoLXNViHe0msR8SNbI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LbJcJ5ln8NwEWCPRQ97WNOXzRJkSKSrdpSTkLjlmje5S7fMDHoz0iFoXfmp0qqxiBb0KUJPy1jVKdihMdr7PvYDwZ5a7EGgO4vUlUy9Lons4pZUNhnkliFUYbBdTyZm23B6qKvupt0K0FFGdu1PBsh7QJC6J7wSm6/De5sjCqU8= 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=J8RJnxQx; 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="J8RJnxQx" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TFai94011765 for ; Sat, 30 Aug 2025 00:23:09 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= kH4F789rUONV5RVLnN6XvDn+O4ndP150jopdWJYF18w=; b=J8RJnxQxY1g0eIZ8 /FBRGycO0rITrdKwWJ2S3286wyH/UtHL/qJPywhIqyETlcPSEAXpowmFi6rxoEQe 3vLGyyAJ6k16VizOAchCacy14vPS4vUkmKeqr/txCyCkZLkUhwBn6kMEfPVx3K9g O1CRDMDsV77AYPdJh7PgZLZevPotTaL2KaL+igVME/DSyuQy9YC9t4wUQB5axnnQ iEDnb2DlL7r5P2pJHZv6xZZUx9XrfLO3UVSVnWMuPVHQRBDcJPZle2pI9KmVBTrD N31iHHHn+6mh6zUnHQ23oMHfxq+yNqSK4YBAogvzGX5Z/kicoqtRbsI0KE+6nwN4 AV8lCg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48rtpf7e62-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:09 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4b30d6ed3a4so27093481cf.3 for ; Fri, 29 Aug 2025 17:23:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513385; x=1757118185; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kH4F789rUONV5RVLnN6XvDn+O4ndP150jopdWJYF18w=; b=T9BUxQ46Nyhi4BGTFA1iBDsA6E6nMyCtoMvvqIgNuiaopjEORhAcFJdyokJv7KsFF9 PT818z3a0AqOmk3Glt74fGfHIpETgfecTwiBLxKolUgOwSI0fZJ0DzRbo+8/N1AY7ezJ uxvQChwEu1s2MHTyArh33moJ5cZ1Lu5iQPhPD5NkibnSKrtELx2FB3Awnrgze5l+x4cq J/5ttKPs9Fy9/eC+98JtoUTZ9d1bJjq2w9nU29izgMFqs/rBazEv6S9aWiPY93VHfFgf ZhmYG1ATd/RGHykcm3HBxbEgYYaDpdqxQ27ByaBHSvi/gHncqeZBX8EZXViEM1czYdxZ 3R6g== X-Forwarded-Encrypted: i=1; AJvYcCUyDWJ39Mgnza2w4uRLseL71uKJg4i7kKwVEnSdacAvMBzOWFGN7m0PnALfxm3z9Brs2530sDr9FQFoFPE=@vger.kernel.org X-Gm-Message-State: AOJu0YzaXwOvnqh+4pgYA2jMCqqqXGT+xL+20iM3hXx3xKLCkCwLjHtT 9FPNDP7Hle/PeywyAEExi/QcKLTUXyFjRDnj4LsmBm10as9uEoBkJEApgxDxFBrvSBcPzDPdG6T ht3m+ecf8q5cnhNbmJTbTdZk1wgavuk/sz69xGUJbQ1uAn9b1n0Eyj+tz0GQ328cQxw8= X-Gm-Gg: ASbGncueEotURtF9RZBjcAUyNYI1laRjgMKnkuOIZqaj+TFMOgVGAp8Ovm0hKcvEcv9 U9+7MRX5OLKlL6VzbkI/aPrq7RsaUf+BpLt8Y1PZdLWbVjDaWllL/9hUBbLyYs/0d4wUvWTwqab xYb+7qkxl3EjQRS+iF2d9yxxizR5ccd/w2cCxptWGrj9aClb0VCG9lKrXQ3huHpigoHNhv/uOVi /OUGkRRZjDzWs9aYpr7BNqrVXPPXMkYmmBZl16bG1LwB3Ha/HQ2w6DINHYFOhmJtQEE30FdNtmb evDk/IOnJGo8nv/c7ArkRxfuv64ZKhOEKdZzfULbFGsegF44siNDib6pgm1WWscjlug3EDf5yow WipYItJzokEyC+y53RXkkIYbzK7L190Hk0aFcAoHLkotGZWVfMvdB X-Received: by 2002:a05:622a:4c8:b0:4af:2267:ef66 with SMTP id d75a77b69052e-4b31d873df2mr6591401cf.18.1756513384864; Fri, 29 Aug 2025 17:23:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFA4NK5l7LhihpNUoDzqT2vumCNfJdqQs5yfFPqsO8l4doHfbc/t3ai6Yj0eCsazsEatXRCMQ== X-Received: by 2002:a05:622a:4c8:b0:4af:2267:ef66 with SMTP id d75a77b69052e-4b31d873df2mr6590911cf.18.1756513383995; Fri, 29 Aug 2025 17:23:03 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:03 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:22:57 +0300 Subject: [PATCH v3 01/11] drm/connector: let drivers declare infoframes as unsupported 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 Message-Id: <20250830-drm-limit-infoframes-v3-1-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=25217; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=voT7aMvCokvd0wqw9VJDsY1XcFoLXNViHe0msR8SNbI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRjA+KjllDkq4LzZoGJXoyU3RPblozDvrzcr QSLBvuSFVGJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEYwAKCRCLPIo+Aiko 1UkvB/0Zq3aMNM3YpNCSl3kbPFf7aqRpOVw71YcbkyLlmTJKJrJIdtmkIZ6O0MIvnsd8RNWtHTs CMxcLoLtETlX0MjEq5nFPWj8fIZK36AXTYyhuZ8zFMOZIbAIeA/r1lKTtd7/NQnjV2DkOVZvk7/ lVqyaK6R3hEGuThIkU9gFrIarOjA7uE+opFrDSlWr3qNCSF2H8Bz5vEdvEVeCATV54O9dKMFelw nTbvPFc59ASgWwKXFVXkrUuTkbvHmIisX+HtkBOXz4WlXH1yt8uABj2bPwjcEuX8XI6XR7KIWGk LzPOXx5ma0EuXkC15nzQS+QLeRTjuQgrFJmLCQx2I0SVRAWI X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: RTl2774ukeL1Xn18WMHZsk_mcz7kpyow X-Proofpoint-ORIG-GUID: RTl2774ukeL1Xn18WMHZsk_mcz7kpyow X-Authority-Analysis: v=2.4 cv=Hd8UTjE8 c=1 sm=1 tr=0 ts=68b2446d cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=qxzRNHnKRX2O3p43D1oA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI1MDE0MiBTYWx0ZWRfX0TZ6nicHLFW4 EhJ0RpPZZNSTZVvDq2eoRt+er8mZUkp33UhN/iqBO6mqos6tqKlUNndELrdRJLcCZTrNWZTy6iQ 6sH48P7JfwpJ0AVIlLMbs/fTuH2Yqr5/CGtVYp8If//QQ6ykIzbWFxTrDrt43BaHc30Ss/DVFJa Xw3Lno+7IWFKkQPIchqw24tx4Cv1Kh3s4BoIcy7N9y1HJIexzZVWfkNRiCxdmhTTmJDsd2rUeIr wGiKdjHISeLUGCtgsDTmGql581ul8u9F3OtJi+pyY3mVdF4s2F/C7waVVNzNpEUCdkE+AWs8cG2 XK9N1BkzegmhaQ29uxS2HITvLD5HO4z5dO0lXcC2Rgt+suI4gdPTH/HS++W90qXYRO5La04jw8S ++bu9vJ5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508250142 Currently DRM framework expects that the HDMI connector driver supports all infoframe types: it generates the data as required and calls into the driver to program all of them, letting the driver to soft-fail if the infoframe is unsupported. This has a major drawback on userspace API: the framework also registers debugfs files for all Infoframe types, possibly surprising the users when infoframe is visible in the debugfs file, but it is not visible on the wire. Let drivers declare that they support only a subset of infoframes, creating a more consistent interface. Acked-by: Liu Ying Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/display/drm_bridge_connector.c | 7 +++ drivers/gpu/drm/display/drm_hdmi_state_helper.c | 53 ++++++++++++++++++= ++-- drivers/gpu/drm/drm_connector.c | 7 +++ drivers/gpu/drm/drm_debugfs.c | 16 +++++-- drivers/gpu/drm/rockchip/inno_hdmi.c | 6 ++- drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 4 +- drivers/gpu/drm/tests/drm_connector_test.c | 49 ++++++++++++++++++= ++ drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 9 ++++ drivers/gpu/drm/vc4/vc4_hdmi.c | 6 +++ include/drm/drm_bridge.h | 14 ++++++ include/drm/drm_connector.h | 39 ++++++++++++++++ 11 files changed, 197 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/d= rm/display/drm_bridge_connector.c index 091c5335355a2b6c70dd823df69ce060fd56c4f9..944fb497ca339ddd63c132c2df0= 888011cc0487f 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -786,6 +786,13 @@ struct drm_connector *drm_bridge_connector_init(struct= drm_device *drm, &drm_bridge_connector_hdmi_funcs, connector_type, ddc, supported_formats, + bridge->software_infoframes ? : + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_DRM | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR, + bridge->autogenerated_infoframes, max_bpc); if (ret) return ERR_PTR(ret); diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/= drm/display/drm_hdmi_state_helper.c index a561f124be99a0cd4259dbacf5f5f6651ff8a0ea..182ef9075e2f6cee1bc9b52b07e= 336e3f28f94b8 100644 --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c @@ -687,6 +687,9 @@ static int hdmi_generate_avi_infoframe(const struct drm= _connector *connector, =20 infoframe->set =3D false; =20 + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _AVI)) + return 0; + ret =3D drm_hdmi_avi_infoframe_from_display_mode(frame, connector, mode); if (ret) return ret; @@ -718,6 +721,9 @@ static int hdmi_generate_spd_infoframe(const struct drm= _connector *connector, =20 infoframe->set =3D false; =20 + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _SPD)) + return 0; + ret =3D hdmi_spd_infoframe_init(frame, connector->hdmi.vendor, connector->hdmi.product); @@ -742,6 +748,9 @@ static int hdmi_generate_hdr_infoframe(const struct drm= _connector *connector, =20 infoframe->set =3D false; =20 + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _DRM)) + return 0; + if (connector->max_bpc < 10) return 0; =20 @@ -771,6 +780,9 @@ static int hdmi_generate_hdmi_vendor_infoframe(const st= ruct drm_connector *conne =20 infoframe->set =3D false; =20 + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _VENDOR)) + return 0; + if (!info->has_hdmi_infoframe) return 0; =20 @@ -898,13 +910,23 @@ static int clear_device_infoframe(struct drm_connecto= r *connector, struct drm_device *dev =3D connector->dev; int ret; =20 - drm_dbg_kms(dev, "Clearing infoframe type 0x%x\n", type); - if (!funcs || !funcs->clear_infoframe) { drm_dbg_kms(dev, "Function not implemented, bailing.\n"); return 0; } =20 + if (!drm_hdmi_connector_autogenerated_infoframe(connector, type)) { + drm_dbg_kms(dev, "Infoframe 0x%02x not managed by DRM, bailing.\n", type= ); + return 0; + } + + if (!drm_hdmi_connector_software_infoframe(connector, type)) { + drm_dbg_kms(dev, "Infoframe 0x%02x not supported, bailing.\n", type); + return 0; + } + + drm_dbg_kms(dev, "Clearing infoframe type 0x%02x\n", type); + ret =3D funcs->clear_infoframe(connector, type); if (ret) { drm_dbg_kms(dev, "Call failed: %d\n", ret); @@ -930,23 +952,34 @@ static int write_device_infoframe(struct drm_connecto= r *connector, union hdmi_infoframe *frame) { const struct drm_connector_hdmi_funcs *funcs =3D connector->hdmi.funcs; + enum hdmi_infoframe_type type =3D frame->any.type; struct drm_device *dev =3D connector->dev; u8 buffer[HDMI_INFOFRAME_SIZE(MAX)]; int ret; int len; =20 - drm_dbg_kms(dev, "Writing infoframe type %x\n", frame->any.type); - if (!funcs || !funcs->write_infoframe) { drm_dbg_kms(dev, "Function not implemented, bailing.\n"); return -EINVAL; } =20 + if (!drm_hdmi_connector_autogenerated_infoframe(connector, type)) { + drm_dbg_kms(dev, "Infoframe 0x%02x not managed by DRM, bailing.\n", type= ); + return 0; + } + + if (!drm_hdmi_connector_software_infoframe(connector, type)) { + drm_dbg_kms(dev, "Infoframe 0x%02x not supported, bailing.\n", type); + return 0; + } + + drm_dbg_kms(dev, "Writing infoframe type 0x%02x\n", type); + len =3D hdmi_infoframe_pack(frame, buffer, sizeof(buffer)); if (len < 0) return len; =20 - ret =3D funcs->write_infoframe(connector, frame->any.type, buffer, len); + ret =3D funcs->write_infoframe(connector, type, buffer, len); if (ret) { drm_dbg_kms(dev, "Call failed: %d\n", ret); return ret; @@ -1067,6 +1100,11 @@ drm_atomic_helper_connector_hdmi_update_audio_infofr= ame(struct drm_connector *co struct drm_display_info *info =3D &connector->display_info; int ret; =20 + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _AUDIO)) { + drm_warn_once(connector->dev, "Audio Infoframe not supported, bailing.\n= "); + return -EOPNOTSUPP; + } + if (!info->is_hdmi) return 0; =20 @@ -1102,6 +1140,11 @@ drm_atomic_helper_connector_hdmi_clear_audio_infofra= me(struct drm_connector *con struct drm_display_info *info =3D &connector->display_info; int ret; =20 + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _AUDIO)) { + drm_warn_once(connector->dev, "Audio Infoframe not supported, bailing.\n= "); + return -EOPNOTSUPP; + } + if (!info->is_hdmi) return 0; =20 diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index 272d6254ea4784e97ca894ec4d463beebf9fdbf0..f031e8f8df57da15bb0f8fe21fd= 62f02a1576ebe 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -553,6 +553,8 @@ EXPORT_SYMBOL(drmm_connector_init); * @connector_type: user visible type of the connector * @ddc: optional pointer to the associated ddc adapter * @supported_formats: Bitmask of @hdmi_colorspace listing supported outpu= t formats + * @software_infoframes: Bitmask of @DRM_CONNECTOR_INFOFRAME listing Infof= rames generated by DRM core + * @autogenerated_infoframes: Bitmask of @DRM_CONNECTOR_INFOFRAME listing = Infoframes generated in hardware * @max_bpc: Maximum bits per char the HDMI connector supports * * Initialises a preallocated HDMI connector. Connectors can be @@ -576,6 +578,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev, int connector_type, struct i2c_adapter *ddc, unsigned long supported_formats, + unsigned long software_infoframes, + unsigned long autogenerated_infoframes, unsigned int max_bpc) { int ret; @@ -623,6 +627,9 @@ int drmm_connector_hdmi_init(struct drm_device *dev, =20 connector->hdmi.funcs =3D hdmi_funcs; =20 + connector->hdmi.software_infoframes =3D software_infoframes; + connector->hdmi.autogenerated_infoframes =3D autogenerated_infoframes; + return 0; } EXPORT_SYMBOL(drmm_connector_hdmi_init); diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index 365cf337529fa2a88b69516d57360d212419c126..03e4ae81352bb7ffb3cf45219a9= 6e7959eafe365 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c @@ -672,6 +672,9 @@ static int create_hdmi_audio_infoframe_file(struct drm_= connector *connector, { struct dentry *file; =20 + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _AUDIO)) + return 0; + file =3D debugfs_create_file("audio", 0400, parent, connector, &audio_inf= oframe_fops); if (IS_ERR(file)) return PTR_ERR(file); @@ -679,7 +682,7 @@ static int create_hdmi_audio_infoframe_file(struct drm_= connector *connector, return 0; } =20 -#define DEFINE_INFOFRAME_FILE(_f) \ +#define DEFINE_INFOFRAME_FILE(_f, _F) \ static ssize_t _f##_read_infoframe(struct file *filp, \ char __user *ubuf, \ size_t count, \ @@ -726,6 +729,9 @@ static int create_hdmi_## _f ## _infoframe_file(struct = drm_connector *connector, { \ struct dentry *file; \ \ + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE= _ ## _F)) \ + return 0; \ + \ file =3D debugfs_create_file(#_f, 0400, parent, connector, &_f ## _infofr= ame_fops); \ if (IS_ERR(file)) \ return PTR_ERR(file); \ @@ -733,10 +739,10 @@ static int create_hdmi_## _f ## _infoframe_file(struc= t drm_connector *connector, return 0; \ } =20 -DEFINE_INFOFRAME_FILE(avi); -DEFINE_INFOFRAME_FILE(hdmi); -DEFINE_INFOFRAME_FILE(hdr_drm); -DEFINE_INFOFRAME_FILE(spd); +DEFINE_INFOFRAME_FILE(avi, AVI); +DEFINE_INFOFRAME_FILE(hdmi, VENDOR); +DEFINE_INFOFRAME_FILE(hdr_drm, DRM); +DEFINE_INFOFRAME_FILE(spd, SPD); =20 static int create_hdmi_infoframe_files(struct drm_connector *connector, struct dentry *parent) diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchi= p/inno_hdmi.c index 1ab3ad4bde9ea7305021186ea221d2ff9057fdbb..9957615b407cd959928b9c9d116= d3955a7924e61 100644 --- a/drivers/gpu/drm/rockchip/inno_hdmi.c +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c @@ -645,7 +645,7 @@ static int inno_hdmi_disable_frame(struct drm_connector= *connector, if (type !=3D HDMI_INFOFRAME_TYPE_AVI) { drm_err(connector->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } =20 hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, INFOFRAME_AVI); @@ -663,7 +663,7 @@ static int inno_hdmi_upload_frame(struct drm_connector = *connector, if (type !=3D HDMI_INFOFRAME_TYPE_AVI) { drm_err(connector->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } =20 inno_hdmi_disable_frame(connector, type); @@ -1065,6 +1065,8 @@ static int inno_hdmi_register(struct drm_device *drm,= struct inno_hdmi *hdmi) DRM_MODE_CONNECTOR_HDMIA, hdmi->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_INFOFRAME_AVI, + 0, 8); =20 drm_connector_attach_encoder(&hdmi->connector, encoder); diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i= /sun4i_hdmi_enc.c index ab0938ba61f7d75dd0bec473807a04a20e1cffbd..a01f837a0a7b4685a6fd9db9908= 890cd423ff197 100644 --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c @@ -50,7 +50,7 @@ static int sun4i_hdmi_write_infoframe(struct drm_connecto= r *connector, if (type !=3D HDMI_INFOFRAME_TYPE_AVI) { drm_err(connector->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } =20 for (i =3D 0; i < len; i++) @@ -640,6 +640,8 @@ static int sun4i_hdmi_bind(struct device *dev, struct d= evice *master, DRM_MODE_CONNECTOR_HDMIA, hdmi->ddc_i2c, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_INFOFRAME_AVI, + 0, 8); if (ret) { dev_err(dev, diff --git a/drivers/gpu/drm/tests/drm_connector_test.c b/drivers/gpu/drm/t= ests/drm_connector_test.c index 22e2d959eb31459f9981fef488228904d67cb6f9..1b42a9fad8715b496ad14ba589b= b9721b2075ad9 100644 --- a/drivers/gpu/drm/tests/drm_connector_test.c +++ b/drivers/gpu/drm/tests/drm_connector_test.c @@ -641,6 +641,13 @@ static struct kunit_suite drm_connector_dynamic_regist= er_test_suite =3D { .test_cases =3D drm_connector_dynamic_register_tests, }; =20 +#define DRM_CONNECTOR_ALL_INFOFRAMES \ + (DRM_CONNECTOR_INFOFRAME_AUDIO | \ + DRM_CONNECTOR_INFOFRAME_AVI | \ + DRM_CONNECTOR_INFOFRAME_DRM | \ + DRM_CONNECTOR_INFOFRAME_SPD | \ + DRM_CONNECTOR_INFOFRAME_VENDOR) + /* * Test that the registration of a bog standard connector works as * expected and doesn't report any error. @@ -657,6 +664,8 @@ static void drm_test_connector_hdmi_init_valid(struct k= unit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); } @@ -677,6 +686,8 @@ static void drm_test_connector_hdmi_init_null_ddc(struc= t kunit *test) DRM_MODE_CONNECTOR_HDMIA, NULL, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); } @@ -697,6 +708,8 @@ static void drm_test_connector_hdmi_init_null_vendor(st= ruct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_LT(test, ret, 0); } @@ -717,6 +730,8 @@ static void drm_test_connector_hdmi_init_null_product(s= truct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_LT(test, ret, 0); } @@ -743,6 +758,8 @@ static void drm_test_connector_hdmi_init_product_valid(= struct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); KUNIT_EXPECT_MEMEQ(test, @@ -776,6 +793,8 @@ static void drm_test_connector_hdmi_init_product_length= _exact(struct kunit *test DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); KUNIT_EXPECT_MEMEQ(test, @@ -803,6 +822,8 @@ static void drm_test_connector_hdmi_init_product_length= _too_long(struct kunit *t DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_LT(test, ret, 0); } @@ -829,6 +850,8 @@ static void drm_test_connector_hdmi_init_vendor_valid(s= truct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); KUNIT_EXPECT_MEMEQ(test, @@ -861,6 +884,8 @@ static void drm_test_connector_hdmi_init_vendor_length_= exact(struct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); KUNIT_EXPECT_MEMEQ(test, @@ -888,6 +913,8 @@ static void drm_test_connector_hdmi_init_vendor_length_= too_long(struct kunit *te DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_LT(test, ret, 0); } @@ -908,6 +935,8 @@ static void drm_test_connector_hdmi_init_bpc_invalid(st= ruct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 9); KUNIT_EXPECT_LT(test, ret, 0); } @@ -928,6 +957,8 @@ static void drm_test_connector_hdmi_init_bpc_null(struc= t kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 0); KUNIT_EXPECT_LT(test, ret, 0); } @@ -953,6 +984,8 @@ static void drm_test_connector_hdmi_init_bpc_8(struct k= unit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); =20 @@ -994,6 +1027,8 @@ static void drm_test_connector_hdmi_init_bpc_10(struct= kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 10); KUNIT_EXPECT_EQ(test, ret, 0); =20 @@ -1035,6 +1070,8 @@ static void drm_test_connector_hdmi_init_bpc_12(struc= t kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 12); KUNIT_EXPECT_EQ(test, ret, 0); =20 @@ -1071,6 +1108,8 @@ static void drm_test_connector_hdmi_init_formats_empt= y(struct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, 0, + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_LT(test, ret, 0); } @@ -1091,6 +1130,8 @@ static void drm_test_connector_hdmi_init_formats_no_r= gb(struct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_YUV422), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_LT(test, ret, 0); } @@ -1149,6 +1190,8 @@ static void drm_test_connector_hdmi_init_formats_yuv4= 20_allowed(struct kunit *te DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, params->supported_formats, + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, params->expected_result); } @@ -1170,6 +1213,8 @@ static void drm_test_connector_hdmi_init_type_valid(s= truct kunit *test) connector_type, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); } @@ -1205,6 +1250,8 @@ static void drm_test_connector_hdmi_init_type_invalid= (struct kunit *test) connector_type, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_LT(test, ret, 0); } @@ -1482,6 +1529,8 @@ static void drm_test_drm_connector_attach_broadcast_r= gb_property_hdmi_connector( DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); =20 diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/g= pu/drm/tests/drm_hdmi_state_helper_test.c index 8bd412735000cb18e66aeca21433b2ebbefe2b44..c41c1cd875ba1c58610480a468c= c3c36c48624dc 100644 --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c @@ -138,6 +138,13 @@ static const struct drm_connector_funcs dummy_connecto= r_funcs =3D { .reset =3D dummy_hdmi_connector_reset, }; =20 +#define DRM_CONNECTOR_ALL_INFOFRAMES \ + (DRM_CONNECTOR_INFOFRAME_AUDIO | \ + DRM_CONNECTOR_INFOFRAME_AVI | \ + DRM_CONNECTOR_INFOFRAME_DRM | \ + DRM_CONNECTOR_INFOFRAME_SPD | \ + DRM_CONNECTOR_INFOFRAME_VENDOR) + static struct drm_atomic_helper_connector_hdmi_priv * __connector_hdmi_init(struct kunit *test, @@ -192,6 +199,8 @@ __connector_hdmi_init(struct kunit *test, DRM_MODE_CONNECTOR_HDMIA, NULL, formats, + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, max_bpc); KUNIT_ASSERT_EQ(test, ret, 0); =20 diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 07c91b450f93ab9e795d040d6f60f485ac71cfe8..856830482c31f708455b3589215= 44fe82640f04d 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -556,6 +556,12 @@ static int vc4_hdmi_connector_init(struct drm_device *= dev, BIT(HDMI_COLORSPACE_RGB) | BIT(HDMI_COLORSPACE_YUV422) | BIT(HDMI_COLORSPACE_YUV444), + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_DRM | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR, + 0, max_bpc); if (ret) return ret; diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h index 8d9d4fd078e72977677fd992d725261232754e3e..71e64818a93d803067097532f90= 25418d7ab25b9 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1205,6 +1205,20 @@ struct drm_bridge { */ unsigned int max_bpc; =20 + /** + * @software_infoframes: Bitmask of DRM_CONNECTOR_INFOFRAME values, + * listing InfoFrames to be generated by the DRM core. This is only + * relevant if @DRM_BRIDGE_OP_HDMI is set. + */ + unsigned int software_infoframes; + + /** + * @autogenerated_infoframes: Bitmask of DRM_CONNECTOR_INFOFRAME values, + * listing InfoFrames generated by the hardware. This is only + * relevant if @DRM_BRIDGE_OP_HDMI is set. + */ + unsigned int autogenerated_infoframes; + /** * @hdmi_cec_dev: device to be used as a containing device for CEC * functions. diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 8f34f4b8183d83dccd3e820a444fbf74fb6c16f2..e18e748036ec2618e885fca392a= 175d632120f98 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -1839,6 +1839,21 @@ struct drm_connector_hdmi { */ unsigned long supported_formats; =20 + /** + * @software_infoframes: Bitmask of infoframe types supported by the + * controller and generated AS IS by the software. + * See @DRM_CONNECTOR_INFOFRAME and + * @drm_connector_hdmi_funcs.write_infoframe(). + */ + unsigned long software_infoframes; + + /** + * @autogenerated_infoframes: Bitmask of infoframe types supported by + * the controller and either autogenerated by the controller or written + * in non-opaque format. See @DRM_CONNECTOR_INFOFRAME. + */ + unsigned long autogenerated_infoframes; + /** * @funcs: HDMI connector Control Functions */ @@ -2336,6 +2351,8 @@ int drmm_connector_hdmi_init(struct drm_device *dev, int connector_type, struct i2c_adapter *ddc, unsigned long supported_formats, + unsigned long software_infoframes, + unsigned long autogenerated_infoframes, unsigned int max_bpc); void drm_connector_attach_edid_property(struct drm_connector *connector); int drm_connector_register(struct drm_connector *connector); @@ -2488,6 +2505,28 @@ void drm_connector_attach_privacy_screen_provider( struct drm_connector *connector, struct drm_privacy_screen *priv); void drm_connector_update_privacy_screen(const struct drm_connector_state = *connector_state); =20 +#define DRM_CONNECTOR_INFOFRAME(type) ((type) > 0x80 ? BIT((type) - 0x80)= : 0) + +#define DRM_CONNECTOR_INFOFRAME_AUDIO DRM_CONNECTOR_INFOFRAME(HDMI_INFOFRA= ME_TYPE_AUDIO) +#define DRM_CONNECTOR_INFOFRAME_AVI DRM_CONNECTOR_INFOFRAME(HDMI_INFOFRAME= _TYPE_AVI) +#define DRM_CONNECTOR_INFOFRAME_DRM DRM_CONNECTOR_INFOFRAME(HDMI_INFOFRAME= _TYPE_DRM) +#define DRM_CONNECTOR_INFOFRAME_SPD DRM_CONNECTOR_INFOFRAME(HDMI_INFOFRAME= _TYPE_SPD) +#define DRM_CONNECTOR_INFOFRAME_VENDOR DRM_CONNECTOR_INFOFRAME(HDMI_INFOFR= AME_TYPE_VENDOR) + +static inline bool +drm_hdmi_connector_software_infoframe(const struct drm_connector *connecto= r, + enum hdmi_infoframe_type type) +{ + return connector->hdmi.software_infoframes & DRM_CONNECTOR_INFOFRAME(type= ); +} + +static inline bool +drm_hdmi_connector_autogenerated_infoframe(const struct drm_connector *con= nector, + enum hdmi_infoframe_type type) +{ + return connector->hdmi.autogenerated_infoframes & DRM_CONNECTOR_INFOFRAME= (type); +} + /** * struct drm_tile_group - Tile group metadata * @refcount: reference count --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 55CFD56B81 for ; Sat, 30 Aug 2025 00:23:08 +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=1756513389; cv=none; b=FqFvmm2g7YygYigOyrmrzsN9wbk3SUpAa2Z0IBkeR7ZEptWJXucJhh+pM6LmhiYThuZ123zQxY8I9bDNrtIAahncSG+5uXuh5lSUk24YBb7h9e5C+yksOoFMiGW6ES6djhp2ykKIWmSN/opvbdM737g7jgOpvcA3UjcfwBBDXsY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513389; c=relaxed/simple; bh=q7eYf8+3RQX7ESv2tHgdRnLYQ1j/MZwxzLEz7NwM9XM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R+Aseq559TZY3bPo5YUUc5oNJuwIRSGTFHsvj+mS4hRHmCFZOXDEl3QF+g5LGUMs582i5aP9ovF1f1zP7DUTngcNDmlwuaG/5oyMEmBkMGd86ccdw9/wqgD8wyfMzlH8j2nc0fKcMrWVFRvB+nBJ1NjwhiT17/snxrjbtXOF8uM= 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=DCtz4gtJ; 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="DCtz4gtJ" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57U09CXX013217 for ; Sat, 30 Aug 2025 00:23:07 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= EC24O8coXPxIicmmvFhXHG7RuMMbE2/IeNTru9ezMlw=; b=DCtz4gtJxTkhOa/5 bgoi8G8kCfWOYQZKf1bnpFYsbO7z1XE+zqrSI8B1k5OLYGFCp92I5Syd9vprgipI WapoLgN84xInkHmir17aYOfrY2PnHdsalVYFR0FtH3CtFLu3tZuIfJ5qGPRHbyTV ISI+UZF5EnPNhifJjO3IO7DokPGK7/gx3+t0htTE1Rl2NG9zKd5dfwrNTdjIcdTV KxrfBkuz0j1e9CMYXZWifYtN2BCfmwAlv4CVWPEZLbAc82r8Gwtn5GR0DfNiHsLW wt8l93QTnd4VVRgCZxA74sRRDpCo46WJfwQQUOxKeUhTBmqpi+0psjJBjcnNfJG2 VDn1zg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q615w3s3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:07 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b2f7851326so70907921cf.1 for ; Fri, 29 Aug 2025 17:23:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513386; x=1757118186; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EC24O8coXPxIicmmvFhXHG7RuMMbE2/IeNTru9ezMlw=; b=HQVhOKG6jfxgx9mZ0lB+d6KK+BXJe2e4vAfRDTzsIytKdvww9JtR+lGuwGZw70jSn5 7jO/nKN88Pb5sDDjF9aUDpjEzV23tjeZZvIa291NHrGYuHZI3J2jO9aBfv64lvWo0qul q20+cdTFByARsq7kpiN6kRHEdkstISwIggN4Ebyozxj8Q37/ZNW0si6B0o0H8TVNq0yP v+rVABf6+gAE4OmCFbHn+O1JjGKANnqrSgSAbJ8NUFn4Yb8tkG2Q3UagDWWCASJIfMO6 QFeuPSmgrBcjU++ElyAnlOdM0+xCuTnfQ+E2hawt6vBEgfaaPhPcAQ5/hNpmYyAiG/W+ EMBQ== X-Forwarded-Encrypted: i=1; AJvYcCV2Wzb2qJCp3jgWISJ7QuMNZ1ezT4hYTw2fZ2q8Wut7TmXIgBBR7ER64RnOOwiyIy+a6XlrHzUTg/xLdYI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz43sRNw3JkaVRBnBw/Q/OkVynffnXBCbgjoJB3oi+gmQLuRl2n cSw1jK7ssi+gkieHNMHICMkAjtpQdtfbcc+mUAFzPfCp/9R2FYibDus7WZ0l5HRAqzReujDPWRX VYGTwLdmzztxC3qblLjB7tScADpsXhR7yUiXsnP/3vy9S0ImY/ea7Hkn6a6UBBq34om8= X-Gm-Gg: ASbGncvJQQWQHMeFCAXCg7uwGgBtipFyLfbtxcixiH4yduJ2TdvXn4uOskZtL8xMZ+9 cCuj2KIF42v0eiMXENCn12wfHzq8S7L3x3dVI4NPI6fOtbL/oKiBm7Hh8wTQLL7rg8KnH0XbS5Q CEpfzuvsirxnHSBMXNeM2sf3TtOQ1JmLa1QY1q1Pt9XPQb8WKPUtbZ2V4JQkwQngxURbZbDe3De f/xxHRkMbVmbWeUcuzdlv9KWgYBLB/jsF6HisEvbtTjJ0UD7zC7w6AFkPIIufHKnFpID9JvC2PO 1lloBrRDEBJxIohNpb1nB6R5e7tTGBnSWD+lgtnYGpnQ125rAVMYoEoV/6fPX0KdoUmRiSlhCYy uaVD28TV2HGquNyx5e+qYo1obBdDVGZmzWhUaDMc6J7FnjGRRzxGj X-Received: by 2002:ac8:5884:0:b0:4b0:aa5b:7c6d with SMTP id d75a77b69052e-4b31d8450b2mr7951401cf.16.1756513386149; Fri, 29 Aug 2025 17:23:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGJMWSIAIjCYp1lT9McTj9bQ133h50tPHm6nwV01Yh4DnXv2EmLSxcQOP/1n5kMYt9GTSTzJA== X-Received: by 2002:ac8:5884:0:b0:4b0:aa5b:7c6d with SMTP id d75a77b69052e-4b31d8450b2mr7950821cf.16.1756513385504; Fri, 29 Aug 2025 17:23:05 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:04 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:22:58 +0300 Subject: [PATCH v3 02/11] drm/bridge: adv7511: declare supported infoframes 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 Message-Id: <20250830-drm-limit-infoframes-v3-2-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1675; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=q7eYf8+3RQX7ESv2tHgdRnLYQ1j/MZwxzLEz7NwM9XM=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRjIMzK+I5pUhzNv/gzIuu0qrnQQAgGGLA/8 sqWoDGr3RmJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEYwAKCRCLPIo+Aiko 1X46B/4ttG1//Uf3yzHz2UVvm8cP5B96gro5PvEoK3vjNCYja8hOZmVu6v9GW5CkmnOb+3jEy/A F3O2JkCE9qbaSinFwCxDG2IviHDn3R2MSLm0Oz38JU3THj1JqiqN9tkLVzqGWianYbVicOFDWLw ffgaoAshYzXH5V7xc09KzxsPqxBXnlpZraDTgrv8ahuF/tN7ra1jWUyA/Xa06DhQLj0cQZ/mOdT NVO7QobdWHWByEfRjFJEbZhhBnXbOVtNPRvwF3NyvPQcEcFZGp+KzxZI3EoIkBu34mYwHoNE+d9 BT4naoD0RmK4tSKFUCczE4M+TIsdHkuH61/HLPB/sDlW+nSz X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzNCBTYWx0ZWRfX8FmKL3eRlnA5 tpjWRytzSN6tQklFryahaBazlZroj5vK+WC74ubobnfXuUKozv+2jTfUL7dN20vQliDZnVdH036 7iUEQ/P44fEMk6r8O58jq+3hB0CT9FUDgrsmMNpDm7skqm6lckrgxoBMJI+bnQ+2qb0CTZmBj1g FXA3hoO0h7F0UuBDE3ucQBO4NNfTYgv3mi8H/QTAyojj9J9cC6foY64TWIG8ny8A7T0fYcRiQjN Fyhr7yliF4Q0ZHTUUvksdx8jmdP+LqcStU3fl8fCewlqcKiFyJiCn/Kiy2QyC/jP+ZaipADqE/t R3SUW+GvhF/d9+ATig+1YJbXrXuftPnFZL/4r92ravLDu+Fq8MGFrXXJrgvrqcpA4CiDHoMtQMp sDdGEq4x X-Proofpoint-GUID: 5-84ZPUiYCXp1oNpZu8X-LDUj7s8n1UG X-Authority-Analysis: v=2.4 cv=K+AiHzWI c=1 sm=1 tr=0 ts=68b2446b cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=4euzTov2hVyL0VtTdw4A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-ORIG-GUID: 5-84ZPUiYCXp1oNpZu8X-LDUj7s8n1UG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230034 Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Audio infoframe is handled separately. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm= /bridge/adv7511/adv7511_drv.c index 26f8ef4824235a9a85b57a9a3a816fe26a59e45c..fe30567b56b4f600683f0545ed2= 70665e692b12c 100644 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -904,7 +904,7 @@ static int adv7511_bridge_hdmi_clear_infoframe(struct d= rm_bridge *bridge, break; default: drm_dbg_driver(adv7511->bridge.dev, "Unsupported HDMI InfoFrame %x\n", t= ype); - break; + return -EOPNOTSUPP; } =20 return 0; @@ -938,7 +938,7 @@ static int adv7511_bridge_hdmi_write_infoframe(struct d= rm_bridge *bridge, break; default: drm_dbg_driver(adv7511->bridge.dev, "Unsupported HDMI InfoFrame %x\n", t= ype); - break; + return -EOPNOTSUPP; } =20 return 0; @@ -1299,6 +1299,12 @@ static int adv7511_probe(struct i2c_client *i2c) =20 adv7511->bridge.vendor =3D "Analog"; adv7511->bridge.product =3D adv7511->info->name; + adv7511->bridge.software_infoframes =3D + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR; + adv7511->bridge.autogenerated_infoframes =3D + DRM_CONNECTOR_INFOFRAME_AUDIO; =20 #ifdef CONFIG_DRM_I2C_ADV7511_AUDIO adv7511->bridge.ops |=3D DRM_BRIDGE_OP_HDMI_AUDIO; --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 3403678C9C for ; Sat, 30 Aug 2025 00:23:11 +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=1756513393; cv=none; b=WKOY7H4UylqR9OcVdLWfcs95ECpuJF6xIMjFildegYz6N44ehEbz5hVEkED3+evftVB8BIAN8/C/dKzJqB5mGclFlbhCwk6aj+ChO4qMLDtPTfPHuWwo4v91R/Vywrnbzabo4UES0LvkQB20uR69xpWzWknXfTx9FeKiSZ1LdZg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513393; c=relaxed/simple; bh=Ehca0mnSJRD6ppoLiHXuwtaX4XwYLAYeehZSVf/evtI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FzI+6c4thQV/mkzUNFeVce7erhUjzc4vVbMqSe52n33L89LoeNGdZHxhoOn2sErSWD+8t25zcskf0d7oO8iT0P3cXi6JXozuuzd3MdmRkpoSaB0eD5WH2jtd34tfPC5Uqs4Z9lBB6NjONAw2weTOHZWRTM/Ij6AHUq1dxEU2xpc= 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=UClwzVJg; 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="UClwzVJg" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TMklbp013697 for ; Sat, 30 Aug 2025 00:23:11 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= yR8ojpGZaE3dckXhUPm62p+tv8/S+wacYcr4NjEKkXY=; b=UClwzVJgdHkDXZo7 w3HM0F5aHQ2GZ+oRT5p8dn1CO2MLAhjgATxyxp+iakcyr9esh6YHe4ZUpZpeBRjj Ik2Gx3v21Yc/5quAu0rD8AjaWkB7FynQ2yGPMT2sdTyQ3p5dLi+8ZWH62WowuuuQ lg7kaEmnDKL6WOmc/CutjHol/YWAAKRaPGcX0+g4IoSL8xB/2y4pXhsf9pkzoN3k uaoECza7pCvR2bLDT7xtmVAzjw8p+bqzfThSU38R4ssxQrWFLJBYrG4U01wOm8HT w6VFuVebCKhIDl8dtJ1o4oJwxidP72REwLXT55tq1sT8XlSEQmJWC1hfwv92yHFu UtD4/w== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q5w35dsr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:11 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4b109bc103bso56209711cf.2 for ; Fri, 29 Aug 2025 17:23:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513390; x=1757118190; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yR8ojpGZaE3dckXhUPm62p+tv8/S+wacYcr4NjEKkXY=; b=Y2h/qdSAdlVoxk4j/5e0jS9QaNmL74y3GVLs5XwQ3IX9E0I4m6EYW3q0ne3qrmOAXm yB6U26FuGdzUKusRyspRce39bjiAIHa2cdbgHx9lLHvV4e8G4TjK5gX1j4kXa6hJKIE5 OlFG+a5ezvQDosG7iYWYK4JCiEvhf7srN+IP+oe6NKMMlaHfQyVrKMgiF3tou79YDFm4 rBl53hqtztA/axBqUHgrgEAAbdIJegxCUIhYfpdR+3wB4Usm7bNzCvyp6ESHHQ1clSvD ohfVs3XEXBMT0snFHt4OM5t+ZgLLD2mnnq9jvoFGVJJufXZdooMLIrt1ZjfHnTIE039+ KfDw== X-Forwarded-Encrypted: i=1; AJvYcCWZHPYyKYpmAwkNkbsmjF+ll1hpl3zTfWdNEYEY/ck5JJbeqvbmR6ZV6K2n9/Lyg17Ld95miC7gWf0x3f0=@vger.kernel.org X-Gm-Message-State: AOJu0YwqPIbV1/Ynlm8CCCPA8b8SAqgxFvJ+FFGMgr+/lg2hukt6Woq8 qj+BzLilun1vUXovCUal/qC+n8iMSd25VA84R4tBo7/t75anHK/rxHn7DpeElds1OfsSciNE1lC xDIPJonlC7GdAjAYZNaIqE1LWNYDr4dlsuKqfwd+5fanUt2Nyft3UMDonwRzHLQOE/fs= X-Gm-Gg: ASbGncum/H4LHHGFvitrkw2OwTqWLVCf60zvJjslarqOWR42EVL/a7LF6jKly229rpR VxASzBV0IAh2BiC0ogjA8CgIo9SM9s9bm1qtuWBLzuaqv8lHfH2UCzXpF6x78hV408WaZluK6JZ 68Oa/aqXarp4ioSam6S+7FqYlS0xtW+n8WAviRICWs44DXQApQuvIBCMtvBKb9UlVB4s0Ire6QS fn2WLUWp/B8gPU7oDcr/lI9/UlDCZBA1/3p08Lb3kIxwYk+h31YJodoShgOGaiNrqHdlaKnedH7 dBjIlrwfuA/Dl+zBm5U9KYuCIjd+nyng/4Ze6VzYUGf0W3wFbdEDLMxg7vZ2+cySk1dtmoYUdKQ stAh7HiXfVQnWQN8dRXrjJfjZafoeU7SACfjQVcX1PtVy5ENzPc1x X-Received: by 2002:a05:622a:1806:b0:4b2:f786:92dd with SMTP id d75a77b69052e-4b31da700f5mr6049001cf.57.1756513390021; Fri, 29 Aug 2025 17:23:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF7MI5AgeDyZIhBXp4nqzUlr+O9xa2caPrlb9g34SvQBLOsNrDgnfALkKyRc05CDcviHb65Vw== X-Received: by 2002:a05:622a:1806:b0:4b2:f786:92dd with SMTP id d75a77b69052e-4b31da700f5mr6048661cf.57.1756513389582; Fri, 29 Aug 2025 17:23:09 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:06 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:22:59 +0300 Subject: [PATCH v3 03/11] drm/bridge: ite-it6263: declare supported infoframes 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 Message-Id: <20250830-drm-limit-infoframes-v3-3-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1689; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=Ehca0mnSJRD6ppoLiHXuwtaX4XwYLAYeehZSVf/evtI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRj11vVN09hllSph2xCMLc0Do8yrAjG7XStQ fWhXkyDAaaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEYwAKCRCLPIo+Aiko 1TWWB/4rD0vAi94fpXgnZ/MAOGSejRTzdVcbXAhKRnofFOaPhsGaS/JXnirro1+t0KnU3RTBpDT qUILqYS/Jzl/1JMqs/TPPLURpwv0RrtFpmc/HAZYEcLS2ptOq9zgkpx6EKA3Vu0Q5UjMKra/mNg TILceD4EvuFfESWUcc2cjZJtjIIwayFwgP+f0GbyaYK7Tg9o6vR7kh37CYQiAVa8c1Gm1YcK3b1 C/0Mhu0uJEkwcXFROdPZmEItNVR7kZMZOmfUjYFmjVBcYIwIDe69U7eLVRhFCPqPYKs/1Fb2kPY E8QdgsNmJMHRw8efstr7kx/kBQWYWUxXpKZuhf6DFZnhA5B+ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=Z/vsHGRA c=1 sm=1 tr=0 ts=68b2446f cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=HkIXcrnrDl8JFVr2q_4A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzMyBTYWx0ZWRfX6Kf49WzHc6Ak Ru9AcX3foG9yLrTszaqaujJYpVsarFC4Uco4CrS0vbyHV3irkHI3tD2pnk3UMNLgnubRq+gU+1k QVCSOcaNrerhvC9tveJGRihrEJL1B6rmr/YxlbndNicQoQFte6ghVRPRAV+lylAtZf7JBVyEgiR 88RVfj7saFYyMX07VxGweT2NZt5djmMs+4v8Hlba6gOi6l2Qtyx69Ld6IqX2Qc0yQb5Bhy8rIPm /hha6UIX7Q7hrFq9PKZDXjc2Pnt+79LSGge6O7tNhMKpSlfoC8Qh7W9zj9Csi8JU+18Iu5qQ1QZ XN5gsSWTl6u8MWJa7FZj/qLzhQiG4WGRZL+kKGQXJYDjhJIKZHAumZR7bxE+otsgZ4Eh3xtmHfl nbYMaa/Q X-Proofpoint-GUID: 1j7EtMOJy4wdFFDRCrIGm-3-2NDnmph2 X-Proofpoint-ORIG-GUID: 1j7EtMOJy4wdFFDRCrIGm-3-2NDnmph2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 malwarescore=0 phishscore=0 clxscore=1015 suspectscore=0 impostorscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230033 Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/bridge/ite-it6263.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/ite-it6263.c b/drivers/gpu/drm/bridge/i= te-it6263.c index cf813672b4ffb8ab5c524c6414ee7b414cebc018..f2d54ad8fb64254747f2e8e301f= 19accf337128f 100644 --- a/drivers/gpu/drm/bridge/ite-it6263.c +++ b/drivers/gpu/drm/bridge/ite-it6263.c @@ -755,10 +755,12 @@ static int it6263_hdmi_clear_infoframe(struct drm_bri= dge *bridge, { struct it6263 *it =3D bridge_to_it6263(bridge); =20 - if (type =3D=3D HDMI_INFOFRAME_TYPE_AVI) - regmap_write(it->hdmi_regmap, HDMI_REG_AVI_INFOFRM_CTRL, 0); - else + if (type !=3D HDMI_INFOFRAME_TYPE_AVI) { dev_dbg(it->dev, "unsupported HDMI infoframe 0x%x\n", type); + return -EOPNOTSUPP; + } + + regmap_write(it->hdmi_regmap, HDMI_REG_AVI_INFOFRM_CTRL, 0); =20 return 0; } @@ -772,7 +774,7 @@ static int it6263_hdmi_write_infoframe(struct drm_bridg= e *bridge, =20 if (type !=3D HDMI_INFOFRAME_TYPE_AVI) { dev_dbg(it->dev, "unsupported HDMI infoframe 0x%x\n", type); - return 0; + return -EOPNOTSUPP; } =20 /* write the first AVI infoframe data byte chunk(DB1-DB5) */ @@ -875,6 +877,7 @@ static int it6263_probe(struct i2c_client *client) it->bridge.type =3D DRM_MODE_CONNECTOR_HDMIA; it->bridge.vendor =3D "ITE"; it->bridge.product =3D "IT6263"; + it->bridge.software_infoframes =3D DRM_CONNECTOR_INFOFRAME_AVI; =20 return devm_drm_bridge_add(dev, &it->bridge); } --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 A8BCD38DF9 for ; Sat, 30 Aug 2025 00:23:13 +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=1756513395; cv=none; b=s5fE407anEpfdc1Rbc9Jfcc8bfKvorDmpQxwLYdCp3oYVul78S+M7Tc9D2AbeZ7nadjEvsZeXFbztki77MqdmXw3iIYMhlhZWf5TEgE7y9PwqVuLJDGaNdo2dBW55Pu16nm8+nN5ahJ6rmmEhIL1Wv/TlHVIFn6qyE5WI1Tr7cw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513395; c=relaxed/simple; bh=4s8HKYSS0MgM6zvdVaXPrA7S2HD2NH/k39knkirGVZc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Kv/KGmgoEe++usf9x2S0x5NHpENnAAr2206GemavijAf0JStK5RAwHyjS4At2MlJo+zwpLts9oZDdesXeykDGRk3McN9KAPzPOl5B9QomVofgtFhHKxfkktApKNLLqiPXAfCles72DU9dtwDxbK29Fm/NLkgKsjcdPwwTmVkfHc= 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=UMrWNzqM; 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="UMrWNzqM" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TLTQUW024471 for ; Sat, 30 Aug 2025 00:23:12 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= 5Ph9fpMKwyVh1QpkoJDUD9CEJnYrcgjdCLeyqaq6qOo=; b=UMrWNzqMYMrZjeNx lYnPwFSM1DlBJnTfCbOVORANqwmE5ZANTNLbCQxA5h0Nihow7ScdskL6QJWkOmuA vnTrj/HyOKDAAoCio5lvtPu2sVEiE6uo+b2Oa+dSqVYs8/PdXmgfmnbY/2CVWKu7 au00EnICgrvEGxh90n950pV+jSVJxRMi6paAXydM1QJMZxlHRArTP5rFcL+zkMET eCRlTP71YCJ9UQ/aErsHTmz9dI16r7nTObvARC+BLZ6KlbnzRfMcOsK6wEfqjWA1 u+1Rhv4VrkJ3tnGz7xDgal9Bh7h+5oliTjISg7i5WV8VA7v91eEL/Jc5u68XCOZ9 ClPVBg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q615w3sp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:12 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b2955f64b1so66375661cf.1 for ; Fri, 29 Aug 2025 17:23:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513392; x=1757118192; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5Ph9fpMKwyVh1QpkoJDUD9CEJnYrcgjdCLeyqaq6qOo=; b=vzqGp5jR7iv+iF3e4zJ6MDqxbN6vg2oXQW+oZEaJjmC42dOLTYfV7o2BzuCEIdEEY9 KurHb8sCqp3i6hdML78m3GjH+gPiIy3mdcXUVYg4a0pNdd5n4e5LB9bPNXCsc62e9sE2 455wy8gT5OzZVuDTtn2WmuzWPwR/CS0QLskloSOxOx1Xv6YNteaFg0eQ8xhKx+rDRrvG xe3gyNfOi7M9D4hI6q89cCKA/h+6YVmEVuh7Cx3hw5iQ6O4UZf/yeRRYKslaHWxkj7o/ xK5UBJoJLpTWOU630E5LPDyd8wbwrbOise8cAsq+29gnQHlRiMDQC5gJsxLN7LohUZDL n/gg== X-Forwarded-Encrypted: i=1; AJvYcCUDCkqQf+uq2/H0THDfepflQAK9LrSnYGgSJ36P4JgP2O7PzNP+A306+ZUI4WpaGrNaoxf2GLYqvu4S1vg=@vger.kernel.org X-Gm-Message-State: AOJu0Yy3okysy5BliYyZ1/YLMathZN4tEWJscAeJELO/w2SUPy42/YuC EhK+51qIVuyvPTQEUVOQ39mhR/Oc1n2qMEqTZyJ+/2auPO6L+uyzpHMwSmyOwaSjEC46XM+6ZLt cRmWpUqtauhPycrLC6htJCjylfkkWILSs3pmoI6ROvWssBjNRf8dxHIfHwMrIVqt9b/8= X-Gm-Gg: ASbGncsW8QVb7wbkvE1VyS5DOwAUPLwMWRORn7789pc/BAWfo7sCN2+bh5Yy82OqkOe 0PyIMnxJK1Xe6ijToM8825qVQQJjwJyq0WfMeq+cdkP1kQ5lYdNWASsae3pNKVVs/xcYSYsvACu 5x2Q854CpJ8w5smSaPTwWAugaaCWhM7AnySIj7LMF030J/Q2Qsa2IC258HCBaY+KYEo7BXPwU0w Dq/1KQzzD7zleZHbe4nELCvD0IhZ+jnucViTC+G5qJwt7Ultvan/DY8jEMuoo85SR0M3QdEC8Xd 91TWazDlt6tt09UNr7B+hnETZJkGe8TA20daQdT7MA5cgmbjipDWCXc4ntjWwy8auyG9V1G8r2o D8YK5ezqUKRLhobU9xOwUrusMkjw7ITJXU8Sx+YKP5asWmJErQkmY X-Received: by 2002:ac8:7d4e:0:b0:4b0:7989:13db with SMTP id d75a77b69052e-4b31dd21723mr4241561cf.58.1756513391688; Fri, 29 Aug 2025 17:23:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEHd0n8qaUqx1S4BeHPfs6IpVe24aic04/cEgU1Am0csv+xPy83xFNb93VjtGw3hJtcKfrI7A== X-Received: by 2002:ac8:7d4e:0:b0:4b0:7989:13db with SMTP id d75a77b69052e-4b31dd21723mr4241371cf.58.1756513391171; Fri, 29 Aug 2025 17:23:11 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:10 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:00 +0300 Subject: [PATCH v3 04/11] drm/bridge: lontium-lt9611: declare supported infoframes 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 Message-Id: <20250830-drm-limit-infoframes-v3-4-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1606; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=4s8HKYSS0MgM6zvdVaXPrA7S2HD2NH/k39knkirGVZc=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ8Yml2SbZ896twlcmpFYdb3yiNI2XV4x9X7bfjcNlm3zv ms+vfKyk9GYhYGRi0FWTJHFp6Blasym5LAPO6bWwwxiZQKZwsDFKQATOSfN/s+U70GO8d2+Db0p /pN1z9m/2y0T0DMvz+NpxuZFXmJBn23ZPKsfs4svW+bYZGf3LKdbWyZn2nKFlVejZz2vP7r9Z/E E00Bj9pPP38rLZN7Tvp3K2hfeFrhHkWnmKekpb8/mXYoVCMt1+Bztn71ONMRryfo44T1JLy72t2 33iGl60Wy8bMEafuegeTlLzM3L0y9GWe6c+N9EwnKpp7bm3UdPVlnL3nDd+b/+WJjb1GCZ9u/p1 y3s+bO9rkc2R5mJrn+TnqR/ZbLwAfuupdoV7uu8bBZYc1hFTWANWLtK7OHNXc0HrV/U/p8bupdz 16WmTMsyI75JubpRa48wq2S455fpPNVdaKP4xvHWk+oNAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzNCBTYWx0ZWRfX3O/Mw+n89z7b 7XtZlCrnX2ehEPjuI956q1XBrGxtcrx9LfvJnzh+vgNn/ex2XsGrfBelDRzSLwsQW7CZRdPW1IH XUXOKRI6w9Xjr6sFYaVgTuY3g2jpU0SjOzhEGh+LpkHaR+OwHg1VysWPvc4yP1/zjPoECAUcRtt w6IaGWBdwdXW/LtpQs0GfPF1SBV4BVXEdoaPnwx7xH+xgLodVwv0By2BJrnYEhEKrsTxriZ63Js szuxDbptVM68St3FX4K730nZcUnG/V/2rkhXH4OfOpVXTzgKm2LCvH1qWLQDyrj8cdLKd/pd2D2 zhaNoShFuZ1ZL+EetRXKxZm4OshbfEcHh8i2g0D6jexyAc5HsLA1G9prgfY0gpgmQdSXYa0pp9P jotf2p6n X-Proofpoint-GUID: pukX4H_MdYq960DpNJ6KDhL0Jwb0BBj8 X-Authority-Analysis: v=2.4 cv=K+AiHzWI c=1 sm=1 tr=0 ts=68b24470 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=AMvF8s34Jxw15HKoVo4A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: pukX4H_MdYq960DpNJ6KDhL0Jwb0BBj8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230034 Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/bridge/lontium-lt9611.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/lontium-lt9611.c b/drivers/gpu/drm/brid= ge/lontium-lt9611.c index a2d032ee4744715b88eb66883edf69bab4c274b0..271295e1549885ea054647b06cb= 95d483e352f4d 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611.c @@ -870,8 +870,7 @@ static int lt9611_hdmi_clear_infoframe(struct drm_bridg= e *bridge, =20 default: drm_dbg_driver(lt9611->bridge.dev, "Unsupported HDMI InfoFrame %x\n", ty= pe); - mask =3D 0; - break; + return -EOPNOTSUPP; } =20 if (mask) @@ -911,8 +910,7 @@ static int lt9611_hdmi_write_infoframe(struct drm_bridg= e *bridge, =20 default: drm_dbg_driver(lt9611->bridge.dev, "Unsupported HDMI InfoFrame %x\n", ty= pe); - mask =3D 0; - break; + return -EOPNOTSUPP; } =20 if (mask) { @@ -1136,6 +1134,11 @@ static int lt9611_probe(struct i2c_client *client) lt9611->bridge.type =3D DRM_MODE_CONNECTOR_HDMIA; lt9611->bridge.vendor =3D "Lontium"; lt9611->bridge.product =3D "LT9611"; + lt9611->bridge.software_infoframes =3D + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR; lt9611->bridge.hdmi_audio_dev =3D dev; lt9611->bridge.hdmi_audio_max_i2s_playback_channels =3D 8; lt9611->bridge.hdmi_audio_dai_port =3D 2; --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 C3394194C86 for ; Sat, 30 Aug 2025 00:23:15 +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=1756513397; cv=none; b=katUPgWCaG+riVRtbjjf7k6R2LBYT4u4uShMIThMRkxt0W/vEsiZROAtQMdUotVYisJdteX8l0m8UczNi2KCIlgG3QwK917KIc522K27BL6UM8csbOoGk4spt9zvVyNWVF4vWOcjih93uHLO6SF6u7mXdOc00LZUeMMOncC0wzY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513397; c=relaxed/simple; bh=HvKx0pHrlJPU20odLzHqAGtdiIb1kp87Z3cgJaG6Apo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cNfnttL6usfTQtmJYY/eAj+/+uNwpg1xU7vRdDkJP17OWasK28yCGBuxTiIQrqecv0h2DF9H6m2hfMIQ8xczD/wZ5pUIkveKgHZMxlmm29LOqR6BYdk3QMKKXskxCQnIrDnQ2LUw+DpeafSN1QGE0naMBeaPt5jfV8B3ool7mPM= 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=ZOYgwC5T; 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="ZOYgwC5T" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TK6nmn025449 for ; Sat, 30 Aug 2025 00:23:15 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= 80NStMTAnoFzXJOwtQHaY7xhRYT5mvFsRO93ITTF4OA=; b=ZOYgwC5TrQ70qNtJ CBwSeTXLH9UxQ0I5/N8gmk5xlZGUknURoGkAZOHF0rQOsIShKBj5CgBbtNZmf3/T dQTkXPx6tVzO2LxWReTSyHfJ+KUdHkyQ0o3n7wBSuO0YF9lT2cCrxAgdRjS68k7j +4snMAB9R5JfHWAE+Q9s8E3hmK7DatYDCbWCIu6sM5JbGYbYj8Eio/kUhKjWKBvn uDbr3Pd7L3GyKSXCgJPKSosCd3+GkP94Ifrqme375twmU8ar6m3NVyRGD6u34ll0 Q1p76xCrTJSoRc/aKpiTMSxg0UBwrTlzIo/82Ydm4gxqOJrwzTAPqP/rIWX7GIYi 10ITvg== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48u4xyjj4h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:14 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b30fadc974so22720761cf.3 for ; Fri, 29 Aug 2025 17:23:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513393; x=1757118193; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=80NStMTAnoFzXJOwtQHaY7xhRYT5mvFsRO93ITTF4OA=; b=UlDrXczjKUWVaT5NKakI/6h+rTQfEE9775O6jgTmqhkAUXDuVo6vER1HBoZ7aq41Zo tKHl2Rlu0Y9JE8gY3qz45dVDXiyOaIXDJYZdjWd2xW0zzCXhXP77I3xsSG9dCKnnIXah YdERYD55Nyu1tAWNh1fBgA3+R/jvVCBgslKLRDwnzSFr955UITPm6dCSgblWm4Kcxkj1 BhsMYcYLbkN/prIw/j2t1K9r56KtwETjAAMqR/WKNzyfF49KuFxgo4x17+43PgNiBchk tRHtslz6G6C/ERxN+Qvjjyh59BVqhMUtNce6m1XqznKlSLxGK1n1pnkKV65jpg/9TwxC Tnug== X-Forwarded-Encrypted: i=1; AJvYcCUgajkN53fm/aGaX9gHZdUNLncdF09PgOoahY0yuJ7G08ByiFZgfDLMFh/HdLj7PdZ0/ic8lsEKuUrNboQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx72GRP3F0a/XQ51RpM5tHm6E4jxGMLSydJFGtQ8HT2hLOK1irc if/yWf60njg13Y8KMvAYAhG2GdQfKG0cHufMlZCh7uMRQSniAGUCpeDRH3rkzlClg0kC3rrtMuJ u2wwCUAEFBXrGatqluWfly5ypB9IJS+tlN8InLPbhFdi4W6pmIw3zAcleGkp+sEuGIJA= X-Gm-Gg: ASbGncuyGMC8WioXsSkMva4+vKdDGHuMPG0Rh/1Pn6KQzMGB9KkKsi7rGFF50p3xJlq L2+sEqg3EXQ2aXgJHLwJJ/sfNq9bW/MymecxNtJJeqkeAOo1AMdFiCr95JUYgCn1IBjyQr2s1bz OIKWvjYP7wP0PEqEat47lqKzkjBSsSA5FGO5X4J29d8CE8/FShfjCjcLDC290TtI4HCZfayxtvM HRLBsGMTyET5/wOLvsTmGGIWMIM9Tom1Wx8T5ZXvh1GDdOQeHQyzotMa/CZznU69FYgSosG8h+o DlL1jxk86mmjS236AR4sMfk7ahhHXNzyjWnGOpFSwSKtUM1kombM+xq0WsF8N+L3rFY1FFCWnxg xgtiaQQyQsabXArMu+MkPZPtHuCbqth2ntf0UKA0j0VUWOVeAl5Xe X-Received: by 2002:a05:622a:50b:b0:4b2:fdda:f7be with SMTP id d75a77b69052e-4b31d80cb39mr5664551cf.3.1756513393512; Fri, 29 Aug 2025 17:23:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH+ECcTfEmyA0oDw/SDMAaP2b289wQGB6V4nJyogvFjeCA0Q82zJiolJtrAbz+rOP9mbXYTVw== X-Received: by 2002:a05:622a:50b:b0:4b2:fdda:f7be with SMTP id d75a77b69052e-4b31d80cb39mr5664051cf.3.1756513393037; Fri, 29 Aug 2025 17:23:13 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:11 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:01 +0300 Subject: [PATCH v3 05/11] drm/bridge: synopsys/dw-hdmi-qp: declare supported infoframes 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 Message-Id: <20250830-drm-limit-infoframes-v3-5-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1488; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=HvKx0pHrlJPU20odLzHqAGtdiIb1kp87Z3cgJaG6Apo=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRjn135tRCfVJNBGz8sCeDhP5tCOP7aR8o5A t4feOQqmQyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEYwAKCRCLPIo+Aiko 1cklB/9ld799npnBEVzpUVL6B/MsuL/WFKALm72JXuja0Df8R5L61ialziPIDOQhwqS7m/CUarR BbAyiqXzuPuzqlJe7l8x8oNPMkfoFKSUh6v1bzsao08IUfOpraVdo/cUzHZpRHD+e4Z8qQa+lZD wBf0Q4KqCCTPDQVK81CqKt2s49dUX1K3msOCLP+Q9qTWEUhYcipODy0q5i1LOOzeK3q+W79iNMm lnkrosjeoE9iQEOOniqNI0p9r7yqKeHQL8lZ+0xiGmqvPd0sbBDmohgkxJhwxe2chOX/N92hTH9 wpH7XHyXSQPZRmESVQdN7E5BRH3RguYmbQ9At1pUFu6xJ3VQ X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI5MDAzMyBTYWx0ZWRfX2Nazsxuiq7hy ajefW9xYxD11FkV6C77V7rdCnQXmd9Ddrm30MoDcyQe5mtI00WBINcBa6jJbTqtMbKoA56nROi0 EmtIFDQrx0eLyR9QbME7pZuXMs5ySIMvKhv6/akBAinRjfCBQ3jRDrgQR1OiKCWTrnLCPrUWawE eZeKC8HvNdJLOmPnKOmkENiNYGSqa9Q8kkpM8uKd896hgM4RlOgblg6rg8Zskj6Ik2L9f6maDV7 lCpqIwH4UGRsHUox62PUfVXSGwbp0QAvVhJ7L0BWybaFDMRPmRbZ+ZoRG9tXtYjuJwumHGg9Ggu WVQHh148bDDj64Bo89APdekeStqw7qCgqOQhYEgS4tfp6U51WFfcerReWFMdP+WTD0CG8ej5Wkk 05VDHHIL X-Proofpoint-ORIG-GUID: 3PCxXGrx8TnlF0k0v41030JbzRSsj2yF X-Authority-Analysis: v=2.4 cv=PYL/hjhd c=1 sm=1 tr=0 ts=68b24473 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=vfAEGMZ_7ZOHtlG3iVcA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: 3PCxXGrx8TnlF0k0v41030JbzRSsj2yF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508290033 Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone Reviewed-by: Daniel Stone --- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/drivers/gpu/drm= /bridge/synopsys/dw-hdmi-qp.c index 39332c57f2c54296f39e27612544f4fbf923863f..5320641cb6907a98cbc311a8075= 5f09b88a27ff6 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c @@ -936,6 +936,7 @@ static int dw_hdmi_qp_bridge_clear_infoframe(struct drm= _bridge *bridge, break; default: dev_dbg(hdmi->dev, "Unsupported infoframe type %x\n", type); + return -EOPNOTSUPP; } =20 return 0; @@ -961,7 +962,7 @@ static int dw_hdmi_qp_bridge_write_infoframe(struct drm= _bridge *bridge, =20 default: dev_dbg(hdmi->dev, "Unsupported infoframe type %x\n", type); - return 0; + return -EOPNOTSUPP; } } =20 @@ -1084,6 +1085,10 @@ struct dw_hdmi_qp *dw_hdmi_qp_bind(struct platform_d= evice *pdev, hdmi->bridge.type =3D DRM_MODE_CONNECTOR_HDMIA; hdmi->bridge.vendor =3D "Synopsys"; hdmi->bridge.product =3D "DW HDMI QP TX"; + hdmi->bridge.software_infoframes =3D + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_DRM; =20 hdmi->bridge.ddc =3D dw_hdmi_qp_i2c_adapter(hdmi); if (IS_ERR(hdmi->bridge.ddc)) --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 64BE31A3167 for ; Sat, 30 Aug 2025 00:23:17 +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=1756513398; cv=none; b=uq4Q5duWUowtQnmly7qnCcVn6hpudZVF/6aHVmexhy6/73s4hW3Dqm2bNQwMdJnI/z+3E8MFt01d9AOqWd0+098O0tHaZCBKAzOoCrbpcpLHtTZooC6MakanojUTOAPXs0JisJexXIIU9DRh6+OxDt1dYkvCG7hBFIDAXBKh0PA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513398; c=relaxed/simple; bh=ECUd39xCRDayMF07yZPid7frZVCtdwJ1DNCpnou818A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=a2uQWvaz3jmC9bq9cRcpy1MCAufx+SLPhFeL7GAgie3v1HoCv9TKEiUvOC/x2xrOJP5mHDwkEoKppWN8OTx+MhymMZK2UJBF+QQFuMyHMcX1SJ/iizgurQQwnqScqaaYQa63KLv4KaUpgj4ocAbAPRDR63vuf2NdxTM/CPH5JCQ= 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=D7uh6kBb; 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="D7uh6kBb" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TKSl6G001185 for ; Sat, 30 Aug 2025 00:23:16 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= 7nf0+abWmGCJST77+Ob/lOwCJuYhA6HECShYvSo7oZM=; b=D7uh6kBbblxZW9vJ AQO8arjsTAUfNxLenI3aVXaXtb+11BbgrmB1CsxpHrPwQdS43XAwfzIrKq+kezth j0GQ7nGhM7SpUqwR2cPX+XWfVbC24Ib5B7YwoYmATkzJY4gh8J1rwzi3aFyH9Ix+ tAJCELg4AuWIOal/7AXKBIFsw1i4bmBWQMFMxyji7h6Ae+XVjBEjjf29BpO64YmQ 6Wxm2TSFNric0wtJAfepyQebNkRovHAZTKwmgsL8J3FPhz7g9m5WwjFRN1Y+peAo YCMJZg046hFPxkrKymnymtVULik4qmEuSipYKoKOjpZlJYnHLEzCUmqqjwjldwBz WVeqDA== 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 48q5umna63-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:16 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4b2f7851326so70909811cf.1 for ; Fri, 29 Aug 2025 17:23:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513395; x=1757118195; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7nf0+abWmGCJST77+Ob/lOwCJuYhA6HECShYvSo7oZM=; b=g3aq5o0jWGOQvGybxfEOV+E2Sa1nx7mQGQoHJDQEwKW9/EqhOOuK5mzl0xgMn8NDYE pP6xBaYVJXFJaI03dTI3TSyQICJSbUzv2LJg/hbYeLwif0cN5e5aQLNPx2KfeSYxQsB0 fNER3xcuBsWtuPKpsBPFY/eNLg3nLwY2mbQGr9iFkyLHfKpnBiq0kEK5+Njg8BAe53CL J4TrfDuYdxq+9sfwuga0fNR33nM5bAilkxk3/HTQYVnuG9vd1QwbP9JfSjbskKNj/aXf 1hzsJbGd7UErhoeiOo19UiBeoofyiFawFT9zzydVO+0bm6YvuH/l6httMzyCzXlmk5i4 wiSg== X-Forwarded-Encrypted: i=1; AJvYcCXRoCDRS6czWE/w0c5k5DHxZy4PqwaOkrUExCRFHjKijsRJg8HxOZimAWQAE9VOklpRDAch9lX18q/dz0A=@vger.kernel.org X-Gm-Message-State: AOJu0YxzJYse6etGnkc8HyP/s1hjcY03Zppij4YHLRJSW/hvFXVHMnpZ /9tUhXxMlXPIIwAkmHeVCnM7IBKp9dVzlpXBE+s5peBBPXUAeCKDRfSe6AOwmB0JRhifp2MzMbs FS4bwVZ7YWwd6+l9cIIxuKsBh8a+U9AeHi3ucuJcHPBxPDoLTxVZUJdNWx/y5UYZObs8= X-Gm-Gg: ASbGncsiDBU1s0h2NTh4RmZvwaSHFsee/HljO4UGfn1yh2ZUmXbYMx014lvQ1SX2Xxv 9mNMwJk1lpa2QkflTBz0ICtYwfEpGxPjJON2IO0at9nBsg0zJ4Pn88qB/tTuVj6m6MSDdNZ0vlQ HzloeON1b4clvWsafUPhLmHgAyx7vvlC/rryt/h2zYu6VwX/o9f+EQc9lRFV05KQkQ/zYDrGstJ uVQXmL8gpX80c0ApA3W4dblHF9WSPnbSyqjeIQmIjjeJCHZ8PDoqkN9pDdO1Fni2UXIB1m9K9Ux iMGUsDT2oO7POfaKzDOg9IL3Erb6OQpM5xuszhcZuhdyPgT8nWZcQVoFtHva+7Ju625DG2AVHca +jevVkBoQJc1n/jHwOdfzmifjaGGxUJErmZa0mleBfNVN97/4wvVg X-Received: by 2002:ac8:5893:0:b0:4b2:967f:cb4b with SMTP id d75a77b69052e-4b31dcce3aemr6287661cf.63.1756513395168; Fri, 29 Aug 2025 17:23:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFOls7IHK5n71gLOims9R5oXNm30OZQlHiNW3nK6iLa1qZum2ksrrXODlblb3ZuRNvP5SOgkg== X-Received: by 2002:ac8:5893:0:b0:4b2:967f:cb4b with SMTP id d75a77b69052e-4b31dcce3aemr6287201cf.63.1756513394655; Fri, 29 Aug 2025 17:23:14 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:13 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:02 +0300 Subject: [PATCH v3 06/11] drm/msm: hdmi: declare supported infoframes 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 Message-Id: <20250830-drm-limit-infoframes-v3-6-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1580; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=ECUd39xCRDayMF07yZPid7frZVCtdwJ1DNCpnou818A=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRkadcPsIT5VtZsPUIxt4c7DuFRHVG0R9qPC e+hnmDKZ1qJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEZAAKCRCLPIo+Aiko 1XJoB/9uSIvkAkBHEdynP5Np4TmqF25QxdIHnyZDZRd2oMA6beg+0p2vmu4j8T7iBPLH6wuOfv6 yuy3KGzqXY92I/wemcHThKBJhM3F9irEXV+pLwba1BFZ1tX4k9erRi846J49Ao7zWeEP/xfmaPz 81ispd03TPnsUvWwua6/x85ON05f4ECTHRc4+QUmjqTUB5Do+4aS6kfHip8DmrVdpbiYpQEZcDY dyZgO9lEnPsSGc+YkPsQmyKeuNdrMSHxmoExrCm2VBYq9CaceiwABEYUbvXFk4YlFDv3aa3E0R6 LB4x461C04PK5YUvWfKCdrT6vT5Mwb5jFjWe5xU7iIbWVh5W X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=VtIjA/2n c=1 sm=1 tr=0 ts=68b24474 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=QemjF6U71Mh5n78GOpwA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzMiBTYWx0ZWRfX+C8WE/Fje6dY rdpf8MBPjOXHJ88KoGtZg+M3OvTABAfIe7pMgnxbskrYqiq8lMxqHuCDGgh16KYmkDa23H8AQtb lMy5aTj8MQQpy+WxqqCf0iAIuhIboSp0YfrjNxzFeWTFLO2cXoXcxwIDCkJqLsUe0nxHm6yIlsp rwIX5G/gm9awuX5TLO+ZvukgQNTpKqpMGbWDHAKUCN1Eze8bGIA/aUP/EElMQetVuj/2BLiY8HN RQclzA0HV4GrOH7ykG1JGqBzpFwVZZy4SBuSZcwRaKn1vm+5bYsruIVyicW6dZexF6mTXbQLnfR eQpUs5sSZraoG4vqhy37TjADXE7crzwCOWdQvJOwfcLtpAzsKNNI6HdsgPI0WlTKhtD5w3o/YRy 6YPHNMwj X-Proofpoint-GUID: SXHVE8iyKMKpIjNw57MsRx00vTt1P6TM X-Proofpoint-ORIG-GUID: SXHVE8iyKMKpIjNw57MsRx00vTt1P6TM X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 suspectscore=0 malwarescore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230032 Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/h= dmi/hdmi_bridge.c index 46fd58646d32fd0611192595826a3aa680bd0d02..9dddc0e47de462212d42f3ff101= 2a073b98e3a96 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c @@ -249,6 +249,7 @@ static int msm_hdmi_bridge_clear_infoframe(struct drm_b= ridge *bridge, =20 default: drm_dbg_driver(hdmi_bridge->base.dev, "Unsupported infoframe type %x\n",= type); + return -EOPNOTSUPP; } =20 return 0; @@ -274,7 +275,7 @@ static int msm_hdmi_bridge_write_infoframe(struct drm_b= ridge *bridge, return msm_hdmi_config_hdmi_infoframe(hdmi, buffer, len); default: drm_dbg_driver(hdmi_bridge->base.dev, "Unsupported infoframe type %x\n",= type); - return 0; + return -EOPNOTSUPP; } } =20 @@ -498,6 +499,11 @@ int msm_hdmi_bridge_init(struct hdmi *hdmi) bridge->type =3D DRM_MODE_CONNECTOR_HDMIA; bridge->vendor =3D "Qualcomm"; bridge->product =3D "Snapdragon"; + bridge->software_infoframes =3D + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR; bridge->ops =3D DRM_BRIDGE_OP_HPD | DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_HDMI | --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 1245E1A5B8A for ; Sat, 30 Aug 2025 00:23:18 +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=1756513400; cv=none; b=eVkcqnKDushB09upC6RBCIAe/nzb8lSmKG7R2elPkyVzW2Vq2FxGh5B+f/vaM8c22fu/y76JVCvOvFnTsRvGF9B5duLtDxRZRLCT6yc0btIu84rD8DtuampWgr3mKR0C8+Z8+SlJVgrtiVtg/KryTLG9etRc8Sui4M9wO4FoB6s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513400; c=relaxed/simple; bh=/A/l0DP2POBzFZyyzIjBAuem9l4ed0fHlnMMJOHp1Ss=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=evTpAfYmK2GWTbvVf0Xr+xlE7i1U7rTsPbpcDResS6wMyrmgCttrzrsLa1W/1YCwxGDAEGvS1tZwOpp5TVktvIh9VKGbHCTpHQC7qFLQsRJUvXkRAOEFx6GC6TwPUDL6jkexuefqcE8q+Y9dC8/ZwpykVyMb3QRHJ8xGmk9XOTk= 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=fyLAuIR1; 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="fyLAuIR1" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TMwTtr025398 for ; Sat, 30 Aug 2025 00:23:18 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= 43JahB/w4Q9qr3p194NSk9uDBkqDfwBgTH71oZZD5dE=; b=fyLAuIR1IcILuZsH jXu6O6Tque4rEy2YIcJd6RPskLnjiWIEb9VXBaFQ1RRRXB3BKrVXss+Z5saHca8h fTx9wZEvMFFI4CXX18xMZKtM1FEee6O4g427IzKzZfnLQn5pEHVagJ/kYSJeYMC0 rcOseGW9ufIJtlUNi4HD3Zaj/K48YG94k7GkgD2dg0rcwt4+6xyrqtDegL0JFdS4 D4fMry66nEU0aNHxptwvqrsoOyzNCTCHtb0cKTQMkn2GedJvvIeiwn7b0WlMth1u i2LqJ8buj3UBuTQIsshr2yuD8pxGZKrnZZ86ysanf7BfphgLZ/aZIbD6W3hycpJC d2ITiA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48u4xyjj4s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:18 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b109affec8so54201751cf.1 for ; Fri, 29 Aug 2025 17:23:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513397; x=1757118197; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=43JahB/w4Q9qr3p194NSk9uDBkqDfwBgTH71oZZD5dE=; b=XZsc+FlYjiW+zcxRGjRTX9ZU3uDNtZMmphixzxmfVWhEHzb0ziaLtaD4NkboK9DNyN ysmIt8aWvvu+qBF6fqNqpkrbK8WKJon2zjllZa17YUojOR/Uk+jjlCWjQRrJ4+sYvOYL 3YYMNqH4Nc9T7i5zZKO+kuigj4ARyftdOWMsQYcRAcNodF/iKS0+xmvfUIOIlJ2G5X2o Z1nxBmt+o6j8Jhut5Z3JcabmZuXImNxRyo5e8Nce/lfJp99eWYmV7ACItDokCVI5LEqV VNW3RNOGJmk2ynWt37T1N3D7r4aiBoJtqeFOeZV2WvKD7idEVldgtPrkRqZBgDB/K+/U 67sQ== X-Forwarded-Encrypted: i=1; AJvYcCXB9JFTwzHfTosuqAGYY5jvlAntHNYAUI2oBVMTpqTgxm6TyRdNLyZ1TXsRSu92SzUcw1J0nVq8nWm0q+w=@vger.kernel.org X-Gm-Message-State: AOJu0YyRihxt7P86Bp5iRKP/X3Uj2S2rPoIAZg1Qnwi5PdgpSaJADRZk MQSbzfgT25rIsji9Db6J7DZtD7FUn0nlOU6KwwhAdtq/iit/fnSyuYh6eRWF9WuPKo6QwEus2eY x6x5jtAx8w+8H6jF/24tDmi2IDdKWWMHikFjdAoLiL8brDaJOQK0eufL9GCPpZXw6HXo= X-Gm-Gg: ASbGnctYywFc7ZobVjnxFW4DShSmMA9On1w9p+jMoK2jagZxzrcC95pW89bF99FIrJ7 MsppgowBKMofc4NCifdWm9Rrjic6pm98FOQNxoL5RsYz/fWZoAuwRpSMuD54rPU3qkfi+sVUqpG HDjXo0BMtkfsmvxgLMpNAepPSRSsih/diJqqJtdYPLXU5QGJLKSeVsNuwMZB6bwI5Osi8OOWDzL mZJ5vKeWEQnO5FQoACGBo3F8qoEBntJmvZouWvbR3A6AofarF67J2nr+1mBRCG1wbApyLPYVTzg KWn9v6F6O5jG2BI2k5nkaxS34EmzPKt0HBhdE3Qmm8rXBHllwa9qHkDJQtqDGtCPQnFcchJG5iZ djiqfmZAcGyykkaRKB0DBvI/yhp/hWabW6vVBiU8hT7J/14S0GVQN X-Received: by 2002:ac8:5d14:0:b0:4b3:104:792c with SMTP id d75a77b69052e-4b31dd03c17mr6898851cf.57.1756513396959; Fri, 29 Aug 2025 17:23:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE4oJ6O6HUL3QeLNimMJy0MJ4h9jyGyWC0EDFCrFCF4+QEafGCozsLgZkA63r60xpdo27y8Fw== X-Received: by 2002:ac8:5d14:0:b0:4b3:104:792c with SMTP id d75a77b69052e-4b31dd03c17mr6898491cf.57.1756513396484; Fri, 29 Aug 2025 17:23:16 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:15 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:03 +0300 Subject: [PATCH v3 07/11] drm/rockchip: rk3066: declare supported infoframes 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 Message-Id: <20250830-drm-limit-infoframes-v3-7-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1590; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=/A/l0DP2POBzFZyyzIjBAuem9l4ed0fHlnMMJOHp1Ss=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ8YmlxT5296sO5kLeZM2n3p1M+/z9QjmgHnJS6tXfjsTZ fvOL6auk9GYhYGRi0FWTJHFp6Blasym5LAPO6bWwwxiZQKZwsDFKQATOb2Z/Q+H+Z4t1z+UTCpr ihGM63rdtftGwUyFjQpvlqzSYNPI4bvaq+/7ZDU3T0azBUvytver33ccXfDWvORvXfD7mddcUs1 rdH/aTFs4xc1r74unr3IzNjDwTfGbMbPZ58gS530c7UarUzolFvoH+lVVF8XFy2R2N7a8VnnTHC T75EnMTp/5a89vdik/E+p7tWh7meDOLXOY2Bs3yhR+11XR85kcUh4b01V8bMaTK3xmvwSmsraty zf/m3cqesWWcKuS9a3J4loOd/nvpDOf8xd8VLA277VoHkeaSdYEX4Gq2q41y69v2JuwNbesx7s3 smeXjsQmySCPlfze9gs0C97zHYvj/M8WuO7ctByN+ervAQ== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI5MDAzMyBTYWx0ZWRfXwDRNAjjJh+Zk HmpwvYGnK35vKM+FrTYJdJLhT2JgYNfh3akvbf+vpCFzuvvPzSF0U89kYgwNlg63jfKH6Nn8ITN 8NXlZTe+Lx3XQ2WEFJRF4HrFZNinZ+J5v9C4cBkbdkjUsnG4LgqmBUZW+WtAmRt20MrU7AU5NsO GHPtUq0QfTL+HM/QBTiu2q6Wtp+AD8h2/YUTXYNfkUimvOXO6AR0NGvJtCIbn+gNItgmH5J1H3E F2zbO7rwVIjgN6lrWuIrMzPj7W578UD33NR4Vw8RmFyzBtFi9Q7mFDloK3EezP/wKoPVntkfL0a sO++DgG4XEOh5dU3g5ymWghOzMeE5A+kZXRx/D39ZMz/uc8v+KhkQxCEupFvJEMPXFmN0+kkxg5 fGtsC3J9 X-Proofpoint-ORIG-GUID: uq0EANVaqEZ7kIAmjAj4M8KvaAWgBKo0 X-Authority-Analysis: v=2.4 cv=PYL/hjhd c=1 sm=1 tr=0 ts=68b24476 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=xyXfUSUFIH5c4GhWOVcA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-GUID: uq0EANVaqEZ7kIAmjAj4M8KvaAWgBKo0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508290033 Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/rockchip/rk3066_hdmi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rk3066_hdmi.c b/drivers/gpu/drm/rockc= hip/rk3066_hdmi.c index ae4a5ac2299a93a49f87df7604752f6b651c839c..330c3e6ecaaca1602aee497c1a1= be9599d1f886e 100644 --- a/drivers/gpu/drm/rockchip/rk3066_hdmi.c +++ b/drivers/gpu/drm/rockchip/rk3066_hdmi.c @@ -164,7 +164,7 @@ static int rk3066_hdmi_bridge_clear_infoframe(struct dr= m_bridge *bridge, =20 if (type !=3D HDMI_INFOFRAME_TYPE_AVI) { drm_err(bridge->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } =20 hdmi_writeb(hdmi, HDMI_CP_BUF_INDEX, HDMI_INFOFRAME_AVI); @@ -182,7 +182,7 @@ rk3066_hdmi_bridge_write_infoframe(struct drm_bridge *b= ridge, =20 if (type !=3D HDMI_INFOFRAME_TYPE_AVI) { drm_err(bridge->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } =20 rk3066_hdmi_bridge_clear_infoframe(bridge, type); @@ -696,6 +696,7 @@ rk3066_hdmi_register(struct drm_device *drm, struct rk3= 066_hdmi *hdmi) hdmi->bridge.type =3D DRM_MODE_CONNECTOR_HDMIA; hdmi->bridge.vendor =3D "Rockchip"; hdmi->bridge.product =3D "RK3066 HDMI"; + hdmi->bridge.supported_infoframes =3D DRM_CONNECTOR_INFOFRAME_AVI; =20 hdmi->bridge.ddc =3D rk3066_hdmi_i2c_adapter(hdmi); if (IS_ERR(hdmi->bridge.ddc)) --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 9917E1D86DC for ; Sat, 30 Aug 2025 00:23:20 +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=1756513402; cv=none; b=hYHledUrFVy/+Ah0pqHFPiLJ2E1qt9jHgpyrMmnX6FY9jDuiBKM8r8nMeyH9M0oKKgPcETQztz613Y6Aspr2JAeZkuoCfbPSLC01/hBM5x9bpZshy+jErklQQWvlwxaa7e813CuIttVXFoKJoY15xb6OuLzSr7vb7Awu92Rj2w4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513402; c=relaxed/simple; bh=cd27TNKmPZcfQJ3UKiBSlNuQpycc1+LIV7BQ0LEWwY0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sgdl3jUdxmw9+zIn+z1EwU38A/I7yY9xzfZmo5hJiC2JnB0mM2zy/abjaxukZlQS498EQZ7vsZMbWIPPxvJSLDTNXjBRLlniGRZUAc0C8K1hYyUWwUmcGmgy2vvJpAJYPg0Wp6fAQHnoD+2X7/hgRN/Co5JQyyYlJyC5HYiTETE= 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=IXnoLFe3; 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="IXnoLFe3" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57U08ifo012964 for ; Sat, 30 Aug 2025 00:23:19 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= 1AqNK0JvpkzUHYLdcGKR1RHF7N4CzTcthmQAulAujD0=; b=IXnoLFe3Mnw7FJ/3 m28CaZTdvpwEbp6SY8hiWZu3PDM2KVfemXtqbZ9pWZ0QONyNOwQP7Pq8C9wXiQZ8 9KIhHSY8UONnU8T2SV4IkXofTvDtgFwha/05lBNGensz56A4oTPBbThlXO61ZH36 zQmiYcnMRsY6j2IdQPwmkTkiL8r6bV8SxKvm3ekrYrf/ic+4iIC/CSx4EzraZnq2 oKpthEJcp8PA96vmPm4bg6c7H0nhhXoU08WUzfoFmzJOPDRlc4FFHhCcN5Iz8X55 wpXXNiNNnB4P6lR8vn+bFUWx/k06lQaC7KuFDqtCT8Gtza4GSlMDew2tXRjX2R3t FkB7Ew== 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 48q615w3tc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:19 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4b10990a1f0so59874591cf.0 for ; Fri, 29 Aug 2025 17:23:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513398; x=1757118198; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1AqNK0JvpkzUHYLdcGKR1RHF7N4CzTcthmQAulAujD0=; b=ZAh79P7hXuTJIE2lSfSHCXEnqj78+KHCMAgiCe/eAGsWKnYzsd+5kUqnm1wkd01TDd F1tqjKB2/qAy2hlxobepazJ3+0R0wy1DWQ9QUunRurB4Co4oLlbIap7C13UVrA110o8v p1mMCqHFMCyt11ufKHJBgBEgfD9qebKxQppK8uLEhjorwQFDkyNBXChrnWJhmZbw/Kid 0SoOmyQr+Q5H3fpqta/SgB0aYJ1V0pF1FMcNAaPbqL8LiC+DZsqC/hqsov12kQuSmQ4J MwdJW0jUYVUXK5IO3FqfVDyhOr/C81G0FeQq9KdxSNRk4omQKChMuVDR+6AJ5AOOVvUC MNsA== X-Forwarded-Encrypted: i=1; AJvYcCXen2I70zp0DxQEFtlvU4CuQ0SK83NRzkROBgFFyLqy8Buvu6mUYAQQxqBgB+dpvHSBtUhQQE/TZCEVM5w=@vger.kernel.org X-Gm-Message-State: AOJu0YxImFvanDuW82+hSsN9mjCcF6inwda4GzuK+qLnxzXyrVxLfRAY ofMMX5JJGv3ePuRLn29eLxRVK07jdCPMDDhOnCDrRne/xViPcQgfAoJfiQvMGRg+yJaHGSaO4u6 4GcjWwrK9gD/jTN0RXL2wQapNmFj2j1sbAVqesrSYD8e56KjcWi1szSw6mZrsQGzLcpw= X-Gm-Gg: ASbGncv7sRXEZ7rtqsICVgAqXVPuicJQCEEIaHVlsnc8izFn3UNP6qlVpR3dfJFEO89 g8q1OdZ52AuzY+PKBJqN1w5Y1Q0IyxtaZhuVAK7vNo2Ay92yBmOhsan2ijTfpTpd3nSsyPU7pFF XXz87T9zu3fJioH1abzNjmnjqBpdT2oA1QaLsX+K3E7xRjBTFZVt8Yuet64eKhkObxKYBUoMIfy 0D0p3vEXmAJTXRN43U73Vr/XC4f8DK6fZBHBvJe7QZ5ApjsjkHn3yvq1VP4Wz03pDuHckvEeUBU 3X8oxuALojUdn/GDNvy5loM28SoLMWUn3JjXW1Q/1FKbfSsXMGFaIJpfgW6500sGJF2gwmT5RnH uR4zpcPyM8+0gLcXMzYJ5dYaQ6N4hlMN0UdJCm93YG8szH8jqwyxd X-Received: by 2002:a05:622a:1a98:b0:4a3:fcc7:c72e with SMTP id d75a77b69052e-4b31d80cadbmr5813691cf.9.1756513398570; Fri, 29 Aug 2025 17:23:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGVN1muIBwmw4hoq9Rahodlm2w2ewntFQnkQICLUImr1NmaPx8XUeu2IF08fUmhex3lGfMyjg== X-Received: by 2002:a05:622a:1a98:b0:4a3:fcc7:c72e with SMTP id d75a77b69052e-4b31d80cadbmr5813271cf.9.1756513398051; Fri, 29 Aug 2025 17:23:18 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:16 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:04 +0300 Subject: [PATCH v3 08/11] drm/display: bridge_connector: drop default list for HDMI Infoframes 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 Message-Id: <20250830-drm-limit-infoframes-v3-8-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1359; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=cd27TNKmPZcfQJ3UKiBSlNuQpycc1+LIV7BQ0LEWwY0=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ8Yml5RgLv0905LPmzQqxvhe2nOH5VfAIu5qjh8VjHPOT zjoMtOpk9GYhYGRi0FWTJHFp6Blasym5LAPO6bWwwxiZQKZwsDFKQATyTvD/lf0vs0N2VdxoewZ BlvKi1+Fpdx4oJ01g7fslfG8TE6f+kcbLJ81nku69W/mZz1rOe1Hpwyr3iWdED7Lo78x4ljX77t qdrbvpkZMmsBfof+pWKdBPm7n7qfFRk/ecfzsPf3tsOo3OxedX/aPmqNLTSbJlj7IE68q0jj3wj CxzjXZIePtS/dDOY+LF+rKV67NWGG73faf3I+mMv2ltctNV7jYC6ycModrTdPtj7IiBXlf9bZML bESv/3wA3NU0/3L6SLFdhPMn0xT8dBpkez0WVe51T+FcaO+g/iaSP24B4/aBMzOPihT/Sq7u8nv zDELdVPFCbyigqIpb1OvcIQxGLRbanuGOlkaZtyUK8oHAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzNCBTYWx0ZWRfX1bpSmQpXIxL9 TrG3Fn/Wkuk1WsqdX1tExfe1eZIHLYk8dYBRjf+SUwqFFVxswMJKw/YD1BeNmBdNifKf2ubGyJ0 NAiUZEydd9xbwy6m7rokMXdcTDVyube0zhaeOq6AzcJQ+fNpFjrIgGxI356Gqt0JM13CutmHPgz 8f44d4MwhMCjm4wXg0Ej9QtChOC3WOKzqFzgD/r1MbFQEPSXbjjoVG6Ur46B66aI89tJY/unT9v YotILocuUIg4vPmFUc4r68GyH81Dv5Y0OQi5RJSpDGgfaqsv9GxcE4gHv4eypbHF2C3atn9AwIL MN31XA3KTcQzksCWYXepuApVvw10wAFRJBNCGy/GuYNsX10UiOp07quu3curtVzPy+t8k8+6ypW MIKD4QIL X-Proofpoint-GUID: hfwf79wf9PVNdidHBDQoDtyzMLF1-rx9 X-Authority-Analysis: v=2.4 cv=K+AiHzWI c=1 sm=1 tr=0 ts=68b24477 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=-zYrYaJvJPDGblfDOm8A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-ORIG-GUID: hfwf79wf9PVNdidHBDQoDtyzMLF1-rx9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230034 Now as all bridges are updated to list supported HDMI InfoFrames, drop the default value from drm_bridge_connector_init(). All HDMI bridges now have to declare all supported InfoFrames. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/display/drm_bridge_connector.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/d= rm/display/drm_bridge_connector.c index 944fb497ca339ddd63c132c2df0888011cc0487f..2eb7ab033cc84f8bf5816b5a608= b2583226336c5 100644 --- a/drivers/gpu/drm/display/drm_bridge_connector.c +++ b/drivers/gpu/drm/display/drm_bridge_connector.c @@ -786,12 +786,7 @@ struct drm_connector *drm_bridge_connector_init(struct= drm_device *drm, &drm_bridge_connector_hdmi_funcs, connector_type, ddc, supported_formats, - bridge->software_infoframes ? : - DRM_CONNECTOR_INFOFRAME_AUDIO | - DRM_CONNECTOR_INFOFRAME_AVI | - DRM_CONNECTOR_INFOFRAME_DRM | - DRM_CONNECTOR_INFOFRAME_SPD | - DRM_CONNECTOR_INFOFRAME_VENDOR, + bridge->software_infoframes, bridge->autogenerated_infoframes, max_bpc); if (ret) --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 482C7194C86 for ; Sat, 30 Aug 2025 00:23:22 +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=1756513404; cv=none; b=dd0UZ4aPrbux5Cp4Z7PWs7Ne7dWecVoKpw0Njacf1CK2bmQwlXV9THVSRIiTPglww8LjCf5poJlrJQPWqJMwX6hb0BzQCdlZiL4DUJmsrbV1yTcB6NVMMFxESiqtjdb2FIpbN1+mK5SHObgoHD5K3yOUcGqtoyHUYZA6013pp58= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513404; c=relaxed/simple; bh=TXVbDyYy47gcECct8bi3FdzY5XC0C+uBNPghEtpGc6w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EAD5AjeOkLkaYT4sWuNYkA5t8eQ72x6eUDBLGxjf1SKp0LQqyEYHctucsFpXN3X1bRyEN/SrkyEbTat2hXntWX+RXiWoCSv6v1pPgsdKeZ2+4/nGpd+eC8MiMcSBEUr5HzctHzjUfNWlNZmKzZ0ncZNoA1P9lCJuQTU7y5pRe2o= 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=gTwPRJSr; 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="gTwPRJSr" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57U08ifr012964 for ; Sat, 30 Aug 2025 00:23:21 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= P+gLmc6QIq1Gqbex22CG8o5k/mKnyADqk7w+J2c1oKo=; b=gTwPRJSrfbEm9ova UWH2HD2Kunhls692qcidzYuT+0FPL1Hut7Izk4SNYhYxkwYj+GAHqbn/DMOk6rHY K2ZaKRaLERT6IcpHP34r8q0BbJw8klmUbV9uoO1L1ZZQEgBQFIfFHz/AlF6S3Ljn O6kLlLkctUIDiz4vNXtDCk3LwN/z7sEDlkuRByJK2ty+F57Ab2me3DuDjoj4M47b 3bFE8n63VRAjlacoruEGPR8gp4J42cRdkxk5f42RZXTBG/Y4PT+f6D7Tlr82DGlZ pOn/CG7TpV2vmKKK9PREYNtSi+ng+KFlag5FB2GhgKaJwBh+RxiljE10+FXiTSmE Z6mMtA== Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q615w3tn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:21 +0000 (GMT) Received: by mail-qv1-f72.google.com with SMTP id 6a1803df08f44-70dd6d25947so56295786d6.0 for ; Fri, 29 Aug 2025 17:23:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513400; x=1757118200; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P+gLmc6QIq1Gqbex22CG8o5k/mKnyADqk7w+J2c1oKo=; b=IL1x3/HLojH92JvaAJyHRIie+peMjtTaec1wcqbv7XoK5/zwQ1PdcksuE2cqVrlSej /q7aOpKM2oD1tkAG4qKl5cvWGp8mPN3mSHBEXO6JahTwPD2pAM4fht3JprDNTUQINbLd HsOAn8MRba2xPU/+DIKNNeF0PJiSUH5rVg0oSk8p4kqNbDRbr0S1t5STENjvK/QoizHT 0b+naBrCWcz+CfABWQLB577fC+w1I2bwQYO9+ekyvMcM7PJ3KIhGn3ZFmX+PQQI6Fiky fWdX+I5XzDXnZT9RRrVdNsnrSZco5BB7V7Hwi3vIdhi48QytiBqoUlncZW/U4epcAqzz qeIA== X-Forwarded-Encrypted: i=1; AJvYcCX3JQcWWZTB4Y35IzQys8LADDt+86PuUnn8EJhcj+xhUagc8+TT+oSMXmJbcFHpVUhiMIZF3vC6eKSdeqE=@vger.kernel.org X-Gm-Message-State: AOJu0YzbqE4XvseofPRVk8LGvRCx6N5f7gLNp5kESBQahYZV2OK2inGH NGZwlXXQmqo5snate7zkqNNw3FiMZLRrDS7PFEvr4E328cF3lnYnvAZqvp30wd65HUIpuYDcDti p6p01K9N/mgWevnFn2KsUz/7RNJnnezePhO/mnAZqeThVHnhGtjSRCXlbQJ2Bp6/znI8= X-Gm-Gg: ASbGncsG8GvCIUhgntRqrtOtTgBxE4DfeaAWBtr7E9wjXq4vsyTSkWI6hTXxKDA3xSt /A4mQgdgzNLuEJO6rEdpuaNuJeFhfD3dG2ewBC331Ksu8JZEfaE/4jWZhzIuFXkStRFNGKNq5uJ 340iU4l3/MGZbt4jpDHlFv4gAts0fiSVlojsZ8Vhfn8BEYdEnAE5UJ/xpFHz/Rj6xjLSvoo/Spj N8uvjG4j+5j8zxyBLs/IwoKOgXxv6AedB8MoNBKdUxiZHvqAvxUm7AIBw2ewO3W6yfz9wBhq/qW 2MHobVeyiYUt2iWWqcGTz5d5hYC7kUwTP3movQih6h/keYhPa2VnhdNu+PDHGvPnZrgyHK51VG6 /Gyu9uYOUhtkIW42qJI1rw2HT28TnpHbpUv25CamlIbQsvz2Ymb03 X-Received: by 2002:a05:622a:98b:b0:4b2:8ac5:2588 with SMTP id d75a77b69052e-4b31dceda5fmr5331751cf.79.1756513400253; Fri, 29 Aug 2025 17:23:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGiRVPCy1ZyvNRY0SxkmPtK5TdJ45H/D+mdd/nazOG8FE/zTJi/BBm8Fy800I1NQMGrZsr0qA== X-Received: by 2002:a05:622a:98b:b0:4b2:8ac5:2588 with SMTP id d75a77b69052e-4b31dceda5fmr5331431cf.79.1756513399780; Fri, 29 Aug 2025 17:23:19 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:18 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:05 +0300 Subject: [PATCH v3 09/11] drm/connector: verify that HDMI connectors support necessary InfoFrames 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 Message-Id: <20250830-drm-limit-infoframes-v3-9-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1517; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=TXVbDyYy47gcECct8bi3FdzY5XC0C+uBNPghEtpGc6w=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRkOHE4fVow7vDWOUvmc/2iUcbcfIOqvZ6C2 Dchv4veASeJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEZAAKCRCLPIo+Aiko 1YnWB/9HjDIWWBFOTM8HXaStc63uIk6SmVdJldXZsyniEFqPA35U6pxTvz22fY4ZqbvckumzrhR VzHrK4EaLNdvGVvpvzCqVg+lao3Ze8t/g8dHlSQUGz4uDNF9caS3kvpyqdRe/6MHFM1r3HC0Du+ GKwPnh9RgBqznt7b/zoa44AB9KtgP/9LMftD22mQowgMWto5XI1N0Y4cPb6TL3PBmJkmQSvi63B fiTBoU6l5res5/vH2RuIug1cMVng+2t8eompix5jbFUnr3t9cm2f4SNOuTUVo6JZpap7J265oE5 IBWsjZfpSptNolCOsELssC0lCC2aPYXd5tjx6jp63ntEd2vd X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzNCBTYWx0ZWRfXzJav653l6h4F faRa/dXzcb35ox264sPjX1unKBrYdeymS+RlyOSSj3k9VPodJeshtNkCarnTScQojyLWt5rzdl0 OZNVY9CkoXsP7qQybugz1Fgj0rdobk9CM8mUJ+OmKCpCIiUDtmvh7GM38iZQ9iXuoa+rYPCM1Mw AaMc033DDwz4cdurs2gAetlEvuSY1U4Y2tkcyNxuC7XUPVzB37I025hWK4t1a2/wIPxaE2Iye54 +9FzMdYEmE4S0uuiSKZ49+ZxbNPNiSSmufZi4Y6iK1MeqEtOXgSz9uukuaRmECD6oQxBvAItE4q LnBYdVY6LHkAt77soaiNxLeGUDfmC1G0DdgmleVCZsmJwQ9GMlqDvyhB3euc9rURIsqi+F/KqHN AhnvdIYN X-Proofpoint-GUID: 97JRdmcQXt_klcq43JuktYt8LNI7vE_y X-Authority-Analysis: v=2.4 cv=K+AiHzWI c=1 sm=1 tr=0 ts=68b24479 cx=c_pps a=7E5Bxpl4vBhpaufnMqZlrw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=NnPSNIktjdB4Ge1gQTIA:9 a=QEXdDO2ut3YA:10 a=pJ04lnu7RYOZP9TFuWaZ:22 X-Proofpoint-ORIG-GUID: 97JRdmcQXt_klcq43JuktYt8LNI7vE_y X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230034 Check that connector initialized by drmm_connector_hdmi_init() supports AVI InfoFrames and warn if it doesn't support Vendor-Specific InfofRames (HDMI InfoFrames are more or less required). Suggested-by: Maxime Ripard Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/drm_connector.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connecto= r.c index f031e8f8df57da15bb0f8fe21fd62f02a1576ebe..12ee06bad364183ad56a20b2bf9= 860491913a295 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -582,6 +582,7 @@ int drmm_connector_hdmi_init(struct drm_device *dev, unsigned long autogenerated_infoframes, unsigned int max_bpc) { + unsigned long supported_infoframes; int ret; =20 if (!vendor || !product) @@ -604,6 +605,15 @@ int drmm_connector_hdmi_init(struct drm_device *dev, if (!(max_bpc =3D=3D 8 || max_bpc =3D=3D 10 || max_bpc =3D=3D 12)) return -EINVAL; =20 + supported_infoframes =3D software_infoframes | autogenerated_infoframes; + + /* AVI is required */ + if (!(supported_infoframes & DRM_CONNECTOR_INFOFRAME_AVI)) + return -EINVAL; + + if (!(supported_infoframes & DRM_CONNECTOR_INFOFRAME_VENDOR)) + drm_info(dev, "HDMI conneector with no support for Vendor-Specific InfoF= rame\n"); + ret =3D drmm_connector_init(dev, connector, funcs, connector_type, ddc); if (ret) return ret; --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 38A711E990E for ; Sat, 30 Aug 2025 00:23:23 +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=1756513406; cv=none; b=XzwuvI5+ROauK2Q4hR6EvNpbc88lZ552eOKGqqW6t9Rw2+BPGO2f+jXdoA6nNLjfWWdPkPI+Fln2iRODqVIcwCRfSH9aDkDL8yto3OFePyIQnqJ3ZEUnyB7Pjo930hf7S3I5z0XDO301t42+CqjN223l6gdaGC7A//Xkqh5vKuY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513406; c=relaxed/simple; bh=DP8WKS09AQHIP1eUa2wMNyM9LpBbwdIRAz41gdvU1po=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PlXSeNrVSnqmZLRdQSxcfcdvHDuRF3yDGqV/g804/j8Fq9/EmMUmCApuF9RQOX+HJsjXMvIK3JKr/5pRyLyImcDP6yQKTU/xduqJVnPqCH/pv0pstPY2I8YM0dQQtxw75GLA93l/kbNsITKo9BmFv4x9BQrfVWXuiS6+QU7Q4a8= 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=gS9etg5k; 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="gS9etg5k" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TNxK8j015423 for ; Sat, 30 Aug 2025 00:23:23 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= fFElURD5QRZmLsVqoA3hb8tqFcCE4wfhTZP2ZQz0do8=; b=gS9etg5kSlPjOI9q Dr4xZBf9qVgqpsTAtzWdD4ln9CuhebiznCcCdFYeV0IxD6Cy2TKTzSMoehX+04Zs VyASDMByiEtgL40oZsldbgzADMdmO8rZHMWIZPr9ccKOUx79Q6GzIw//z5WAGGHC 9MnBfKrs+LVR1r+gODwfqHoePUJ5o5zZHDzFP7aqjG8+2pZrw3QRaol5+RKaPdtO vJW/GoCVmwWmMR4HQ7AROXAut5YFecrwigNnR82NxTb1fowPr5Bf3FpYQKDX0Q7S JTOflOOfgcIi0p7wUgTJEXN65tNUIEz3R2Kc2Lm+ZpaNVbRhtJzzsd4iokfMqUNx vQGa0Q== 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 48q5wecthg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:22 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4b10ab0062aso58428131cf.1 for ; Fri, 29 Aug 2025 17:23:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513402; x=1757118202; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fFElURD5QRZmLsVqoA3hb8tqFcCE4wfhTZP2ZQz0do8=; b=Bkcwa+pgoHzYLHFS9INEO0epeoQVHtX5fG1m6cNx89Pc6gRee/SVawofqqCXuuBLfW uGjlozu/gBC5on2LV6E/eym4SvrKtUaOJxlMS7aia9f3hG8nMLIBpZKdJ0wLdkS4a06U IdKyeZkFEb81ekESiyDsbauNdaKakTaW/pLXtcxRbajmteYTms01gPqmeEU8zjvqcyVR sQvITMJ+WJYVaQKeZjzd3EOr5UW0CNzxXCYpvXj2A0j04iDAcyh8NbTgJQRrkQ6bIeXm UgekogkCcawdyKrHDpSA4v2MWBsEqfbEnpIKSA6cnPpc0xrCHlzHmIspHOMQN0iKF4oF ktCQ== X-Forwarded-Encrypted: i=1; AJvYcCX3DuRTPqMNBFSsKugQhYOk8YnbDzF7M3feDTijfyR1MEZVcd2styDJq3lIWLyeSdcOFQQzpC0Shk290HQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9uPcn6xApiyxGfzbURCUB8/kcNDtJj5quRgCSgE+6t+oVojjA WSDZzdTPHCYgPfRNkiK35DQ4IlvjgtwD3qxoLiqt1kF27lWHrvdUlGgBtUkDbbY8M1GD54KkDdh SCURZ47jIQjN1R/ckx6Qh7vq9kc2aWw/Vgg50VyemaPSWVHVUqLVkmhVjFitvzbRtLic= X-Gm-Gg: ASbGncuxso0Niv7A8paBgeT1BiA4WZadLxEsef4rWJyvaZPvj05wXsA7q6yIoFDvkrG JgpdsY8MhDlhPugQFbSNRDHKJHBYNn3YblDjAJpG0D19p1rmPJkE5wWXt7ha8QplqXjx04xv8RX YzWNIHVo3sGFieckd4PiE2tjdpzkYJv6SnMYemrZFEk4Rw9ky84AMjwrcdgk1qxN09IrHdQhA6V liq5NlR3d79n6CshTj9dmCkapX09Tmz4DoduRGyYgjuUr2zYPvPQcYXmRt4jCeyo1f7h4i+H9VL EtOM+8HLgrPxwKdqU22qhqDizT5T5SP5MgtceLv9Pk0Uz3NR6JfZ5KkKFjf3IlhLn3Jo8lOtLSe 5mWvm5OZw5bOcRjfrgfFumaMl5LHIOqntGznnVElxBz3dcQYw0w6I X-Received: by 2002:a05:622a:5c6:b0:4b2:dee2:6498 with SMTP id d75a77b69052e-4b31d8607eamr5634851cf.28.1756513402123; Fri, 29 Aug 2025 17:23:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEwgTkXP9pj85NxwpdQc0ae5nNZHcprVUGekqFYFf3riFk956UhGONyyTfF4B6OsdIgaiSMUw== X-Received: by 2002:a05:622a:5c6:b0:4b2:dee2:6498 with SMTP id d75a77b69052e-4b31d8607eamr5634631cf.28.1756513401513; Fri, 29 Aug 2025 17:23:21 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:20 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:06 +0300 Subject: [PATCH v3 10/11] drm/display: hdmi-audio: warn if HDMI connector doesn't support Audio IF 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 Message-Id: <20250830-drm-limit-infoframes-v3-10-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1673; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=DP8WKS09AQHIP1eUa2wMNyM9LpBbwdIRAz41gdvU1po=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRk2UNRsRCHOJKzLD77zC3Q7JVu5+ElSTKGc O0A/oyeiyuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEZAAKCRCLPIo+Aiko 1d8OB/0RMEMUbmxG0SYUoq630dkm8bopfypsnF25uIBgBqc8fbR40rj2Z6O/aFjiC4pxNRKtv0T Pb3wXjEx8igMQQyVkYQs5YH9EizhVoDMP2qbMuQD83N2hhtJsjCO9NIG5nBEgGmQDZXWFDqU4gn NbRVO+Cz6af8mXjkexPYvOzEvQceTImFY/x9fqz5j13/z4q3QwePf13Pxhvjbi3Ggp4tvM10wqX jp4foOuMAal2wFUF9OzE9JeZB5Kuv5vgwi7qeNFxyo+/bSmE60uO0EtP+Ab9Yhdzc8D/TLSUHnP MpGBkAz8OvKT70KC2H3AaYh3YkgsM7FphRVhkLoXKB5BRL88 X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: 43lX66WubnnY0BpUOoI0pB1HIvmYKisq X-Proofpoint-ORIG-GUID: 43lX66WubnnY0BpUOoI0pB1HIvmYKisq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzMyBTYWx0ZWRfX9fwrbvgKDdaF QXevGd1LCsK3CZEfsXfpt+YcOQyX83YRGZxtyCxB/uvzV2J8xFnFwHrF/YhtU3S2GT3q/VJaCMM u562LY1ghLo49Kx0PSpcrsrf7jEYZpZEKt5XLeP0n/KAr67AI/xEOtvToybLMRdYwRUHnqL9daj 7Ofwg8DMsR8TDs+sJd4tXsbrk8XqBqmKRTaX3VhdJ3drHxwv+UVWMiFotmLn8+HjefVdU3hXLkK D1DFU9HXkV8tHUH+7OSUWpffFDeqDmRLqJpmZWz2bpPVS0k8XsmcUQkOLoJ+fc864jM9adC7UmP vaMgnE2T/zan9IL9hbNLfhFhhV3fQN8qd1m3y+xqyyjCQ+n1Hx3MxLp0AaIzf6vrUTcRX5wUfb/ 9RYX6mCH X-Authority-Analysis: v=2.4 cv=BJazrEQG c=1 sm=1 tr=0 ts=68b2447b cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=Yc4j0DFJudTMt519TXkA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 bulkscore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508230033 Sending Audio InfoFrames is mandatory for getting audio to work over the HDMI link. Warn if the driver requests HDMI audio support for the HDMI connector, but there is no support for Audio InfoFrames (either software-generated or generated by the hardware). Suggested-by: Maxime Ripard Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/display/drm_hdmi_audio_helper.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/drm/display/drm_hdmi_audio_helper.c b/drivers/gpu/= drm/display/drm_hdmi_audio_helper.c index 7d78b02c144621de528b40b1425f25e465edd1ae..dfcd0e3b4b0d7cd6adda78dbe9d= 6e3f65e8f7ffe 100644 --- a/drivers/gpu/drm/display/drm_hdmi_audio_helper.c +++ b/drivers/gpu/drm/display/drm_hdmi_audio_helper.c @@ -10,6 +10,7 @@ =20 #include #include +#include #include =20 #include @@ -178,6 +179,17 @@ int drm_connector_hdmi_audio_init(struct drm_connector= *connector, !funcs->shutdown) return -EINVAL; =20 + if (connector->connector_type =3D=3D DRM_MODE_CONNECTOR_HDMIA || + connector->connector_type =3D=3D DRM_MODE_CONNECTOR_HDMIB) { + unsigned long supported_infoframes =3D + connector->hdmi.software_infoframes | + connector->hdmi.autogenerated_infoframes; + + if (!(supported_infoframes & DRM_CONNECTOR_INFOFRAME_AUDIO)) + drm_warn(connector->dev, "HDMI Audio with no support for Audio InfoFram= es\n"); + } + + connector->hdmi_audio.funcs =3D funcs; connector->hdmi_audio.dai_port =3D dai_port; =20 --=20 2.47.2 From nobody Fri Oct 3 13:32:06 2025 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 390D51FE44A for ; Sat, 30 Aug 2025 00:23:26 +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=1756513407; cv=none; b=SQA3Yx8R6ZZXmVUGYs4TrY4P53F38wEECYHHwmmTHLGsfE3SsdJWJ5FCAHy7bfqRAhvD103This1GhY67x76vWtCx4oz3Mo3gjTEEAfhBoklZBvCLe4hU52F1mnlea9lljFNSMbbbDT8jH4XZYdFFT3ayjJp+/oixPwfun2aMfU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513407; c=relaxed/simple; bh=VIOVx9ZFQcN8aP7U3+DXeUs0Ba2NJyVyJ0ONqbKAcgU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Y/nyF9m9O0zaWPmcei3PLTz0lpfN4UwSOH837/+mH3m8936kFfTCnqyhc7q2go2toRPYPVhrWVWa1OfTxKGYyGgtpKWxW3RxQXRg7XCT8FK+MxsSggGhVPTwhPnHNSCXgLZlL6qGWmpl9YIEe79v/y7Ja/8CbpueJg3c03guIpg= 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=Q+5mmYj+; 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="Q+5mmYj+" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57U0B5p4011153 for ; Sat, 30 Aug 2025 00:23:25 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= tMGCzwi7iMqpBSIwuiogi39ZPNmDZ+NlaUaBUi0ePrI=; b=Q+5mmYj+n/VSVLYh QoJEjJoCvH+Des/LL/ULV2D2nLttafyPPr2QA4sl2XtTaYHJCq4T+bPQyVJ7CsSl sSIV7foFigiuEhSUTP84O9+acizE7obyfGN6k/EJXvjRHRa4ypkFCbTpjHaiezd5 5/bZ1AL/17zWQfZl/v2+oBXPoChXDOnv+u0eoZuBSqp6g/dxVhNIrzxuMXhbbJl6 fTzqNL9CiDglo0WwZ8bP60aHCVi1zi9fSMFc+4MZh2Fou+OjxvYFhw5cWxX++xa6 1zwL/DRLfGpnoltZyvB8GSnx6Nt1crfT9tXJyRD4u4fCaxdXUwXxTe4NEg+ftutX 1IayYA== 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 48tp5k5476-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:25 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4b1292b00cfso28220191cf.3 for ; Fri, 29 Aug 2025 17:23:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756513404; x=1757118204; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tMGCzwi7iMqpBSIwuiogi39ZPNmDZ+NlaUaBUi0ePrI=; b=h7x4RX6D20LQvf2NYVu7lL+iC3RYRjuuv6XgxO5QS5sdf0NP9Ai/VpuXFHFETWLiIu EfzArPZtsRB0LnR9ROiVVRx0YybIId05yGkTcT0vQS3qGrWIjJ8ok232jEXcmSQKrthc CmFRRwm1R5TqIfwQV6DFfDqMSzf5f8U7mHjLKBnT9hRLPPq9HLjtZKO80Tiie5wP0+VY ZBm8KUlMZECI+MAI8UmGTi2YERHJd80dAREU+zC9ZRVIfa7Wv64kWwu7O4m5/X6qcpwu lK5zJm3wTQpEYg77zXdRf/LCK8iJCubGEx8NjTW2XoiU4CIE81Ki8bbDc6vDpowjHl2b iejw== X-Forwarded-Encrypted: i=1; AJvYcCV2BmsdsUiw77zNMqB+vS/+sUx71PARL9tyvGnS5EswLP/ku0B4ODKIP3Uj08kwkCJ/op/uLEE47DNljDE=@vger.kernel.org X-Gm-Message-State: AOJu0YxQwJDQ+sHfnxij6Mashy645+3hOqRoE5qSL6D4sK6I+oGY/DFb bMSRqDHKkiuFYW/Q4V6SSr39fNQ2keV2g/if8ZsNdoJzLNfilN5qjqFvhzSxNZBFaROGc/2u4QY y6a5wZGWNTwm7QudkVTKmLFmoSCgQzNa+oAk3bUP9tnAwCRqYNI0G64m/6W8yHEccysc= X-Gm-Gg: ASbGncv4RwUvP35dClNVuWAcYL0y6HXfljBUHAqEsuu95xbcZniAn4C8PmZiqPs43VS o7r6bIBOaYbM6ttG0I03/Q+0w5HRx/HSktGCSGM6oMLmktfjsm9dTk8oNX2sq2OEv/KAjl/IkfS el2aTLoywPrNbbhn+Pan5owBJpE/F86O50piLSF7XZaqiBy1XAK0HNLpDVKqX5GggxjBfSkjcBB CL0Xc2ondx2ihOLwupa2VyusLyWueAc8k21x5+govyKPqUse69EPiRQOFFbwjTD/Id9k5Wde6Uh WRo7+1EoHq/lsdbIueERw7eYtUbcr10LT5F9G+e6yFA3aMyHI0FlWe1K8wqcsthnvbv2IOpLUD2 ynWIIimT+GgEyoA6ORdW8h7EtAoQRCfnytRCjYKl0KlpCLa2oNQq/ X-Received: by 2002:ac8:7dd0:0:b0:4b2:8ac4:ef8e with SMTP id d75a77b69052e-4b31dca7d9bmr6262321cf.73.1756513403705; Fri, 29 Aug 2025 17:23:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHQbp4HnJW53TtgpH4goLIxU1betKvFXJivt7Yk4w2HXWAhfhSte/bjtbH3ZPMA/GFEM5dqMA== X-Received: by 2002:ac8:7dd0:0:b0:4b2:8ac4:ef8e with SMTP id d75a77b69052e-4b31dca7d9bmr6262001cf.73.1756513403243; Fri, 29 Aug 2025 17:23:23 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55f676dc52esm1019907e87.8.2025.08.29.17.23.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 17:23:22 -0700 (PDT) From: Dmitry Baryshkov Date: Sat, 30 Aug 2025 03:23:07 +0300 Subject: [PATCH v3 11/11] drm/bridge: lontium-lt9611uxc: switch to HDMI audio helpers 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 Message-Id: <20250830-drm-limit-infoframes-v3-11-32fcbec4634e@oss.qualcomm.com> References: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> In-Reply-To: <20250830-drm-limit-infoframes-v3-0-32fcbec4634e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?utf-8?q?Heiko_St=C3=BCbner?= , Andy Yan , Chen-Yu Tsai , Samuel Holland , Dave Stevenson , =?utf-8?q?Ma=C3=ADra_Canal?= , Raspberry Pi Kernel Maintenance , Liu Ying , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6539; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=VIOVx9ZFQcN8aP7U3+DXeUs0Ba2NJyVyJ0ONqbKAcgU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoskRk4mO/Wae/aVjMwFDeIGRIwNht1W8+SnIgW mGWDw77GSyJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaLJEZAAKCRCLPIo+Aiko 1aiuB/wLjBle4c8EUZFBkZrH+ITKfuu9NiqqEEnbh20zp5cP/q6DGCXvqn7JiotAYk/2OWe+TgZ wibQ6J9oaQdsYHdWszWTqJ+VckceGts93XDX83DH6MjkZl+U8ZmQazE2GM4X8phxTGZUpwrsT7Z PDXS9mKbl+23uOJ1Os8+rhOL1tKuMqFeIZEo+ChO/XJwS8pxmNET5bhSBFls35KXWLrGYP9NYV4 J5+ZfT8+UntW/s1gQvPQB3LefV4pCOhcu9Kw9AWBxi2ScS9jJ0Zzh3XvewVtxknFkFz6JndPqqP ZQ0mPlZZl8Gb4f76AWhB8eGhy2KizaEN1C0CmHbU7wwbx3+Q X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=V9F90fni c=1 sm=1 tr=0 ts=68b2447d cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=l1vpWyVUGYkh7_PGMaYA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI4MDA5NSBTYWx0ZWRfXz+mFdNZWSW/G SW/rvtOFSxMp+Ci421zKU+2drG0MSk/3+KdXWgB/7jb0mPlw5s9o8BGvLnsoRqATg+FxjObLSZj I8GHJsY98JJIgW2EcC9gEvs2D/a3g9Wq2uErrlVPqGmwkI62xezGBUdcCugHMhi1n1i9JwvP5Qu wYVnC9dgUAmm3q9DR946tm3mWJHHbZ77B9np6b3zAB5r9NBN8L9E/qwnuDCMWCMw1V4puIcM18t nwcePcpOMp0XkAn2FjdRB4VuPTmsX4BbXWYBTSBBzrwDlFb2BiRGAQt2Dj5daXknNHDS+OBXMkT YszwElBXPiOLxsSO4vOWaKvhtUl/R2ryvsmAPPFEkTFOEq7bo7/w+gn/xvnnolGwCPW+1fc7yQB z8MxkBYd X-Proofpoint-ORIG-GUID: OCGt54H4fwZGP7gd9Bc0bUPGwnSle9TW X-Proofpoint-GUID: OCGt54H4fwZGP7gd9Bc0bUPGwnSle9TW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-29_07,2025-08-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 spamscore=0 clxscore=1015 suspectscore=0 phishscore=0 malwarescore=0 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508280095 While LT9611UXC is a DSI-to-HDMI bridge, it implements all HDMI-related functions internally, in the firmware. Implement DRM_BRIDGE_OP_HDMI and DRM_BRIDGE_OP_HDMI_AUDIO by providing necessary stubs, streamlining HDMI and HDMI audio plumbing (which includes plugged notifications and ELD handling). Signed-off-by: Dmitry Baryshkov Acked-by: Daniel Stone --- drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 130 ++++++++++++-------------= ---- 1 file changed, 54 insertions(+), 76 deletions(-) diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/b= ridge/lontium-lt9611uxc.c index 38fb8776c0f441ae433c60a7680aaa6501a8956e..df4661986423a871c006af2a36d= 85d8103935f93 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -17,8 +17,6 @@ #include #include =20 -#include - #include #include #include @@ -27,6 +25,8 @@ #include #include =20 +#include + #define EDID_BLOCK_SIZE 128 #define EDID_NUM_BLOCKS 2 =20 @@ -48,7 +48,6 @@ struct lt9611uxc { struct device_node *dsi1_node; struct mipi_dsi_device *dsi0; struct mipi_dsi_device *dsi1; - struct platform_device *audio_pdev; =20 struct gpio_desc *reset_gpio; struct gpio_desc *enable_gpio; @@ -429,12 +428,50 @@ static const struct drm_edid *lt9611uxc_bridge_edid_r= ead(struct drm_bridge *brid return drm_edid_read_custom(connector, lt9611uxc_get_edid_block, lt9611ux= c); } =20 +static int lt9611uxc_hdmi_clear_infoframe(struct drm_bridge *bridge, + enum hdmi_infoframe_type type) +{ + /* LT9611UXC managed infoframes in the firmware, provide an empty stub */ + return 0; +} + +static int lt9611uxc_hdmi_write_infoframe(struct drm_bridge *bridge, + enum hdmi_infoframe_type type, + const u8 *buffer, size_t len) +{ + /* LT9611UXC managed infoframes in the firmware, provide an empty stub */ + return 0; +} + +static int lt9611uxc_hdmi_audio_prepare(struct drm_bridge *bridge, + struct drm_connector *connector, + struct hdmi_codec_daifmt *fmt, + struct hdmi_codec_params *hparms) +{ + /* + * LT9611UXC will automatically detect rate and sample size, so no need + * to setup anything here. + */ + return 0; +} + +static void lt9611uxc_hdmi_audio_shutdown(struct drm_bridge *bridge, + struct drm_connector *connector) +{ +} + static const struct drm_bridge_funcs lt9611uxc_bridge_funcs =3D { .attach =3D lt9611uxc_bridge_attach, .mode_valid =3D lt9611uxc_bridge_mode_valid, .mode_set =3D lt9611uxc_bridge_mode_set, .detect =3D lt9611uxc_bridge_detect, .edid_read =3D lt9611uxc_bridge_edid_read, + + .hdmi_write_infoframe =3D lt9611uxc_hdmi_write_infoframe, + .hdmi_clear_infoframe =3D lt9611uxc_hdmi_clear_infoframe, + + .hdmi_audio_prepare =3D lt9611uxc_hdmi_audio_prepare, + .hdmi_audio_shutdown =3D lt9611uxc_hdmi_audio_shutdown, }; =20 static int lt9611uxc_parse_dt(struct device *dev, @@ -508,73 +545,6 @@ static int lt9611uxc_read_version(struct lt9611uxc *lt= 9611uxc) return ret < 0 ? ret : rev; } =20 -static int lt9611uxc_hdmi_hw_params(struct device *dev, void *data, - struct hdmi_codec_daifmt *fmt, - struct hdmi_codec_params *hparms) -{ - /* - * LT9611UXC will automatically detect rate and sample size, so no need - * to setup anything here. - */ - return 0; -} - -static void lt9611uxc_audio_shutdown(struct device *dev, void *data) -{ -} - -static int lt9611uxc_hdmi_i2s_get_dai_id(struct snd_soc_component *compone= nt, - struct device_node *endpoint, - void *data) -{ - struct of_endpoint of_ep; - int ret; - - ret =3D of_graph_parse_endpoint(endpoint, &of_ep); - if (ret < 0) - return ret; - - /* - * HDMI sound should be located as reg =3D <2> - * Then, it is sound port 0 - */ - if (of_ep.port =3D=3D 2) - return 0; - - return -EINVAL; -} - -static const struct hdmi_codec_ops lt9611uxc_codec_ops =3D { - .hw_params =3D lt9611uxc_hdmi_hw_params, - .audio_shutdown =3D lt9611uxc_audio_shutdown, - .get_dai_id =3D lt9611uxc_hdmi_i2s_get_dai_id, -}; - -static int lt9611uxc_audio_init(struct device *dev, struct lt9611uxc *lt96= 11uxc) -{ - struct hdmi_codec_pdata codec_data =3D { - .ops =3D <9611uxc_codec_ops, - .max_i2s_channels =3D 2, - .i2s =3D 1, - .data =3D lt9611uxc, - }; - - lt9611uxc->audio_pdev =3D - platform_device_register_data(dev, HDMI_CODEC_DRV_NAME, - PLATFORM_DEVID_AUTO, - &codec_data, sizeof(codec_data)); - - return PTR_ERR_OR_ZERO(lt9611uxc->audio_pdev); -} - -static void lt9611uxc_audio_exit(struct lt9611uxc *lt9611uxc) -{ - if (lt9611uxc->audio_pdev) { - platform_device_unregister(lt9611uxc->audio_pdev); - lt9611uxc->audio_pdev =3D NULL; - } -} - #define LT9611UXC_FW_PAGE_SIZE 32 static void lt9611uxc_firmware_write_page(struct lt9611uxc *lt9611uxc, u16= addr, const u8 *buf) { @@ -858,11 +828,24 @@ static int lt9611uxc_probe(struct i2c_client *client) i2c_set_clientdata(client, lt9611uxc); =20 lt9611uxc->bridge.of_node =3D client->dev.of_node; - lt9611uxc->bridge.ops =3D DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID; + lt9611uxc->bridge.ops =3D DRM_BRIDGE_OP_DETECT | + DRM_BRIDGE_OP_EDID | + DRM_BRIDGE_OP_HDMI | + DRM_BRIDGE_OP_HDMI_AUDIO; if (lt9611uxc->hpd_supported) lt9611uxc->bridge.ops |=3D DRM_BRIDGE_OP_HPD; lt9611uxc->bridge.type =3D DRM_MODE_CONNECTOR_HDMIA; =20 + lt9611uxc->bridge.vendor =3D "Lontium"; + lt9611uxc->bridge.product =3D "LT9611UXC"; + lt9611uxc->bridge.autogenerated_infoframes =3D + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI; + + lt9611uxc->bridge.hdmi_audio_dev =3D dev; + lt9611uxc->bridge.hdmi_audio_max_i2s_playback_channels =3D 2; + lt9611uxc->bridge.hdmi_audio_dai_port =3D 2; + drm_bridge_add(<9611uxc->bridge); =20 /* Attach primary DSI */ @@ -881,10 +864,6 @@ static int lt9611uxc_probe(struct i2c_client *client) } } =20 - ret =3D lt9611uxc_audio_init(dev, lt9611uxc); - if (ret) - goto err_remove_bridge; - return 0; =20 err_remove_bridge: @@ -908,7 +887,6 @@ static void lt9611uxc_remove(struct i2c_client *client) =20 free_irq(client->irq, lt9611uxc); cancel_work_sync(<9611uxc->work); - lt9611uxc_audio_exit(lt9611uxc); drm_bridge_remove(<9611uxc->bridge); =20 mutex_destroy(<9611uxc->ocm_lock); --=20 2.47.2