* Re: [PATCH v4 06/15] drm/dp_tunnel: Switch private_obj initialization to atomic_create_state
@ 2026-01-29 1:38 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-01-29 1:38 UTC (permalink / raw)
To: oe-kbuild
::::::
:::::: Manual check reason: "high confidence checkpatch report"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260128-drm-private-obj-reset-v4-6-90891fa3d3b0@redhat.com>
References: <20260128-drm-private-obj-reset-v4-6-90891fa3d3b0@redhat.com>
TO: Maxime Ripard <mripard@kernel.org>
TO: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
TO: Thomas Zimmermann <tzimmermann@suse.de>
TO: David Airlie <airlied@gmail.com>
TO: Simona Vetter <simona@ffwll.ch>
Hi Maxime,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 68b271a3a94cfd6c7695a96b6398b52feb89e2c2]
url: https://github.com/intel-lab-lkp/linux/commits/Maxime-Ripard/drm-atomic-Make-drm_atomic_private_obj_init-fallible/20260128-205507
base: 68b271a3a94cfd6c7695a96b6398b52feb89e2c2
patch link: https://lore.kernel.org/r/20260128-drm-private-obj-reset-v4-6-90891fa3d3b0%40redhat.com
patch subject: [PATCH v4 06/15] drm/dp_tunnel: Switch private_obj initialization to atomic_create_state
:::::: branch date: 13 hours ago
:::::: commit date: 13 hours ago
reproduce: (https://download.01.org/0day-ci/archive/20260129/202601290259.AzRE51I1-lkp@intel.com/reproduce)
# many are suggestions rather than must-fix
ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar"
#29: FILE: drivers/gpu/drm/display/drm_dp_tunnel.c:1500:
+static struct drm_private_state * tunnel_group_atomic_create_state(struct drm_private_obj *obj)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH v4 00/15] drm/atomic: Allocate drm_private_state through a callback
@ 2026-01-28 12:43 Maxime Ripard
2026-01-28 12:43 ` [PATCH v4 06/15] drm/dp_tunnel: Switch private_obj initialization to atomic_create_state Maxime Ripard
0 siblings, 1 reply; 2+ messages in thread
From: Maxime Ripard @ 2026-01-28 12:43 UTC (permalink / raw)
To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
Cc: dri-devel, Maxime Ripard, Ville Syrjälä,
Dmitry Baryshkov, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Harry Wentland,
Leo Li, Rodrigo Siqueira, Alex Deucher, Christian König,
amd-gfx, Liviu Dudau, Paul Cercueil, linux-mips, Rob Clark,
Dmitry Baryshkov, Abhinav Kumar, Sean Paul, Marijn Suijten,
linux-arm-msm, freedreno, Tomi Valkeinen, Thierry Reding,
Mikko Perttunen, Jonathan Hunter, linux-tegra, Dave Stevenson,
Maíra Canal, kernel-list, Jessica Zhang
Hi,
This series started from my work on the hardware state readout[1], and
was suggested by Dmitry[2].
This series deal with the fact that drm_private_obj (and thus bridges)
are not initialized using the same pattern than any other object. This
series solves that inconsistency by aligning it to what we're doing for
all the other objects.
This was tested on a TI SK-AM62, with three bridges.
Let me know what you think,
Maxime
1: https://lore.kernel.org/dri-devel/20250902-drm-state-readout-v1-0-14ad5315da3f@kernel.org/
2: https://lore.kernel.org/dri-devel/zvqtehg66dbrrdmik6ylo2kdk74umfzo5hbfkizwsb352nlyqv@jgouvmbfwa4x/
Signed-off-by: Maxime Ripard <mripard@kernel.org>
---
Changes in v4:
- Fix a circular dependencies between modules by calling
__drm_atomic_helper_private_obj_create_state from
__drm_atomic_helper_bridge_reset instead of
drm_bridge_atomic_create_priv_state()
- Link to v3: https://lore.kernel.org/r/20260119-drm-private-obj-reset-v3-0-b931abe3a5e3@redhat.com
Changes in v3:
- EDITME: describe what is new in this series revision.
- EDITME: use bulletpoints and terse descriptions.
- Link to v2: https://lore.kernel.org/r/20251014-drm-private-obj-reset-v2-0-6dd60e985e9d@kernel.org
Changes in v2:
- Switch to a new hook instead of reset since some drm_private_objs want
to persist across suspends
- Drop the call to drm_private_obj_funcs.reset in
drm_mode_config_reset()
- Link to v1: https://lore.kernel.org/r/20251008-drm-private-obj-reset-v1-0-805ab43ae65a@kernel.org
---
Maxime Ripard (15):
drm/atomic: Make drm_atomic_private_obj_init fallible
drm/atomic: Add new atomic_create_state callback to drm_private_obj
drm/atomic-helper: Add private_obj atomic_create_state helper
drm/bridge: Switch private_obj initialization to atomic_create_state
drm/dp_mst: Switch private_obj initialization to atomic_create_state
drm/dp_tunnel: Switch private_obj initialization to atomic_create_state
drm/amdgpu: Switch private_obj initialization to atomic_create_state
drm/arm: komeda: Switch private_obj initialization to atomic_create_state
drm/ingenic: Switch private_obj initialization to atomic_create_state
drm/msm: mdp5: Switch private_obj initialization to atomic_create_state
drm/msm: dpu1: Switch private_obj initialization to atomic_create_state
drm/omapdrm: Switch private_obj initialization to atomic_create_state
drm/tegra: Switch private_obj initialization to atomic_create_state
drm/vc4: Switch private_obj initialization to atomic_create_state
drm/atomic: Remove state argument to drm_atomic_private_obj_init
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 51 ++---
.../gpu/drm/arm/display/komeda/komeda_pipeline.h | 2 +
.../drm/arm/display/komeda/komeda_private_obj.c | 208 ++++++++++++++-------
drivers/gpu/drm/display/drm_dp_mst_topology.c | 36 ++--
drivers/gpu/drm/display/drm_dp_tunnel.c | 25 ++-
drivers/gpu/drm/drm_atomic.c | 22 ++-
drivers/gpu/drm/drm_atomic_state_helper.c | 23 +++
drivers/gpu/drm/drm_bridge.c | 30 +--
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 28 +--
drivers/gpu/drm/ingenic/ingenic-ipu.c | 28 +--
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 41 ++--
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 40 ++--
drivers/gpu/drm/omapdrm/omap_drv.c | 22 ++-
drivers/gpu/drm/tegra/hub.c | 22 ++-
drivers/gpu/drm/vc4/vc4_kms.c | 67 ++++---
include/drm/drm_atomic.h | 20 +-
include/drm/drm_atomic_state_helper.h | 3 +
17 files changed, 436 insertions(+), 232 deletions(-)
---
base-commit: 68b271a3a94cfd6c7695a96b6398b52feb89e2c2
change-id: 20251008-drm-private-obj-reset-ae1e2741027a
Best regards,
--
Maxime Ripard <mripard@redhat.com>
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH v4 06/15] drm/dp_tunnel: Switch private_obj initialization to atomic_create_state
2026-01-28 12:43 [PATCH v4 00/15] drm/atomic: Allocate drm_private_state through a callback Maxime Ripard
@ 2026-01-28 12:43 ` Maxime Ripard
0 siblings, 0 replies; 2+ messages in thread
From: Maxime Ripard @ 2026-01-28 12:43 UTC (permalink / raw)
To: Maarten Lankhorst, Thomas Zimmermann, David Airlie, Simona Vetter
Cc: dri-devel, Maxime Ripard, Dmitry Baryshkov
The DP tunnel implementation relies on a drm_private_obj, that is
initialized by allocating and initializing a state, and then passing it
to drm_private_obj_init.
Since we're gradually moving away from that pattern to the more
established one relying on a atomic_create_state implementation, let's
migrate this instance to the new pattern.
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/gpu/drm/display/drm_dp_tunnel.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/display/drm_dp_tunnel.c b/drivers/gpu/drm/display/drm_dp_tunnel.c
index 43f13a7c79b931beb230f8afe20afa0ebcf5ed8d..2abd714efd19f27697770813b38194e384be87ce 100644
--- a/drivers/gpu/drm/display/drm_dp_tunnel.c
+++ b/drivers/gpu/drm/display/drm_dp_tunnel.c
@@ -1495,11 +1495,26 @@ tunnel_group_duplicate_state(struct drm_private_obj *obj)
static void tunnel_group_destroy_state(struct drm_private_obj *obj, struct drm_private_state *state)
{
free_group_state(to_group_state(state));
}
+static struct drm_private_state * tunnel_group_atomic_create_state(struct drm_private_obj *obj)
+{
+ struct drm_dp_tunnel_group_state *group_state;
+
+ group_state = kzalloc(sizeof(*group_state), GFP_KERNEL);
+ if (!group_state)
+ return ERR_PTR(-ENOMEM);
+
+ __drm_atomic_helper_private_obj_create_state(obj, &group_state->base);
+ INIT_LIST_HEAD(&group_state->tunnel_states);
+
+ return &group_state->base;
+}
+
static const struct drm_private_state_funcs tunnel_group_funcs = {
+ .atomic_create_state = tunnel_group_atomic_create_state,
.atomic_duplicate_state = tunnel_group_duplicate_state,
.atomic_destroy_state = tunnel_group_destroy_state,
};
/**
@@ -1579,23 +1594,15 @@ drm_dp_tunnel_atomic_get_new_state(struct drm_atomic_state *state,
}
EXPORT_SYMBOL(drm_dp_tunnel_atomic_get_new_state);
static bool init_group(struct drm_dp_tunnel_mgr *mgr, struct drm_dp_tunnel_group *group)
{
- struct drm_dp_tunnel_group_state *group_state;
-
- group_state = kzalloc(sizeof(*group_state), GFP_KERNEL);
- if (!group_state)
- return false;
-
- INIT_LIST_HEAD(&group_state->tunnel_states);
-
group->mgr = mgr;
group->available_bw = -1;
INIT_LIST_HEAD(&group->tunnels);
- drm_atomic_private_obj_init(mgr->dev, &group->base, &group_state->base,
+ drm_atomic_private_obj_init(mgr->dev, &group->base, NULL,
&tunnel_group_funcs);
return true;
}
--
2.52.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-01-29 1:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-29 1:38 [PATCH v4 06/15] drm/dp_tunnel: Switch private_obj initialization to atomic_create_state kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2026-01-28 12:43 [PATCH v4 00/15] drm/atomic: Allocate drm_private_state through a callback Maxime Ripard
2026-01-28 12:43 ` [PATCH v4 06/15] drm/dp_tunnel: Switch private_obj initialization to atomic_create_state Maxime Ripard
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.