From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E6C60106FD8E for ; Fri, 13 Mar 2026 06:47:34 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 37EBD10EAFC; Fri, 13 Mar 2026 06:47:34 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=ite.com.tw header.i=@ite.com.tw header.b="lifUp5Yd"; dkim-atps=neutral Received: from ironport.ite.com.tw (219-87-157-213.static.tfn.net.tw [219.87.157.213]) by gabe.freedesktop.org (Postfix) with ESMTPS id 48C2410EAFA for ; Fri, 13 Mar 2026 06:47:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ite.com.tw; s=dkim; h=from:subject:date:message-id:mime-version: content-transfer-encoding:to:cc; bh=zuwyhax+oXzV4LTzF3XsX5cctQ4V645Tt5MG/9EbFb0=; b=lifUp5Yde0LbSEHPQWsFVCq6Uy+ojb4vfIzlBx/8H/tbv1+Nd5uF0WRB J8uJ3jmDPnUURBfzr0bw2UqtO8IsHoWsIP4lKX/cLI4pc2iDb85TiEbwZ bqm+6cPck7iH8sJY7/qJHd2Ed8fQ72IwfwBw8EYkigNGzs8Z5+EhkrLqp U+Coa6GDAxVCP4XuBVFjaqk61uq2GvjvSuHrpKMAxaEGHobCK6kAKeILQ zF2eEmB8kLIb+Ao7Vl658S2YZuKNBwOgNyxT+Q5qdriLDgszwZ3AtVhnb ryS6oHdBGOS4h/+R9TNmqX3cGAqOm6OywTL+6OEIocTr/S7iqwRymYOJK g==; X-CSE-ConnectionGUID: 43WIvwLGT7uVhyMkoItz9Q== X-CSE-MsgGUID: Q+4sZqHZR8+cTxad7hi1ZA== Received: from unknown (HELO mse.ite.com.tw) ([192.168.35.30]) by ironport.ite.com.tw with ESMTP; 13 Mar 2026 14:42:15 +0800 Received: from CSBMAIL1.internal.ite.com.tw (CSBMAIL2.internal.ite.com.tw [192.168.65.41]) by mse.ite.com.tw with ESMTP id 62D6lPoA021121; Fri, 13 Mar 2026 14:47:25 +0800 (+08) (envelope-from Pet.Weng@ite.com.tw) Received: from [127.0.1.1] (192.168.72.40) by CSBMAIL2.internal.ite.com.tw (192.168.65.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Fri, 13 Mar 2026 14:47:24 +0800 From: Pet Weng Subject: [PATCH v7 0/2] Add ITE IT61620 MIPI DSI to HDMI bridge driver Date: Fri, 13 Mar 2026 14:48:14 +0800 Message-ID: <20260313-it61620-0714-v7-0-36a16dc036d6@ite.com.tw> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAC+zs2kC/3XMQWrDMBCF4asEraswGo1GUle9R+lCtqRGi8bBN m5C8N0rG9q0NoXZ/APfu4sh9SUN4vlwF32aylC6cw37dBDtKZzfkyyxtkBAA1aRLCMrRpBrhIb qtSln9KKSS59yua5zr2+1T2UYu/62rk9q+f4zNCkJUltWiilC491LGdOx7T6O46dYliZ8aIduo 7Fq4zgbrymavNf6RysAv9F60ZEdRkBHpHaaHhoVbzRV7SPmFKwjG9JOm18acaNN1SE3TNaHqNu w0/ytGZSGjeaqLYQc2HjUjfmj53n+ArDk1sTfAQAA X-Change-ID: 20250714-it61620-0714-ab4ab4ceff29 To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley CC: , , , Hermes Wu , Kenneth Hung , Pet Weng , Jau-chih Tseng , Pin-yen Lin , Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1773384526; l=6445; i=pet.weng@ite.com.tw; s=20250702; h=from:subject:message-id; bh=HSx7/SIbP/2AUskbhI1rsSLmitALbkwdrHs2b7Nmgu8=; b=fLbqkSuaiweElffpdTDrxFvpLRriekg+mbPE0M3EAEHQQQeq7ht6jFXij/w9ERLTdOVOYxIXC Wg3EWEaaU7AAyNcIwtd2IuCPMD7liBIfhDpBgApkMoygKDubWxbMSUh X-Developer-Key: i=pet.weng@ite.com.tw; a=ed25519; pk=wd08uBtTLb93x2ixbKVNsxiZPdMh1Ov4z5klodh2bqo= X-Originating-IP: [192.168.72.40] X-ClientProxiedBy: CSBMAIL1.internal.ite.com.tw (192.168.65.58) To CSBMAIL2.internal.ite.com.tw (192.168.65.41) X-TM-SNTS-SMTP: 296B1381EE7280EC213F66C80E57AEAEDA65898CB5029730631AB603CC27C9452002:8 X-MAIL: mse.ite.com.tw 62D6lPoA021121 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This patch series adds support for the ITE IT61620 MIPI DSI to HDMI bridge chip. The IT61620 is an I2C-controlled bridge that receives MIPI DSI input and outputs HDMI signals. A single-port MIPI DSI input is converted to an HDMI 1.4 output. This series introduces: - A device tree binding YAML file describing the hardware - A new DRM bridge driver implementing the basic functionality Signed-off-by: Pet Weng --- Changes in v7: - The dt-bindings were previously reviewed by Krzysztof Kozlowski. - drm/bridge: [Dmitry] 1. drop redundant register access wrappers and use regmap APIs directly 2. use drm_dbg_kms() instead of drm_dbg() when printing display timing information 3. use drm_display_mode directly for video timing 4. add helper for writing 16-bit timing registers 5. simplify HDMI interrupt handling 6. add mono audio support 7. program audio parameters directly 8. inline audio infoframe disable logic - MAINTAINERS: squash to driver patch [Dmitry] - Link to v6: https://lore.kernel.org/r/20260130-it61620-0714-v6-0-70afa65923b5@ite.com.tw Changes in v6: - In patch 1 [Luca] 1. Fix a typo in the commit message. 2. Remove redundant assignment of bridge.funcs, which is already set by devm_drm_bridge_alloc(). - Link to v5: https://lore.kernel.org/r/20251222-it61620-0714-v5-0-afb6479ad3ca@ite.com.tw Changes in v5: - Fix dt_binding_check errors by adding missing unevaluatedProperties constraints for port and endpoint nodes in the device tree binding. [Rob] - Link to v4: https://lore.kernel.org/r/20251216-it61620-0714-v4-0-9d2fea7847ae@ite.com.tw Changes in v4: - In patch 1 [Krzysztof] 1. Remove redundant "description" fields from interrupts and regulators 2. Drop pinctrl-names and pinctrl-0; driver does not require them 3. Remove port/endpoint properties already covered by video interfaces schema 4. Fix example indentation to 4 spaces for readability - In patch 2 [Jani] 1. Use connector->display_info from DRM helper instead of parsing EDID manually - In patch 2 [Dmitry] 1. Remove redundant powered check in reg access 2. Use TMDS character rate instead of pixel clock for N/CTS 3. Use consistent lowercase naming for tmds. 4. Use test_bit() instead of custom bit-test helper 5. Use tmds_char_rate_valid instead of custom mode_valid 6. Use custom EDID read instead of DDC bus for segment handling 7. Drop redundant atomic feature check 8. Pass flags directly to drm_bridge_attach() 9. Check DRM_BRIDGE_ATTACH_NO_CONNECTOR flag before drm_bridge_attach() 10. Short-circuit HPD update if connector status unchanged 11. Remove unnecessary NULL check for connector state 12. Rename cached_edid to edid since it's no longer cached 13. Remove redundant sample rate checks; rely on hdmi-codec validation 14. Remove unsupported 18-bit audio sample size; rely on hdmi-codec 15. Remove unnecessary fmt switch; rely on hdmi-codec defaults 16. Check and propagate errors from it61620_audio_update_hw_params instead of ignoring them - In patch 3 [Krzysztof] 1. Remove unnecessary T: field pointing to git; subsystem already defines it - Link to v3: https://lore.kernel.org/r/20251009-it61620-0714-v3-0-5d682d028441@ite.com.tw Changes in v3: - Wrapped description lines to comply with 80-character line length limit in patch 1. [Rob] - Renamed node from "it61620@58" to "bridge@58" in patch 1. [Rob] - Add port@2 for I2S audio input in patch 1. [Dmitry] - Updated the Kconfig dependency from CRYPTO and CRYPTO_HASH to CRYPTO_LIB_SHA1 in patch 2. [Eric] - In patch 2 [Dmitry] 1. Audio and InfoFrame - Rename audfmt to i2s_input_format for clarity. - Remove unused infoframe[HDMI_INFOFRAME_SIZE(AUDIO)]. 2. Platform data and structure - Drop platform data usage; migrate members into struct it61620 3. Code organization - Reorder functions to avoid the need for forward declarations. - Add static inline to small helper functions (e.g. bridge_to_it61620()). 4. HDCP handling - Make HDCP enable/disable conditional on conn_state->content_protection. - Report authentication result using drm_hdcp_update_content_protection(). 5. Error handling - Replace manual error path with dev_err_probe(). 6. Power management - Inline suspend/resume callbacks. - Use DEFINE_RUNTIME_DEV_PM_OPS() instead of explicit struct definition. 7. Bridge callbacks - Drop empty bridge_detach(). - Inline it61620_bridge_mode_valid(). 8. EDID handling - Remove unnecessary cached EDID duplication. 9. Mode set and pixel clock - Move mode handling to atomic_enable(). - Keep only pixelclock for future N/CTS audio calculations. 10. Logging - Replace noisy drm_err() calls with drm_dbg(). 11. InfoFrame support - Add support for SPD and Vendor InfoFrames. - Link to v2: https://lore.kernel.org/r/20250828-it61620-0714-v2-0-586f5934d5f8@ite.com.tw Changes in v2: - Call the sha1() library function instead of using the crypto_shash "sha1" in patch 2. - Rewrite it61620_hdmi_ddc_wait() with readx_poll_timeout() in patch 2. [Pin-yen] - Rewrite it61620_hdmi_hdcp_wait_ksv_list() with readx_poll_timeout() in patch 2. - Replace interrupts-extended with interrupts in patch 1. [Rob] - Replace dsi-lanes with the standard property data-lanes from the graph binding. [Rob] - Replace "#/$defs/port-base" with "#/properties/port" in patch 1. [Rob] - Drop unused labels and "hdmi" for the node name. [Rob] - Drop status in patch 1. [Rob] - Link to v1: https://lore.kernel.org/r/20250714-it61620-0714-v1-0-3761164d0b98@ite.com.tw --- Pet Weng (2): dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge drm/bridge: Add ITE IT61620 MIPI DSI to HDMI bridge driver .../bindings/display/bridge/ite,it61620.yaml | 142 ++ MAINTAINERS | 7 + drivers/gpu/drm/bridge/Kconfig | 18 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/ite-it61620.c | 2590 ++++++++++++++++++++ 5 files changed, 2758 insertions(+) --- base-commit: 9e9498106dde4293e1bfdad8e546a88ff3cf5508 change-id: 20250714-it61620-0714-ab4ab4ceff29 Best regards, -- Pet Weng