media: subdev: rename subdev-state alloc & free

v4l2_subdev_alloc_state() and v4l2_subdev_free_state() are not supposed
to be used by the drivers. However, we do have a few drivers that use
those at the moment, so we need to expose these functions for the time
being.

Prefix the functions with __ to mark the functions as internal.

At the same time, rename them to v4l2_subdev_state_alloc and
v4l2_subdev_state_free to match the style used for other functions like
video_device_alloc() and media_request_alloc().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
Tomi Valkeinen 2022-04-12 10:42:42 +01:00 committed by Mauro Carvalho Chehab
parent e550c37092
commit 40aaab9d77
5 changed files with 33 additions and 17 deletions

View File

@ -263,7 +263,11 @@ static int rvin_try_format(struct rvin_dev *vin, u32 which,
u32 width, height;
int ret;
sd_state = v4l2_subdev_alloc_state(sd);
/*
* FIXME: Drop this call, drivers are not supposed to use
* __v4l2_subdev_state_alloc().
*/
sd_state = __v4l2_subdev_state_alloc(sd);
if (IS_ERR(sd_state))
return PTR_ERR(sd_state);
@ -299,7 +303,7 @@ static int rvin_try_format(struct rvin_dev *vin, u32 which,
rvin_format_align(vin, pix);
done:
v4l2_subdev_free_state(sd_state);
__v4l2_subdev_state_free(sd_state);
return ret;
}

View File

@ -675,7 +675,11 @@ int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity,
* Allocate the pad configuration to store formats and selection
* rectangles.
*/
entity->config = v4l2_subdev_alloc_state(&entity->subdev);
/*
* FIXME: Drop this call, drivers are not supposed to use
* __v4l2_subdev_state_alloc().
*/
entity->config = __v4l2_subdev_state_alloc(&entity->subdev);
if (IS_ERR(entity->config)) {
media_entity_cleanup(&entity->subdev.entity);
return PTR_ERR(entity->config);
@ -690,6 +694,6 @@ void vsp1_entity_destroy(struct vsp1_entity *entity)
entity->ops->destroy(entity);
if (entity->subdev.ctrl_handler)
v4l2_ctrl_handler_free(entity->subdev.ctrl_handler);
v4l2_subdev_free_state(entity->config);
__v4l2_subdev_state_free(entity->config);
media_entity_cleanup(&entity->subdev.entity);
}

View File

@ -28,7 +28,7 @@ static int subdev_fh_init(struct v4l2_subdev_fh *fh, struct v4l2_subdev *sd)
{
struct v4l2_subdev_state *state;
state = v4l2_subdev_alloc_state(sd);
state = __v4l2_subdev_state_alloc(sd);
if (IS_ERR(state))
return PTR_ERR(state);
@ -39,7 +39,7 @@ static int subdev_fh_init(struct v4l2_subdev_fh *fh, struct v4l2_subdev *sd)
static void subdev_fh_free(struct v4l2_subdev_fh *fh)
{
v4l2_subdev_free_state(fh->state);
__v4l2_subdev_state_free(fh->state);
fh->state = NULL;
}
@ -861,7 +861,7 @@ int v4l2_subdev_link_validate(struct media_link *link)
}
EXPORT_SYMBOL_GPL(v4l2_subdev_link_validate);
struct v4l2_subdev_state *v4l2_subdev_alloc_state(struct v4l2_subdev *sd)
struct v4l2_subdev_state *__v4l2_subdev_state_alloc(struct v4l2_subdev *sd)
{
struct v4l2_subdev_state *state;
int ret;
@ -894,9 +894,9 @@ err:
return ERR_PTR(ret);
}
EXPORT_SYMBOL_GPL(v4l2_subdev_alloc_state);
EXPORT_SYMBOL_GPL(__v4l2_subdev_state_alloc);
void v4l2_subdev_free_state(struct v4l2_subdev_state *state)
void __v4l2_subdev_state_free(struct v4l2_subdev_state *state)
{
if (!state)
return;
@ -904,7 +904,7 @@ void v4l2_subdev_free_state(struct v4l2_subdev_state *state)
kvfree(state->pads);
kfree(state);
}
EXPORT_SYMBOL_GPL(v4l2_subdev_free_state);
EXPORT_SYMBOL_GPL(__v4l2_subdev_state_free);
#endif /* CONFIG_MEDIA_CONTROLLER */

View File

@ -507,7 +507,11 @@ static int __tegra_channel_try_format(struct tegra_vi_channel *chan,
if (!subdev)
return -ENODEV;
sd_state = v4l2_subdev_alloc_state(subdev);
/*
* FIXME: Drop this call, drivers are not supposed to use
* __v4l2_subdev_state_alloc().
*/
sd_state = __v4l2_subdev_state_alloc(subdev);
if (IS_ERR(sd_state))
return PTR_ERR(sd_state);
/*
@ -558,7 +562,7 @@ static int __tegra_channel_try_format(struct tegra_vi_channel *chan,
v4l2_fill_pix_format(pix, &fmt.format);
tegra_channel_fmt_align(chan, pix, fmtinfo->bpp);
v4l2_subdev_free_state(sd_state);
__v4l2_subdev_state_free(sd_state);
return 0;
}

View File

@ -1122,20 +1122,24 @@ int v4l2_subdev_link_validate_default(struct v4l2_subdev *sd,
int v4l2_subdev_link_validate(struct media_link *link);
/**
* v4l2_subdev_alloc_state - allocate v4l2_subdev_state
* __v4l2_subdev_state_alloc - allocate v4l2_subdev_state
*
* @sd: pointer to &struct v4l2_subdev for which the state is being allocated.
*
* Must call v4l2_subdev_free_state() when state is no longer needed.
* Must call __v4l2_subdev_state_free() when state is no longer needed.
*
* Not to be called directly by the drivers.
*/
struct v4l2_subdev_state *v4l2_subdev_alloc_state(struct v4l2_subdev *sd);
struct v4l2_subdev_state *__v4l2_subdev_state_alloc(struct v4l2_subdev *sd);
/**
* v4l2_subdev_free_state - free a v4l2_subdev_state
* __v4l2_subdev_state_free - free a v4l2_subdev_state
*
* @state: v4l2_subdev_state to be freed.
*
* Not to be called directly by the drivers.
*/
void v4l2_subdev_free_state(struct v4l2_subdev_state *state);
void __v4l2_subdev_state_free(struct v4l2_subdev_state *state);
#endif /* CONFIG_MEDIA_CONTROLLER */