[PATCH] media: imx219: fix test pattern ordering and add patterns
From: Tharit Tangkijwanichakul
Date: Thu Jun 25 2026 - 12:07:46 EST
The test pattern menu currently maps 0 to color bars and 1 to a solid
color, whereas the imx219 datasheet specifies the reverse layout. fix
the ordering to align with the hardware specification.
Additionally, add 5 missing test patterns to complete the available
hardware test patterns.
The changes were validated on a raspberry pi 5 with an imx219 sensor
using v4l2-ctl and rpicam-still.
Signed-off-by: Tharit Tangkijwanichakul <tharitt97@xxxxxxxxx>
---
drivers/media/i2c/imx219.c | 31 +++++++++++++++++++++++--------
1 file changed, 23 insertions(+), 8 deletions(-)
diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
index 223d3753c..8f0c04afd 100644
--- a/drivers/media/i2c/imx219.c
+++ b/drivers/media/i2c/imx219.c
@@ -110,11 +110,16 @@
/* Test Pattern Control */
#define IMX219_REG_TEST_PATTERN CCI_REG16(0x0600)
-#define IMX219_TEST_PATTERN_DISABLE 0
-#define IMX219_TEST_PATTERN_SOLID_COLOR 1
-#define IMX219_TEST_PATTERN_COLOR_BARS 2
-#define IMX219_TEST_PATTERN_GREY_COLOR 3
-#define IMX219_TEST_PATTERN_PN9 4
+#define IMX219_TEST_PATTERN_DISABLE 0
+#define IMX219_TEST_PATTERN_SOLID_COLOR 1
+#define IMX219_TEST_PATTERN_COLOR_BARS 2
+#define IMX219_TEST_PATTERN_GREY_COLOR 3
+#define IMX219_TEST_PATTERN_PN9 4
+#define IMX219_TEST_PATTERN_16SPLIT_COLOR_BARS 5
+#define IMX219_TEST_PATTERN_16SPLIT_INV_COLOR_BARS 6
+#define IMX219_TEST_PATTERN_COLUMN_COUNTER 7
+#define IMX219_TEST_PATTERN_INV_COLUMN_COUNTER 8
+#define IMX219_TEST_PATTERN_PN31 9
/* Test pattern colour components */
#define IMX219_REG_TESTP_RED CCI_REG16(0x0602)
@@ -235,18 +240,28 @@ static const s64 imx219_link_freq_4lane_menu[] = {
static const char * const imx219_test_pattern_menu[] = {
"Disabled",
- "Color Bars",
"Solid Color",
+ "Color Bars",
"Grey Color Bars",
- "PN9"
+ "PN9",
+ "16 Split Color Bars",
+ "16 Split Inverted Color Bars",
+ "Column Counter",
+ "Inverted Column Counter",
+ "PN31"
};
static const int imx219_test_pattern_val[] = {
IMX219_TEST_PATTERN_DISABLE,
- IMX219_TEST_PATTERN_COLOR_BARS,
IMX219_TEST_PATTERN_SOLID_COLOR,
+ IMX219_TEST_PATTERN_COLOR_BARS,
IMX219_TEST_PATTERN_GREY_COLOR,
IMX219_TEST_PATTERN_PN9,
+ IMX219_TEST_PATTERN_16SPLIT_COLOR_BARS,
+ IMX219_TEST_PATTERN_16SPLIT_INV_COLOR_BARS,
+ IMX219_TEST_PATTERN_COLUMN_COUNTER,
+ IMX219_TEST_PATTERN_INV_COLUMN_COUNTER,
+ IMX219_TEST_PATTERN_PN31
};
/* regulator supplies */
base-commit: 06cb687a5132fcffe624c0070576ab852ac6b568
--
2.53.0