mirror of https://github.com/torvalds/linux.git
drm/atomic: Remove state argument to drm_atomic_private_obj_init
Now that all drm_private_objs users have been converted to use atomic_create_state instead of the old ad-hoc initialization, we can remove the state parameter from drm_private_obj_init and the fallback code. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Maíra Canal <mcanal@igalia.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patch.msgid.link/20260224-drm-private-obj-reset-v5-4-5a72f8ec9934@kernel.org Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
parent
2d38301c2f
commit
3590a52f0d
|
|
@ -4896,7 +4896,6 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)
|
|||
|
||||
drm_atomic_private_obj_init(adev_to_drm(adev),
|
||||
&adev->dm.atomic_obj,
|
||||
NULL,
|
||||
&dm_atomic_state_funcs);
|
||||
|
||||
r = amdgpu_display_modeset_create_props(adev);
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ static const struct drm_private_state_funcs komeda_layer_obj_funcs = {
|
|||
static int komeda_layer_obj_add(struct komeda_kms_dev *kms,
|
||||
struct komeda_layer *layer)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base, &layer->base.obj, NULL,
|
||||
drm_atomic_private_obj_init(&kms->base, &layer->base.obj,
|
||||
&komeda_layer_obj_funcs);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -118,7 +118,7 @@ static int komeda_scaler_obj_add(struct komeda_kms_dev *kms,
|
|||
struct komeda_scaler *scaler)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base,
|
||||
&scaler->base.obj, NULL,
|
||||
&scaler->base.obj,
|
||||
&komeda_scaler_obj_funcs);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -170,7 +170,7 @@ static const struct drm_private_state_funcs komeda_compiz_obj_funcs = {
|
|||
static int komeda_compiz_obj_add(struct komeda_kms_dev *kms,
|
||||
struct komeda_compiz *compiz)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base, &compiz->base.obj, NULL,
|
||||
drm_atomic_private_obj_init(&kms->base, &compiz->base.obj,
|
||||
&komeda_compiz_obj_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
@ -224,7 +224,7 @@ static int komeda_splitter_obj_add(struct komeda_kms_dev *kms,
|
|||
struct komeda_splitter *splitter)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base,
|
||||
&splitter->base.obj, NULL,
|
||||
&splitter->base.obj,
|
||||
&komeda_splitter_obj_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
@ -277,7 +277,7 @@ static int komeda_merger_obj_add(struct komeda_kms_dev *kms,
|
|||
struct komeda_merger *merger)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base,
|
||||
&merger->base.obj, NULL,
|
||||
&merger->base.obj,
|
||||
&komeda_merger_obj_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
@ -330,7 +330,7 @@ static const struct drm_private_state_funcs komeda_improc_obj_funcs = {
|
|||
static int komeda_improc_obj_add(struct komeda_kms_dev *kms,
|
||||
struct komeda_improc *improc)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base, &improc->base.obj, NULL,
|
||||
drm_atomic_private_obj_init(&kms->base, &improc->base.obj,
|
||||
&komeda_improc_obj_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
@ -383,7 +383,7 @@ static const struct drm_private_state_funcs komeda_timing_ctrlr_obj_funcs = {
|
|||
static int komeda_timing_ctrlr_obj_add(struct komeda_kms_dev *kms,
|
||||
struct komeda_timing_ctrlr *ctrlr)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base, &ctrlr->base.obj, NULL,
|
||||
drm_atomic_private_obj_init(&kms->base, &ctrlr->base.obj,
|
||||
&komeda_timing_ctrlr_obj_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
@ -437,7 +437,7 @@ static const struct drm_private_state_funcs komeda_pipeline_obj_funcs = {
|
|||
static int komeda_pipeline_obj_add(struct komeda_kms_dev *kms,
|
||||
struct komeda_pipeline *pipe)
|
||||
{
|
||||
drm_atomic_private_obj_init(&kms->base, &pipe->obj, NULL,
|
||||
drm_atomic_private_obj_init(&kms->base, &pipe->obj,
|
||||
&komeda_pipeline_obj_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -5765,7 +5765,6 @@ int drm_dp_mst_topology_mgr_init(struct drm_dp_mst_topology_mgr *mgr,
|
|||
mgr->conn_base_id = conn_base_id;
|
||||
|
||||
drm_atomic_private_obj_init(dev, &mgr->base,
|
||||
NULL,
|
||||
&drm_dp_mst_topology_state_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1600,7 +1600,7 @@ static bool init_group(struct drm_dp_tunnel_mgr *mgr, struct drm_dp_tunnel_group
|
|||
group->available_bw = -1;
|
||||
INIT_LIST_HEAD(&group->tunnels);
|
||||
|
||||
drm_atomic_private_obj_init(mgr->dev, &group->base, NULL,
|
||||
drm_atomic_private_obj_init(mgr->dev, &group->base,
|
||||
&tunnel_group_funcs);
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -921,7 +921,6 @@ static void drm_atomic_plane_print_state(struct drm_printer *p,
|
|||
* drm_atomic_private_obj_init - initialize private object
|
||||
* @dev: DRM device this object will be attached to
|
||||
* @obj: private object
|
||||
* @state: initial private object state
|
||||
* @funcs: pointer to the struct of function pointers that identify the object
|
||||
* type
|
||||
*
|
||||
|
|
@ -933,9 +932,9 @@ static void drm_atomic_plane_print_state(struct drm_printer *p,
|
|||
*/
|
||||
int drm_atomic_private_obj_init(struct drm_device *dev,
|
||||
struct drm_private_obj *obj,
|
||||
struct drm_private_state *state,
|
||||
const struct drm_private_state_funcs *funcs)
|
||||
{
|
||||
struct drm_private_state *state;
|
||||
memset(obj, 0, sizeof(*obj));
|
||||
|
||||
drm_modeset_lock_init(&obj->lock);
|
||||
|
|
@ -944,22 +943,11 @@ int drm_atomic_private_obj_init(struct drm_device *dev,
|
|||
obj->funcs = funcs;
|
||||
list_add_tail(&obj->head, &dev->mode_config.privobj_list);
|
||||
|
||||
/*
|
||||
* Not all users of drm_atomic_private_obj_init have been
|
||||
* converted to using &drm_private_obj_funcs.atomic_create_state yet.
|
||||
* For the time being, let's only call reset if the passed state is
|
||||
* NULL. Otherwise, we will fallback to the previous behaviour.
|
||||
*/
|
||||
if (!state) {
|
||||
state = obj->funcs->atomic_create_state(obj);
|
||||
if (IS_ERR(state))
|
||||
return PTR_ERR(state);
|
||||
state = obj->funcs->atomic_create_state(obj);
|
||||
if (IS_ERR(state))
|
||||
return PTR_ERR(state);
|
||||
|
||||
obj->state = state;
|
||||
} else {
|
||||
obj->state = state;
|
||||
state->obj = obj;
|
||||
}
|
||||
obj->state = state;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -553,7 +553,6 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
|
|||
|
||||
if (drm_bridge_is_atomic(bridge))
|
||||
drm_atomic_private_obj_init(bridge->dev, &bridge->base,
|
||||
NULL,
|
||||
&drm_bridge_priv_state_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1401,7 +1401,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)
|
|||
goto err_devclk_disable;
|
||||
}
|
||||
|
||||
drm_atomic_private_obj_init(drm, &priv->private_obj, NULL,
|
||||
drm_atomic_private_obj_init(drm, &priv->private_obj,
|
||||
&ingenic_drm_private_state_funcs);
|
||||
|
||||
ret = drmm_add_action_or_reset(drm, ingenic_drm_atomic_private_obj_fini,
|
||||
|
|
|
|||
|
|
@ -901,7 +901,7 @@ static int ingenic_ipu_bind(struct device *dev, struct device *master, void *d)
|
|||
return err;
|
||||
}
|
||||
|
||||
drm_atomic_private_obj_init(drm, &ipu->private_obj, NULL,
|
||||
drm_atomic_private_obj_init(drm, &ipu->private_obj,
|
||||
&ingenic_ipu_private_state_funcs);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1161,7 +1161,6 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
|
|||
dev->mode_config.cursor_height = 512;
|
||||
|
||||
drm_atomic_private_obj_init(dpu_kms->dev, &dpu_kms->global_state,
|
||||
NULL,
|
||||
&dpu_kms_global_state_funcs);
|
||||
|
||||
atomic_set(&dpu_kms->bandwidth_ref, 0);
|
||||
|
|
|
|||
|
|
@ -717,7 +717,6 @@ static int mdp5_init(struct platform_device *pdev, struct drm_device *dev)
|
|||
mdp5_kms->dev = dev;
|
||||
|
||||
drm_atomic_private_obj_init(mdp5_kms->dev, &mdp5_kms->glob_state,
|
||||
NULL,
|
||||
&mdp5_global_state_funcs);
|
||||
|
||||
/* we need to set a default rate before enabling. Set a safe
|
||||
|
|
|
|||
|
|
@ -299,7 +299,7 @@ static int omap_global_obj_init(struct drm_device *dev)
|
|||
{
|
||||
struct omap_drm_private *priv = dev->dev_private;
|
||||
|
||||
drm_atomic_private_obj_init(dev, &priv->glob_obj, NULL,
|
||||
drm_atomic_private_obj_init(dev, &priv->glob_obj,
|
||||
&omap_global_state_funcs);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -957,7 +957,7 @@ static int tegra_display_hub_init(struct host1x_client *client)
|
|||
struct drm_device *drm = dev_get_drvdata(client->host);
|
||||
struct tegra_drm *tegra = drm->dev_private;
|
||||
|
||||
drm_atomic_private_obj_init(drm, &hub->base, NULL,
|
||||
drm_atomic_private_obj_init(drm, &hub->base,
|
||||
&tegra_display_hub_state_funcs);
|
||||
|
||||
tegra->hub = hub;
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ static int vc4_ctm_obj_init(struct vc4_dev *vc4)
|
|||
{
|
||||
drm_modeset_lock_init(&vc4->ctm_state_lock);
|
||||
|
||||
drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager, NULL,
|
||||
drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager,
|
||||
&vc4_ctm_state_funcs);
|
||||
|
||||
return drmm_add_action_or_reset(&vc4->base, vc4_ctm_obj_fini, NULL);
|
||||
|
|
@ -757,7 +757,6 @@ static void vc4_load_tracker_obj_fini(struct drm_device *dev, void *unused)
|
|||
static int vc4_load_tracker_obj_init(struct vc4_dev *vc4)
|
||||
{
|
||||
drm_atomic_private_obj_init(&vc4->base, &vc4->load_tracker,
|
||||
NULL,
|
||||
&vc4_load_tracker_state_funcs);
|
||||
|
||||
return drmm_add_action_or_reset(&vc4->base, vc4_load_tracker_obj_fini, NULL);
|
||||
|
|
@ -849,7 +848,6 @@ static void vc4_hvs_channels_obj_fini(struct drm_device *dev, void *unused)
|
|||
static int vc4_hvs_channels_obj_init(struct vc4_dev *vc4)
|
||||
{
|
||||
drm_atomic_private_obj_init(&vc4->base, &vc4->hvs_channels,
|
||||
NULL,
|
||||
&vc4_hvs_state_funcs);
|
||||
|
||||
return drmm_add_action_or_reset(&vc4->base, vc4_hvs_channels_obj_fini, NULL);
|
||||
|
|
|
|||
|
|
@ -738,7 +738,6 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
|
|||
|
||||
int drm_atomic_private_obj_init(struct drm_device *dev,
|
||||
struct drm_private_obj *obj,
|
||||
struct drm_private_state *state,
|
||||
const struct drm_private_state_funcs *funcs);
|
||||
void drm_atomic_private_obj_fini(struct drm_private_obj *obj);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue