All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Maxime Ripard" <mripard@kernel.org>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v2 59/59] drm/connector: Remove reset
Date: Thu, 22 Oct 2026 12:52:47 +0000	[thread overview]
Message-ID: <sashiko-outbox-181508@kernel.org> (raw)
In-Reply-To: <20261022-drm-no-more-connector-reset-v2-59-0b7e4e85b1e8@kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/connector: premature removal of reset hook breaks unconverted drivers
--

commit 86331e69eb719274bf362ebe2870d757866546bb
Author: Maxime Ripard <mripard@kernel.org>

drm/connector: Remove reset

This commit removes the reset callback from struct drm_connector_funcs and
drops the calls to it in drm_mode_config_reset(), drmm_connector_hdmi_init(),
drmm_connector_hdmi_ini2(), and panel_bridge_attach().

[ ... ]

> diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
> index 48a56f23dadbb..c1e993a78702e 100644
> --- a/drivers/gpu/drm/drm_mode_config.c
> +++ b/drivers/gpu/drm/drm_mode_config.c
> @@ -315,9 +315,7 @@ void drm_mode_config_reset(struct drm_device *dev)
>  
>  	drm_connector_list_iter_begin(dev, &conn_iter);
>  	drm_for_each_connector_iter(connector, &conn_iter) {
> -		if (connector->funcs->reset)
> -			connector->funcs->reset(connector);
> -		else if (connector->funcs->atomic_create_state)
> +		if (connector->funcs->atomic_create_state)
>  			drm_mode_config_connector_reset_with_create_state(connector);
>  	}
>  	drm_connector_list_iter_end(&conn_iter);

[ ... ]

> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index a87cd13d0a45f..f656ed8324d37 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1658,15 +1658,6 @@ struct drm_connector_funcs {
>  	 */
>  	int (*dpms)(struct drm_connector *connector, int mode);
>  
> -	/**
> -	 * @reset:
> -	 *
> -	 * Reset connector hardware and software state to off. This function isn't
> -	 * called by the core directly, only through drm_mode_config_reset().
> -	 * It's not a helper hook only for historical reasons.
> -	 */
> -	void (*reset)(struct drm_connector *connector);
> -
>  	/**
>  	 * @detect:
>  	 *

[Severity: High]
Are all in-tree users of struct drm_connector_funcs.reset converted to
atomic_create_state before removing this callback?

Removing reset from struct drm_connector_funcs in include/drm/drm_connector.h
and dropping the connector->funcs->reset(connector) call from
drm_mode_config_reset() in drivers/gpu/drm/drm_mode_config.c appears to break
the build for 26 struct drm_connector_funcs definitions across 25 files that
still initialize .reset and do not implement .atomic_create_state.

Specifically, several drivers still wire up custom reset callbacks:

drivers/gpu/drm/arm/malidp_mw.c:
static const struct drm_connector_funcs malidp_mw_connector_funcs = {
	.reset = malidp_mw_connector_reset,

drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c:
static const struct drm_connector_funcs rcar_du_wb_conn_funcs = {
	.reset = rcar_du_wb_conn_reset,

drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c (and vmw_sou_connector_funcs in
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c, vmw_stdu_connector_funcs in
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c):
static const struct drm_connector_funcs vmw_legacy_connector_funcs = {
	.dpms = vmw_du_connector_dpms,
	.detect = vmw_du_connector_detect,
	.fill_modes = drm_helper_probe_single_connector_modes,
	.destroy = vmw_ldu_connector_destroy,
	.reset = vmw_du_connector_reset,

In addition, the sysfb helper macro and several other drivers, bridges, and
KUnit tests still initialize .reset to drm_atomic_helper_connector_reset:

drivers/gpu/drm/sysfb/drm_sysfb_helper.h (used by simpledrm.c, efidrm.c,
ofdrm.c, vesadrm.c, and corebootdrm.c):
#define DRM_SYSFB_CONNECTOR_FUNCS \
	.reset = drm_atomic_helper_connector_reset, \
	.fill_modes = drm_helper_probe_single_connector_modes, \
	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, \
	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state

Other unconverted struct drm_connector_funcs definitions include:
- komeda_wb_connector_funcs in
  drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c
- lt8912_connector_funcs in drivers/gpu/drm/bridge/lontium-lt8912b.c
- ge_b850v3_lvds_connector_funcs in
  drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
- sii902x_connector_funcs in drivers/gpu/drm/bridge/sii902x.c
- simple_bridge_con_funcs in drivers/gpu/drm/bridge/simple-bridge.c
- hv_drm_connector_funcs in drivers/gpu/drm/hyperv/hyperv_drm_modeset.c
- imx_tve_connector_funcs in drivers/gpu/drm/imx/ipuv3/imx-tve.c
- dpu_wb_conn_funcs in drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
- ssd130x_connector_funcs in drivers/gpu/drm/solomon/ssd130x.c
- lvds_conn_funcs in drivers/gpu/drm/stm/lvds.c
- appletbdrm_connector_funcs in drivers/gpu/drm/tiny/appletbdrm.c
- vc4_txp_connector_funcs in drivers/gpu/drm/vc4/vc4_txp.c
- vc4_dummy_connector_funcs in drivers/gpu/drm/vc4/tests/vc4_mock_output.c
- dm_test_audio_connector_funcs in
  drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_audio_test.c (along
  with amdgpu_dm_backlight_test.c, amdgpu_dm_crc_test.c,
  amdgpu_dm_helpers_test.c, amdgpu_dm_irq_test.c, amdgpu_dm_mst_types_test.c,
  and amdgpu_dm_wb_test.c)

Beyond failing to compile when any of these drivers or tests are enabled,
wouldn't drm_mode_config_reset() also skip state allocation for these
connectors because they do not implement atomic_create_state, leaving
connector->state uninitialized or unreset?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261022-drm-no-more-connector-reset-v2-0-0b7e4e85b1e8@kernel.org?part=59

      reply	other threads:[~2026-10-22 12:53 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-22 12:30 [PATCH v2 00/59] drm/connector: Convert all drivers to atomic_create_state and remove reset Maxime Ripard
2026-10-22 12:30 ` Maxime Ripard
2026-10-22 12:30 ` Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 01/59] drm/hdmi: Change __drm_atomic_helper_connector_hdmi_state_init parameter order Maxime Ripard
2026-10-22 20:57   ` Maíra Canal
2026-10-22 12:31 ` [PATCH v2 02/59] drm/atomic-state-helper: Rename connector_tv_margins_reset to state_init Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 03/59] drm/atomic-state-helper: Rename connector_tv_reset " Maxime Ripard
2026-10-22 21:01   ` Maíra Canal
2026-10-22 12:31 ` [PATCH v2 04/59] drm/panel: Add atomic_create_state support Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 05/59] drm/amdgpu: vkms: Switch to drm_atomic_helper_connector_create_state Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 06/59] drm/aspeed: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 07/59] drm/ast: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 08/59] drm/bridge: analogix-anx6345: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 09/59] drm/bridge: analogix-anx78xx: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 10/59] drm/bridge: chrontel-ch7033: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 11/59] drm/bridge: nxp-ptn3460: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 12/59] drm/panel: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 13/59] drm/bridge: synopsys: dw-hdmi: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 14/59] drm/bridge: tc358767: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 15/59] drm/bridge: tda998x: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 16/59] drm/bridge: ti-tfp410: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 17/59] drm/exynos: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 18/59] drm/fsl-dcu: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 19/59] drm/hisilicon: hibmc: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 20/59] drm/logicvc: " Maxime Ripard
2026-10-25 10:24   ` Paul Kocialkowski
2026-10-22 12:31 ` [PATCH v2 21/59] drm/loongson: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 22/59] drm/mgag200: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 23/59] drm/mipi-dbi: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 24/59] drm/qxl: " Maxime Ripard
2026-10-22 12:42   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 25/59] drm/renesas: shmobile: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 26/59] drm/sitronix: st7571: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 27/59] drm/sitronix: st7920: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 28/59] drm/sti: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 29/59] drm/sun4i: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 30/59] drm/tegra: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 31/59] drm/tests: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 32/59] drm/tiny: arcpgu: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 33/59] drm/tiny: bochs: " Maxime Ripard
2026-10-22 12:42   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 34/59] drm/tiny: cirrus: " Maxime Ripard
2026-10-22 12:43   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 35/59] drm/tiny: gm12u320: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 36/59] drm/tiny: pixpaper: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 37/59] drm/tiny: repaper: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 38/59] drm/tiny: sharp: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 39/59] drm/udl: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 40/59] drm/vboxvideo: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 41/59] drm/virtio: " Maxime Ripard
2026-10-22 12:44   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 42/59] drm/vkms: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 43/59] drm/xen: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 44/59] drm/bridge: synopsys: dw-hdmi: Convert to atomic_create_state Maxime Ripard
2026-10-22 12:57   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 45/59] drm/meson: " Maxime Ripard
2026-10-22 12:31   ` Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 46/59] drm/gud: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 47/59] drm/sun4i: hdmi: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 48/59] drm/sun4i: tv: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 49/59] drm/tests: hdmi: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 50/59] drm/vc4: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 51/59] drm/vc4: vec: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 52/59] drm/connector: Remove drm_atomic_helper_connector_reset() Maxime Ripard
2026-10-22 12:50   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 53/59] drm/amdgpu: dm: Convert to atomic_create_state Maxime Ripard
2026-10-22 12:57   ` sashiko-bot
2026-10-22 16:17   ` Leo Li
2026-10-22 12:31 ` [PATCH v2 54/59] drm/ast: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 55/59] drm/i915: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 56/59] drm/nouveau: " Maxime Ripard
2026-10-22 12:31   ` Maxime Ripard
2026-10-22 12:55   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 57/59] drm/tegra: " Maxime Ripard
2026-10-22 12:31 ` [PATCH v2 58/59] drm/connector: Remove __drm_atomic_helper_connector_reset() Maxime Ripard
2026-10-22 12:48   ` sashiko-bot
2026-10-22 12:31 ` [PATCH v2 59/59] drm/connector: Remove reset Maxime Ripard
2026-10-22 12:52   ` sashiko-bot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-181508@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=mripard@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.