Re: [PATCH 4/8] v4l2-flash: Use led_classdev instead of led_classdev_flash for indicator

2017-06-15 Thread Sebastian Reichel
Hi,

On Wed, Jun 14, 2017 at 12:47:15PM +0300, Sakari Ailus wrote:
> 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 

Reviewed-by: Sebastian Reichel 

-- Sebastian

> ---
>  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(_flash->fled_cdev->led_cdev,
>   brightness);
>   } else {
> - led_set_brightness_sync(_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 = _flash->fled_cdev->led_cdev;
>   } else {
> - led_cdev = _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 = _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(>vfh))
> @@ -543,9 +542,7 @@ static int v4l2_flash_open(struct v4l2_subdev *sd, struct 
> v4l2_subdev_fh *fh)
>  
>   mutex_unlock(_cdev->led_access);
>  
> - if (iled_cdev) {
> - led_cdev_ind = _cdev->led_cdev;
> -
> + if (led_cdev_ind) {
>   mutex_lock(_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 = _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(>vfh))
> @@ -593,9 +590,7 @@ static int v4l2_flash_close(struct v4l2_subdev *sd, 
> struct v4l2_subdev_fh *fh)
>  
>   mutex_unlock(_cdev->led_access);
>  
> - if (iled_cdev) {
> - struct led_classdev *led_cdev_ind = _cdev->led_cdev;
> -
> + if (led_cdev_ind) {
>   mutex_lock(_cdev_ind->led_access);
>   led_sysfs_enable(led_cdev_ind);
>   mutex_unlock(_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 

Re: [PATCH 4/8] v4l2-flash: Use led_classdev instead of led_classdev_flash for indicator

2017-06-15 Thread kbuild test robot
Hi Sakari,

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on v4.12-rc5 next-20170614]
[cannot apply to robh/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Sakari-Ailus/Support-registering-lens-flash-and-EEPROM-devices/20170615-084016
base:   git://linuxtv.org/media_tree.git master
config: tile-allmodconfig (attached as .config)
compiler: tilegx-linux-gcc (GCC) 4.6.2
reproduce:
wget 
https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=tile 

All warnings (new ones prefixed by >>):

   drivers/staging//greybus/light.c: In function 
'gb_lights_light_v4l2_register':
>> drivers/staging//greybus/light.c:574:10: warning: passing argument 4 of 
>> 'v4l2_flash_init' from incompatible pointer type [enabled by default]
   include/media/v4l2-flash-led-class.h:124:20: note: expected 'struct 
led_classdev *' but argument is of type 'struct led_classdev_flash *'

vim +/v4l2_flash_init +574 drivers/staging//greybus/light.c

2870b52b Rui Miguel Silva 2015-08-14  558  
2870b52b Rui Miguel Silva 2015-08-14  559   channel_flash = 
get_channel_from_mode(light, GB_CHANNEL_MODE_FLASH);
2870b52b Rui Miguel Silva 2015-08-14  560   WARN_ON(!channel_flash);
2870b52b Rui Miguel Silva 2015-08-14  561  
2870b52b Rui Miguel Silva 2015-08-14  562   fled = _flash->fled;
2870b52b Rui Miguel Silva 2015-08-14  563  
2870b52b Rui Miguel Silva 2015-08-14  564   snprintf(sd_cfg->dev_name, 
sizeof(sd_cfg->dev_name), "%s", light->name);
2870b52b Rui Miguel Silva 2015-08-14  565  
2870b52b Rui Miguel Silva 2015-08-14  566   /* Set the possible values to 
faults, in our case all faults */
2870b52b Rui Miguel Silva 2015-08-14  567   sd_cfg->flash_faults = 
LED_FAULT_OVER_VOLTAGE | LED_FAULT_TIMEOUT |
2870b52b Rui Miguel Silva 2015-08-14  568   
LED_FAULT_OVER_TEMPERATURE | LED_FAULT_SHORT_CIRCUIT |
2870b52b Rui Miguel Silva 2015-08-14  569   LED_FAULT_OVER_CURRENT 
| LED_FAULT_INDICATOR |
2870b52b Rui Miguel Silva 2015-08-14  570   LED_FAULT_UNDER_VOLTAGE 
| LED_FAULT_INPUT_VOLTAGE |
2870b52b Rui Miguel Silva 2015-08-14  571   
LED_FAULT_LED_OVER_TEMPERATURE;
2870b52b Rui Miguel Silva 2015-08-14  572  
2870b52b Rui Miguel Silva 2015-08-14  573   light->v4l2_flash = 
v4l2_flash_init(dev, NULL, fled, iled,
3f85c787 Rui Miguel Silva 2015-12-03 @574   
_flash_ops, sd_cfg);
2870b52b Rui Miguel Silva 2015-08-14  575   if 
(IS_ERR_OR_NULL(light->v4l2_flash)) {
2870b52b Rui Miguel Silva 2015-08-14  576   ret = 
PTR_ERR(light->v4l2_flash);
2870b52b Rui Miguel Silva 2015-08-14  577   goto out_free;
2870b52b Rui Miguel Silva 2015-08-14  578   }
2870b52b Rui Miguel Silva 2015-08-14  579  
2870b52b Rui Miguel Silva 2015-08-14  580   return ret;
2870b52b Rui Miguel Silva 2015-08-14  581  
2870b52b Rui Miguel Silva 2015-08-14  582  out_free:

:: The code at line 574 was first introduced by commit
:: 3f85c787b74c26f3816017e64288af907f291462 greybus: lights: add v4l2 flash 
operations

:: TO: Rui Miguel Silva 
:: CC: Greg Kroah-Hartman 

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip


Re: [PATCH 4/8] v4l2-flash: Use led_classdev instead of led_classdev_flash for indicator

2017-06-14 Thread Jacek Anaszewski
Hi Sakari,

On 06/14/2017 11:47 AM, Sakari Ailus wrote:
> 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 
> ---
>  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(_flash->fled_cdev->led_cdev,
>   brightness);
>   } else {
> - led_set_brightness_sync(_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 = _flash->fled_cdev->led_cdev;
>   } else {
> - led_cdev = _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 = _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(>vfh))
> @@ -543,9 +542,7 @@ static int v4l2_flash_open(struct v4l2_subdev *sd, struct 
> v4l2_subdev_fh *fh)
>  
>   mutex_unlock(_cdev->led_access);
>  
> - if (iled_cdev) {
> - led_cdev_ind = _cdev->led_cdev;
> -
> + if (led_cdev_ind) {
>   mutex_lock(_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 = _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(>vfh))
> @@ -593,9 +590,7 @@ static int v4l2_flash_close(struct v4l2_subdev *sd, 
> struct v4l2_subdev_fh *fh)
>  
>   mutex_unlock(_cdev->led_access);
>  
> - if (iled_cdev) {
> - struct led_classdev *led_cdev_ind = _cdev->led_cdev;
> -
> + if (led_cdev_ind) {
>   mutex_lock(_cdev_ind->led_access);
>   led_sysfs_enable(led_cdev_ind);
>   mutex_unlock(_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,
> - 

[PATCH 4/8] v4l2-flash: Use led_classdev instead of led_classdev_flash for indicator

2017-06-14 Thread Sakari Ailus
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 
---
 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(_flash->fled_cdev->led_cdev,
brightness);
} else {
-   led_set_brightness_sync(_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 = _flash->fled_cdev->led_cdev;
} else {
-   led_cdev = _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 = _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(>vfh))
@@ -543,9 +542,7 @@ static int v4l2_flash_open(struct v4l2_subdev *sd, struct 
v4l2_subdev_fh *fh)
 
mutex_unlock(_cdev->led_access);
 
-   if (iled_cdev) {
-   led_cdev_ind = _cdev->led_cdev;
-
+   if (led_cdev_ind) {
mutex_lock(_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 = _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(>vfh))
@@ -593,9 +590,7 @@ static int v4l2_flash_close(struct v4l2_subdev *sd, struct 
v4l2_subdev_fh *fh)
 
mutex_unlock(_cdev->led_access);
 
-   if (iled_cdev) {
-   struct led_classdev *led_cdev_ind = _cdev->led_cdev;
-
+   if (led_cdev_ind) {
mutex_lock(_cdev_ind->led_access);
led_sysfs_enable(led_cdev_ind);
mutex_unlock(_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)
 {
--