[RFC/PATCH 2/9] v4l: Group media bus pixel codes by types and sort them alphabetically

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Adding new pixel codes at the end of the enumeration will soon create a
mess, so sort the pixel codes by type and then sort them alphabetically.

As the codes are part of the kernel ABI their value can't change when a
new code is inserted in the enumeration, so they are given an explicit
numerical value. When inserting a new pixel code developers must use and
update the V4L2_MBUS_FMT_LAST value.

Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
---
 include/linux/v4l2-mediabus.h |   54 ++++++++++++++++++++++++----------------
 1 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/include/linux/v4l2-mediabus.h b/include/linux/v4l2-mediabus.h
index 127512a..bc637a5 100644
--- a/include/linux/v4l2-mediabus.h
+++ b/include/linux/v4l2-mediabus.h
@@ -24,31 +24,41 @@
  * transferred first, "BE" means that the most significant bits are transferred
  * first, and "PADHI" and "PADLO" define which bits - low or high, in the
  * incomplete high byte, are filled with padding bits.
+ *
+ * The pixel codes are grouped by types and (mostly) sorted alphabetically. As
+ * their value can't change when a new pixel code is inserted in the
+ * enumeration, they are explicitly given a numerical value. When inserting a
+ * new pixel code use and update the V4L2_MBUS_FMT_LAST value.
  */
 enum v4l2_mbus_pixelcode {
 	V4L2_MBUS_FMT_FIXED = 1,
-	V4L2_MBUS_FMT_YUYV8_2X8,
-	V4L2_MBUS_FMT_YVYU8_2X8,
-	V4L2_MBUS_FMT_UYVY8_2X8,
-	V4L2_MBUS_FMT_VYUY8_2X8,
-	V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE,
-	V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE,
-	V4L2_MBUS_FMT_RGB565_2X8_LE,
-	V4L2_MBUS_FMT_RGB565_2X8_BE,
-	V4L2_MBUS_FMT_SBGGR8_1X8,
-	V4L2_MBUS_FMT_SBGGR10_1X10,
-	V4L2_MBUS_FMT_GREY8_1X8,
-	V4L2_MBUS_FMT_Y10_1X10,
-	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE,
-	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE,
-	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE,
-	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE,
-	V4L2_MBUS_FMT_SGRBG8_1X8,
-	V4L2_MBUS_FMT_SBGGR12_1X12,
-	V4L2_MBUS_FMT_YUYV8_1_5X8,
-	V4L2_MBUS_FMT_YVYU8_1_5X8,
-	V4L2_MBUS_FMT_UYVY8_1_5X8,
-	V4L2_MBUS_FMT_VYUY8_1_5X8,
+	/* RGB */
+	V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 7,
+	V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 6,
+	V4L2_MBUS_FMT_RGB565_2X8_BE = 9,
+	V4L2_MBUS_FMT_RGB565_2X8_LE = 8,
+	/* YUV (including grey) */
+	V4L2_MBUS_FMT_GREY8_1X8 = 12,
+	V4L2_MBUS_FMT_Y10_1X10 = 13,
+	V4L2_MBUS_FMT_YUYV8_1_5X8 = 20,
+	V4L2_MBUS_FMT_YVYU8_1_5X8 = 21,
+	V4L2_MBUS_FMT_UYVY8_1_5X8 = 22,
+	V4L2_MBUS_FMT_VYUY8_1_5X8 = 23,
+	V4L2_MBUS_FMT_YUYV8_2X8 = 2,
+	V4L2_MBUS_FMT_UYVY8_2X8 = 4,
+	V4L2_MBUS_FMT_YVYU8_2X8 = 3,
+	V4L2_MBUS_FMT_VYUY8_2X8 = 5,
+	/* Bayer */
+	V4L2_MBUS_FMT_SBGGR8_1X8 = 10,
+	V4L2_MBUS_FMT_SBGGR10_1X10 = 11,
+	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 16,
+	V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 14,
+	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 17,
+	V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 15,
+	V4L2_MBUS_FMT_SBGGR12_1X12 = 19,
+	V4L2_MBUS_FMT_SGRBG8_1X8 = 18,
+	/* Last - Update this when adding a new pixel code */
+	V4L2_MBUS_FMT_LAST = 24,
 };
 
 /**
-- 
1.7.2.2

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux