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.nawrocki@xxxxxxxxx> > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> > Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx> > --- > 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.ailus@xxxxxx