On Tue, Oct 24, 2017 at 02:30:26AM +0900, Akinobu Mita wrote:
> The test_pattern_menu[] array has two valid items and a null terminated
> item.  So the control's maximum value which is passed to
> v4l2_ctrl_new_std_menu_items() should be one.  However,
> 'ARRAY_SIZE(test_pattern_menu) - 1' is actually passed and it's not
> correct.
> 
> Fix it by removing unnecessary terminated entry and let the correct
> control's maximum value be passed to v4l2_ctrl_new_std_menu_items().
> 
> Cc: Sylwester Nawrocki <sylvester.nawro...@gmail.com>
> Cc: Mauro Carvalho Chehab <mche...@s-opensource.com>
> Signed-off-by: Akinobu Mita <akinobu.m...@gmail.com>
> ---
>  drivers/media/i2c/ov9650.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/media/i2c/ov9650.c b/drivers/media/i2c/ov9650.c
> index 6ffb460..69433e1 100644
> --- a/drivers/media/i2c/ov9650.c
> +++ b/drivers/media/i2c/ov9650.c
> @@ -985,7 +985,6 @@ static const struct v4l2_ctrl_ops ov965x_ctrl_ops = {
>  static const char * const test_pattern_menu[] = {
>       "Disabled",
>       "Color bars",
> -     NULL

The number of items in the menu changes; I fixed that while applying the
patch:

diff --git a/drivers/media/i2c/ov9650.c b/drivers/media/i2c/ov9650.c
index 69433e1e2533..4f59da1f967b 100644
--- a/drivers/media/i2c/ov9650.c
+++ b/drivers/media/i2c/ov9650.c
@@ -1039,7 +1039,7 @@ static int ov965x_initialize_controls(struct ov965x 
*ov965x)
                                       V4L2_CID_POWER_LINE_FREQUENCY_50HZ);
 
        v4l2_ctrl_new_std_menu_items(hdl, ops, V4L2_CID_TEST_PATTERN,
-                                    ARRAY_SIZE(test_pattern_menu) - 1, 0, 0,
+                                    ARRAY_SIZE(test_pattern_menu), 0, 0,
                                     test_pattern_menu);
        if (hdl->error) {
                ret = hdl->error;


Let me know if you see issues with this.

>  };
>  
>  static int ov965x_initialize_controls(struct ov965x *ov965x)

-- 
Regards,

Sakari Ailus
e-mail: sakari.ai...@iki.fi

Reply via email to