Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 048ea05b authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab
Browse files

[media] v4l: flash led class: Use fwnode_handle instead of device_node in init



Pass the more generic fwnode_handle to the init function than the
device_node.

Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Tested-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent ecdf0cfe
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -503,8 +503,9 @@ static int aat1290_led_probe(struct platform_device *pdev)
	aat1290_init_v4l2_flash_config(led, &led_cfg, &v4l2_sd_cfg);
	aat1290_init_v4l2_flash_config(led, &led_cfg, &v4l2_sd_cfg);


	/* Create V4L2 Flash subdev. */
	/* Create V4L2 Flash subdev. */
	led->v4l2_flash = v4l2_flash_init(dev, sub_node, fled_cdev, NULL,
	led->v4l2_flash = v4l2_flash_init(dev, of_fwnode_handle(sub_node),
					  &v4l2_flash_ops, &v4l2_sd_cfg);
					  fled_cdev, NULL, &v4l2_flash_ops,
					  &v4l2_sd_cfg);
	if (IS_ERR(led->v4l2_flash)) {
	if (IS_ERR(led->v4l2_flash)) {
		ret = PTR_ERR(led->v4l2_flash);
		ret = PTR_ERR(led->v4l2_flash);
		goto error_v4l2_flash_init;
		goto error_v4l2_flash_init;
+3 −2
Original line number Original line Diff line number Diff line
@@ -930,8 +930,9 @@ static int max77693_register_led(struct max77693_sub_led *sub_led,
	max77693_init_v4l2_flash_config(sub_led, led_cfg, &v4l2_sd_cfg);
	max77693_init_v4l2_flash_config(sub_led, led_cfg, &v4l2_sd_cfg);


	/* Register in the V4L2 subsystem. */
	/* Register in the V4L2 subsystem. */
	sub_led->v4l2_flash = v4l2_flash_init(dev, sub_node, fled_cdev, NULL,
	sub_led->v4l2_flash = v4l2_flash_init(dev, of_fwnode_handle(sub_node),
					      &v4l2_flash_ops, &v4l2_sd_cfg);
					      fled_cdev, NULL, &v4l2_flash_ops,
					      &v4l2_sd_cfg);
	if (IS_ERR(sub_led->v4l2_flash)) {
	if (IS_ERR(sub_led->v4l2_flash)) {
		ret = PTR_ERR(sub_led->v4l2_flash);
		ret = PTR_ERR(sub_led->v4l2_flash);
		goto err_v4l2_flash_init;
		goto err_v4l2_flash_init;
+6 −6
Original line number Original line Diff line number Diff line
@@ -12,7 +12,7 @@
#include <linux/led-class-flash.h>
#include <linux/led-class-flash.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/property.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/types.h>
#include <media/v4l2-flash-led-class.h>
#include <media/v4l2-flash-led-class.h>
@@ -612,7 +612,7 @@ static const struct v4l2_subdev_internal_ops v4l2_flash_subdev_internal_ops = {
static const struct v4l2_subdev_ops v4l2_flash_subdev_ops;
static const struct v4l2_subdev_ops v4l2_flash_subdev_ops;


struct v4l2_flash *v4l2_flash_init(
struct v4l2_flash *v4l2_flash_init(
	struct device *dev, struct device_node *of_node,
	struct device *dev, struct fwnode_handle *fwn,
	struct led_classdev_flash *fled_cdev,
	struct led_classdev_flash *fled_cdev,
	struct led_classdev_flash *iled_cdev,
	struct led_classdev_flash *iled_cdev,
	const struct v4l2_flash_ops *ops,
	const struct v4l2_flash_ops *ops,
@@ -638,7 +638,7 @@ struct v4l2_flash *v4l2_flash_init(
	v4l2_flash->iled_cdev = iled_cdev;
	v4l2_flash->iled_cdev = iled_cdev;
	v4l2_flash->ops = ops;
	v4l2_flash->ops = ops;
	sd->dev = dev;
	sd->dev = dev;
	sd->of_node = of_node ? of_node : led_cdev->dev->of_node;
	sd->fwnode = fwn ? fwn : dev_fwnode(led_cdev->dev);
	v4l2_subdev_init(sd, &v4l2_flash_subdev_ops);
	v4l2_subdev_init(sd, &v4l2_flash_subdev_ops);
	sd->internal_ops = &v4l2_flash_subdev_internal_ops;
	sd->internal_ops = &v4l2_flash_subdev_internal_ops;
	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
@@ -654,7 +654,7 @@ struct v4l2_flash *v4l2_flash_init(
	if (ret < 0)
	if (ret < 0)
		goto err_init_controls;
		goto err_init_controls;


	of_node_get(sd->of_node);
	fwnode_handle_get(sd->fwnode);


	ret = v4l2_async_register_subdev(sd);
	ret = v4l2_async_register_subdev(sd);
	if (ret < 0)
	if (ret < 0)
@@ -663,7 +663,7 @@ struct v4l2_flash *v4l2_flash_init(
	return v4l2_flash;
	return v4l2_flash;


err_async_register_sd:
err_async_register_sd:
	of_node_put(sd->of_node);
	fwnode_handle_put(sd->fwnode);
	v4l2_ctrl_handler_free(sd->ctrl_handler);
	v4l2_ctrl_handler_free(sd->ctrl_handler);
err_init_controls:
err_init_controls:
	media_entity_cleanup(&sd->entity);
	media_entity_cleanup(&sd->entity);
@@ -683,7 +683,7 @@ void v4l2_flash_release(struct v4l2_flash *v4l2_flash)


	v4l2_async_unregister_subdev(sd);
	v4l2_async_unregister_subdev(sd);


	of_node_put(sd->of_node);
	fwnode_handle_put(sd->fwnode);


	v4l2_ctrl_handler_free(sd->ctrl_handler);
	v4l2_ctrl_handler_free(sd->ctrl_handler);
	media_entity_cleanup(&sd->entity);
	media_entity_cleanup(&sd->entity);
+3 −3
Original line number Original line Diff line number Diff line
@@ -108,7 +108,7 @@ static inline struct v4l2_flash *v4l2_ctrl_to_v4l2_flash(struct v4l2_ctrl *c)
/**
/**
 * v4l2_flash_init - initialize V4L2 flash led sub-device
 * v4l2_flash_init - initialize V4L2 flash led sub-device
 * @dev:	flash device, e.g. an I2C device
 * @dev:	flash device, e.g. an I2C device
 * @of_node:	of_node of the LED, may be NULL if the same as device's
 * @fwn:	fwnode_handle of the LED, may be NULL if the same as device's
 * @fled_cdev:	LED flash class device to wrap
 * @fled_cdev:	LED flash class device to wrap
 * @iled_cdev:	LED flash class device representing indicator LED associated
 * @iled_cdev:	LED flash class device representing indicator LED associated
 *		with fled_cdev, may be NULL
 *		with fled_cdev, may be NULL
@@ -122,7 +122,7 @@ static inline struct v4l2_flash *v4l2_ctrl_to_v4l2_flash(struct v4l2_ctrl *c)
 * PTR_ERR() to obtain the numeric return value.
 * PTR_ERR() to obtain the numeric return value.
 */
 */
struct v4l2_flash *v4l2_flash_init(
struct v4l2_flash *v4l2_flash_init(
	struct device *dev, struct device_node *of_node,
	struct device *dev, struct fwnode_handle *fwn,
	struct led_classdev_flash *fled_cdev,
	struct led_classdev_flash *fled_cdev,
	struct led_classdev_flash *iled_cdev,
	struct led_classdev_flash *iled_cdev,
	const struct v4l2_flash_ops *ops,
	const struct v4l2_flash_ops *ops,
@@ -138,7 +138,7 @@ void v4l2_flash_release(struct v4l2_flash *v4l2_flash);


#else
#else
static inline struct v4l2_flash *v4l2_flash_init(
static inline struct v4l2_flash *v4l2_flash_init(
	struct device *dev, struct device_node *of_node,
	struct device *dev, struct fwnode_handle *fwn,
	struct led_classdev_flash *fled_cdev,
	struct led_classdev_flash *fled_cdev,
	struct led_classdev_flash *iled_cdev,
	struct led_classdev_flash *iled_cdev,
	const struct v4l2_flash_ops *ops,
	const struct v4l2_flash_ops *ops,