From mboxrd@z Thu Jan 1 00:00:00 1970 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 84D3A3D8918 for ; Wed, 10 Jun 2026 21:15:28 +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=1781126129; cv=none; b=c9H/EYj+OE1TXbOs6EeqjuC4uAKf7UCR9K34+dmxBxgef73A57yNdEHdoMD7XTUZgJ2JGToQX5Vs2PrzE1IzNOViYFnITCRkmb+iLPhSulNQeoCvREUBUSKh0zDqMevFcGGFh6B106yVeTTY1JOx0JvgulgZs8U7ezBuWNFJiQw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781126129; c=relaxed/simple; bh=jlB10Y7sudGp3PpWQriXrpxKxIF6l4euPfqwrk5OUS4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nsbwADYNjPCm5dHasr0YCt56QG7NE6gng00e/YLaz/NCLfVFM8XIf6u7gajngRrJwXHhlzf7wxyuSarheLXuDtY4U8YhTavazUAPsae8rPNyocd7gWfpHl81euyOKt4wwfapkZccrbr7YxQRoQv6sBI9mJXEG8In753CmUsZtgA= 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=DU9wx6Pr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LAJGgs0q; 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="DU9wx6Pr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LAJGgs0q" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65AJYXPu2472985 for ; Wed, 10 Jun 2026 21:15:28 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= 0WiNIoHn0tPoQszF7OPT5fMxwm/uPz62m9J+Xlh/PCo=; b=DU9wx6PrSxuJQAFd Pwdq5CLTdkcy0tq710HkqJYRm8Wz3WwuffLj0Vm0us6+NAe7QI4JkCIn7g77rU5+ s/Iw4Bz95Qa/bziW0P7ucKr1+/hk/ndRIdzIleU//wWu/c7WT2XnvzTm2hqHeFIr 99GyIrxPYyhpLwKMEOKa95kWVmrC5yGeSrVsbJ83q24ciFrNo+iYFJqB+PC67F17 NxrloUr5uqGnxqECOoNi8GdRXfeccE1WsAt4GDecRf9c5PK/+2xNh3prfeMz0owW wl5BQiiqBkAz28Wk5bQYge/eO/2OnK+PXLvelOHTsy7QIDOZUJSDJo0GTXwoPC+y i0PCRw== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eqe6v8bmc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 10 Jun 2026 21:15:27 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-36d99629fd6so11666526a91.1 for ; Wed, 10 Jun 2026 14:15:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781126127; x=1781730927; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0WiNIoHn0tPoQszF7OPT5fMxwm/uPz62m9J+Xlh/PCo=; b=LAJGgs0q8CgFGoBMoBbCDvKneIcku+gjy2F6OXupnIDUjvt0EegN/o6xpuRkU0xIc9 QvKy/5iX+Bw0JCbhHzMtVpqRXXUB8vGPndjRILHQ8qWL8xJv3wmuALGJ6Uz1h1LeuTW7 jfJ9vzDBSktTkdKR7WEnaqXVz5C84S9FxHeHQwNt8RccuW/S0/IxS/iPqMZBKBtw0HvV zGKqZwfP9oobCQsBeHae40AIkonRJS/74Gr9rkYRjZKbjGE4kYRh3TOFPFOHXWRVMRIe MP4KeBvJrCNLDa+iirtlPhHqoSkING38QTcQUU7tnmFpVQPSehGhaFMOiltnFDKywV6s oKTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781126127; x=1781730927; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=0WiNIoHn0tPoQszF7OPT5fMxwm/uPz62m9J+Xlh/PCo=; b=BNnduZFT3jnBIcX9viBQ3KlTZjk0cjMTLn2tMdwkNNe+Cseo8XUvXfHwTNVl+GYPVE X5v7ofwSsW5JYfW3RH7WFJZdzc0d6SvzpEPgcRguHfW9xQg5xqSZy3qR9cZXNiLSfF9Z yW1P4JmcS4XOHj1eXudGq+h3BSjsxtU7OyQSrwSrtM+OeejYw7e/T+4ZA+I+Vbw+e5Sk HkZnPU++nkOXXMJjXRn9IlxyPuK4aTzWfAL3BzWzbVzaCh+WqSxrzeMuvOWYgI6UOwMR UlrZqkBHczRL0kruTZj5/aayvbZvpdSA0lR42uUzZ14y/+rbdN5sni0HSUIZuJVrItKP PDRQ== X-Forwarded-Encrypted: i=1; AFNElJ9oI4XusQdU9RYpQsIFNAk2ofi0Nx/QbxUJ/u04KJ1UHBS74Bn7ZyzJMOQKV0oHRmlG84prkIS6V/dfzAE=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2BCr16uzstoPG0cxFU7Fcrzh5olvUfEmKNaNHxsaBWbF2XiZC too4xvHOpj+ew6wQDMeToVjfqkhwDJekXkzAY9jc7WA9VLbjU0fLN4p53qk/HALEL5ste+KQw11 VDsNuwE0Eo+RyP3to8LDtLy58jf9dDRP61doxHEo/O9pNNuX4CLakbKPWGRAWYd4K8lM= X-Gm-Gg: Acq92OEz8UXPRbtilOscOjQO8BEqeKKZD6nJ8jU1hRO46pLL8U51+QSdprOJoIhPcsv b/8/Ym7jv34scZysSDeDu+LjlfMTLZ3Fz7iH0aLQv/jj8csj2H7zMHgTsN5fx/+pcRySTLDF+dr RGDrnqx8lM2G9FynzCfFNhIzYfLylyZocxX821kUjflAXD0Z4jD5au544PHAHKtdJV77vfBBlpI 5jgmkfW3I+i78T4ngQ7ap8PmEq4JX29W2T8zjMOlDWgQ85aBWoac/Nzp4k/eJKKwOeZzXQ0F6bF dKTTrQzY8wxvjeYIyT33SHPUli1lm2P1kP9M5XO2TFpOvWvZC0cR2iCI7SebgYmbUv0NaWWC34/ /Z6AcRqJBahXbkdsu4GIw02alcLXlOXNVlOZXHLsPbJMO88MykbR+i8/bUg== X-Received: by 2002:a17:90b:4c41:b0:36d:b12f:613c with SMTP id 98e67ed59e1d1-37746e0873fmr847521a91.10.1781126127037; Wed, 10 Jun 2026 14:15:27 -0700 (PDT) X-Received: by 2002:a17:90b:4c41:b0:36d:b12f:613c with SMTP id 98e67ed59e1d1-37746e0873fmr847448a91.10.1781126126014; Wed, 10 Jun 2026 14:15:26 -0700 (PDT) Received: from hu-mdsor-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37753d01cc6sm309490a91.11.2026.06.10.14.15.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 14:15:25 -0700 (PDT) From: Mohit Dsor Date: Thu, 11 Jun 2026 02:44:58 +0530 Subject: [PATCH 3/4] drm-bridge: lontium lt9611c: fixes and improvements Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260611-lt9611-b4-send-v1-3-42abbcd3bb1e@oss.qualcomm.com> References: <20260611-lt9611-b4-send-v1-0-42abbcd3bb1e@oss.qualcomm.com> In-Reply-To: <20260611-lt9611-b4-send-v1-0-42abbcd3bb1e@oss.qualcomm.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Luca Ceresoli , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mohit Dsor , boss@oss.qualcomm.com, qc-display-maintainer@oss.qualcomm.com X-Mailer: b4 0.15.2 X-Proofpoint-ORIG-GUID: 5FFAeBpdLBNCIzANyDWpCflqZnrzX0LA X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEwMDIwNCBTYWx0ZWRfX16b0c/LMdwJ4 nwtpkBNuA5YqoZhI6SdgywqVqbNUTa0m5IkLDydy7TCsWw2/DBPNtuMVKRgCYST/aDWmDk82M2N 1Q1+ag34zCGdqiXdVXDedBc6TaTMQdU= X-Proofpoint-GUID: 5FFAeBpdLBNCIzANyDWpCflqZnrzX0LA X-Authority-Analysis: v=2.4 cv=UsRT8ewB c=1 sm=1 tr=0 ts=6a29d3ef cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=wg3Ek5SRs51OoikjvKEA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEwMDIwNCBTYWx0ZWRfXxTG7Q+ktJ5Gg z4K1/dzqUjFsgnG0LFrbUdRv6nnO16lHE0BrkPu5+uXyU1BomwsrFrK7Wua9u9aMSkKpLqhhaN+ 1ozVLrCyaGlSqLN42BRhvYci5M3oR0HH64MdIYLlq9tKNZ/nwBp0Nlk1iJyOhsmoZ6b3WWTcK64 ljGvfo4KfACPAg8d0x83QMVB4jvlUr0PVk0FWTKDl9GreINDH4GGCfIRnELsX/CCG4GOLEz0eQm VqteecYIj8A7NZMYcAnuISac3MvKFgGCTx4J7jd2WhdwfWlLMZJlebB5Oer8vgrhUgQEo2AW7Yo EAZqPue46fbUCL+Yda1YH4BXGVhgDtSTiwF5d1heRPs2ctiwhsgHt9YEOUCQPFFvsUsirq/9zeZ xXjgvMgFE2rpufGwqw6DdcxcqwlENC1V/3Fi0Gy3k6n0/Gx3Oxs+xCG+62/HB/VbnSeVI8gHr9f wuX1iWABojEXAua2I5w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-10_04,2026-06-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 adultscore=0 bulkscore=0 suspectscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606100204 Remove two redundant lt9611c_reset() calls: 1. In lt9611c_bridge_atomic_pre_enable(): a reset is already performed during probe and resume; calling it again on every display enable adds ~440ms of unnecessary latency. 2. At the end of lt9611c_probe(): a reset was already performed earlier in probe before lt9611c_lock(). The second reset is redundant. Also, the DRM HDMI bridge framework requires hdmi_write_hdmi_infoframe and hdmi_clear_hdmi_infoframe callbacks for HDMI vendor-specific infoframe (VSI) support, used for features such as HDR metadata signalling. This patch add stub implementations that return success. Wire them into the bridge function table. Also, Store the chip variant enum value in the of_match_table .data field and retrieve it via of_device_get_match_data() when probing from a DT node. Fall back to i2c_device_id.driver_data for non-DT (e.g. ACPI) probe paths. This is the standard kernel pattern for passing per-compatible data through the OF match table, and avoids relying solely on the I2C device ID table for chip type detection when DT is available. Populate bridge.vendor and bridge.product so the DRM HDMI framework can report the correct manufacturer and product name in the HDMI connector properties (visible via xrandr --prop and related sysfs entries). Signed-off-by: Mohit Dsor --- drivers/gpu/drm/bridge/lontium-lt9611c.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/bridge/lontium-lt9611c.c b/drivers/gpu/drm/bridge/lontium-lt9611c.c index b0402726367e..fe51f4978546 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611c.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611c.c @@ -622,7 +622,6 @@ static void lt9611c_bridge_atomic_pre_enable(struct drm_bridge *bridge, ret = regulator_bulk_enable(ARRAY_SIZE(lt9611c->supplies), lt9611c->supplies); if (ret) dev_err(lt9611c->dev, "regulator bulk enable failed.\n"); - lt9611c_reset(lt9611c); } static void lt9611c_bridge_atomic_enable(struct drm_bridge *bridge, @@ -777,6 +776,17 @@ static int lt9611c_hdmi_clear_avi_infoframe(struct drm_bridge *bridge) return 0; } +static int lt9611c_hdmi_write_hdmi_infoframe(struct drm_bridge *bridge, + const u8 *buffer, size_t len) +{ + return 0; +} + +static int lt9611c_hdmi_clear_hdmi_infoframe(struct drm_bridge *bridge) +{ + return 0; +} + static int lt9611c_hdmi_write_audio_infoframe(struct drm_bridge *bridge, const u8 *buffer, size_t len) { @@ -895,6 +905,8 @@ static const struct drm_bridge_funcs lt9611c_bridge_funcs = { .hdmi_tmds_char_rate_valid = lt9611c_hdmi_tmds_char_rate_valid, .hdmi_write_avi_infoframe = lt9611c_hdmi_write_avi_infoframe, .hdmi_clear_avi_infoframe = lt9611c_hdmi_clear_avi_infoframe, + .hdmi_write_hdmi_infoframe = lt9611c_hdmi_write_hdmi_infoframe, + .hdmi_clear_hdmi_infoframe = lt9611c_hdmi_clear_hdmi_infoframe, .hdmi_write_audio_infoframe = lt9611c_hdmi_write_audio_infoframe, .hdmi_clear_audio_infoframe = lt9611c_hdmi_clear_audio_infoframe, @@ -1025,6 +1037,13 @@ static int lt9611c_probe(struct i2c_client *client) lt9611c->dev = dev; lt9611c->client = client; lt9611c->chip_type = id->driver_data; + + if (dev->of_node) { + lt9611c->chip_type = (uintptr_t)of_device_get_match_data(dev); + } else { + lt9611c->chip_type = id->driver_data; + } + ret = devm_mutex_init(dev, <9611c->ocm_lock); if (ret) return dev_err_probe(dev, ret, "failed to init mutex\n"); @@ -1111,6 +1130,9 @@ static int lt9611c_probe(struct i2c_client *client) DRM_BRIDGE_OP_HDMI_AUDIO; lt9611c->bridge.type = DRM_MODE_CONNECTOR_HDMIA; + lt9611c->bridge.vendor = "Lontium"; + lt9611c->bridge.product = "LT9611C"; + lt9611c->bridge.hdmi_audio_dev = dev; lt9611c->bridge.hdmi_audio_max_i2s_playback_channels = 8; lt9611c->bridge.hdmi_audio_dai_port = 2; @@ -1136,7 +1158,6 @@ static int lt9611c_probe(struct i2c_client *client) lt9611c->hdmi_connected = false; i2c_set_clientdata(client, lt9611c); enable_irq(client->irq); - lt9611c_reset(lt9611c); return 0; @@ -1214,9 +1235,9 @@ static struct i2c_device_id lt9611c_id[] = { }; static const struct of_device_id lt9611c_match_table[] = { - { .compatible = "lontium,lt9611c" }, - { .compatible = "lontium,lt9611ex" }, - { .compatible = "lontium,lt9611uxd" }, + { .compatible = "lontium,lt9611c", .data = (void *)CHIP_LT9611C }, + { .compatible = "lontium,lt9611ex", .data = (void *)CHIP_LT9611EX }, + { .compatible = "lontium,lt9611uxd", .data = (void *)CHIP_LT9611UXD }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, lt9611c_match_table); -- 2.34.1