[WIP,RFC,15/26] HACK: libcamera: formats: Add a modifier for RAW colorspace
diff mbox series

Message ID 20261023-b4-raw-model-v1-15-eadb9948901b@ideasonboard.com
State New
Headers show
Series
  • Support the new common raw sensor model
Related show

Commit Message

Jai Luthra Oct. 23, 2026, 10:58 a.m. UTC
This is a temporary HACK, as we don't have a way to communicate to
libcamera users through the fourcc if a pixel format is coming from a
RAW sensor with a valid bayer ordering, or if it is monochrome (YUV
colorspace) data that can be used directly without any demosaicing.

Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com>
---
 include/linux/drm_fourcc.h |  4 ++++
 src/libcamera/formats.yaml | 13 +++++++++----
 2 files changed, 13 insertions(+), 4 deletions(-)

Patch
diff mbox series

diff --git a/include/linux/drm_fourcc.h b/include/linux/drm_fourcc.h
index c1703fc03cbd..f226d2667b9d 100644
--- a/include/linux/drm_fourcc.h
+++ b/include/linux/drm_fourcc.h
@@ -1858,9 +1858,13 @@  drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
  *   pixel, in the same order.
  */
 #define MIPI_FORMAT_MOD_CSI2_PACKED fourcc_mod_code(MIPI, 1)
+#define MIPI_FORMAT_MOD_CSI2_RAW fourcc_mod_code(MIPI, 2)
+#define MIPI_FORMAT_MOD_CSI2_RAW_PACKED fourcc_mod_code(MIPI, 3)
 
 #define PISP_FORMAT_MOD_COMPRESS_MODE1 fourcc_mod_code(RPI, 1)
 #define PISP_FORMAT_MOD_COMPRESS_MODE2 fourcc_mod_code(RPI, 2)
+#define PISP_FORMAT_MOD_COMPRESS_RAW_MODE1 fourcc_mod_code(RPI, 3)
+#define PISP_FORMAT_MOD_COMPRESS_RAW_MODE2 fourcc_mod_code(RPI, 4)
 
 #if defined(__cplusplus)
 }
diff --git a/src/libcamera/formats.yaml b/src/libcamera/formats.yaml
index d71c65078587..5ed16d29f341 100644
--- a/src/libcamera/formats.yaml
+++ b/src/libcamera/formats.yaml
@@ -104,24 +104,29 @@  formats:
 
   - RAW8:
       fourcc: DRM_FORMAT_R8
+      mod: MIPI_FORMAT_MOD_CSI2_RAW
   - RAW10:
       fourcc: DRM_FORMAT_R10
+      mod: MIPI_FORMAT_MOD_CSI2_RAW
   - RAW12:
       fourcc: DRM_FORMAT_R12
+      mod: MIPI_FORMAT_MOD_CSI2_RAW
   - RAW14:
       fourcc: DRM_FORMAT_R14
+      mod: MIPI_FORMAT_MOD_CSI2_RAW
   - RAW16:
       fourcc: DRM_FORMAT_R16
+      mod: MIPI_FORMAT_MOD_CSI2_RAW
 
   - RAW10_CSI2P:
       fourcc: DRM_FORMAT_R10
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
+      mod: MIPI_FORMAT_MOD_CSI2_RAW_PACKED
   - RAW12_CSI2P:
       fourcc: DRM_FORMAT_R12
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
+      mod: MIPI_FORMAT_MOD_CSI2_RAW_PACKED
   - RAW14_CSI2P:
       fourcc: DRM_FORMAT_R14
-      mod: MIPI_FORMAT_MOD_CSI2_PACKED
+      mod: MIPI_FORMAT_MOD_CSI2_RAW_PACKED
 
   - RAW10_IPU3:
       fourcc: DRM_FORMAT_R10
@@ -132,5 +137,5 @@  formats:
       mod: PISP_FORMAT_MOD_COMPRESS_MODE1
   - RAW_PISP_COMP1:
       fourcc: DRM_FORMAT_R16
-      mod: PISP_FORMAT_MOD_COMPRESS_MODE1
+      mod: PISP_FORMAT_MOD_COMPRESS_RAW_MODE1
 ...