From patchwork Sat Aug 30 00:22:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1135 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 B23EC78C9C for ; Sat, 30 Aug 2025 00:23:09 +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=1756513391; cv=none; b=ibHHJH7BY5GZHuYjRXpVqLqSGrA9l+hDCL0V5dp1+WJi9KTSKDJIjCDQEgJCk0BSwySn6pDqChU9a7KU1fszqIwqZWgOISgda6De6cyDIXfsCJqSOYGrB7ryx43PwsDZpm2l5+vViTs3MVAAPf144nqDoNsFrzm+PrGGw2bF+EM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513391; c=relaxed/simple; bh=voT7aMvCokvd0wqw9VJDsY1XcFoLXNViHe0msR8SNbI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NmR+r6tvZ5zwR4Vn3f8QtOdiahShtaj238HnxsKrhEo/ijxIPvBUaajzMDGmBMe7Sg5H2vZMqJjhovg7MS/VYmfFW0+IOvelkUBZGSJZqFQRIBOWrAbGT7EyrJc1YTGYsCUIg7O79kG/RfAQW6eRNNVonquhlQlKF25zOwqvRj4= 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 (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57U0KGpI026010 for ; Sat, 30 Aug 2025 00:23:08 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 48upnp004v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:08 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4b30d6ed3a4so27093201cf.3 for ; Fri, 29 Aug 2025 17:23:08 -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=ub5DsQ8JuOyIJQ6TT7U1CiZtI8Nkgp7WOSHxjy2Q2uPkX+GpWb3hGbZBcqN6BKQcCr 9FF0ty2GGn3PCHBld7p38zwmFZ4WgyVxUGER3OtetkxwTV5fVSrs9HA+nE4XcyVcSFLG cNfFNB6Xs3zFNSfPOnKqf7aqGJG7aW0ZJAlvJ0Ufe09K3vh+KAz5zzbDEwJ0F5YO0rmz 1cvGB/tGRyx1H4oMGhxi+re+y4MAeTxhcTSewwqfxQSmeToUMu14eW2bBitn3gpHNtui fNx3PnxknQWGAQs9h5mZu6nQNf2f4p7YKajaRUWwspuwAW+23meQaquu/f/p+KO2hAfN J9MQ== X-Forwarded-Encrypted: i=1; AJvYcCU+2SHWqVWixbZTP+hoHACNBs9tsBwU8nVBhSnOTrrG4IPSV6me+8Ql1CNXHRG8PoMgA74a6+Ufm9hDDA==@lists.linux.dev X-Gm-Message-State: AOJu0YxPoTBOjTLrpMWgaqEbecjIMt/PdIfSLipdP1C6EWHuI0NinWdR wx1RViHvXHeex8VrDwT9rOm8Z4SE4dWQqm+BLHyQrCSPFXxUeUww9/1kpW69qLb8Qlu1ux/Ul9Q KEjns8QJad4ykDGrUweObLUb36dK26IaUoHfTkUPuHSDKzybuO0vqu2gIQE2ED/k9RA== X-Gm-Gg: ASbGncvmUH+GCF2hbb+xDMu4y4eZLEGVHoODiQVZBeyVhkkweGuh5L6gzZbAmA8G4b8 0x5BPU8T7DkDmWs5bYHHOZdydNGEnLU2otW85HSuYtqYV2dNlTYA6bPRFNLvzamv0F4j8sC1Fp+ V4PmaNkSg7dUpLIXuuls6aQeCnIM/6VISVZuh0p4QGbesY3rKtxmLMKLiirS0NY6Bza7GHI2Oyu uEQ6aiZGzfJs+HeU3M4QErzioaOXxE5zBWkLiq2dHqPSgywbSLS0Vj5zjNFg05MOtwWycHDADHt o60DzUq4+M9YidtbR0dRi/eTNP7bnbNEPBYJxMG9OV3eXMMd5U6/mNiYeSe0T8HsT8HIU2FF69V AUfoHkgJUXg3Pomyh6laenx0tEQJcbTovAuYpm1yWG8YHGDG6+OFL X-Received: by 2002:a05:622a:4c8:b0:4af:2267:ef66 with SMTP id d75a77b69052e-4b31d873df2mr6591391cf.18.1756513384861; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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: aIrrSOBe60-sRLYj21hxrDID67JDd-Ql X-Authority-Analysis: v=2.4 cv=Jt/xrN4C c=1 sm=1 tr=0 ts=68b2446c 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-ORIG-GUID: aIrrSOBe60-sRLYj21hxrDID67JDd-Ql X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfXzn3AY/OWGOpM iTMjUxzaQkZ415BKAwrrxG4qDpxbylSPE5kp3SRhN2dSy83VBRABCum81lujstA/8sFuTqMSlhR Q13sB2E/3VLsuB7etatNahgUpaVHWt5hGUs9p5yO/moE0CeOKzNW40+l8xz2p6YfmFbWnHvFbUm WhaJK0OrBiaiNEUDY4+we/UUCuZSMQMUZd4peCs4umJAqIwQ70pVsI4y9So5HgatPfLNpMW3C3b KFbZUMIliF1SiAUTRan2lK1SqeXoD3hHFbxhDEpx1d/EU0DPov95DIPjGPZK86l8iI1Sqt21eBm TNKPUJFUMSKSifu1kXEi4xEqgQOhmCEfFLh7FiUbyrfQEnUrnvi0tI7rJQEXFGk1fxTRuctZ9OL 8wB1Xfyv 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 adultscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 impostorscore=0 spamscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300001 Status: O 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 --- 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/drm/display/drm_bridge_connector.c index 091c5335355a2b6c70dd823df69ce060fd56c4f9..944fb497ca339ddd63c132c2df0888011cc0487f 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..182ef9075e2f6cee1bc9b52b07e336e3f28f94b8 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, infoframe->set = false; + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE_AVI)) + return 0; + ret = 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, infoframe->set = false; + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE_SPD)) + return 0; + ret = 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, infoframe->set = false; + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE_DRM)) + return 0; + if (connector->max_bpc < 10) return 0; @@ -771,6 +780,9 @@ static int hdmi_generate_hdmi_vendor_infoframe(const struct drm_connector *conne infoframe->set = false; + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE_VENDOR)) + return 0; + if (!info->has_hdmi_infoframe) return 0; @@ -898,13 +910,23 @@ static int clear_device_infoframe(struct drm_connector *connector, struct drm_device *dev = connector->dev; int ret; - 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; } + 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 = 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_connector *connector, union hdmi_infoframe *frame) { const struct drm_connector_hdmi_funcs *funcs = connector->hdmi.funcs; + enum hdmi_infoframe_type type = frame->any.type; struct drm_device *dev = connector->dev; u8 buffer[HDMI_INFOFRAME_SIZE(MAX)]; int ret; int len; - 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; } + 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 = hdmi_infoframe_pack(frame, buffer, sizeof(buffer)); if (len < 0) return len; - ret = funcs->write_infoframe(connector, frame->any.type, buffer, len); + ret = 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_infoframe(struct drm_connector *co struct drm_display_info *info = &connector->display_info; int ret; + 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; @@ -1102,6 +1140,11 @@ drm_atomic_helper_connector_hdmi_clear_audio_infoframe(struct drm_connector *con struct drm_display_info *info = &connector->display_info; int ret; + 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; diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index 272d6254ea4784e97ca894ec4d463beebf9fdbf0..f031e8f8df57da15bb0f8fe21fd62f02a1576ebe 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 output formats + * @software_infoframes: Bitmask of @DRM_CONNECTOR_INFOFRAME listing Infoframes 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, connector->hdmi.funcs = hdmi_funcs; + connector->hdmi.software_infoframes = software_infoframes; + connector->hdmi.autogenerated_infoframes = 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..03e4ae81352bb7ffb3cf45219a96e7959eafe365 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; + if (!drm_hdmi_connector_software_infoframe(connector, HDMI_INFOFRAME_TYPE_AUDIO)) + return 0; + file = debugfs_create_file("audio", 0400, parent, connector, &audio_infoframe_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; } -#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 = debugfs_create_file(#_f, 0400, parent, connector, &_f ## _infoframe_fops); \ if (IS_ERR(file)) \ return PTR_ERR(file); \ @@ -733,10 +739,10 @@ static int create_hdmi_## _f ## _infoframe_file(struct drm_connector *connector, return 0; \ } -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); 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/rockchip/inno_hdmi.c index 1ab3ad4bde9ea7305021186ea221d2ff9057fdbb..9957615b407cd959928b9c9d116d3955a7924e61 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 != HDMI_INFOFRAME_TYPE_AVI) { drm_err(connector->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } 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 != HDMI_INFOFRAME_TYPE_AVI) { drm_err(connector->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } 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); 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..a01f837a0a7b4685a6fd9db9908890cd423ff197 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_connector *connector, if (type != HDMI_INFOFRAME_TYPE_AVI) { drm_err(connector->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } for (i = 0; i < len; i++) @@ -640,6 +640,8 @@ static int sun4i_hdmi_bind(struct device *dev, struct device *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/tests/drm_connector_test.c index 22e2d959eb31459f9981fef488228904d67cb6f9..1b42a9fad8715b496ad14ba589bb9721b2075ad9 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_register_test_suite = { .test_cases = drm_connector_dynamic_register_tests, }; +#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 kunit *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(struct 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(struct 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(struct 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(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, @@ -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(struct 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(struct 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 kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 8); KUNIT_EXPECT_EQ(test, ret, 0); @@ -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); @@ -1035,6 +1070,8 @@ static void drm_test_connector_hdmi_init_bpc_12(struct kunit *test) DRM_MODE_CONNECTOR_HDMIA, &priv->ddc, BIT(HDMI_COLORSPACE_RGB), + DRM_CONNECTOR_ALL_INFOFRAMES, + 0, 12); KUNIT_EXPECT_EQ(test, ret, 0); @@ -1071,6 +1108,8 @@ static void drm_test_connector_hdmi_init_formats_empty(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_rgb(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_yuv420_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(struct 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_rgb_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); diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c index 8bd412735000cb18e66aeca21433b2ebbefe2b44..c41c1cd875ba1c58610480a468cc3c36c48624dc 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_connector_funcs = { .reset = dummy_hdmi_connector_reset, }; +#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); diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 07c91b450f93ab9e795d040d6f60f485ac71cfe8..856830482c31f708455b358921544fe82640f04d 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..71e64818a93d803067097532f9025418d7ab25b9 100644 --- a/include/drm/drm_bridge.h +++ b/include/drm/drm_bridge.h @@ -1205,6 +1205,20 @@ struct drm_bridge { */ unsigned int max_bpc; + /** + * @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..e18e748036ec2618e885fca392a175d632120f98 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; + /** + * @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); +#define DRM_CONNECTOR_INFOFRAME(type) ((type) > 0x80 ? BIT((type) - 0x80) : 0) + +#define DRM_CONNECTOR_INFOFRAME_AUDIO DRM_CONNECTOR_INFOFRAME(HDMI_INFOFRAME_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_INFOFRAME_TYPE_VENDOR) + +static inline bool +drm_hdmi_connector_software_infoframe(const struct drm_connector *connector, + 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 *connector, + enum hdmi_infoframe_type type) +{ + return connector->hdmi.autogenerated_infoframes & DRM_CONNECTOR_INFOFRAME(type); +} + /** * struct drm_tile_group - Tile group metadata * @refcount: reference count From patchwork Sat Aug 30 00:22:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1136 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 581EA5B21A 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 (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TLgDNP010561 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 48rtpf7e60-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-4b3118ab93aso25447321cf.0 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=r1Nth6WD6i4gdJsr092ETs3LL5bqR+s9ol644RFSUmclG/ofbLImkyOkX06//nac+V Du1m4Sz23bneMfE683BzdZ/A3HyCv1+CMTD0tqV2YM75AxHQQAs7DGqFb6q/nHJ7lCxF FIGeRMKZV9Rr1UI8wEljmAUD/C1lPo6gAfttEYctxAvyL2bmoCvga+LyjWK/nJZ/nN5e sa3uWRKPlXOBPaGEAYg1P+76atz+XKvBSA9oqAKguFbrYKAnpBqy77rCRESfgaOewgsf HHvfgpVSoZdoGjGTIzdaCQ+sNcK88HImcns+oSr2vuYKKlrcKCYx1SKMVWO5xjB3ybdi vZ3g== X-Forwarded-Encrypted: i=1; AJvYcCVgGwEOvYvVFXWW57WolMKaI342mvIaKIH6ldVZo6AKm1sUw9D/cjkwOI77EGk297XMciPCi54RCDIQUg==@lists.linux.dev X-Gm-Message-State: AOJu0YwnhBI11plqzhpdPOYqiSxaWO2D6IUAVtwotqdwIANkWDIn9nX0 5Uwm3ApN1fRjrVyT1wcPvl13tX8F2vKZjk2LDmxSzoHfjtSenyfGNVtQ2mdkAZgLsCNbms0n0Jz EnStafOcWqM+pu4jNDiOMuu0OEg1BcB9i8Z32ueUlfTgYmZ4oXA1GB8tp0LYJT/ihyw== X-Gm-Gg: ASbGncu1zjG2XTVrY6S79VbBxG6sEGcZ946w+PbSlGuDh2KbtoaoNhm4zq3f+sgo+ph Erdh0n4aLKuPIPEwkoik0sM3GIYlfq4nh79vFXPF7WvGQH1dsXkuoap4zquskmbmqU8pVuyrFe2 yuswxEU/l9bhE+KdbrZUxFQH6CYTim2Fot3BpQ1mxYiR2UpqBt8bKNyEtrPBjo4UgPygNTxxKNM 4pZuvZqglbLWenCtLUlEuBaulgPObNB4pANUfPtkFWdfvPyhrj8rY7cH00h/TP4Xt5S9UHR5YBX tBL0VaXUqiZG1DmvPp97hW03tysjLU7zpjWOrupBtzgmMXAqVUCx4aF6UQLXfmc69xNofisCnRp IXKQlAqxsLRzUmSE9Zh5S0B6YXg+N3rIWd3ginTm+0T2s7Ohx2Nz9 X-Received: by 2002:ac8:5884:0:b0:4b0:aa5b:7c6d with SMTP id d75a77b69052e-4b31d8450b2mr7951131cf.16.1756513386114; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-GUID: kdjLv3yL4WQpGxvuWuUv_X4g3A4V4-sd X-Proofpoint-ORIG-GUID: kdjLv3yL4WQpGxvuWuUv_X4g3A4V4-sd X-Authority-Analysis: v=2.4 cv=Hd8UTjE8 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-Spam-Details-Enc: AW1haW4tMjUwODI1MDE0MiBTYWx0ZWRfX60pNYrCRz44V GDEmsSSdSrivAap/1k+U46B+99E3tobBiS4hRqBiGxu4117sQ7K5WMpULQywhORzbcdXQh+Mioa IDw6GJdT52PZ9hnnsjLAK4q4muB8ZIcKca3sVH9euA3rZjNvagn9Jx85oD7yViqexEWyiZ3S6D0 dy9OLYxf5usEFAq7VZ8DoYm6C06oudLMH495yiHwo4MXd/mWWgMGyWmUPQG9PN5m/uDWrpUCAfQ mcoRio+C7OaqoAvKqxw7HMJ4fYheJpclVyyhGiaQAUaoo22Y4iQY1F8Ap1NSNEQIQfjPwmUwqYT QtQbsqMrc3iKDaDROeJ/frZMhrohsdxamb0dYztf+BqJsPZFEGJwjv/UGt4no2Dp1xOBBxdXIX1 ToiWGn7M 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 Status: O 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 --- 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..fe30567b56b4f600683f0545ed270665e692b12c 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 drm_bridge *bridge, break; default: drm_dbg_driver(adv7511->bridge.dev, "Unsupported HDMI InfoFrame %x\n", type); - break; + return -EOPNOTSUPP; } return 0; @@ -938,7 +938,7 @@ static int adv7511_bridge_hdmi_write_infoframe(struct drm_bridge *bridge, break; default: drm_dbg_driver(adv7511->bridge.dev, "Unsupported HDMI InfoFrame %x\n", type); - break; + return -EOPNOTSUPP; } return 0; @@ -1299,6 +1299,12 @@ static int adv7511_probe(struct i2c_client *i2c) adv7511->bridge.vendor = "Analog"; adv7511->bridge.product = adv7511->info->name; + adv7511->bridge.software_infoframes = + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR; + adv7511->bridge.autogenerated_infoframes = + DRM_CONNECTOR_INFOFRAME_AUDIO; #ifdef CONFIG_DRM_I2C_ADV7511_AUDIO adv7511->bridge.ops |= DRM_BRIDGE_OP_HDMI_AUDIO; From patchwork Sat Aug 30 00:22:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1134 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 17747155A30 for ; Sat, 30 Aug 2025 00:23:11 +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=1756513393; cv=none; b=StrcYxmPzb+mN5bO0GQHh9dECGRWd+1eQbVttcZe4xY74Xlr4g3g8k8AfiO7g2IoQmLFUYG3UFVVnuLERLyQpTAJnFVHDIT+PEEQWpRgxyZXKCo8YSE+tBlHpsdpWyH/lPIKrIdPWYXdoz9Th+ro2/SrzPUl53VyPoA9L/mBIEM= 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.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="UClwzVJg" 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 57TFaWVg011710 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-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48rtpf7e64-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:10 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4b109bc103bso56209701cf.2 for ; Fri, 29 Aug 2025 17:23:10 -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=VJfIQjqcVcedr4hGNaWDOVA7850A3OgYfQIAKzV6vaVkXUrIWh6Ll+r7vsujy6OeSy ksOJ+7ugQM4kZNVYkTjRclpTTb22t0h5Vq2uagH+Z3iQZbXhv9vDa4ZlkS/Zd/ExTfL5 ffaM5MBKQvZgEmKb/Qb81STtMaC7JM0BLoCgPUJptP/OD3qJkI9g4IUoy9HndMwghcI7 Q/etRacv3sgO2x0Urs6FrFOGehY8sSp13bxAw1nIFLQ0MuO3UkAg3A9oT0bxTWnbkEzH 2druNvzfa8s5ZpZmLJYRHe6Cq6IYBxM2hqnMbtgz08kreOK16x2AIpL+bTOkONifmKEl ZsLw== X-Forwarded-Encrypted: i=1; AJvYcCU8huIe7S8gp1vtbs5cNZuggmCipXUA2X/Ds2KzJwDNrHFtYbRW2+/KjGOoIQJtRUmPUGIMs9mUgvozeg==@lists.linux.dev X-Gm-Message-State: AOJu0YwHvsg2KDHood0PwxO/pNbep5jr6QL0w9Bo2KmIQYdRQ4pKUTLZ web8rW65Fie7RKD7otUEnyI2mKcTnusviSTnDRs+FI80oYqPE5FrdQexaWCFLCA96vbU0kA1J97 2iVdDCyvLYglLkq68LRg2cOm6M570k7o5Bmk2evu0CizPGol93yEQr0rmbmL+df5Zzg== X-Gm-Gg: ASbGncs5LJhC/oH2ZK6FFzY8Vo0qQqh7/qo1vEF2ElpL4uQQUE6ocHWH8Ly8Mzxd44I 9Erouo7sHZx8IRY7xqFyKrAJSUyGxxs5HKbdGF1ed5fhCdP8RtFRjP+SZuZ4dS7VVkXP2WDoSxp srbjHSStmir096cxutHF94VnSQuV3Zi1V39BsXTfYc4fY7BF7rk+dR03gc43M9g73CUEWZWhI2n BhVOrsnVOzcWtvQnv958V6KwMX1ZCCZ7hhojmK/8DUfjkDiqpMjxI3t1+IgnUIlwVaREAiddkPV FmkVnrs8CIOolJyEKRunaDUmumbEIPDlvPDXHK/T6uvvOsoKqs9h8uyf5UK2Y/BU9IulLeBqhcP Hj5UCrAOWiXTRhUeXBi7PRZsQBpj/jJw7nnttAF1n+IGkkch2jB8K X-Received: by 2002:a05:622a:1806:b0:4b2:f786:92dd with SMTP id d75a77b69052e-4b31da700f5mr6049081cf.57.1756513390036; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-Proofpoint-GUID: i88SB3SRs-S70ef8YSjkwrtZe1z4QRtV X-Proofpoint-ORIG-GUID: i88SB3SRs-S70ef8YSjkwrtZe1z4QRtV X-Authority-Analysis: v=2.4 cv=Hd8UTjE8 c=1 sm=1 tr=0 ts=68b2446e cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==: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=dawVfQjAaf238kedN5IG:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI1MDE0MiBTYWx0ZWRfX4Mla30EwxBaf L5KHzAIpr391SaPnGAkRiaqPyXaC4CmLWl00tF7kYjsojNEngCZBKhISDZ2mUhzQOG6gZ45XX4Z 1nbdqPiNCYFzuBFExGZ1tfJgY2dvVzW3j3xzL839qScAhnPmvqVhgp6x54MGqCtcMkS5s7RFDJP k2MhoE7/lxlNRW2p6eMhUXNcsG5p6te6CE6R5Xf4abqsx9/4lZXkghQkGnEOqPkslBxIEIxKeqQ UyMxQDiFwM/QlLg9qq7fXTFa6iccNYCVyp2UK6GKGv8d8dhmLEW6vqaiaMgQB8Y9JZ2k2aqItJM Pa1EHE3oYx056Ik3yPScmNFwytzw9mqqMsY7nvP12vuTd3qDR5twVPdXvbovGsRDwpSkqSNxDr0 B01In+8F 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 Status: O Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov --- 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/ite-it6263.c index cf813672b4ffb8ab5c524c6414ee7b414cebc018..f2d54ad8fb64254747f2e8e301f19accf337128f 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_bridge *bridge, { struct it6263 *it = bridge_to_it6263(bridge); - if (type == HDMI_INFOFRAME_TYPE_AVI) - regmap_write(it->hdmi_regmap, HDMI_REG_AVI_INFOFRM_CTRL, 0); - else + if (type != 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); return 0; } @@ -772,7 +774,7 @@ static int it6263_hdmi_write_infoframe(struct drm_bridge *bridge, if (type != HDMI_INFOFRAME_TYPE_AVI) { dev_dbg(it->dev, "unsupported HDMI infoframe 0x%x\n", type); - return 0; + return -EOPNOTSUPP; } /* 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 = DRM_MODE_CONNECTOR_HDMIA; it->bridge.vendor = "ITE"; it->bridge.product = "IT6263"; + it->bridge.software_infoframes = DRM_CONNECTOR_INFOFRAME_AVI; return devm_drm_bridge_add(dev, &it->bridge); } From patchwork Sat Aug 30 00:23:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1133 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 AAD9216DC28 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 (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57T85TQk008060 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-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48rtpf7e6g-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-f199.google.com with SMTP id d75a77b69052e-4b3081bcba4so39773151cf.3 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=wKNlOgg73tnpUoVwz6pwTmj1HcWH4VXm49QznhTmgXAKdr199yh352PTZDY+3aRIb3 P+XnsX3x7EupPdkZgXiKev+OviOYya60mV4VCjMZ7J1aGFZ8w5kes/HOACrNph3kbZuj 0K2tbDJZ+CFkgfNZS4jzRmIgmXxZCgKztiK700zFux3ocL/R5y3CbrZCVAjx600439yo F0ubrSsbNpod9BEaXEKWZ9SmwcsOrG7oGr5kUI8ZMlAjS/Ev9fj3XeKeLBs7Y7zpp25n 9zbSWnB3qYQTgJg1N5iVTRZWkfDUdE8mDcWLj9TjREL0F0oh21fu9dvgNlBM01D1vKtv 27qA== X-Forwarded-Encrypted: i=1; AJvYcCVhpz/bY5y5CleJZWfi66EdxmAy3aJQ/Ym3rwWKuoiBc4953kjwCVCHCyBhmgw7v3TDv1spxr5lxzDfIw==@lists.linux.dev X-Gm-Message-State: AOJu0YyDJ9nxXsalN553IASBZIgijV3rtdSl4zbuDY2ZuWKUcV8B7iv5 U3SRfCVwHf366CT1uvlVbNhWthcrjAfPowClHmEnQD8kzqQaIBhwjWZ89etVsKiVrv2OUIzhi+r EYQSCyyopy4LAVDVlfNTTMRgVX5kQqHwZ+xYvLLcJVRAjhCU0qrsIIUzmE2UTvg2zUw== X-Gm-Gg: ASbGncscUS6WKnetAw/eoacg15BjTUwTnTqGaya0POXbfcFnGKxL2xRooai7RutoKBU oKzjsBYyw4CKVhjFyC5VCJq35JGDYXEIai71tQd/6kDAhZy8k1qO9qMZa/x5PCGxu4YVNJep52q xNLHWXXNhjDLf1iEfLt1fnVvSwoJ2wFf9IotDjpDsZwRe5dhF0k3oGhr1Q47DwHbb8yGBnoRpeb 7020nBpTIHvt4cIm5LhN+lYQDuDgRG9MTEbvjFM4+5+CSWlyxTZLOEVYHkQEFPvvOHNCEq4pF/7 GnEQSQHlci9uubZe11yrwXubv8AjWhxkAxjpRY/vHIIg6FeNP9hsPdIS+26F8s27RmZeBVZVuA9 rZxhQNsl6Gu758HqfW2yCPJ9YdCZMxHO682nSLZYi0LZ10egfb4ic X-Received: by 2002:ac8:7d4e:0:b0:4b0:7989:13db with SMTP id d75a77b69052e-4b31dd21723mr4241591cf.58.1756513391692; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-GUID: rlr3Z3d6AFivxseAsH3a9Gr2RgY_uCqf X-Proofpoint-ORIG-GUID: rlr3Z3d6AFivxseAsH3a9Gr2RgY_uCqf X-Authority-Analysis: v=2.4 cv=Hd8UTjE8 c=1 sm=1 tr=0 ts=68b24470 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=AMvF8s34Jxw15HKoVo4A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI1MDE0MiBTYWx0ZWRfX0OmW885zuQcS 06q1rUB50UXxGoPcTOVjg3MpyL6PMYmv/kb0PEtcTTGiYChEaDaMmJD952YAAK/z4cFFQ8fXznT 1Ar6FYvQb+U8lAsEiTQYUsRkjB11SdaY4Rrj1ptvVzd9tbNoV2NkuLHmz7FlqgFCXQ+B9k4MhCx U6qt/LLYxT1mGFcoz3FqMt6h6n7I+3R24ws4Gjh/Mbg/mlOMB7J7fOUyG9BiPWb6xUNYyt60jtF DNVpnxcqrjy8toOzMyfuib+B1Esy2dK1t4kP64CyK2X4CUrk0crxgscEcLB6WF2W25qLkvcCe7J y8xwDxj4ssmgyYKHgURzE+i1ucizHFpL40RdfLiZaEFcDdncSqXCJY8ux8BWHi4erbC7e83oLBV bOtkFhwJ 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 Status: O Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Signed-off-by: Dmitry Baryshkov --- 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/bridge/lontium-lt9611.c index a2d032ee4744715b88eb66883edf69bab4c274b0..271295e1549885ea054647b06cb95d483e352f4d 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_bridge *bridge, default: drm_dbg_driver(lt9611->bridge.dev, "Unsupported HDMI InfoFrame %x\n", type); - mask = 0; - break; + return -EOPNOTSUPP; } if (mask) @@ -911,8 +910,7 @@ static int lt9611_hdmi_write_infoframe(struct drm_bridge *bridge, default: drm_dbg_driver(lt9611->bridge.dev, "Unsupported HDMI InfoFrame %x\n", type); - mask = 0; - break; + return -EOPNOTSUPP; } if (mask) { @@ -1136,6 +1134,11 @@ static int lt9611_probe(struct i2c_client *client) lt9611->bridge.type = DRM_MODE_CONNECTOR_HDMIA; lt9611->bridge.vendor = "Lontium"; lt9611->bridge.product = "LT9611"; + lt9611->bridge.software_infoframes = + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR; lt9611->bridge.hdmi_audio_dev = dev; lt9611->bridge.hdmi_audio_max_i2s_playback_channels = 8; lt9611->bridge.hdmi_audio_dai_port = 2; From patchwork Sat Aug 30 00:23:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1132 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 94767191493 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 (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TNOUQL007731 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-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q5w35dt5-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-f197.google.com with SMTP id d75a77b69052e-4b30fadc974so22720781cf.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=tq25+SgG1q9mDvrmFx6hxgu0pjyIVTrD4eKKkYpxUAG02IwwYBHqxlKN2+Sdl9zdsv 03pAER9U0yXtVwLYvL7cRoEy/f71R3xZb2KDxs+cy9xi8aIsROb2fRM+ti8dT/cVkSDg gxlnsBQm0aqCzZCg8gdihIFlrsKyoparoDqHY5RvHfGMZOpck5p3Wch5JKWSTngJiKNK 0l3S9ZGVxGIEnmyUgkt8ljQSerIrR4+A4TC/6tAWLwW3aM29noiHCpo+YSmalUuMsdj2 VJS9pcg/ms0xSm3OGgVN9405Ra8imFJoAluPGCB3hVG0kzrGb3FdlCrYHtFWpiqts8/K 6fWA== X-Forwarded-Encrypted: i=1; AJvYcCWsW/tLRCv7I4ip/ujlpG0HQXvuXRZdaFOzov5cEcOutUdcT3UmZNO+48mE4okDwH9aLu3jPsiFrWo9Dw==@lists.linux.dev X-Gm-Message-State: AOJu0YyNuc/SkX47gZdH496ztVXrf5tFs5KCqBK0NOwcpJzQlvwEz7iL W1oMgTsU5Y6lmg/wBRUs39zE6urK8MCVWnnbk9B131rR5im7JE1nmCdfeQCQN8V299JzGsB0+1b GEmdTkkhc4KogjENNHSFDntXmZ3nVoekcACMxgh3ZDu0fHBtK2lsK17Yivxpkmvw7Lw== X-Gm-Gg: ASbGnct3rWYLe3hdQ4q1wPfKPizUXG3O/7WN8KNACDV1TrK7fJtmnPAgxYehuS9W3W2 x6SGOr9UpaTPm72n6ny4JttqhHBXEEtY34CR02oD3zZgiwYcW8Qw5toDMgPvxN1mg80ARn0vxPf EVmdSstWmrIpXdSZbeji6b5tnYdzcz8Fv+UaWkROU1zuVpgkc8TMxphbYsej+W9npO80hSG8u8h Dx/eJAr6WlGQUc6NEH0BnOdoxH0JXNcxTN1N+0ndCD1DTJt12u0OHfiXtX0uR3zETNP+NPUMf46 3n3RVkE60sUioETqXY6o/41pTzKvtJ+5dE9HQvXcZRvXSAy4Yx8Dd7ZtiSwilIDsLoDzMKVrO1C euCqoULD9Y2b68jclvETr+FSdqdJq2/YdQRw/pg8oRunRobd1NOrS X-Received: by 2002:a05:622a:50b:b0:4b2:fdda:f7be with SMTP id d75a77b69052e-4b31d80cb39mr5664511cf.3.1756513393502; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-Authority-Analysis: v=2.4 cv=Z/vsHGRA c=1 sm=1 tr=0 ts=68b24473 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=vfAEGMZ_7ZOHtlG3iVcA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzMyBTYWx0ZWRfXwx2NCLbBVt0k tMXLLVfPCXWGbxlIn+hUsUTJ1o7t6B5zPyHtEA2YWp0W+LCkvCkXdcpUnUmVXWKAsPP4ZS/aDPf NUugbJsDyvOhDCw6ZhH79DLItCoClrcXThvD6m7lFUvlt/eJYtcRjM3CA4QKXzqPOz5OJIyz4xv /+iijMqkwtLPrVtr2/CcXk5Weg9O9DJSGxbf+MTzwXBxaIcSvfvKzhygzIPto75QESjvj7e4NLL PIN4Q52OkT5wf5Uj+vx9BU4VnR3dTOBlaVe2xrnjgQ3fjuMN2MwIS7vefqSnPvIvKlvLFgYUUTe XoJ38jZh+a5WkJyCO5HiDfgppxRXCB+KAiUxVsDQiA5w9XbnXohZvwQAgFRaM4vtyuGisAfwv8O GHAFPRlq X-Proofpoint-GUID: RGBIuiBqqeYAJo60kczilAK-Lbfru7Vu X-Proofpoint-ORIG-GUID: RGBIuiBqqeYAJo60kczilAK-Lbfru7Vu 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 Status: O Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Signed-off-by: Dmitry Baryshkov --- 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..5320641cb6907a98cbc311a80755f09b88a27ff6 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; } return 0; @@ -961,7 +962,7 @@ static int dw_hdmi_qp_bridge_write_infoframe(struct drm_bridge *bridge, default: dev_dbg(hdmi->dev, "Unsupported infoframe type %x\n", type); - return 0; + return -EOPNOTSUPP; } } @@ -1084,6 +1085,10 @@ struct dw_hdmi_qp *dw_hdmi_qp_bind(struct platform_device *pdev, hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA; hdmi->bridge.vendor = "Synopsys"; hdmi->bridge.product = "DW HDMI QP TX"; + hdmi->bridge.software_infoframes = + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_DRM; hdmi->bridge.ddc = dw_hdmi_qp_i2c_adapter(hdmi); if (IS_ERR(hdmi->bridge.ddc)) From patchwork Sat Aug 30 00:23:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1131 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 67F281A5B8A 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 57TN5b3M027404 for ; Sat, 30 Aug 2025 00:23:17 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-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q5umna65-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-f200.google.com with SMTP id d75a77b69052e-4b2f7851326so70909901cf.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=oSmdIb8P3nfJF+e8N3Zt48IS4VpjD2ByENhN8y3bFn/BzWH/cxnpjjfvxEZshLRRdr QZUlGNNiPxPzygfFzfleGSm83IYTS4YDx5oRRdCW3RgpuxI5NWOEnh35QYE1pEHr84SG IBcsE8o+drSzvT6c1q27TXWAq4SRix9ZNP+YUjigb/wgElgZeQZXReLH0UH9q47kUsIt v591RMqqdkHET/sux/p9oydbplwrqdoMD1NCAmmhw1FUz/IEeqysxq0q1aw3hodOjwVx ROlwK6xJiSTkrswlLNyyhkJCzOu9GvqiG2v7wPlADxmLeG+gfWjnZjp8/qtIq8kLKIBi vl8Q== X-Forwarded-Encrypted: i=1; AJvYcCXaMYQGewr33c/xjrVJNvhzpCkO/0aPrP5f7npcUPm3gukg7CXU8JY6mpkGfsPcwe04NGl2gFi/zkjCcg==@lists.linux.dev X-Gm-Message-State: AOJu0Ywzx47q1gWe0KNavTFUy/a+bi1tLLYf2cLXvBOLRS201q7W11Q6 k9DLwze102r/QbtovPFWeXOJFj1L+BamKl2hbLfBIim3X13R4+zpfdbXuZvlSj/qsXXc1s/Bd8+ GcIaiT7v9Hih8hnzv8fYaw4eZduAu+2lhAHUPPoLs7WyHSVIsztUrVmdzLlaW175iIw== X-Gm-Gg: ASbGncu8UfOGywiITRlUCtqmRkvp64EksmfhsDfK4s40wfhX2CqbcK04qn0oK7zeWxa 5cL0SW1DN8UaR/t7P8U7vLv4Yw3KaBsSifZpsxH1F+tms2He2+TT1H3ixIbpX3b9/eNKNCc7ZY9 Ese9mx4I5tsbmlNk9FNndHDk3gYASy2wDa9rwpEEBB2PvI3s9Rt7gvW0gM0NmZlo9gg/5SLRyaz taHTHuFmyzIDpS9X3w0MgodBK3yIFyagkpuVDNFC+ifIz3SmWFR1duwZ2g66fix7/3Ko+49wxKz Y/ZfltG/MWuRXgjcqAJN7vp3V5DFn4Ry0IqPvsUpGyZjgqkxUp1IvA5fsJnJ3yEtxSKOywfBVKi IN1x4avQBAL+PrGKH1YTAumMvTrHVRuUWyXWxEWe2G1fdKrxQ6VQn X-Received: by 2002:ac8:5893:0:b0:4b2:967f:cb4b with SMTP id d75a77b69052e-4b31dcce3aemr6287521cf.63.1756513395151; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=QemjF6U71Mh5n78GOpwA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzMiBTYWx0ZWRfX5U8sQBYdpwtP 6PAvrqbn0XAgBUJh9XLOzCQV0c2h1RPIxafiChMIwVroY32mVNEYd5snTeCM+wII6mfqaTqUXaH nhlBAHQT1l95WUV+SuNf/HzLZePjTfLTp/DcXSIK5leZcN5TknxazTnF2mV/M8dfFByi3fiu2ie /4zW1RHptJxfFSYTqbGBENkDHsKkYLy7HIvjVdbbM1gulKds433bvvvVFMupKrtdRqBankF21GJ uXpfzhVm/83Ec43K0u2YEkJz0fgJqzGMqNTa6HgJrduWJiWLyTrxNRZpsWrjSqR4qhfyC/quydn dDFJNIRDGHWIZ0XwAPZzOa5c3adAJ7RnBCMc8AqyCmqtjmYtrYExbeTlDaUZ7uzn+tmBUYlIhSQ YIooQK17 X-Proofpoint-GUID: dUv9AqrbeW90qhhGM3GQrDmBLq1wcwoy X-Proofpoint-ORIG-GUID: dUv9AqrbeW90qhhGM3GQrDmBLq1wcwoy 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 Status: O Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov --- 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/hdmi/hdmi_bridge.c index 46fd58646d32fd0611192595826a3aa680bd0d02..9dddc0e47de462212d42f3ff1012a073b98e3a96 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_bridge *bridge, default: drm_dbg_driver(hdmi_bridge->base.dev, "Unsupported infoframe type %x\n", type); + return -EOPNOTSUPP; } return 0; @@ -274,7 +275,7 @@ static int msm_hdmi_bridge_write_infoframe(struct drm_bridge *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; } } @@ -498,6 +499,11 @@ int msm_hdmi_bridge_init(struct hdmi *hdmi) bridge->type = DRM_MODE_CONNECTOR_HDMIA; bridge->vendor = "Qualcomm"; bridge->product = "Snapdragon"; + bridge->software_infoframes = + DRM_CONNECTOR_INFOFRAME_AVI | + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_SPD | + DRM_CONNECTOR_INFOFRAME_VENDOR; bridge->ops = DRM_BRIDGE_OP_HPD | DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_HDMI | From patchwork Sat Aug 30 00:23:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1130 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 1C7EB1C54AF for ; Sat, 30 Aug 2025 00:23:19 +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 (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TNkPsB014279 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 48q5w35dta-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-4b30d6ed3a4so27095121cf.3 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=tQ1fo0Ztzp10ZxX8ihL2oCxvfUpqpvlarr3oXFemVPtTPMZ7PprZb4PR9bUL8sVGM9 FpkFe7MZOFiTVbtvjAqhwQcFHbTSN9IqQtzJ13cujwA+wZaayR48P1D5giEuHDZhUSIU 6flXdaRxEX/j0VQKidPv902xwh5qT6SHOjncV76bR17lkyqeqtgvkIibW9rL3QrmwQ9+ 1gQg+9cxWoF+RoBW04sCVtdsJxFxJ+mb14STwLgIcEWWqaxbn0bivU5LtucWWJ7JsIuo UrrAWzfgHb2e3rTEW7+7O5266ALPfClOzzRmu7FXZKdcxwNIiScJOV29rKsF5B1nJ4bz BKkQ== X-Forwarded-Encrypted: i=1; AJvYcCVxHS6i8a9xG1U0p5elQ+W+yCfJIQMnBwDm2Hs2Y9M7hTKvZOWIMI6rDAt7425ekYAxG5HMuO3LmW1AfQ==@lists.linux.dev X-Gm-Message-State: AOJu0YxKyfcT35UiKCN+gWoE/UGRgf1oIm3ehGMdVlyySS31CCq2RMXo bsFGs9cVCDUBtIxYdURUl3nCtVLNCp/Sn6tOXoALsA+a1JOChTLfHU2kBMjAd4dE+m0tHVZIsFy r7G79FNltNAu83Jbpf8EdbDWeN19M5VUJiV1eJIwot8NORczQnL8jfVTDxUV8XENppQ== X-Gm-Gg: ASbGncvED0mpG+L/ohCApv4VFwEb9wBwaIWxTYPQ06IfUNeFwFHTgQ70DaIqsAdgj7I BhJRjLZHUJKitXSQXUg7KqTKmKaDYnjcSbDTokJNtB8JmaIlBWsGxy4yrZ0DmSIBAjZTEF38yN/ bCqf1bs89p4oP6uzrlnEB/MQxR4kkSP4aEZcmyud3UAW6G2KsOPFdKyO42ZxaUGXCn7zszxWCF2 E+1cElTUxmZjizEk1k3lyhqhMvua0/9PJGQ562CUFxuiwDNy6yz6kmoapD8SzYpj25RGofbgp7+ 4BFnYtNqEb0SC7QBYTtwLcshQZK9j0YUhFe0tkqJUkk7mqyL7VBG+ycPdVTqPf9mk778GaRLnbE REEXWFPUbsdDvT+6xbsdnqAHSb1273XFsZoU9ZXthg1wEIN5iaRDc X-Received: by 2002:ac8:5d14:0:b0:4b3:104:792c with SMTP id d75a77b69052e-4b31dd03c17mr6898791cf.57.1756513396953; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-Authority-Analysis: v=2.4 cv=Z/vsHGRA 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-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzMyBTYWx0ZWRfX+d8V6GLnuQ5X /bcsAvUkfOH4BGr1l0pHOn6TidLw60OIRvYUNHYQ8s4YUs6m2l/0t2mNMc2pcry/aMbmrgRduva ncElzf0Shu6BHCPaRETWnNFl7yHXz2otMHGmerRyqIRPrC0nACf62HgsGz389o4MAbL3O3D9Fyv E/mdrnY7aIRGX529WY8imp2++9xrIsDQJszFmwLTXcUm8CsuWBH4LRwMh6sda4B9MHEf7f4zhrD FjoSREZa4MToE8eJqCkeoE6TwtHWArM0dzTMPufwTheWo8mSwi7iFk5o+1T9JpVpOvswerOwvsK KN9eK6n0AOaGBEPM6UhIwKO6Nso7eGAdK1hn/2Xkrs7A8u1fP/tQktdcDB5pbjb6FXq8nO6SU/q IviODgDM X-Proofpoint-GUID: zRO5aXD6yQC-RzQHYLIQ9Q7hEpBtyaNi X-Proofpoint-ORIG-GUID: zRO5aXD6yQC-RzQHYLIQ9Q7hEpBtyaNi 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 Status: O Declare which infoframes are supported via the .hdmi_write_infoframe() interface. Reviewed-by: Liu Ying Signed-off-by: Dmitry Baryshkov --- 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/rockchip/rk3066_hdmi.c index ae4a5ac2299a93a49f87df7604752f6b651c839c..330c3e6ecaaca1602aee497c1a1be9599d1f886e 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 drm_bridge *bridge, if (type != HDMI_INFOFRAME_TYPE_AVI) { drm_err(bridge->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } hdmi_writeb(hdmi, HDMI_CP_BUF_INDEX, HDMI_INFOFRAME_AVI); @@ -182,7 +182,7 @@ rk3066_hdmi_bridge_write_infoframe(struct drm_bridge *bridge, if (type != HDMI_INFOFRAME_TYPE_AVI) { drm_err(bridge->dev, "Unsupported infoframe type: %u\n", type); - return 0; + return -EOPNOTSUPP; } rk3066_hdmi_bridge_clear_infoframe(bridge, type); @@ -696,6 +696,7 @@ rk3066_hdmi_register(struct drm_device *drm, struct rk3066_hdmi *hdmi) hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA; hdmi->bridge.vendor = "Rockchip"; hdmi->bridge.product = "RK3066 HDMI"; + hdmi->bridge.supported_infoframes = DRM_CONNECTOR_INFOFRAME_AVI; hdmi->bridge.ddc = rk3066_hdmi_i2c_adapter(hdmi); if (IS_ERR(hdmi->bridge.ddc)) From patchwork Sat Aug 30 00:23:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1129 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 A62781DB125 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=1756513403; cv=none; b=PZduENhTL8oCRA+0PYWmk8kXD1ieJ1niv3lWEeEvdWIbRreKKDb0nYkzBjCk1ovJBhkdS0DxN6RedRTwaQChNXkU5tOCbkLzhJRvqrvQtAiG1WwHkvXMRp2YDtY2GpH2wmmA/OeJ3MDa0M8XAcgZnqBTmOyclFEZWfCnBTbVovQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513403; c=relaxed/simple; bh=cd27TNKmPZcfQJ3UKiBSlNuQpycc1+LIV7BQ0LEWwY0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=deN173lOrcF/bbuZVCRpXof/p/FJXpILQmU6OQZQGBQU2ljsqOQNCJlZiRqIfC5juENpS38rlPyJLQLmqswksJCwKIGT4YiI2JxLr34EcWTNjF7+h4fXfRRzn1xTA6flQgXmCr2Ae4UzumxOtgL6UHDAmFmaNM9pid8T1l5uNRc= 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 (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TFbU0t012957 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-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48rtpf7e76-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-f197.google.com with SMTP id d75a77b69052e-4b10990a1f0so59874651cf.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=1756513399; x=1757118199; 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=ceTtWhvTvSYGoAkMyeWINknyDOXNaqMxmup4f2dp9V0qQ85VxXuO9Ln8S0XXmroHId dpLFbuGoyPQIQGVmS2Lb3m0i4aA+pUdvTroMvnmxuNbBVWpclwZn3vT6GOLpsorvQ8ER NWJZ4Df8Quk3IPvw/Da2ZtO7R655f6JsI1UQ/ACHeieU7yM3Y+yx5TGa0CesrtQrbBr2 UUsJCk9RX8r3UfC2ALVZZiKipf8MuXX7k+k+9vdplQM1VI8kysv8VvagZCwGKQpox/7Z AS0pJiIfJo+89UynwDsHB+AJknlqHW0PNce1yxDlqk7cLboLGevL6CZGRU6ZJ1bomWlL 7odw== X-Forwarded-Encrypted: i=1; AJvYcCU1kAYKOMUclqCsvsbjWr9DTiiEV0gbGX2XbpDCfHldtzNyCBQ4LMpL/JXqPV1l8Fq7GPyW4n5ICWV0jw==@lists.linux.dev X-Gm-Message-State: AOJu0Yz8YcnAf04mAUhLdvzecVuynEd9hwHjgUAQPeg3Jvtl8xSyCIUK KzEiVuwS7qfCohTe66sM33xLmnIlFZwkARXoxwhdHYoZOVTBVD1ywX5MU8671Oq4YHcitNX+l39 YCWXeVvUhUytlHXS+MBziM5MqD9vNGlXElsjq3KV9Z/C3iRKOvbdl2BgjFRuQFwCeUw== X-Gm-Gg: ASbGnctfJs3+TWs8MTlbF08flucNarlPQKPrREMRrMM4FkyfLFgKhkDH63y6k2ss4HT wlt7hJgznni3NSVcguz1Z2klVvUbu/H1cQRyTVMM1CXW2swT0LVzIrD7bppoolsTYP0qvXbj5FL XTx/fSTElAMU4CyJMGqTdb6npKI3tu4uED64Is7Cwzxftcp1wD4N+4vl8suhDDRmXWq0TPHIcsI IzX4dBx1u6tNMFxveymtyn8+p00vEzVBrzlz2A/FNgdf1n3kaJGhhbvN109Pvl7tvinOKiW4M6n C0K700IP5j/3XzZDI/ZdYQLfYRmgGZ/6E8OfE8B2htJ3RAQe7BevnJqx6iRrkixoTy/Sp3PGZLd 9AMEslmYCjknkGZRdPzFutf1MKzxiOz0coPKXlIj3jtL1S/gwbmZ2 X-Received: by 2002:a05:622a:1a98:b0:4a3:fcc7:c72e with SMTP id d75a77b69052e-4b31d80cadbmr5813451cf.9.1756513398541; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-GUID: 0uC3_ys9fBs8Zxjhhrtd7UgQkQUytPle X-Proofpoint-ORIG-GUID: 0uC3_ys9fBs8Zxjhhrtd7UgQkQUytPle X-Authority-Analysis: v=2.4 cv=Hd8UTjE8 c=1 sm=1 tr=0 ts=68b24477 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=-zYrYaJvJPDGblfDOm8A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI1MDE0MiBTYWx0ZWRfXyBz/jIBdHUXi tYH+PDRfJmPtts6a7QUAwGHhRY7rQzrRkmdvKa7PkDHtCSzGYG5zUwIbel+f9499TocDBBe52lt EBnnbFJ5Rs/OyUKT+95zZZWJjyhI34KqruGfPs7zNAAiVS0+erFxq/0rb+AGCC9RCfrD4Jw7d8q kWLZZFyrCTeJWODgPT43Xq1IPznI9PG4/vpy/0VVTSZAQ6/oWJbf5RNmpdKX4+MdHmGpNeBbsph E0RXYrA+z2t+Jt4+HvcQ/Zd52AjAzaS9pmaSdpGLfuWsped6QB7Bh64CUHj+78TclPk166U2l12 WXrsNmBw7C7nWSEXwDpt+ZOy4CvKazpQyf6/2f1NZ9vxrNCxF8ZelyWspSsz8c/eKD9G+J4U5Tb Dnyds6Cl 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 Status: O 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 --- 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/drm/display/drm_bridge_connector.c index 944fb497ca339ddd63c132c2df0888011cc0487f..2eb7ab033cc84f8bf5816b5a608b2583226336c5 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) From patchwork Sat Aug 30 00:23:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1128 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 9A45812CDBE 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 (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57TNt071003230 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-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48tbpgpvm1-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-f70.google.com with SMTP id 6a1803df08f44-70dfcc58976so35919476d6.2 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=OUM7izt9rDWkX5bAcriW2ftsp+jvCXLZ5wRJgumMsCRGHH1efwTgFcdoORObLMc2wa 0sZhoiQm1ONaYPgZ94dTX/p8ECWvUbrEWK9WXHsIBMSPf4vT/B6fE61skfMgkGUWpcyX H8MucsRaidbZQycHdtBrfj092NQVdw0FpmnB83RigKzLqWrzunl9jvmGUB1TckN9t4MO xRJwKzttcztorNbYlBHYTmsFKAJ1jV/h1NpAWrVh09TXAMwRGlc9MFNqM237oqRM1gMp pcVmD5GvwK03UOUD3wf3x7JU9aOmlM3Sm1MBn6pEj0mZk1VhsCdz0r1IPyTuBLNrOlnL fVyw== X-Forwarded-Encrypted: i=1; AJvYcCUF+DQ98P3hQxb+GLX/lMSth3EUtLK6ebTPfllb6Z/rTHs3nPFS4uFH1Bxx1iSvwhlvJxaJhIaNXlzWbQ==@lists.linux.dev X-Gm-Message-State: AOJu0YxJvaW4lKuL8CBp6XHIylv2WJTiPmPQuaC/v4kOhT3zTVfrAtO7 GVjdpPIc4Hugfs4TAvLr/bCZsWuT4tNT9mrnH5PorV9G+Rl14H3G/y42McKA3m2jimeYiQaeUtV L8Akpz/o3MnqmZ9HYmcMoCWjyK/3MaVSjT3g2LJqmd65OOsd3AlRqXLW5cVYTU81xQA== X-Gm-Gg: ASbGncsXplFgGz4kYG2YCAkmnXNFfCpcnf4jVtKE8djEYJYFqaN4VN6lBsKAXBktiGX +78xl8y9aaIHoizl1sosiPbX8DVQ7CnVkQheGwAtIBhT6uVsuzWfCZYuQh9WNATtkVv1jIYnke6 jgUiAZ7V5bAMZF4tKAFxkgU3vf2+2wZyWjKANK8mNRzJhjp6OE3UY7L+x1oGlCM2Y0dLv53uDtK wMsPWQHBldjnRsHlRZx5pLdqWMge6CallkyQvR91e9QATG4Oh4z4xqx8glBuq0tIiINpEIkaYu4 ZRlcdpuAnoT+f3PPEPvvohmKpuBWj+IK7YRCurZ2U9U15Ok/n814z4OBXAWRKJJ2S/i71VsguvO 1wi2q2OuezASFhRK2tB34dhfspdVhDBtg7bWFBfbXOfutnboErLZq X-Received: by 2002:a05:622a:98b:b0:4b2:8ac5:2588 with SMTP id d75a77b69052e-4b31dceda5fmr5331971cf.79.1756513400286; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-GUID: a_jh7EcqYdNYUSr4VTaFm2uGMMMoO3Vc X-Proofpoint-ORIG-GUID: a_jh7EcqYdNYUSr4VTaFm2uGMMMoO3Vc X-Authority-Analysis: v=2.4 cv=G7gcE8k5 c=1 sm=1 tr=0 ts=68b24479 cx=c_pps a=oc9J++0uMp73DTRD5QyR2A==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=NnPSNIktjdB4Ge1gQTIA:9 a=QEXdDO2ut3YA:10 a=iYH6xdkBrDN1Jqds4HTS:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODI3MDE5OSBTYWx0ZWRfX3K3azx02DK/1 +yzzsIJtqSXFpqOWG7E+31qVgiQBWGN81SQvqBzJhssTXBEksbSCHRsZ+/Fsfm6UIgih3Cb2rjJ tj7OLpp8nWJV5oUHgIgSawcqAe7XxqAAGzN9in1wbUmIfQdGRv0JcImKUWsS6ysPwQbcTlOQ3y2 EEUSw3ZjeaZRcI5y5t2eAr25qRPo1g7UEegjAvpjoh9FnyuN/iXqvcj0gvJrSnXTViqt9X8S9zL Xe4wlBZ3RjJi7wz0qNbHLb9uC/KL8dXmBuAj2Sk9KlcOL8Sh8gKwCYumxAev4R/ussQUTjF09jA JD2kklFMyxiQKAEE1tHOWD3NKNP5n4Ka5zpheZXGw0QaNVBv2ZGO9zMxg9Mld33SMnYKe1V7xzK 60kjhsOA 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 phishscore=0 priorityscore=1501 adultscore=0 impostorscore=0 bulkscore=0 suspectscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508270199 Status: O 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 --- 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_connector.c index f031e8f8df57da15bb0f8fe21fd62f02a1576ebe..12ee06bad364183ad56a20b2bf9860491913a295 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; if (!vendor || !product) @@ -604,6 +605,15 @@ int drmm_connector_hdmi_init(struct drm_device *dev, if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12)) return -EINVAL; + supported_infoframes = 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 InfoFrame\n"); + ret = drmm_connector_init(dev, connector, funcs, connector_type, ddc); if (ret) return ret; From patchwork Sat Aug 30 00:23:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1127 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 38B041E9B19 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=1756513405; cv=none; b=toUE7SudpzQkCj74bKPE7vMXXW9QDk2QYzZq7nb+QcN7V51H9b6zY1ZijiUQCWJlmLW4zXgdsSU259KBgP36YuK81/dM/mPyOltqYkmFt+gNcL4ouA7vv8RI3WaxmUGo1wuN+Ql7R86qMS0KztFSBLcnMt/rRFgQS7wc/fcrRY4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756513405; c=relaxed/simple; bh=DP8WKS09AQHIP1eUa2wMNyM9LpBbwdIRAz41gdvU1po=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EAgpeGPVPid2iRrtKHhlU89865SpLTU5wA+4M57Rqx8+ALhROQqM7EzQzT7OwOnS+VeIZfJNMnsnPZNlGH8tLqcQPeuPEJBSgOpTLwIiBdiUr8BcGFUb9xn6ZGEJuMNM6Fym1HxPgtj+3SlhnYQb2R4spPKjkq5PueFUBwyR7oE= 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 (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57U0KSLY026458 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 48upnp006n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:23 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4b109bc103bso56211921cf.2 for ; Fri, 29 Aug 2025 17:23:23 -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=K5WHbvEcDavLkiNCnVsDkYcuH5X/EzH5N8KFHiBuSelmQC4Eavq9UKiSkHEAc9vVoo 20GIuWh4Rd8+3mp34IWQBEjyVjPsi9DRw4vFO29sFrndR5OPGhj/1GPdELr/F/fiCgdc HpXIJv2hCxua6bosUnZ2NsEMJUXF/YMxGnI4NzsPKjJEs3W1gy7tID65Tkvl8ytV/FqQ a/Mze6Ea/He0U4kM8ByiLPw7QSctzSPGuRQkMdOVMx456fC8wIve3RnUSPX2pJocNDfs ETtE+nSwadhcN2tlVaimX8QVSuaWtYQ/kPZBPCORkrTSqB535nxfeWMzrHZCZtMwDCeX u17g== X-Forwarded-Encrypted: i=1; AJvYcCV4xzOcrKKMB4BZQ37vnE+OtTq5D5VfpIq/u1UNM5NIwHM/bNL2UQ69lmbXK/A3+6ScrdQ7ZJwbzKLVwA==@lists.linux.dev X-Gm-Message-State: AOJu0Yxbi4H4RlPCtQUIswP4Gya/lNJ4ap5djzPVZ+Ftm6DXTlq1N8rc ss98efrwGQOxdwS5E/Oeo7jSU+GjWduUBR0Z094UDm7BVAdL4ZavjU6sb6drXR+emwtyiKWwaSe Pz1Lyfa+GTI0RstCHsAeXyXjqnHeARxPLn2NlqsJK4vZFJwFMQ6LW0TdFMarOgzP5xg== X-Gm-Gg: ASbGncsLKaWlM5u9IeXrWZPYxbtu/hLMXQrLGLlbIoTIHDMdd3y83Tw2qZT5Kt734j2 tHClsjgjmyEXb7JNRZulzgKTsQVjyhn6u+AleoBAYdktmRbFuPkkkn4vkOHE8MJrFHZqvdm6pie V2cymq3tDuDNRgd8K+YK1i8GhBP1pWbZhvQqoZNeivSmAoVaZt/W9kau2fTKuOJwXi7zqcwSFXv XV4n+WXtllu4XO9pgGuDCxAV7EKCvnW3vS2vH27fUXfUtCuFsJb5ICdQcXQkIy2C9vm8RWia9Q+ Tg69vcoL4jorCP0Rq4bchMlsWrsFub2Svo9XDXb3d9HMdJxfEGun5YPa5AWB+eqwcy0r6dydxpr zGc49NehvraQzL+hpG9xiDZQQz6AVE8jPCT5WI2gpSGqeAndZ8vmt X-Received: by 2002:a05:622a:5c6:b0:4b2:dee2:6498 with SMTP id d75a77b69052e-4b31d8607eamr5635101cf.28.1756513402160; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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: C9xG9rUXgHTcdZcn4R_JvRhHU8JDf1L3 X-Authority-Analysis: v=2.4 cv=Jt/xrN4C 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-ORIG-GUID: C9xG9rUXgHTcdZcn4R_JvRhHU8JDf1L3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODMwMDAwMSBTYWx0ZWRfX/bJq1nG1bj7t bqDJOUOHXrJBBfAw9EEQ7mmHaVshcNWv7fmd4dc0A+gEMdvsCPolsc1GojVeNNANN5/Ta7jFl7L KlZAS+ffb1CpfLsJC99vQyvcqMX2rBIjDp8fTj+lVU5pvm3kZQltfRr8cb54Z+f/0GPn9lTnqvm /oTuzzJZB1u7r3UMIa0PQxzCpYVRM+CRF7aIDvQsOa4UHSQVW0ijGqUZuBm/Eu/KpQhExrq2FJB Fugaiy6QLenAiHfHc2n98OtExmysNHWKvGtvv+8Nd8NpaAn6JHnxb+tHRAckwDRfVqwpBOv0nmw nBk9sxR3pTXyseN0kGs3YtHVgzMbi5N9J8I/qS6feRPaOpvo3so1QeReRkBsQJo/DA7xkj5QdTs DgVhbHWc 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 adultscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 impostorscore=0 spamscore=0 phishscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508300001 Status: O 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 --- 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..dfcd0e3b4b0d7cd6adda78dbe9d6e3f65e8f7ffe 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 @@ #include #include +#include #include #include @@ -178,6 +179,17 @@ int drm_connector_hdmi_audio_init(struct drm_connector *connector, !funcs->shutdown) return -EINVAL; + if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) { + unsigned long supported_infoframes = + 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 InfoFrames\n"); + } + + connector->hdmi_audio.funcs = funcs; connector->hdmi_audio.dai_port = dai_port; From patchwork Sat Aug 30 00:23:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 1126 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 AFB491F4C89 for ; Sat, 30 Aug 2025 00:23:25 +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=1756513407; cv=none; b=r3uie8Ypi2PW4ShH/zzY7aw3OxQvlvD1P/mQyI1GQvELZFwXwJwoAy8K93HKROi+aGAxppzWzjBs1+JgGgIXTtrgdgv7STckanfK1L5GUW+bhAoCXpdQmb7szFTu3ARqsZx75lN0WU8xclTyEw97ha37CwjmSFqMkmfV8ooj8M0= 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.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="Q+5mmYj+" 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 57U08ifs012964 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-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48q615w3u6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Sat, 30 Aug 2025 00:23:24 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4b31bea5896so2537921cf.2 for ; Fri, 29 Aug 2025 17:23:24 -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=wFsZO9aP9g4GvNmyw3sOkaP5fFU8D1FhS3gG86K+Jv3YV/C7kVJ4ngbi/W3jrXzZlr lD28JJn4i97BUuihyBAvJ6I0IK043OdQIpiSXrHxVa+sQhATFIXpsQ2DFQxqFJJD55xA LyF1F/9Eetly5tQ4v3aq2WxCqx2UdfmOAtr7wAHBigb3rebWZzzEjnsEXQWfAmOSef9u pln/l0jUgBIZUBc3EY/8VFLSQK0WpqFk+mq4500AkOMiAtwBkBEWfoEe34dHiObyW8Ut pJfJD0daadX6tsCyf1MMm1TsTqQklNtFWLUlJE02K1+i2mtV5HMmLR5T6SQGv8Bd7xIC jLAA== X-Forwarded-Encrypted: i=1; AJvYcCXe+ReFZFAB664+5qLoHUugosaHP1fnIYlxaK3LzPXV7ASQxQdKg2xx8fJTwud4no1oh2Cb8vmUARJshQ==@lists.linux.dev X-Gm-Message-State: AOJu0Yx8+mN2h7XKPBDzdB3dTnkij9IMcNPBpdkLgg07QDEWUtpt4+q/ TRcIG22WrE78DyBkNvuOQHT0R6Qz8ukNbJuGXZzY+im/f7bPyvKGixUC7zS2XOmxa4tc/1gABWC wRaFC2013jfm9ziYzQdcj39KqA+ozyBCQB+2c7tcSBoBHmLdYqeGlTCg+lJ70C3CdRQ== X-Gm-Gg: ASbGncvEgq+P01LOxMXrbDKo3DFgKTRB4paO6xCN2lA3ud9bRzN0sMd+xVhDNptr7ot vTgJvD7FsoPPQDAu5kYQFr6X/pRJnvTkzGwHTY8Q5uMlKm2xG3yeiG1YJvOZoJ0il1DHOeintKa uZKyuNPnfdcQhlom9igu8KXdPuyWRj68+0J37LgJe9NotDPAKTX2j1VvR9TQRWYXuhu8v8OjMcm 6cV38W1ccxpF8JVeOEo8cyPg/CEWSlRPyI5mqEqNQsiWk/s5Ov3q0xrhhYQkqxT8GRCAhD4Q5cE 6vpJTO3xDJ373H8rqXpQ89M9OogK2W4Wkptx1Sj2fpebo7wg3cPNE4uA+qIxvp7QNm3xWbawxSP mfl8QVCBUcv8278gtbWW0sWOLwIWOwSJYiur/n73M9TY5+xRroJjZ X-Received: by 2002:ac8:7dd0:0:b0:4b2:8ac4:ef8e with SMTP id d75a77b69052e-4b31dca7d9bmr6262271cf.73.1756513403698; 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-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAzNCBTYWx0ZWRfX1P1aGBFleMWE 9Hys/3ojoY1Luok7JfHlMl2rTJmH4dfjfIfRGu9FRVRz/7tlXDt4Z9coAqDQ0bFyZb9zPu5dZ7Q 8g5e5PTHGwOnyGs5hUDHDsY4S1nENU6ZO3nqJ/ZePfuf/CIURl8TBqOSZiSD2OGqzCRcQPNV0ng c9rZwPaLpIyJKwOh2IqgbYRS/0RZsNHE5toG4mZl3bbu/VIT1wqk2wUbOV1Li9K/NHsaw/pNuwk 4XJNyWK+aTAPLYB0KFuripyafjZmi/eN4jasQPyILoOG//2LYP8ceuRk/y+kC+GwHAF2ReauVTL tNcsiKuFPCcA/LOJnVuWxXMKEUxcE1OF+hDMGjiT0pML651Rmjqeqe7LHSd0ngHenpCHGxgfY0N 284JPMwC X-Proofpoint-GUID: XGRNyjsc6kNvlhlo6yyr8-Q8CQ8tIpg6 X-Authority-Analysis: v=2.4 cv=K+AiHzWI c=1 sm=1 tr=0 ts=68b2447c cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=l1vpWyVUGYkh7_PGMaYA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: XGRNyjsc6kNvlhlo6yyr8-Q8CQ8tIpg6 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 Status: O 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 --- 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/bridge/lontium-lt9611uxc.c index 38fb8776c0f441ae433c60a7680aaa6501a8956e..df4661986423a871c006af2a36d85d8103935f93 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -17,8 +17,6 @@ #include #include -#include - #include #include #include @@ -27,6 +25,8 @@ #include #include +#include + #define EDID_BLOCK_SIZE 128 #define EDID_NUM_BLOCKS 2 @@ -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; struct gpio_desc *reset_gpio; struct gpio_desc *enable_gpio; @@ -429,12 +428,50 @@ static const struct drm_edid *lt9611uxc_bridge_edid_read(struct drm_bridge *brid return drm_edid_read_custom(connector, lt9611uxc_get_edid_block, lt9611uxc); } +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 = { .attach = lt9611uxc_bridge_attach, .mode_valid = lt9611uxc_bridge_mode_valid, .mode_set = lt9611uxc_bridge_mode_set, .detect = lt9611uxc_bridge_detect, .edid_read = lt9611uxc_bridge_edid_read, + + .hdmi_write_infoframe = lt9611uxc_hdmi_write_infoframe, + .hdmi_clear_infoframe = lt9611uxc_hdmi_clear_infoframe, + + .hdmi_audio_prepare = lt9611uxc_hdmi_audio_prepare, + .hdmi_audio_shutdown = lt9611uxc_hdmi_audio_shutdown, }; static int lt9611uxc_parse_dt(struct device *dev, @@ -508,73 +545,6 @@ static int lt9611uxc_read_version(struct lt9611uxc *lt9611uxc) return ret < 0 ? ret : rev; } -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 *component, - struct device_node *endpoint, - void *data) -{ - struct of_endpoint of_ep; - int ret; - - ret = of_graph_parse_endpoint(endpoint, &of_ep); - if (ret < 0) - return ret; - - /* - * HDMI sound should be located as reg = <2> - * Then, it is sound port 0 - */ - if (of_ep.port == 2) - return 0; - - return -EINVAL; -} - -static const struct hdmi_codec_ops lt9611uxc_codec_ops = { - .hw_params = lt9611uxc_hdmi_hw_params, - .audio_shutdown = lt9611uxc_audio_shutdown, - .get_dai_id = lt9611uxc_hdmi_i2s_get_dai_id, -}; - -static int lt9611uxc_audio_init(struct device *dev, struct lt9611uxc *lt9611uxc) -{ - struct hdmi_codec_pdata codec_data = { - .ops = <9611uxc_codec_ops, - .max_i2s_channels = 2, - .i2s = 1, - .data = lt9611uxc, - }; - - lt9611uxc->audio_pdev = - 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 = 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); lt9611uxc->bridge.of_node = client->dev.of_node; - lt9611uxc->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID; + lt9611uxc->bridge.ops = DRM_BRIDGE_OP_DETECT | + DRM_BRIDGE_OP_EDID | + DRM_BRIDGE_OP_HDMI | + DRM_BRIDGE_OP_HDMI_AUDIO; if (lt9611uxc->hpd_supported) lt9611uxc->bridge.ops |= DRM_BRIDGE_OP_HPD; lt9611uxc->bridge.type = DRM_MODE_CONNECTOR_HDMIA; + lt9611uxc->bridge.vendor = "Lontium"; + lt9611uxc->bridge.product = "LT9611UXC"; + lt9611uxc->bridge.autogenerated_infoframes = + DRM_CONNECTOR_INFOFRAME_AUDIO | + DRM_CONNECTOR_INFOFRAME_AVI; + + lt9611uxc->bridge.hdmi_audio_dev = dev; + lt9611uxc->bridge.hdmi_audio_max_i2s_playback_channels = 2; + lt9611uxc->bridge.hdmi_audio_dai_port = 2; + drm_bridge_add(<9611uxc->bridge); /* Attach primary DSI */ @@ -881,10 +864,6 @@ static int lt9611uxc_probe(struct i2c_client *client) } } - ret = lt9611uxc_audio_init(dev, lt9611uxc); - if (ret) - goto err_remove_bridge; - return 0; err_remove_bridge: @@ -908,7 +887,6 @@ static void lt9611uxc_remove(struct i2c_client *client) free_irq(client->irq, lt9611uxc); cancel_work_sync(<9611uxc->work); - lt9611uxc_audio_exit(lt9611uxc); drm_bridge_remove(<9611uxc->bridge); mutex_destroy(<9611uxc->ocm_lock);