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
prev parent reply other threads:[~2026-10-22 12:53 UTC|newest]
Thread overview: 70+ 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: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: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:31 ` [PATCH v2 34/59] drm/tiny: cirrus: " Maxime Ripard
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: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 ` [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: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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox