Re: [PATCH v2 09/13] media: imx274: get rid of mode_index
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
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