From patchwork Wed Oct 14 17:27:01 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 3608 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4]) by mxe881.netcup.net (Postfix) with ESMTPS id EAEBE1C1351 for ; Wed, 14 Oct 2026 19:29:39 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=kernel.org; spf=pass (sender IP is 104.64.211.4) smtp.mailfrom=linux-sunxi+bounces-26640-noreply=patchwork.local@lists.linux.dev smtp.helo=sin.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 104.64.211.4 as permitted sender) client-ip=104.64.211.4; envelope-from=linux-sunxi+bounces-26640-noreply=patchwork.local@lists.linux.dev; helo=sin.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sin.lore.kernel.org (Postfix) with ESMTP id 0037826591 for ; Wed, 14 Oct 2026 17:29:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7B9E9397923; Wed, 14 Oct 2026 17:29:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OublJefQ" X-Original-To: linux-sunxi@lists.linux.dev Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 582C730F55B for ; Wed, 14 Oct 2026 17:29:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791998971; cv=none; b=VZ1WL1GAprY3MIeGQpLaoKXPZYR2Ja24w0rwBmxuRU6/+9oZvjft6Xt8WISa4IvPcswC9lueu/H9yNJDjbSV49rR6Zlid5i0ENP7uxDOm14/vwyJazuqMqojIN2G1RIyHiDIHXwfZjEAFKD4zM7s5s8zcLRxWR0KdCst0NzC/9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791998971; c=relaxed/simple; bh=BGJwH8dk8LKzE2H1BZza4Ik6+OH+/LTvBo91DCfO9sM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZOGB3XulCowViHrSB+ZS+1pvQpYgQO547kNK/sGsklJOnno+HOOOTnwoOdbiZC0P/L62yTjNDn5pve2INbpBU/SNts98Oe4iutaXEVGSirImVgfGiXKJ0yh2WUcNmZr4/aFsnXw54o7y7O5u8FiSrbGnea3tY9+DhZaI25F1fXQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OublJefQ; arc=none smtp.client-ip=100.103.45.18 Received: by smtp.kernel.org (Postfix) with ESMTPSA id B59A31F000C5; Wed, 14 Oct 2026 17:29:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791998970; bh=+j7D1pqgccvLqLZYJZWBw4wk9jaYa1sGsAE6CLxVMQ8=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=OublJefQL4jbipRbPssZlHGeswIveO13w0pHuJFyxTIpJdiv3T71G6jd/Hhapv265 uq5Kmq4kxOxgpMu4tALk/59jXN09Nwf67ZvNy4zQ228COiYp7NgSdvqoAMCs4xhr04 GB/VVkL2MWH5jju8q1uGXKlAUQxWZxlGuQlac7BYlv6wa0J8Iam4e+LN9kXMa7iH83 0MZ1Aa/IuGVKSUoX2s63btC3/BLKPtzae7LeShJsX9YDZFxfRqN0T/VUlJ9oijmd9w EdVOKk0xOeIY/4UDB/J7S7LjQtCyepxK350x2L854OIrJh09xmGNjDxrZVnQ/KE1V+ fA1qFjyFgApqg== From: Maxime Ripard Date: Wed, 14 Oct 2026 19:27:01 +0200 Subject: [PATCH 38/75] drm/sun4i: Switch to drm_atomic_helper_connector_create_state Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20261014-drm-no-more-connector-reset-v1-38-586c9c026823@kernel.org> References: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> In-Reply-To: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, Maxime Ripard , Chen-Yu Tsai , Samuel Holland , linux-sunxi@lists.linux.dev X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3047; i=mripard@kernel.org; h=from:subject:message-id; bh=BGJwH8dk8LKzE2H1BZza4Ik6+OH+/LTvBo91DCfO9sM=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDFnnd0ev9om4XMGf8869+FrCvq+RE07afDqy+mwe350vz 6+tmZN/s2MqC4MwJ4OsmCLLE5mw08vbF1c52K/8ATOHlQlkCAMXpwBMhEGMseGQ3KPbAnKabrtC zzvFdoW71ice8eJ22Rl3aMJTP5+jJydvyusKvTRd49SmkDmHoxgivRkbbmenzAvv/O7X7x009ZC 2wAwZxQwjfYH9XHuFzsZnsmZxrmLkXVRUWcT8sSTHyEGq1RoA X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-Rspamd-Server: rspamd-worker-8404 X-Spamd-Result: default: False [-3.66 / 15.00]; BAYES_HAM(-5.50)[100.00%]; RBL_SENDERSCORE(2.00)[104.64.211.4:from]; MAILLIST(-0.15)[generic]; BAD_REP_POLICIES(0.10)[]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; R_DKIM_ALLOW(0.00)[kernel.org:s=k20260515]; RCVD_COUNT_FIVE(0.00)[5]; FROM_NEQ_ENVFROM(0.00)[mripard@kernel.org,linux-sunxi@lists.linux.dev]; FROM_HAS_DN(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ASN(0.00)[asn:63949, ipnet:104.64.192.0/19, country:SG]; PRECEDENCE_BULK(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[linux.dev:email,sin.lore.kernel.org:rdns,sin.lore.kernel.org:helo,sholland.org:email]; FORGED_SENDER_MAILLIST(0.00)[]; TAGGED_FROM(0.00)[bounces-26640-noreply=patchwork.local]; ARC_ALLOW(0.00)[subspace.kernel.org:s=arc-20240116:i=1]; R_SPF_ALLOW(0.00)[+ip4:104.64.211.4]; DKIM_TRACE(0.00)[kernel.org:+]; TO_DN_SOME(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[100.90.174.1:received,100.103.45.18:received]; MID_RHS_MATCH_FROM(0.00)[]; DMARC_POLICY_ALLOW(0.00)[kernel.org,quarantine]; FREEMAIL_TO(0.00)[linux.intel.com,suse.de,gmail.com,ffwll.ch]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_SEVEN(0.00)[9]; MIME_TRACE(0.00)[0:+]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[104.64.211.4:from] X-Rspamd-Queue-Id: EAEBE1C1351 X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The sun4i connector implementation uses the deprecated drm_atomic_helper_connector_reset() as its reset hook. Switch to drm_atomic_helper_connector_create_state() instead. Signed-off-by: Maxime Ripard --- Cc: Chen-Yu Tsai Cc: Samuel Holland Cc: linux-sunxi@lists.linux.dev --- drivers/gpu/drm/sun4i/sun4i_lvds.c | 2 +- drivers/gpu/drm/sun4i/sun4i_rgb.c | 2 +- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_lvds.c b/drivers/gpu/drm/sun4i/sun4i_lvds.c index 6b98d20a8890..f3f035c9260f 100644 --- a/drivers/gpu/drm/sun4i/sun4i_lvds.c +++ b/drivers/gpu/drm/sun4i/sun4i_lvds.c @@ -63,11 +63,11 @@ sun4i_lvds_connector_destroy(struct drm_connector *connector) } static const struct drm_connector_funcs sun4i_lvds_con_funcs = { .fill_modes = drm_helper_probe_single_connector_modes, .destroy = sun4i_lvds_connector_destroy, - .reset = drm_atomic_helper_connector_reset, + .atomic_create_state = drm_atomic_helper_connector_create_state, .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; static void sun4i_lvds_encoder_enable(struct drm_encoder *encoder) diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c index 3da9a9283c6e..c930dd899875 100644 --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c @@ -154,11 +154,11 @@ sun4i_rgb_connector_destroy(struct drm_connector *connector) } static const struct drm_connector_funcs sun4i_rgb_con_funcs = { .fill_modes = drm_helper_probe_single_connector_modes, .destroy = sun4i_rgb_connector_destroy, - .reset = drm_atomic_helper_connector_reset, + .atomic_create_state = drm_atomic_helper_connector_create_state, .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; static void sun4i_rgb_encoder_enable(struct drm_encoder *encoder) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index d504ae583294..1b7ae9b327c1 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -835,11 +835,11 @@ sun6i_dsi_connector_detect(struct drm_connector *connector, bool force) static const struct drm_connector_funcs sun6i_dsi_connector_funcs = { .detect = sun6i_dsi_connector_detect, .fill_modes = drm_helper_probe_single_connector_modes, .destroy = drm_connector_cleanup, - .reset = drm_atomic_helper_connector_reset, + .atomic_create_state = drm_atomic_helper_connector_create_state, .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; static const struct drm_encoder_funcs sun6i_dsi_enc_funcs = { From patchwork Wed Oct 14 17:27:19 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 3610 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74]) by mxe881.netcup.net (Postfix) with ESMTPS id EF5611C25F7 for ; Wed, 14 Oct 2026 19:31:14 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=kernel.org; spf=pass (sender IP is 172.232.135.74) smtp.mailfrom=linux-sunxi+bounces-26641-noreply=patchwork.local@lists.linux.dev smtp.helo=sto.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 172.232.135.74 as permitted sender) client-ip=172.232.135.74; envelope-from=linux-sunxi+bounces-26641-noreply=patchwork.local@lists.linux.dev; helo=sto.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sto.lore.kernel.org (Postfix) with ESMTP id 390C660AD36 for ; Wed, 14 Oct 2026 17:30:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3368B31B101; Wed, 14 Oct 2026 17:30:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="icar3pqg" X-Original-To: linux-sunxi@lists.linux.dev Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 AE30A5349D0 for ; Wed, 14 Oct 2026 17:30:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999044; cv=none; b=bXG4prk37UrmMQcbr+5rEdY9DeSJsY59+Iq3+/VcrOie06udn9ofPZ03atLo59nuQS2ZiFWMPhPL8k25N8z+JqVeymOk73Lsd9RRQE/QS5ZS309PKZqc5aHzCYUxnywt4ctxhgRatT9tQiJIaXv712+tx5DMMwVQZ7HI971acMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999044; c=relaxed/simple; bh=xXF1QFT9UKpEXLDQKR376S3M5YzESlM+RLSaRnFDWqI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tTodiGXOdZlFMclBcngE1UwCKceTtHslzIQRAldHLjgJPzNFCpm42faH/XeF5ihQZb+NYF7mMkrXrnmnejhy5W+jAulxaCRlVFxAduXVnwQauSHYafvO6DsSyuq2fFsRt/IWnINrZ4EE8GImZBKQKDTUNlvFG8MfTtgVetHT+hw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=icar3pqg; arc=none smtp.client-ip=100.103.45.18 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 902B21F000C4; Wed, 14 Oct 2026 17:30:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791999036; bh=d+m2MK+IJdwEt/BFD2LzEho7d6ce+ChRZEHGwMNQO1o=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=icar3pqgKFkZAn6aYBNl3AIBVBIb+eGrnu6dK5h9uX7GMTrDFQLrMwnPJ2wbZGbCS /uD6fZBqJ6vVNBF6uudc4mX4kLbrFEyNpGVVaZKaVVBXGp0E30WMqPnXWZjjrvxVo0 ONk3bqoHh00OhdWpUnPtotYXQLKLKPEJOjbbA0gy1P2KirfdGDHI7Kqa8FuyHBU+P9 +vFuiG2Gv0m/b1RJPbxCzDCBk/MssyNidiYoyIlxkuYwEfvHe3kRA7+3eRaXp+oRB6 O5t/6I+FNwoI48QOxHUWaoASy/xwh3NBWjbuFCcnvumDFUn87wYy8m6F/1ncxi9AGB 1ewoNeh8dIydw== From: Maxime Ripard Date: Wed, 14 Oct 2026 19:27:19 +0200 Subject: [PATCH 56/75] drm/atomic-state-helper: Rename connector_tv_reset to state_init Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20261014-drm-no-more-connector-reset-v1-56-586c9c026823@kernel.org> References: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> In-Reply-To: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, Maxime Ripard , =?utf-8?q?Ma=C3=ADra_Canal?= , Chen-Yu Tsai , Dave Stevenson , Raspberry Pi Kernel Maintenance , Samuel Holland , linux-sunxi@lists.linux.dev X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=5688; i=mripard@kernel.org; h=from:subject:message-id; bh=xXF1QFT9UKpEXLDQKR376S3M5YzESlM+RLSaRnFDWqI=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDFnndycr2afu5ZaZeGtZpPj8GTvnF5zQ/hLtJ6CwiNOmt 8LP8YBVx1QWBmFOBlkxRZYnMmGnl7cvrnKwX/kDZg4rE8gQBi5OAZiICjtjDYeoQsy2iW35z1dJ PW0qFTrNcGTJ+4P7eixXFOz4f6DDo20v16PIPecT7hh8WMQ0P5mXhbHeI1zKeFoZ037fniLRuSY 9x89ay4SqP34xK+mcRurk5ivptlu2Xo+uqDi2aK+t/Pf5RZIA X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= Recent commits renamed other reset helpers to use the state_init suffix when they only initialize properties rather than allocate or update the object state itself. drm_atomic_helper_connector_tv_reset() falls in the same category: it initializes the analog TV properties from the kernel command line defaults without allocating any state. It also reads the connector state through connector->state, coupling it to the reset path. Rename it to drm_atomic_helper_connector_tv_state_init() and pass the connector state explicitly as a parameter. This decouples it from the reset hook and prepares for the conversion to atomic_create_state where connector->state is not yet assigned. Signed-off-by: Maxime Ripard --- Cc: "MaĆ­ra Canal" Cc: Chen-Yu Tsai Cc: Dave Stevenson Cc: Raspberry Pi Kernel Maintenance Cc: Samuel Holland Cc: linux-sunxi@lists.linux.dev --- drivers/gpu/drm/drm_atomic_state_helper.c | 11 ++++++----- drivers/gpu/drm/sun4i/sun4i_tv.c | 2 +- drivers/gpu/drm/vc4/vc4_vec.c | 2 +- include/drm/drm_atomic_state_helper.h | 3 ++- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c index 6238066fd5d6..1424c4873251 100644 --- a/drivers/gpu/drm/drm_atomic_state_helper.c +++ b/drivers/gpu/drm/drm_atomic_state_helper.c @@ -499,20 +499,21 @@ void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_stat state->tv.margins.bottom = cmdline->tv_margins.bottom; } EXPORT_SYMBOL(drm_atomic_helper_connector_tv_margins_state_init); /** - * drm_atomic_helper_connector_tv_reset - Resets Analog TV connector properties + * drm_atomic_helper_connector_tv_state_init - Initializes Analog TV connector properties + * @state: the DRM State object * @connector: DRM connector * - * Resets the analog TV properties attached to a connector + * Initializes the analog TV properties attached to a connector */ -void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector) +void drm_atomic_helper_connector_tv_state_init(struct drm_connector_state *state, + struct drm_connector *connector) { struct drm_device *dev = connector->dev; struct drm_cmdline_mode *cmdline = &connector->cmdline_mode; - struct drm_connector_state *state = connector->state; struct drm_property *prop; uint64_t val; prop = dev->mode_config.tv_mode_property; if (prop) @@ -572,11 +573,11 @@ void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector) state->tv.hue = val; drm_atomic_helper_connector_tv_margins_state_init(connector->state, connector); } -EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset); +EXPORT_SYMBOL(drm_atomic_helper_connector_tv_state_init); /** * drm_atomic_helper_connector_tv_check - Validate an analog TV connector state * @connector: DRM Connector * @state: the DRM State object diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c index ce22f1662c0c..ea86f8a6a35e 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tv.c +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c @@ -406,11 +406,11 @@ static const struct drm_connector_helper_funcs sun4i_tv_comp_connector_helper_fu }; static void sun4i_tv_connector_reset(struct drm_connector *connector) { drm_atomic_helper_connector_reset(connector); - drm_atomic_helper_connector_tv_reset(connector); + drm_atomic_helper_connector_tv_state_init(connector->state, connector); } static const struct drm_connector_funcs sun4i_tv_comp_connector_funcs = { .fill_modes = drm_helper_probe_single_connector_modes, .destroy = drm_connector_cleanup, diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c index 792b7b39be59..98cece1e48d8 100644 --- a/drivers/gpu/drm/vc4/vc4_vec.c +++ b/drivers/gpu/drm/vc4/vc4_vec.c @@ -379,11 +379,11 @@ vc4_vec_connector_detect(struct drm_connector *connector, bool force) } static void vc4_vec_connector_reset(struct drm_connector *connector) { drm_atomic_helper_connector_reset(connector); - drm_atomic_helper_connector_tv_reset(connector); + drm_atomic_helper_connector_tv_state_init(connector->state, connector); } static int vc4_vec_connector_set_property(struct drm_connector *connector, struct drm_connector_state *state, diff --git a/include/drm/drm_atomic_state_helper.h b/include/drm/drm_atomic_state_helper.h index 4dac741af22c..5e8619aeef21 100644 --- a/include/drm/drm_atomic_state_helper.h +++ b/include/drm/drm_atomic_state_helper.h @@ -69,11 +69,12 @@ void __drm_atomic_helper_connector_state_init(struct drm_connector_state *conn_s void __drm_atomic_helper_connector_reset(struct drm_connector *connector, struct drm_connector_state *conn_state); void drm_atomic_helper_connector_reset(struct drm_connector *connector); struct drm_connector_state * drm_atomic_helper_connector_create_state(struct drm_connector *connector); -void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector); +void drm_atomic_helper_connector_tv_state_init(struct drm_connector_state *state, + struct drm_connector *connector); int drm_atomic_helper_connector_tv_check(struct drm_connector *connector, struct drm_atomic_commit *state); void drm_atomic_helper_connector_tv_margins_state_init(struct drm_connector_state *state, struct drm_connector *connector); void From patchwork Wed Oct 14 17:27:23 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 3611 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10]) by mxe881.netcup.net (Postfix) with ESMTPS id 069EF1C6340 for ; Wed, 14 Oct 2026 19:36:11 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=kernel.org; spf=pass (sender IP is 172.234.253.10) smtp.mailfrom=linux-sunxi+bounces-26642-noreply=patchwork.local@lists.linux.dev smtp.helo=sea.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 172.234.253.10 as permitted sender) client-ip=172.234.253.10; envelope-from=linux-sunxi+bounces-26642-noreply=patchwork.local@lists.linux.dev; helo=sea.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sea.lore.kernel.org (Postfix) with ESMTP id DF32B3124D for ; Wed, 14 Oct 2026 17:30:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 18BDC271A94; Wed, 14 Oct 2026 17:30:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ls/wC7FH" X-Original-To: linux-sunxi@lists.linux.dev Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 C7EC0563FA2 for ; Wed, 14 Oct 2026 17:30:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999055; cv=none; b=CJV4TX08VF5k4VettvHXxR4rd17tFY5pkp2Ygd3MmaeRpX9Cq31Fou8OUQ60HkgNZI/bx1o8FO0y2GgdPX1qJs1XL6gE0uC0195PgBSVKU5cQoxuqjY/ADM6AyjM56KVlVKD+v43jbfJDS74fhUCAd5IIjWo3IIN81IAx7dELks= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999055; c=relaxed/simple; bh=i8MYkIjGLYh93ZYp+TwUqmFpGoWQ2CROBOjcXchRZbM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=p99D4CKbRFZi8Y5U7N3+hyok2lUEWuBW+7ewWRYJi2INPvul1hGygYIvOJX02cgxgqc7QYl8N5RKrw2iqPpkok67d0+TbZO34+LNRT/E0Da2XBCeJRP4u9sdTDbdxVpiofWZcVx1ZeU0TzW1QqOCiUvM1Lth9xr8+CiHVpVSAAU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ls/wC7FH; arc=none smtp.client-ip=100.103.45.18 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 153F01F000C4; Wed, 14 Oct 2026 17:30:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791999050; bh=DbSuhGcU5F2AudOqjawBMeENfozP8H5WOsGmSV1ZOEI=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=Ls/wC7FHf0dFNpmbTLsuMoQOA1oDVdEF1yaadRDiLZCGwB2L6WC9b3AmxBy3Ozogp ou+GPvgdPiIWERdrGFjq65sOgwO16oC8dkxZKIGOJqx7Pzz7jWxwRTzrsriAVu3pGY b2BMmVNVtYFshe0Y3o3XdGG7ANEohwawvI9ALW3hRoxUqYKIR3drQuVztO4Kgg1J4/ vxlZOZVYGXgoCzh1qErRfe4fkTWizHvWmcIK4JQWQ5+avt5CpYFN9+36Js2K3DL7qN MiY377V2ZhoNaXdYQtE/UiduFLkKvLMmCxaIIFJkI3BgzeHN/WqAPR/IFwWGvKSBz2 oMathAKpOf7Ag== From: Maxime Ripard Date: Wed, 14 Oct 2026 19:27:23 +0200 Subject: [PATCH 60/75] drm/sun4i: hdmi: Convert to atomic_create_state Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20261014-drm-no-more-connector-reset-v1-60-586c9c026823@kernel.org> References: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> In-Reply-To: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, Maxime Ripard , Chen-Yu Tsai , Samuel Holland , linux-sunxi@lists.linux.dev X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2138; i=mripard@kernel.org; h=from:subject:message-id; bh=i8MYkIjGLYh93ZYp+TwUqmFpGoWQ2CROBOjcXchRZbM=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDFnnd6eYpKx6p3VXbf/n0h/uNYYlh8XTrHyS766etlkpf ZXR1qWbO6ayMAhzMsiKKbI8kQk7vbx9cZWD/cofMHNYmUCGMHBxCsBEKhMY66wT/qgydzzZeqY6 VDbx5mz9LYVlB8IaHk7ZW+R91X5KNFv5rttiu69qvBXvdmzqlg3PZWxYVqyctOPyude1N9SEXVg 8/D/nvDjJHSM095/zMouT2UHbXvh4N8vsOuO32t3yccykU2wA X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-Rspamd-Server: rspamd-worker-8404 X-Spamd-Result: default: False [-3.66 / 15.00]; BAYES_HAM(-5.50)[100.00%]; RBL_SENDERSCORE(2.00)[172.234.253.10:from]; MAILLIST(-0.15)[generic]; MIME_GOOD(-0.10)[text/plain]; BAD_REP_POLICIES(0.10)[]; HAS_LIST_UNSUB(-0.01)[]; RCVD_COUNT_FIVE(0.00)[5]; R_DKIM_ALLOW(0.00)[kernel.org:s=k20260515]; FROM_HAS_DN(0.00)[]; PRECEDENCE_BULK(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[mripard@kernel.org,linux-sunxi@lists.linux.dev]; DBL_BLOCKED_OPENRESOLVER(0.00)[sholland.org:email,sea.lore.kernel.org:rdns,sea.lore.kernel.org:helo,linux.dev:email]; FORGED_SENDER_MAILLIST(0.00)[]; ARC_ALLOW(0.00)[subspace.kernel.org:s=arc-20240116:i=1]; ASN(0.00)[asn:63949, ipnet:172.234.224.0/19, country:SG]; R_SPF_ALLOW(0.00)[+ip4:172.234.253.10:c]; DKIM_TRACE(0.00)[kernel.org:+]; TO_DN_SOME(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[100.90.174.1:received,100.103.45.18:received]; TAGGED_FROM(0.00)[bounces-26642-noreply=patchwork.local]; DMARC_POLICY_ALLOW(0.00)[kernel.org,quarantine]; FREEMAIL_TO(0.00)[linux.intel.com,suse.de,gmail.com,ffwll.ch]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_SEVEN(0.00)[9]; MIME_TRACE(0.00)[0:+]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[172.234.253.10:from] X-Rspamd-Queue-Id: 069EF1C6340 X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The sun4i HDMI connector reset implementation creates a pristine state and initializes the HDMI state. It does not perform any hardware reset. Since this is equivalent to what atomic_create_state expects, convert the reset function to an atomic_create_state hook that returns the initialized state. Signed-off-by: Maxime Ripard --- Cc: Chen-Yu Tsai Cc: Samuel Holland Cc: linux-sunxi@lists.linux.dev --- drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c index d98b6f12a7bc..1226228c2ab3 100644 --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c @@ -283,21 +283,30 @@ sun4i_hdmi_connector_detect(struct drm_connector *connector, bool force) } return connector_status_connected; } -static void sun4i_hdmi_connector_reset(struct drm_connector *connector) +static struct drm_connector_state * +sun4i_hdmi_connector_create_state(struct drm_connector *connector) { - drm_atomic_helper_connector_reset(connector); - __drm_atomic_helper_connector_hdmi_state_init(connector, connector->state); + struct drm_connector_state *connector_state; + + connector_state = drm_atomic_helper_connector_create_state(connector); + if (IS_ERR(connector_state)) + return connector_state; + + __drm_atomic_helper_connector_hdmi_state_init(connector, + connector_state); + + return connector_state; } static const struct drm_connector_funcs sun4i_hdmi_connector_funcs = { .debugfs_init = drm_hdmi_connector_debugfs_init, .detect = sun4i_hdmi_connector_detect, .fill_modes = drm_helper_probe_single_connector_modes, - .reset = sun4i_hdmi_connector_reset, + .atomic_create_state = sun4i_hdmi_connector_create_state, .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; #ifdef CONFIG_DRM_SUN4I_HDMI_CEC From patchwork Wed Oct 14 17:27:24 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 3609 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4]) by mxe881.netcup.net (Postfix) with ESMTPS id 2091B1C1351 for ; Wed, 14 Oct 2026 19:31:01 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=kernel.org; spf=pass (sender IP is 104.64.211.4) smtp.mailfrom=linux-sunxi+bounces-26643-noreply=patchwork.local@lists.linux.dev smtp.helo=sin.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 104.64.211.4 as permitted sender) client-ip=104.64.211.4; envelope-from=linux-sunxi+bounces-26643-noreply=patchwork.local@lists.linux.dev; helo=sin.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sin.lore.kernel.org (Postfix) with ESMTP id 88C0D2CD5F for ; Wed, 14 Oct 2026 17:30:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B5B6E31B101; Wed, 14 Oct 2026 17:30:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="L297U/ob" X-Original-To: linux-sunxi@lists.linux.dev Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 C326F31D730 for ; Wed, 14 Oct 2026 17:30:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999056; cv=none; b=hg+Rs1cHN01UUxqLWrp3U7BhcICm0X/YQ5KIANkcgp65/87/A5oNhZu1Ivgdb/ktnpl0TbVTyc3o1Q+6gzEJpV/oAMY60J79EmZcDqWkN7vNgzd7ybCm0T3K9bAyjwiRa60PCUX4wy6UIQRV25Qyfo7jLjjQiaV2t5YfNTjbKWk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999056; c=relaxed/simple; bh=LdgN7Ly8DOeZP0rhAFtQr7JjeNlItSMFEwC6teFOK9Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jSisJ5tW7YteRgM+kpuM6Zo1eKgNLnMFCBB0Jd5B4CDTpl3hsYh/+Q+wfghfZhdUGbSXGPdH16pUrHKeq+NaZLnTDblI5iiuVqYP9GZoC+wAx17EdVYc5v2xdMpdnrQCu9/UKlZ5Ti3QVhtUnjfNxEVKWoF4Q7G70aOBEB5oBE4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L297U/ob; arc=none smtp.client-ip=100.103.45.18 Received: by smtp.kernel.org (Postfix) with ESMTPSA id A68DE1F000C5; Wed, 14 Oct 2026 17:30:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791999054; bh=axNUJMhhnxKQtQYDsX+DThuVPCWOkI5w9f6H3PvyWtg=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=L297U/obPdPP8e6ICJuDBar1WwFIfCTxAgFssiWoQ10gpYVYtSFTAnQNlkG5y2zfM V4tm8F+1uQ7XWKNnEwzCpTQZusqAMUcua0b8TNsfxqBum1uMJ3bZL8xgfiNQ8SD/FP uAYMpIo8FO7mDOu2n+PodpQE5fwoLW1ho2vip4eIZpNFkMbaMDktQx6zPDiKK0Dc02 orzhkviERWymsOOXcDGCB3b7NzbEvdLtvKY+DSxZ02FOQZf87/UAU8p/dbnhU7o531 X2LrmldVxmMTTtE6VUMacwbPSYFZbdge+Ok+ciDYZgpCHKYcu1pw5e5bg4t/4hTz1X rcyVf/IWXdhEQ== From: Maxime Ripard Date: Wed, 14 Oct 2026 19:27:24 +0200 Subject: [PATCH 61/75] drm/sun4i: tv: Convert to atomic_create_state Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20261014-drm-no-more-connector-reset-v1-61-586c9c026823@kernel.org> References: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> In-Reply-To: <20261014-drm-no-more-connector-reset-v1-0-586c9c026823@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, Maxime Ripard , Chen-Yu Tsai , Samuel Holland , linux-sunxi@lists.linux.dev X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2208; i=mripard@kernel.org; h=from:subject:message-id; bh=LdgN7Ly8DOeZP0rhAFtQr7JjeNlItSMFEwC6teFOK9Y=; b=kA0DAAkTJ1/OGaI9vnYByyZiAGrPu2Wh/cotqwiQQKGdx/TEF0TxfVsf/71THk/WVDi4LOg2m oiVBAATCQAdFiEE5BxWy6eHo3pAP6n4J1/OGaI9vnYFAmrPu2UACgkQJ1/OGaI9vnbhKAGA/oLD UE32/nSIMkid7mqxYmAajX/Zdu3iJZtoXhBwTDKMPJpTb84WmgoVeZH/ax7MAYDcva6HztCqqpY c4fngyAO3RHzb4tZmS+i/8URffWUQrUjl8qUvxB0LJ1Bp6A4vkI0= X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The sun4i TV connector reset implementation creates a pristine state and initializes the analog TV properties. It does not perform any hardware reset. Since this is equivalent to what atomic_create_state expects, convert the reset function to an atomic_create_state hook that returns the initialized state. Signed-off-by: Maxime Ripard --- Cc: Chen-Yu Tsai Cc: Samuel Holland Cc: linux-sunxi@lists.linux.dev --- drivers/gpu/drm/sun4i/sun4i_tv.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c index ea86f8a6a35e..a68e5f7a03d2 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tv.c +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c @@ -403,20 +403,28 @@ static const struct drm_encoder_helper_funcs sun4i_tv_helper_funcs = { static const struct drm_connector_helper_funcs sun4i_tv_comp_connector_helper_funcs = { .atomic_check = drm_atomic_helper_connector_tv_check, .get_modes = drm_connector_helper_tv_get_modes, }; -static void sun4i_tv_connector_reset(struct drm_connector *connector) +static struct drm_connector_state * +sun4i_tv_connector_create_state(struct drm_connector *connector) { - drm_atomic_helper_connector_reset(connector); - drm_atomic_helper_connector_tv_state_init(connector->state, connector); + struct drm_connector_state *connector_state; + + connector_state = drm_atomic_helper_connector_create_state(connector); + if (IS_ERR(connector_state)) + return connector_state; + + drm_atomic_helper_connector_tv_state_init(connector_state, connector); + + return connector_state; } static const struct drm_connector_funcs sun4i_tv_comp_connector_funcs = { .fill_modes = drm_helper_probe_single_connector_modes, .destroy = drm_connector_cleanup, - .reset = sun4i_tv_connector_reset, + .atomic_create_state = sun4i_tv_connector_create_state, .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; static const struct regmap_config sun4i_tv_regmap_config = {