media: Use common test pattern menu entries
Subsystems (5)
Sakari Ailus
maintainerPATCH 1/1 media: Use common test pattern menu entries
While the test pattern menu itself is not standardised, many devices support the same test patterns. Aligning the menu entries helps the user space to use the interface, and adding macros for the menu entry strings helps to keep them aligned.
--- drivers/media/i2c/imx258.c | 10 +++++----- drivers/media/i2c/imx319.c | 10 +++++----- drivers/media/i2c/imx355.c | 10 +++++----- drivers/media/i2c/ov2640.c | 4 ++-- drivers/media/i2c/smiapp/smiapp-core.c | 10 +++++----- include/uapi/linux/v4l2-controls.h | 5 +++++ 6 files changed, 27 insertions(+), 22 deletions(-)
drivers/media/i2c/imx258.c +5 -5
@@ -498,11 +498,11 @@ static const struct imx258_reg mode_1048_780_regs[] = { };static const char *const imx258_test_pattern_menu[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };/* Configurations for supported link frequencies */
drivers/media/i2c/imx319.c +5 -5
@@ -1647,11 +1647,11 @@ static const struct imx319_reg mode_1280x720_regs[] = { };static const char *const imx319_test_pattern_menu[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };/* supported link frequencies */
drivers/media/i2c/imx355.c +5 -5
@@ -875,11 +875,11 @@ static const struct imx355_reg mode_820x616_regs[] = { };static const char *const imx355_test_pattern_menu[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };/* supported link frequencies */
drivers/media/i2c/ov2640.c +2 -2
@@ -707,8 +707,8 @@ static int ov2640_reset(struct i2c_client *client) }static const char *const ov2640_test_pattern_menu[] = { -"Disabled" , -"Eight Vertical Colour Bars" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , };/*
drivers/media/i2c/smiapp/smiapp-core.c +5 -5
@@ -409,11 +409,11 @@ static void smiapp_update_mbus_formats(struct smiapp_sensor *sensor) }static const char *const smiapp_test_patterns[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };static int smiapp_set_ctrl (struct v4l2_ctrl *ctrl)
include/uapi/linux/v4l2-controls.h +5 -0
@@ -1014,6 +1014,11 @@ enum v4l2_jpeg_chroma_subsampling {#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) +#define V4L2_TEST_PATTERN_DISABLED "Disabled" +#define V4L2_TEST_PATTERN_SOLID_COLOUR "Solid Colour" +#define V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS "Eight Vertical Colour Bars" +#define V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY "Colour Bars With Fade to Grey" +#define V4L2_TEST_PATTERN_PN9 "Pseudorandom Sequence (PN9)"#define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)#define V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
Signature · 1 line
2.11.0
Quoted 4 lines · Sakari Ailus
While the test pattern menu itself is not standardised, many devices support the same test patterns. Aligning the menu entries helps the user space to use the interface, and adding macros for the menu entry strings helps to keep them aligned.
I like this patch.
Quoted 115 lines
Signed-off-by Sakari Ailus <[email protected]>--- drivers/media/i2c/imx258.c | 10 +++++----- drivers/media/i2c/imx319.c | 10 +++++----- drivers/media/i2c/imx355.c | 10 +++++----- drivers/media/i2c/ov2640.c | 4 ++-- drivers/media/i2c/smiapp/smiapp-core.c | 10 +++++----- include/uapi/linux/v4l2-controls.h | 5 +++++ 6 files changed, 27 insertions(+), 22 deletions(-)drivers/media/i2c/imx258.c +5
-5@@ -498,11 +498,11 @@ static const struct imx258_reg mode_1048_780_regs[] = { };static const char *const imx258_test_pattern_menu[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };/* Configurations for supported link frequencies */ drivers/media/i2c/imx319.c +5
-5@@ -1647,11 +1647,11 @@ static const struct imx319_reg mode_1280x720_regs[] = { };static const char *const imx319_test_pattern_menu[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };/* supported link frequencies */ drivers/media/i2c/imx355.c +5
-5@@ -875,11 +875,11 @@ static const struct imx355_reg mode_820x616_regs[] = { };static const char *const imx355_test_pattern_menu[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };/* supported link frequencies */ drivers/media/i2c/ov2640.c +2
-2@@ -707,8 +707,8 @@ static int ov2640_reset(struct i2c_client *client) }static const char *const ov2640_test_pattern_menu[] = { -"Disabled" , -"Eight Vertical Colour Bars" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , };/* drivers/media/i2c/smiapp/smiapp-core.c +5
-5@@ -409,11 +409,11 @@ static void smiapp_update_mbus_formats(struct smiapp_sensor *sensor) }static const char *const smiapp_test_patterns[] = { -"Disabled" , -"Solid Colour" , -"Eight Vertical Colour Bars" , -"Colour Bars With Fade to Grey" , -"Pseudorandom Sequence (PN9)" , +V4L2_TEST_PATTERN_DISABLED , +V4L2_TEST_PATTERN_SOLID_COLOUR , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS , +V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY , +V4L2_TEST_PATTERN_PN9 , };static int smiapp_set_ctrl (struct v4l2_ctrl *ctrl)include/uapi/linux/v4l2-controls.h +0
-0
include/uapi/linux/v4l2-controls.h enum v4l2_jpeg_chroma_subsampling { · line 1021
Quoted 8 lines
include/uapi/linux/v4l2-controls.h +5
-0@@ -1014,6 +1014,11 @@ enum v4l2_jpeg_chroma_subsampling {#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) +#define V4L2_TEST_PATTERN_DISABLED "Disabled" +#define V4L2_TEST_PATTERN_SOLID_COLOUR "Solid Colour" +#define V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS "Eight Vertical Colour Bars" +#define V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY "Colour Bars With Fade to Grey" +#define V4L2_TEST_PATTERN_PN9 "Pseudorandom Sequence (PN9)"
More padding here for alignment?
Quoted 3 lines
include/uapi/linux/v4l2-controls.h +0
-0#define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4)#define V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5)
Quoted 16 lines · Bingbu Cao
include/uapi/linux/v4l2-controls.h enum v4l2_jpeg_chroma_subsampling { · line 1021
Quoted 13 lines · Sakari Ailus
include/uapi/linux/v4l2-controls.h +5
-0@@ -1014,6 +1014,11 @@ enum v4l2_jpeg_chroma_subsampling {#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) +#define V4L2_TEST_PATTERN_DISABLED "Disabled" +#define V4L2_TEST_PATTERN_SOLID_COLOUR "Solid Colour" +#define V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS "Eight Vertical Colour Bars" +#define V4L2_TEST_PATTERN_8_VERT_COLOUR_BARS_FADE_TO_GREY "Colour Bars With Fade to Grey" +#define V4L2_TEST_PATTERN_PN9 "Pseudorandom Sequence (PN9)"More padding here for alignment?
Fixed in v2.
Signature · 1 line
Sakari Ailus