The V4L2 flash class initialisation expects struct led_classdev_flash that
describes an indicator but only uses struct led_classdev which is a field
iled_cdev in the struct. Use struct iled_cdev only.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
---
 drivers/media/v4l2-core/v4l2-flash-led-class.c | 19 +++++++------------
 include/media/v4l2-flash-led-class.h           |  6 +++---
 2 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-flash-led-class.c 
b/drivers/media/v4l2-core/v4l2-flash-led-class.c
index 7b82881..6d69119 100644
--- a/drivers/media/v4l2-core/v4l2-flash-led-class.c
+++ b/drivers/media/v4l2-core/v4l2-flash-led-class.c
@@ -110,7 +110,7 @@ static void v4l2_flash_set_led_brightness(struct v4l2_flash 
*v4l2_flash,
                led_set_brightness_sync(&v4l2_flash->fled_cdev->led_cdev,
                                        brightness);
        } else {
-               led_set_brightness_sync(&v4l2_flash->iled_cdev->led_cdev,
+               led_set_brightness_sync(v4l2_flash->iled_cdev,
                                        brightness);
        }
 }
@@ -133,7 +133,7 @@ static int v4l2_flash_update_led_brightness(struct 
v4l2_flash *v4l2_flash,
                        return 0;
                led_cdev = &v4l2_flash->fled_cdev->led_cdev;
        } else {
-               led_cdev = &v4l2_flash->iled_cdev->led_cdev;
+               led_cdev = v4l2_flash->iled_cdev;
        }
 
        ret = led_update_brightness(led_cdev);
@@ -529,8 +529,7 @@ static int v4l2_flash_open(struct v4l2_subdev *sd, struct 
v4l2_subdev_fh *fh)
        struct v4l2_flash *v4l2_flash = v4l2_subdev_to_v4l2_flash(sd);
        struct led_classdev_flash *fled_cdev = v4l2_flash->fled_cdev;
        struct led_classdev *led_cdev = &fled_cdev->led_cdev;
-       struct led_classdev_flash *iled_cdev = v4l2_flash->iled_cdev;
-       struct led_classdev *led_cdev_ind = NULL;
+       struct led_classdev *led_cdev_ind = v4l2_flash->iled_cdev;
        int ret = 0;
 
        if (!v4l2_fh_is_singular(&fh->vfh))
@@ -543,9 +542,7 @@ static int v4l2_flash_open(struct v4l2_subdev *sd, struct 
v4l2_subdev_fh *fh)
 
        mutex_unlock(&led_cdev->led_access);
 
-       if (iled_cdev) {
-               led_cdev_ind = &iled_cdev->led_cdev;
-
+       if (led_cdev_ind) {
                mutex_lock(&led_cdev_ind->led_access);
 
                led_sysfs_disable(led_cdev_ind);
@@ -578,7 +575,7 @@ static int v4l2_flash_close(struct v4l2_subdev *sd, struct 
v4l2_subdev_fh *fh)
        struct v4l2_flash *v4l2_flash = v4l2_subdev_to_v4l2_flash(sd);
        struct led_classdev_flash *fled_cdev = v4l2_flash->fled_cdev;
        struct led_classdev *led_cdev = &fled_cdev->led_cdev;
-       struct led_classdev_flash *iled_cdev = v4l2_flash->iled_cdev;
+       struct led_classdev *led_cdev_ind = v4l2_flash->iled_cdev;
        int ret = 0;
 
        if (!v4l2_fh_is_singular(&fh->vfh))
@@ -593,9 +590,7 @@ static int v4l2_flash_close(struct v4l2_subdev *sd, struct 
v4l2_subdev_fh *fh)
 
        mutex_unlock(&led_cdev->led_access);
 
-       if (iled_cdev) {
-               struct led_classdev *led_cdev_ind = &iled_cdev->led_cdev;
-
+       if (led_cdev_ind) {
                mutex_lock(&led_cdev_ind->led_access);
                led_sysfs_enable(led_cdev_ind);
                mutex_unlock(&led_cdev_ind->led_access);
@@ -614,7 +609,7 @@ static const struct v4l2_subdev_ops v4l2_flash_subdev_ops;
 struct v4l2_flash *v4l2_flash_init(
        struct device *dev, struct fwnode_handle *fwn,
        struct led_classdev_flash *fled_cdev,
-       struct led_classdev_flash *iled_cdev,
+       struct led_classdev *iled_cdev,
        const struct v4l2_flash_ops *ops,
        struct v4l2_flash_config *config)
 {
diff --git a/include/media/v4l2-flash-led-class.h 
b/include/media/v4l2-flash-led-class.h
index f9dcd54..54e31a8 100644
--- a/include/media/v4l2-flash-led-class.h
+++ b/include/media/v4l2-flash-led-class.h
@@ -85,7 +85,7 @@ struct v4l2_flash_config {
  */
 struct v4l2_flash {
        struct led_classdev_flash *fled_cdev;
-       struct led_classdev_flash *iled_cdev;
+       struct led_classdev *iled_cdev;
        const struct v4l2_flash_ops *ops;
 
        struct v4l2_subdev sd;
@@ -124,7 +124,7 @@ static inline struct v4l2_flash 
*v4l2_ctrl_to_v4l2_flash(struct v4l2_ctrl *c)
 struct v4l2_flash *v4l2_flash_init(
        struct device *dev, struct fwnode_handle *fwn,
        struct led_classdev_flash *fled_cdev,
-       struct led_classdev_flash *iled_cdev,
+       struct led_classdev *iled_cdev,
        const struct v4l2_flash_ops *ops,
        struct v4l2_flash_config *config);
 
@@ -140,7 +140,7 @@ void v4l2_flash_release(struct v4l2_flash *v4l2_flash);
 static inline struct v4l2_flash *v4l2_flash_init(
        struct device *dev, struct fwnode_handle *fwn,
        struct led_classdev_flash *fled_cdev,
-       struct led_classdev_flash *iled_cdev,
+       struct led_classdev *iled_cdev,
        const struct v4l2_flash_ops *ops,
        struct v4l2_flash_config *config)
 {
-- 
2.1.4

Reply via email to