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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 C8365CEFCE6 for ; Tue, 6 Jan 2026 17:43:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To: Content-Transfer-Encoding:Content-Type:MIME-Version:Message-Id:Date:Subject: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=kLqSTVzvhTVRG4lWNvpKEN50rxP50IjnuD1ETy7eXSQ=; b=KUz6/K16Gukcqu ddAht2mkmunBzkCPjraMI0v1DTPCkh91F87yXmYnHYhulOlthN3q0NFngQMkV3SOXc8cfgLf/kG+y hljEMEtyu0ouAAK1UgBOkn+GXo64ikqyWV94BurvdYZnOfeiyb+y+dTVydPcM4Vq+fdzpn0yv6ScT ud8OTygL6TuSiFqnpm1//6FEgzYA+juZt8fGkrhfz2A8JpKGAEU02mJOW0WGeWO+kOjnjUmio10PA wB9lQqjdKm/2vdUD7zf/ooMJOO0ONz4OUY/19MAL3Ikkd6aKe4hus+x4SMiP0M7eswRaGZdWjoWHv PjNBAwSMZHlIGvYPnJjQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vdB5b-0000000Dax9-1n50; Tue, 06 Jan 2026 17:43:27 +0000 Received: from smtpout-02.galae.net ([185.246.84.56]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vdB5X-0000000Datj-2YeT for linux-arm-kernel@lists.infradead.org; Tue, 06 Jan 2026 17:43:25 +0000 Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id D0D891A26A6; Tue, 6 Jan 2026 17:43:18 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 9CFC160739; Tue, 6 Jan 2026 17:43:18 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 9DD3A103C81A7; Tue, 6 Jan 2026 18:43:07 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1767721396; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding; bh=kLqSTVzvhTVRG4lWNvpKEN50rxP50IjnuD1ETy7eXSQ=; b=SjLtBEZTy4fTHk7397dU3Qzb6DSsjhjQXC8Tq89jUf+sjDL/aRLuTcioBrIXBei7HxG9EY ep8sNudYtfI+HYM33zkHt8KrvcsVwBWfe07ApP7aYtCnpzmFbrcJqgrxQVx0K1oUEG1Zdb I1YjFyBr0lKUY19QnnmpA/AMF8Rnv90iWeMfNo2jUvgpL/E4d2YVtevoZJBbqT1lLdoQgE wvHdKUgJmZcVrg6olUJPQxjRKU/5I3t6OF1il0Te70y8TU/XF2/rUfDyAXC+LJXgKvTju1 kwI6yV3jjGDx3VbpcvWnv8ePyqwllEndfVolKT/xDslWmFeuqfz63ULJiJ9T1g== From: "Kory Maincent (TI.com)" Subject: [PATCH v3 00/22] Clean and update tilcdc driver to support DRM_BRIDGE_ATTACH_NO_CONNECTOR Date: Tue, 06 Jan 2026 18:42:16 +0100 Message-Id: <20260106-feature_tilcdc-v3-0-9bad0f742164@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIAHhJXWkC/2XMSwrCMBSF4a2UjI3kZWscuQ8RyePGBrSRJAald O+mdSDq8D9wvhEliB4S2jUjilB88mGowVcNMr0azoC9rY0YYRtKqMAOVL5HOGV/MdbgThorJLS ddhLV0y2C848FPBxr9z7lEJ+LX+i8vinK2l+qUEywkFqCY8CVInsdQr74YW3CFc1YYR+AUfoHs Ao4sdXKcGM5h29gmqYXiU9Ryu8AAAA= X-Change-ID: 20251014-feature_tilcdc-79cd49e67bf9 To: Jyri Sarha , Tomi Valkeinen , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Russell King , Bartosz Golaszewski , Tony Lindgren , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec Cc: Markus Schneider-Pargmann , Bajjuri Praneeth , Luca Ceresoli , Louis Chauvet , Thomas Petazzoni , Miguel Gazquez , Herve Codina , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, "Kory Maincent (TI.com)" , Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260106_094323_796185_65A9AA8D X-CRM114-Status: GOOD ( 20.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The starting point for this work was adding support for the HDMI cape: https://www.seeedstudio.com/Seeed-Studio-BeagleBone-Green-HDMI-Cape.html This will be sent in a later series. Initially, Miguel proposed modifying the ite-it66121 bridge to support the legacy behavior without the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag: https://lore.kernel.org/lkml/20250909-it66121-fix-v1-1-bc79ca83df17@bootlin.com/ This patch was NAK'd as we don't want to add more legacy code. Maxime requested that the tilcdc driver be updated to use DRM_BRIDGE_ATTACH_NO_CONNECTOR instead. While working on this update, I discovered that the tilcdc driver contained significant amounts of legacy code that needed cleaning. Since this driver was developed alongside the tda998x driver for several AM335x boards, the tda998x driver also required cleanup and support for the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag. A new tilcdc_panel_legacy driver replaces the old tilcdc_panel driver. It modifies the devicetree at boot time to properly bind the tilcdc driver with the standard panel-simple driver. This series is based on the tilcdc fix sent to mainline: https://lore.kernel.org/lkml/20251125090546.137193-1-kory.maincent@bootlin.com/ This series has been tested on: - BeagleBone Black (tilcdc + tda998x bridge) - BeagleBone Black with LCD cape (tilcdc + ti,tilcdc,panel binding) - BeagleBone Green Eco with HDMI cape (tilcdc + it66121 bridge) The following mainline devicetrees still use ti,tilcdc,panel binding. I believe this series maintains compatibility, but I cannot test without hardware: - da850-evm.dts - am335x-guardian.dts - am335x-pdu001.dts - am335x-pepper.dts - am335x-sbc-t335.dts - am335x-sl50.dts Patches 1-2: Convert tilcdc binding to YAML and set the ti,tilcdc,panel sub-binding as legacy. Patches 3-6: Replace tilcdc_panel driver to the new tilcdc_panel_legacy driver which is tweaking the devicetree at boot time. Patches 7-17: Clean up tilcdc driver. Patches 18-20: Clean up tda998x driver. Patch 21: Add DRM_BRIDGE_ATTACH_NO_CONNECTOR support for tda998x driver. Patch 22: Add DRM_BRIDGE_ATTACH_NO_CONNECTOR support for tilcdc driver. Changes in v3: - Split patch 13 and patch 14 into two for better readability and git history clarity. - Update patch 5 to use OF changeset and __free() macro. Made also few small improvements as requested by Luca. - Rename binding file to ti,am33xx-tilcdc.yaml, use generic node name and drop unused label. - Link to v2: https://lore.kernel.org/r/20251211-feature_tilcdc-v2-0-f48bac3cd33e@bootlin.com Changes in v2: - Remove patch 2 that add fifo-threshold property. Use FIFO threshold value from SoC id instead. - Remove the part that breaks DTB compatibility. - Add tilcdc_panel_legacy to modify the devicetree at boot time to properly bind the tilcdc driver with the standard panel-simple driver. - Link to v1: https://lore.kernel.org/r/20251126-feature_tilcdc-v1-0-49b9ef2e3aa0@bootlin.com Signed-off-by: Kory Maincent (TI.com) --- Kory Maincent (TI.com) (22): dt-bindings: display: tilcdc: Convert to DT schema dt-bindings: display: tilcdc: Mark panel binding as deprecated drm/tilcdc: Remove simulate_vesa_sync flag drm/tilcdc: Add support for DRM bus flags and simplify panel config drm/tilcdc: Convert legacy panel binding via DT overlay at boot time drm/tilcdc: Remove tilcdc panel driver drm/tilcdc: Remove component framework support drm/tilcdc: Remove tilcdc_panel_info structure drm/tilcdc: Remove redundant #endif/#ifdef in debugfs code drm/tilcdc: Remove unused encoder and connector tracking arrays drm/tilcdc: Rename external_encoder and external_connector to encoder and connector drm/tilcdc: Rename tilcdc_external to tilcdc_encoder drm/tilcdc: Remove the useless module list support drm/tilcdc: Use drm_module_platform_driver() helper drm/tilcdc: Move tilcdc_init/fini closer to probe/remove drm/tilcdc: Modernize driver initialization and cleanup paths drm/tilcdc: Remove the use of drm_device private_data drm/bridge: tda998x: Remove component support drm/bridge: tda998x: Move tda998x_create/destroy into probe and remove drm/bridge: tda998x: Remove useless tda998x_connector_destroy wrapper drm/bridge: tda998x: Add support for DRM_BRIDGE_ATTACH_NO_CONNECTOR drm/tilcdc: Add support for DRM_BRIDGE_ATTACH_NO_CONNECTOR .../devicetree/bindings/display/tilcdc/panel.txt | 1 + .../bindings/display/tilcdc/ti,am33xx-tilcdc.yaml | 100 +++++ .../devicetree/bindings/display/tilcdc/tilcdc.txt | 82 ---- drivers/gpu/drm/bridge/tda998x_drv.c | 251 +++++------ drivers/gpu/drm/tilcdc/Kconfig | 16 + drivers/gpu/drm/tilcdc/Makefile | 5 +- drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 117 ++--- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 479 ++++++++------------- drivers/gpu/drm/tilcdc/tilcdc_drv.h | 88 +--- drivers/gpu/drm/tilcdc/tilcdc_encoder.c | 91 ++++ .../tilcdc/{tilcdc_external.h => tilcdc_encoder.h} | 5 +- drivers/gpu/drm/tilcdc/tilcdc_external.c | 179 -------- drivers/gpu/drm/tilcdc/tilcdc_panel.c | 408 ------------------ drivers/gpu/drm/tilcdc/tilcdc_panel.h | 15 - drivers/gpu/drm/tilcdc/tilcdc_panel_legacy.c | 185 ++++++++ drivers/gpu/drm/tilcdc/tilcdc_panel_legacy.dtso | 29 ++ drivers/gpu/drm/tilcdc/tilcdc_plane.c | 2 +- drivers/gpu/drm/tilcdc/tilcdc_regs.h | 8 +- 18 files changed, 768 insertions(+), 1293 deletions(-) --- base-commit: 3617933603dd15db33ae9a0200734480682025b8 change-id: 20251014-feature_tilcdc-79cd49e67bf9 Best regards, -- Köry Maincent, Bootlin Embedded Linux and kernel engineering https://bootlin.com