[1/2] libcamera: camera_sensor: Fix IMX355 test pattern mode mapping
diff mbox series

Message ID 20260908084544.274613-1-sam.legros@gmail.com
State New
Headers show
Series
  • [1/2] libcamera: camera_sensor: Fix IMX355 test pattern mode mapping
Related show

Commit Message

Samuel LEGROS Sept. 8, 2026, 8:45 a.m. UTC
The IMX355 sensor properties map TestPatternModeColorBars to menu index 1
and TestPatternModeSolidColor to index 2. The kernel driver defines the
opposite order:

  static const char * const imx355_test_pattern_menu[] = {
          "Disabled",
          "Solid Colour",
          "Eight Vertical Colour Bars",
          "Colour Bars With Fade to Grey",
          "Pseudorandom Sequence (PN9)",
  };

This matches drivers/media/i2c/imx355.c in mainline Linux and in the
Raspberry Pi kernel tree, and was confirmed on a Google Pixel 3a
(front camera, imx355 4-001a) running postmarketOS:

  $ v4l2-ctl -d /dev/v4l-subdev19 --list-ctrls-menus
    test_pattern 0x009f0903 (menu) : min=0 max=4 default=0 value=0
                  0: Disabled
                  1: Solid Colour
                  2: Eight Vertical Colour Bars
                  3: Colour Bars With Fade to Grey
                  4: Pseudorandom Sequence (PN9)

Requesting a solid colour test pattern therefore produces colour bars,
and vice versa.

Swap the two entries, which makes IMX355 consistent with IMX258 and
IMX471, whose drivers expose the same menu and which are already
described correctly. IMX214 and IMX219 keep their current mapping, as
their drivers do list "Color Bars" at index 1.

Fixes: a1db25dabaee ("libcamera: camera_sensor: Add Sony IMX355 sensor properties and helper")

Signed-off-by: Samuel LEGROS <sam.legros@gmail.com>
---
 src/libcamera/sensor/camera_sensor_properties.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Patch
diff mbox series

diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
index 819f07b..ecf523c 100644
--- a/src/libcamera/sensor/camera_sensor_properties.cpp
+++ b/src/libcamera/sensor/camera_sensor_properties.cpp
@@ -269,8 +269,8 @@  const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
 			.unitCellSize = { 1120, 1120 },
 			.testPatternModes = {
 				{ controls::draft::TestPatternModeOff, 0 },
-				{ controls::draft::TestPatternModeColorBars, 1 },
-				{ controls::draft::TestPatternModeSolidColor, 2 },
+				{ controls::draft::TestPatternModeSolidColor, 1 },
+				{ controls::draft::TestPatternModeColorBars, 2 },
 				{ controls::draft::TestPatternModeColorBarsFadeToGray, 3 },
 				{ controls::draft::TestPatternModePn9, 4 },
 			},