Re: [PATCH v2 09/13] media: imx274: get rid of mode_index

2018-04-24 Thread kbuild test robot
Hi Luca,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on v4.17-rc2 next-20180424]
[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/Luca-Ceresoli/media-imx274-cleanups-improvements-and-SELECTION-API-support/20180424-220137
base:   git://linuxtv.org/media_tree.git master
config: sparc64-allmodconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget 
https://raw.githubusercontent.com/intel/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=sparc64 

All warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:332:0,
from include/linux/kernel.h:14,
from include/linux/clk.h:16,
from drivers/media//i2c/imx274.c:22:
   drivers/media//i2c/imx274.c: In function 'imx274_s_stream':
>> drivers/media//i2c/imx274.c:1027:32: warning: format '%d' expects argument 
>> of type 'int', but argument 6 has type 'long int' [-Wformat=]
 dev_dbg(>client->dev, "%s : %s, mode index = %d\n", __func__,
   ^
   drivers/media//i2c/imx274.c:1029:3:
  imx274->mode - _formats[0]);
  ~
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
  __dynamic_dev_dbg(, dev, fmt, \
  ^~~
   drivers/media//i2c/imx274.c:1027:2: note: in expansion of macro 'dev_dbg'
 dev_dbg(>client->dev, "%s : %s, mode index = %d\n", __func__,
 ^~~

vim +1027 drivers/media//i2c/imx274.c

0985dd30 Leon Luo  2017-10-05  1011  
0985dd30 Leon Luo  2017-10-05  1012  /**
0985dd30 Leon Luo  2017-10-05  1013   * imx274_s_stream - It is used to 
start/stop the streaming.
0985dd30 Leon Luo  2017-10-05  1014   * @sd: V4L2 Sub device
0985dd30 Leon Luo  2017-10-05  1015   * @on: Flag (True / False)
0985dd30 Leon Luo  2017-10-05  1016   *
0985dd30 Leon Luo  2017-10-05  1017   * This function controls the start or 
stop of streaming for the
0985dd30 Leon Luo  2017-10-05  1018   * imx274 sensor.
0985dd30 Leon Luo  2017-10-05  1019   *
0985dd30 Leon Luo  2017-10-05  1020   * Return: 0 on success, errors 
otherwise
0985dd30 Leon Luo  2017-10-05  1021   */
0985dd30 Leon Luo  2017-10-05  1022  static int imx274_s_stream(struct 
v4l2_subdev *sd, int on)
0985dd30 Leon Luo  2017-10-05  1023  {
0985dd30 Leon Luo  2017-10-05  1024 struct stimx274 *imx274 = 
to_imx274(sd);
0985dd30 Leon Luo  2017-10-05  1025 int ret = 0;
0985dd30 Leon Luo  2017-10-05  1026  
0985dd30 Leon Luo  2017-10-05 @1027 dev_dbg(>client->dev, 
"%s : %s, mode index = %d\n", __func__,
f5180bf1 Luca Ceresoli 2018-04-24  1028 on ? "Stream Start" : 
"Stream Stop",
f5180bf1 Luca Ceresoli 2018-04-24  1029 imx274->mode - 
_formats[0]);
0985dd30 Leon Luo  2017-10-05  1030  
0985dd30 Leon Luo  2017-10-05  1031 mutex_lock(>lock);
0985dd30 Leon Luo  2017-10-05  1032  
0985dd30 Leon Luo  2017-10-05  1033 if (on) {
0985dd30 Leon Luo  2017-10-05  1034 /* load mode registers 
*/
da5bbae7 Luca Ceresoli 2018-04-24  1035 ret = 
imx274_mode_regs(imx274);
0985dd30 Leon Luo  2017-10-05  1036 if (ret)
0985dd30 Leon Luo  2017-10-05  1037 goto fail;
0985dd30 Leon Luo  2017-10-05  1038  
0985dd30 Leon Luo  2017-10-05  1039 /*
0985dd30 Leon Luo  2017-10-05  1040  * update frame rate & 
expsoure. if the last mode is different,
0985dd30 Leon Luo  2017-10-05  1041  * HMAX could be 
changed. As the result, frame rate & exposure
0985dd30 Leon Luo  2017-10-05  1042  * are changed.
0985dd30 Leon Luo  2017-10-05  1043  * gain is not affected.
0985dd30 Leon Luo  2017-10-05  1044  */
0985dd30 Leon Luo  2017-10-05  1045 ret = 
imx274_set_frame_interval(imx274,
0985dd30 Leon Luo  2017-10-05  1046 
imx274->frame_interval);
0985dd30 Leon Luo  2017-10-05  1047 if (ret)
0985dd30 Leon Luo  2017-10-05  1048 goto fail;
0985dd30 Leon Luo  2017-10-05  1049  
0985dd30 Leon Luo  2017-10-05  1050 /* update exposure time 
*/
0985dd30 Leon Luo  2017-10-05  1051 ret = 
__v4l2_ctrl_s_ctrl(imx274->ctrls.exposure,
0985dd30 Leon Luo  2017-10-05  1052 
 imx274->ctrls.exposure->val);
0985dd30 Leon Luo  2017-10-05  

[PATCH v2 09/13] media: imx274: get rid of mode_index

2018-04-24 Thread Luca Ceresoli
After restructuring struct imx274_frmfmt, the mode_index field is
still in use only for two dev_dbg() calls in imx274_s_stream(). Let's
remove it and avoid duplicated information.

Replacing the first usage requires a some rather annoying but trivial
pointer math. The other one can be removed entirely since it would
print the same value anyway.

Signed-off-by: Luca Ceresoli 

---
Changed v1 -> v2:
 - add "media: " prefix to commit message
 - fix dev_dbg() format mismatch warning
   ("warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 
has type ‘int’")
 - slightly improve commit message
---
 drivers/media/i2c/imx274.c | 13 -
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c
index 2ec31ae4e60d..69fdc82d4214 100644
--- a/drivers/media/i2c/imx274.c
+++ b/drivers/media/i2c/imx274.c
@@ -553,8 +553,6 @@ struct imx274_ctrls {
  * @reset_gpio: Pointer to reset gpio
  * @lock: Mutex structure
  * @mode: Parameters for the selected readout mode
- *(points to imx274_formats[mode_index])
- * @mode_index: Resolution mode index
  */
 struct stimx274 {
struct v4l2_subdev sd;
@@ -567,7 +565,6 @@ struct stimx274 {
struct gpio_desc *reset_gpio;
struct mutex lock; /* mutex lock for operations */
const struct imx274_frmfmt *mode;
-   u32 mode_index;
 };
 
 /*
@@ -880,7 +877,6 @@ static int imx274_set_fmt(struct v4l2_subdev *sd,
index = 0;
}
 
-   imx274->mode_index = index;
imx274->mode = _formats[index];
 
if (fmt->width > IMX274_MAX_WIDTH)
@@ -1029,7 +1025,8 @@ static int imx274_s_stream(struct v4l2_subdev *sd, int on)
int ret = 0;
 
dev_dbg(>client->dev, "%s : %s, mode index = %d\n", __func__,
-   on ? "Stream Start" : "Stream Stop", imx274->mode_index);
+   on ? "Stream Start" : "Stream Stop",
+   imx274->mode - _formats[0]);
 
mutex_lock(>lock);
 
@@ -1068,8 +1065,7 @@ static int imx274_s_stream(struct v4l2_subdev *sd, int on)
}
 
mutex_unlock(>lock);
-   dev_dbg(>client->dev,
-   "%s : Done: mode = %d\n", __func__, imx274->mode_index);
+   dev_dbg(>client->dev, "%s : Done\n", __func__);
return 0;
 
 fail:
@@ -1625,8 +1621,7 @@ static int imx274_probe(struct i2c_client *client,
mutex_init(>lock);
 
/* initialize format */
-   imx274->mode_index = IMX274_MODE_3840X2160;
-   imx274->mode = _formats[imx274->mode_index];
+   imx274->mode = _formats[IMX274_MODE_3840X2160];
imx274->format.width = imx274->mode->size.width;
imx274->format.height = imx274->mode->size.height;
imx274->format.field = V4L2_FIELD_NONE;
-- 
2.7.4