From bda8953e8c3e7ecbbf6cb1be11790496300e3961 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Tue, 18 Apr 2023 11:52:07 +0200 Subject: media: v4l: async: Drop v4l2_async_nf_parse_fwnode_endpoints() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v4l2_async_nf_parse_fwnode_endpoints() function, part of v4l2-fwnode.c, was a helper meant to register one async sub-dev for each fwnode endpoint of a device. The function is marked as deprecated in the documentation and is actually not used anywhere anymore. Drop it and remove the helper function v4l2_async_nf_fwnode_parse_endpoint() from v4l2-fwnode.c. This change allows to make the helper function __v4l2_async_nf_add_connection() visibility private to v4l2-async.c so that there is no risk drivers can mistakenly use it. [Sakari Ailus: Small fixups on top.] Signed-off-by: Jacopo Mondi Signed-off-by: Sakari Ailus Tested-by: Philipp Zabel # imx6qp Tested-by: Niklas Söderlund # rcar + adv746x Reviewed-by: Laurent Pinchart Tested-by: Aishwarya Kothari # Apalis i.MX6Q with TC358743 Tested-by: Lad Prabhakar # Renesas RZ/G2L SMARC Signed-off-by: Mauro Carvalho Chehab --- include/media/v4l2-async.h | 34 +++-------------------- include/media/v4l2-fwnode.h | 68 --------------------------------------------- 2 files changed, 4 insertions(+), 98 deletions(-) (limited to 'include/media') diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h index 25eb1d138c06..2c9baa3c9266 100644 --- a/include/media/v4l2-async.h +++ b/include/media/v4l2-async.h @@ -131,32 +131,10 @@ void v4l2_async_debug_init(struct dentry *debugfs_dir); * * This function initializes the notifier @asd_list. It must be called * before adding a subdevice to a notifier, using one of: - * v4l2_async_nf_add_fwnode_remote(), - * v4l2_async_nf_add_fwnode(), - * v4l2_async_nf_add_i2c(), - * __v4l2_async_nf_add_subdev() or - * v4l2_async_nf_parse_fwnode_endpoints(). - */ -void v4l2_async_nf_init(struct v4l2_async_notifier *notifier); - -/** - * __v4l2_async_nf_add_subdev - Add an async subdev to the - * notifier's master asd list. - * - * @notifier: pointer to &struct v4l2_async_notifier - * @asd: pointer to &struct v4l2_async_subdev - * - * \warning: Drivers should avoid using this function and instead use one of: - * v4l2_async_nf_add_fwnode(), - * v4l2_async_nf_add_fwnode_remote() or + * v4l2_async_nf_add_fwnode_remote(), v4l2_async_nf_add_fwnode() or * v4l2_async_nf_add_i2c(). - * - * Call this function before registering a notifier to link the provided @asd to - * the notifiers master @asd_list. The @asd must be allocated with k*alloc() as - * it will be freed by the framework when the notifier is destroyed. */ -int __v4l2_async_nf_add_subdev(struct v4l2_async_notifier *notifier, - struct v4l2_async_subdev *asd); +void v4l2_async_nf_init(struct v4l2_async_notifier *notifier); struct v4l2_async_subdev * __v4l2_async_nf_add_fwnode(struct v4l2_async_notifier *notifier, @@ -263,12 +241,8 @@ void v4l2_async_nf_unregister(struct v4l2_async_notifier *notifier); * Release memory resources related to a notifier, including the async * sub-devices allocated for the purposes of the notifier but not the notifier * itself. The user is responsible for calling this function to clean up the - * notifier after calling - * v4l2_async_nf_add_fwnode_remote(), - * v4l2_async_nf_add_fwnode(), - * v4l2_async_nf_add_i2c(), - * __v4l2_async_nf_add_subdev() or - * v4l2_async_nf_parse_fwnode_endpoints(). + * notifier after calling v4l2_async_nf_add_fwnode_remote(), + * v4l2_async_nf_add_fwnode() or v4l2_async_nf_add_i2c(). * * There is no harm from calling v4l2_async_nf_cleanup() in other * cases as long as its memory has been zeroed after it has been diff --git a/include/media/v4l2-fwnode.h b/include/media/v4l2-fwnode.h index 394d798f3dfa..a9a89035e282 100644 --- a/include/media/v4l2-fwnode.h +++ b/include/media/v4l2-fwnode.h @@ -22,8 +22,6 @@ #include struct fwnode_handle; -struct v4l2_async_notifier; -struct v4l2_async_subdev; /** * struct v4l2_fwnode_endpoint - the endpoint data structure @@ -393,72 +391,6 @@ int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode, int v4l2_fwnode_device_parse(struct device *dev, struct v4l2_fwnode_device_properties *props); -/** - * typedef parse_endpoint_func - Driver's callback function to be called on - * each V4L2 fwnode endpoint. - * - * @dev: pointer to &struct device - * @vep: pointer to &struct v4l2_fwnode_endpoint - * @asd: pointer to &struct v4l2_async_subdev - * - * Return: - * * %0 on success - * * %-ENOTCONN if the endpoint is to be skipped but this - * should not be considered as an error - * * %-EINVAL if the endpoint configuration is invalid - */ -typedef int (*parse_endpoint_func)(struct device *dev, - struct v4l2_fwnode_endpoint *vep, - struct v4l2_async_subdev *asd); - -/** - * v4l2_async_nf_parse_fwnode_endpoints - Parse V4L2 fwnode endpoints in a - * device node - * @dev: the device the endpoints of which are to be parsed - * @notifier: notifier for @dev - * @asd_struct_size: size of the driver's async sub-device struct, including - * sizeof(struct v4l2_async_subdev). The &struct - * v4l2_async_subdev shall be the first member of - * the driver's async sub-device struct, i.e. both - * begin at the same memory address. - * @parse_endpoint: Driver's callback function called on each V4L2 fwnode - * endpoint. Optional. - * - * DEPRECATED! This function is deprecated. Don't use it in new drivers. - * Instead see an example in cio2_parse_firmware() function in - * drivers/media/pci/intel/ipu3/ipu3-cio2.c . - * - * Parse the fwnode endpoints of the @dev device and populate the async sub- - * devices list in the notifier. The @parse_endpoint callback function is - * called for each endpoint with the corresponding async sub-device pointer to - * let the caller initialize the driver-specific part of the async sub-device - * structure. - * - * The notifier memory shall be zeroed before this function is called on the - * notifier. - * - * This function may not be called on a registered notifier and may be called on - * a notifier only once. - * - * The &struct v4l2_fwnode_endpoint passed to the callback function - * @parse_endpoint is released once the function is finished. If there is a need - * to retain that configuration, the user needs to allocate memory for it. - * - * Any notifier populated using this function must be released with a call to - * v4l2_async_nf_cleanup() after it has been unregistered and the async - * sub-devices are no longer in use, even if the function returned an error. - * - * Return: %0 on success, including when no async sub-devices are found - * %-ENOMEM if memory allocation failed - * %-EINVAL if graph or endpoint parsing failed - * Other error codes as returned by @parse_endpoint - */ -int -v4l2_async_nf_parse_fwnode_endpoints(struct device *dev, - struct v4l2_async_notifier *notifier, - size_t asd_struct_size, - parse_endpoint_func parse_endpoint); - /* Helper macros to access the connector links. */ /** v4l2_connector_last_link - Helper macro to get the first -- cgit v1.2.3