aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/atmel-isi.c1
-rw-r--r--drivers/media/video/mx3_camera.c2
-rw-r--r--drivers/media/video/omap1_camera.c8
-rw-r--r--drivers/media/video/pxa_camera.c1
-rw-r--r--drivers/media/video/sh_mobile_ceu_camera.c4
-rw-r--r--drivers/media/video/soc_mediabus.c33
-rw-r--r--include/media/soc_mediabus.h19
7 files changed, 68 insertions, 0 deletions
diff --git a/drivers/media/video/atmel-isi.c b/drivers/media/video/atmel-isi.c
index d58491b897ca..6274a91c25c7 100644
--- a/drivers/media/video/atmel-isi.c
+++ b/drivers/media/video/atmel-isi.c
@@ -627,6 +627,7 @@ static const struct soc_mbus_pixelfmt isi_camera_formats[] = {
627 .bits_per_sample = 8, 627 .bits_per_sample = 8,
628 .packing = SOC_MBUS_PACKING_2X8_PADHI, 628 .packing = SOC_MBUS_PACKING_2X8_PADHI,
629 .order = SOC_MBUS_ORDER_LE, 629 .order = SOC_MBUS_ORDER_LE,
630 .layout = SOC_MBUS_LAYOUT_PACKED,
630 }, 631 },
631}; 632};
632 633
diff --git a/drivers/media/video/mx3_camera.c b/drivers/media/video/mx3_camera.c
index 6c87d966a554..2bdda6ca13c0 100644
--- a/drivers/media/video/mx3_camera.c
+++ b/drivers/media/video/mx3_camera.c
@@ -637,12 +637,14 @@ static const struct soc_mbus_pixelfmt mx3_camera_formats[] = {
637 .bits_per_sample = 8, 637 .bits_per_sample = 8,
638 .packing = SOC_MBUS_PACKING_NONE, 638 .packing = SOC_MBUS_PACKING_NONE,
639 .order = SOC_MBUS_ORDER_LE, 639 .order = SOC_MBUS_ORDER_LE,
640 .layout = SOC_MBUS_LAYOUT_PACKED,
640 }, { 641 }, {
641 .fourcc = V4L2_PIX_FMT_GREY, 642 .fourcc = V4L2_PIX_FMT_GREY,
642 .name = "Monochrome 8 bit", 643 .name = "Monochrome 8 bit",
643 .bits_per_sample = 8, 644 .bits_per_sample = 8,
644 .packing = SOC_MBUS_PACKING_NONE, 645 .packing = SOC_MBUS_PACKING_NONE,
645 .order = SOC_MBUS_ORDER_LE, 646 .order = SOC_MBUS_ORDER_LE,
647 .layout = SOC_MBUS_LAYOUT_PACKED,
646 }, 648 },
647}; 649};
648 650
diff --git a/drivers/media/video/omap1_camera.c b/drivers/media/video/omap1_camera.c
index addab76048c3..c7e41145041f 100644
--- a/drivers/media/video/omap1_camera.c
+++ b/drivers/media/video/omap1_camera.c
@@ -989,6 +989,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
989 .bits_per_sample = 8, 989 .bits_per_sample = 8,
990 .packing = SOC_MBUS_PACKING_2X8_PADHI, 990 .packing = SOC_MBUS_PACKING_2X8_PADHI,
991 .order = SOC_MBUS_ORDER_BE, 991 .order = SOC_MBUS_ORDER_BE,
992 .layout = SOC_MBUS_LAYOUT_PACKED,
992 }, 993 },
993}, { 994}, {
994 .code = V4L2_MBUS_FMT_VYUY8_2X8, 995 .code = V4L2_MBUS_FMT_VYUY8_2X8,
@@ -998,6 +999,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
998 .bits_per_sample = 8, 999 .bits_per_sample = 8,
999 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1000 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1000 .order = SOC_MBUS_ORDER_BE, 1001 .order = SOC_MBUS_ORDER_BE,
1002 .layout = SOC_MBUS_LAYOUT_PACKED,
1001 }, 1003 },
1002}, { 1004}, {
1003 .code = V4L2_MBUS_FMT_YUYV8_2X8, 1005 .code = V4L2_MBUS_FMT_YUYV8_2X8,
@@ -1007,6 +1009,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
1007 .bits_per_sample = 8, 1009 .bits_per_sample = 8,
1008 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1010 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1009 .order = SOC_MBUS_ORDER_BE, 1011 .order = SOC_MBUS_ORDER_BE,
1012 .layout = SOC_MBUS_LAYOUT_PACKED,
1010 }, 1013 },
1011}, { 1014}, {
1012 .code = V4L2_MBUS_FMT_YVYU8_2X8, 1015 .code = V4L2_MBUS_FMT_YVYU8_2X8,
@@ -1016,6 +1019,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
1016 .bits_per_sample = 8, 1019 .bits_per_sample = 8,
1017 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1020 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1018 .order = SOC_MBUS_ORDER_BE, 1021 .order = SOC_MBUS_ORDER_BE,
1022 .layout = SOC_MBUS_LAYOUT_PACKED,
1019 }, 1023 },
1020}, { 1024}, {
1021 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE, 1025 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE,
@@ -1025,6 +1029,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
1025 .bits_per_sample = 8, 1029 .bits_per_sample = 8,
1026 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1030 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1027 .order = SOC_MBUS_ORDER_BE, 1031 .order = SOC_MBUS_ORDER_BE,
1032 .layout = SOC_MBUS_LAYOUT_PACKED,
1028 }, 1033 },
1029}, { 1034}, {
1030 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE, 1035 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE,
@@ -1034,6 +1039,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
1034 .bits_per_sample = 8, 1039 .bits_per_sample = 8,
1035 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1040 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1036 .order = SOC_MBUS_ORDER_BE, 1041 .order = SOC_MBUS_ORDER_BE,
1042 .layout = SOC_MBUS_LAYOUT_PACKED,
1037 }, 1043 },
1038}, { 1044}, {
1039 .code = V4L2_MBUS_FMT_RGB565_2X8_BE, 1045 .code = V4L2_MBUS_FMT_RGB565_2X8_BE,
@@ -1043,6 +1049,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
1043 .bits_per_sample = 8, 1049 .bits_per_sample = 8,
1044 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1050 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1045 .order = SOC_MBUS_ORDER_BE, 1051 .order = SOC_MBUS_ORDER_BE,
1052 .layout = SOC_MBUS_LAYOUT_PACKED,
1046 }, 1053 },
1047}, { 1054}, {
1048 .code = V4L2_MBUS_FMT_RGB565_2X8_LE, 1055 .code = V4L2_MBUS_FMT_RGB565_2X8_LE,
@@ -1052,6 +1059,7 @@ static const struct soc_mbus_lookup omap1_cam_formats[] = {
1052 .bits_per_sample = 8, 1059 .bits_per_sample = 8,
1053 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1060 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1054 .order = SOC_MBUS_ORDER_BE, 1061 .order = SOC_MBUS_ORDER_BE,
1062 .layout = SOC_MBUS_LAYOUT_PACKED,
1055 }, 1063 },
1056}, 1064},
1057}; 1065};
diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c
index 6130abe31c43..9c21e01f2c24 100644
--- a/drivers/media/video/pxa_camera.c
+++ b/drivers/media/video/pxa_camera.c
@@ -1234,6 +1234,7 @@ static const struct soc_mbus_pixelfmt pxa_camera_formats[] = {
1234 .bits_per_sample = 8, 1234 .bits_per_sample = 8,
1235 .packing = SOC_MBUS_PACKING_2X8_PADHI, 1235 .packing = SOC_MBUS_PACKING_2X8_PADHI,
1236 .order = SOC_MBUS_ORDER_LE, 1236 .order = SOC_MBUS_ORDER_LE,
1237 .layout = SOC_MBUS_LAYOUT_PLANAR_2Y_U_V,
1237 }, 1238 },
1238}; 1239};
1239 1240
diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c
index 3d28c9c7a2c1..87b07bcab323 100644
--- a/drivers/media/video/sh_mobile_ceu_camera.c
+++ b/drivers/media/video/sh_mobile_ceu_camera.c
@@ -955,24 +955,28 @@ static const struct soc_mbus_pixelfmt sh_mobile_ceu_formats[] = {
955 .bits_per_sample = 8, 955 .bits_per_sample = 8,
956 .packing = SOC_MBUS_PACKING_1_5X8, 956 .packing = SOC_MBUS_PACKING_1_5X8,
957 .order = SOC_MBUS_ORDER_LE, 957 .order = SOC_MBUS_ORDER_LE,
958 .layout = SOC_MBUS_LAYOUT_PLANAR_2Y_C,
958 }, { 959 }, {
959 .fourcc = V4L2_PIX_FMT_NV21, 960 .fourcc = V4L2_PIX_FMT_NV21,
960 .name = "NV21", 961 .name = "NV21",
961 .bits_per_sample = 8, 962 .bits_per_sample = 8,
962 .packing = SOC_MBUS_PACKING_1_5X8, 963 .packing = SOC_MBUS_PACKING_1_5X8,
963 .order = SOC_MBUS_ORDER_LE, 964 .order = SOC_MBUS_ORDER_LE,
965 .layout = SOC_MBUS_LAYOUT_PLANAR_2Y_C,
964 }, { 966 }, {
965 .fourcc = V4L2_PIX_FMT_NV16, 967 .fourcc = V4L2_PIX_FMT_NV16,
966 .name = "NV16", 968 .name = "NV16",
967 .bits_per_sample = 8, 969 .bits_per_sample = 8,
968 .packing = SOC_MBUS_PACKING_2X8_PADHI, 970 .packing = SOC_MBUS_PACKING_2X8_PADHI,
969 .order = SOC_MBUS_ORDER_LE, 971 .order = SOC_MBUS_ORDER_LE,
972 .layout = SOC_MBUS_LAYOUT_PLANAR_Y_C,
970 }, { 973 }, {
971 .fourcc = V4L2_PIX_FMT_NV61, 974 .fourcc = V4L2_PIX_FMT_NV61,
972 .name = "NV61", 975 .name = "NV61",
973 .bits_per_sample = 8, 976 .bits_per_sample = 8,
974 .packing = SOC_MBUS_PACKING_2X8_PADHI, 977 .packing = SOC_MBUS_PACKING_2X8_PADHI,
975 .order = SOC_MBUS_ORDER_LE, 978 .order = SOC_MBUS_ORDER_LE,
979 .layout = SOC_MBUS_LAYOUT_PLANAR_Y_C,
976 }, 980 },
977}; 981};
978 982
diff --git a/drivers/media/video/soc_mediabus.c b/drivers/media/video/soc_mediabus.c
index cf7f2194ded4..44dba6c0f790 100644
--- a/drivers/media/video/soc_mediabus.c
+++ b/drivers/media/video/soc_mediabus.c
@@ -24,6 +24,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
24 .bits_per_sample = 8, 24 .bits_per_sample = 8,
25 .packing = SOC_MBUS_PACKING_2X8_PADHI, 25 .packing = SOC_MBUS_PACKING_2X8_PADHI,
26 .order = SOC_MBUS_ORDER_LE, 26 .order = SOC_MBUS_ORDER_LE,
27 .layout = SOC_MBUS_LAYOUT_PACKED,
27 }, 28 },
28}, { 29}, {
29 .code = V4L2_MBUS_FMT_YVYU8_2X8, 30 .code = V4L2_MBUS_FMT_YVYU8_2X8,
@@ -33,6 +34,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
33 .bits_per_sample = 8, 34 .bits_per_sample = 8,
34 .packing = SOC_MBUS_PACKING_2X8_PADHI, 35 .packing = SOC_MBUS_PACKING_2X8_PADHI,
35 .order = SOC_MBUS_ORDER_LE, 36 .order = SOC_MBUS_ORDER_LE,
37 .layout = SOC_MBUS_LAYOUT_PACKED,
36 }, 38 },
37}, { 39}, {
38 .code = V4L2_MBUS_FMT_UYVY8_2X8, 40 .code = V4L2_MBUS_FMT_UYVY8_2X8,
@@ -42,6 +44,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
42 .bits_per_sample = 8, 44 .bits_per_sample = 8,
43 .packing = SOC_MBUS_PACKING_2X8_PADHI, 45 .packing = SOC_MBUS_PACKING_2X8_PADHI,
44 .order = SOC_MBUS_ORDER_LE, 46 .order = SOC_MBUS_ORDER_LE,
47 .layout = SOC_MBUS_LAYOUT_PACKED,
45 }, 48 },
46}, { 49}, {
47 .code = V4L2_MBUS_FMT_VYUY8_2X8, 50 .code = V4L2_MBUS_FMT_VYUY8_2X8,
@@ -51,6 +54,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
51 .bits_per_sample = 8, 54 .bits_per_sample = 8,
52 .packing = SOC_MBUS_PACKING_2X8_PADHI, 55 .packing = SOC_MBUS_PACKING_2X8_PADHI,
53 .order = SOC_MBUS_ORDER_LE, 56 .order = SOC_MBUS_ORDER_LE,
57 .layout = SOC_MBUS_LAYOUT_PACKED,
54 }, 58 },
55}, { 59}, {
56 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE, 60 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE,
@@ -60,6 +64,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
60 .bits_per_sample = 8, 64 .bits_per_sample = 8,
61 .packing = SOC_MBUS_PACKING_2X8_PADHI, 65 .packing = SOC_MBUS_PACKING_2X8_PADHI,
62 .order = SOC_MBUS_ORDER_LE, 66 .order = SOC_MBUS_ORDER_LE,
67 .layout = SOC_MBUS_LAYOUT_PACKED,
63 }, 68 },
64}, { 69}, {
65 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE, 70 .code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE,
@@ -69,6 +74,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
69 .bits_per_sample = 8, 74 .bits_per_sample = 8,
70 .packing = SOC_MBUS_PACKING_2X8_PADHI, 75 .packing = SOC_MBUS_PACKING_2X8_PADHI,
71 .order = SOC_MBUS_ORDER_LE, 76 .order = SOC_MBUS_ORDER_LE,
77 .layout = SOC_MBUS_LAYOUT_PACKED,
72 }, 78 },
73}, { 79}, {
74 .code = V4L2_MBUS_FMT_RGB565_2X8_LE, 80 .code = V4L2_MBUS_FMT_RGB565_2X8_LE,
@@ -78,6 +84,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
78 .bits_per_sample = 8, 84 .bits_per_sample = 8,
79 .packing = SOC_MBUS_PACKING_2X8_PADHI, 85 .packing = SOC_MBUS_PACKING_2X8_PADHI,
80 .order = SOC_MBUS_ORDER_LE, 86 .order = SOC_MBUS_ORDER_LE,
87 .layout = SOC_MBUS_LAYOUT_PACKED,
81 }, 88 },
82}, { 89}, {
83 .code = V4L2_MBUS_FMT_RGB565_2X8_BE, 90 .code = V4L2_MBUS_FMT_RGB565_2X8_BE,
@@ -87,6 +94,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
87 .bits_per_sample = 8, 94 .bits_per_sample = 8,
88 .packing = SOC_MBUS_PACKING_2X8_PADHI, 95 .packing = SOC_MBUS_PACKING_2X8_PADHI,
89 .order = SOC_MBUS_ORDER_LE, 96 .order = SOC_MBUS_ORDER_LE,
97 .layout = SOC_MBUS_LAYOUT_PACKED,
90 }, 98 },
91}, { 99}, {
92 .code = V4L2_MBUS_FMT_SBGGR8_1X8, 100 .code = V4L2_MBUS_FMT_SBGGR8_1X8,
@@ -96,6 +104,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
96 .bits_per_sample = 8, 104 .bits_per_sample = 8,
97 .packing = SOC_MBUS_PACKING_NONE, 105 .packing = SOC_MBUS_PACKING_NONE,
98 .order = SOC_MBUS_ORDER_LE, 106 .order = SOC_MBUS_ORDER_LE,
107 .layout = SOC_MBUS_LAYOUT_PACKED,
99 }, 108 },
100}, { 109}, {
101 .code = V4L2_MBUS_FMT_SBGGR10_1X10, 110 .code = V4L2_MBUS_FMT_SBGGR10_1X10,
@@ -105,6 +114,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
105 .bits_per_sample = 10, 114 .bits_per_sample = 10,
106 .packing = SOC_MBUS_PACKING_EXTEND16, 115 .packing = SOC_MBUS_PACKING_EXTEND16,
107 .order = SOC_MBUS_ORDER_LE, 116 .order = SOC_MBUS_ORDER_LE,
117 .layout = SOC_MBUS_LAYOUT_PACKED,
108 }, 118 },
109}, { 119}, {
110 .code = V4L2_MBUS_FMT_Y8_1X8, 120 .code = V4L2_MBUS_FMT_Y8_1X8,
@@ -114,6 +124,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
114 .bits_per_sample = 8, 124 .bits_per_sample = 8,
115 .packing = SOC_MBUS_PACKING_NONE, 125 .packing = SOC_MBUS_PACKING_NONE,
116 .order = SOC_MBUS_ORDER_LE, 126 .order = SOC_MBUS_ORDER_LE,
127 .layout = SOC_MBUS_LAYOUT_PACKED,
117 }, 128 },
118}, { 129}, {
119 .code = V4L2_MBUS_FMT_Y10_1X10, 130 .code = V4L2_MBUS_FMT_Y10_1X10,
@@ -123,6 +134,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
123 .bits_per_sample = 10, 134 .bits_per_sample = 10,
124 .packing = SOC_MBUS_PACKING_EXTEND16, 135 .packing = SOC_MBUS_PACKING_EXTEND16,
125 .order = SOC_MBUS_ORDER_LE, 136 .order = SOC_MBUS_ORDER_LE,
137 .layout = SOC_MBUS_LAYOUT_PACKED,
126 }, 138 },
127}, { 139}, {
128 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE, 140 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE,
@@ -132,6 +144,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
132 .bits_per_sample = 8, 144 .bits_per_sample = 8,
133 .packing = SOC_MBUS_PACKING_2X8_PADHI, 145 .packing = SOC_MBUS_PACKING_2X8_PADHI,
134 .order = SOC_MBUS_ORDER_LE, 146 .order = SOC_MBUS_ORDER_LE,
147 .layout = SOC_MBUS_LAYOUT_PACKED,
135 }, 148 },
136}, { 149}, {
137 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE, 150 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE,
@@ -141,6 +154,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
141 .bits_per_sample = 8, 154 .bits_per_sample = 8,
142 .packing = SOC_MBUS_PACKING_2X8_PADLO, 155 .packing = SOC_MBUS_PACKING_2X8_PADLO,
143 .order = SOC_MBUS_ORDER_LE, 156 .order = SOC_MBUS_ORDER_LE,
157 .layout = SOC_MBUS_LAYOUT_PACKED,
144 }, 158 },
145}, { 159}, {
146 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE, 160 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE,
@@ -150,6 +164,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
150 .bits_per_sample = 8, 164 .bits_per_sample = 8,
151 .packing = SOC_MBUS_PACKING_2X8_PADHI, 165 .packing = SOC_MBUS_PACKING_2X8_PADHI,
152 .order = SOC_MBUS_ORDER_BE, 166 .order = SOC_MBUS_ORDER_BE,
167 .layout = SOC_MBUS_LAYOUT_PACKED,
153 }, 168 },
154}, { 169}, {
155 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE, 170 .code = V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE,
@@ -159,6 +174,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
159 .bits_per_sample = 8, 174 .bits_per_sample = 8,
160 .packing = SOC_MBUS_PACKING_2X8_PADLO, 175 .packing = SOC_MBUS_PACKING_2X8_PADLO,
161 .order = SOC_MBUS_ORDER_BE, 176 .order = SOC_MBUS_ORDER_BE,
177 .layout = SOC_MBUS_LAYOUT_PACKED,
162 }, 178 },
163}, { 179}, {
164 .code = V4L2_MBUS_FMT_JPEG_1X8, 180 .code = V4L2_MBUS_FMT_JPEG_1X8,
@@ -168,6 +184,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
168 .bits_per_sample = 8, 184 .bits_per_sample = 8,
169 .packing = SOC_MBUS_PACKING_VARIABLE, 185 .packing = SOC_MBUS_PACKING_VARIABLE,
170 .order = SOC_MBUS_ORDER_LE, 186 .order = SOC_MBUS_ORDER_LE,
187 .layout = SOC_MBUS_LAYOUT_PACKED,
171 }, 188 },
172}, { 189}, {
173 .code = V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE, 190 .code = V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE,
@@ -177,6 +194,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
177 .bits_per_sample = 8, 194 .bits_per_sample = 8,
178 .packing = SOC_MBUS_PACKING_2X8_PADHI, 195 .packing = SOC_MBUS_PACKING_2X8_PADHI,
179 .order = SOC_MBUS_ORDER_BE, 196 .order = SOC_MBUS_ORDER_BE,
197 .layout = SOC_MBUS_LAYOUT_PACKED,
180 }, 198 },
181}, { 199}, {
182 .code = V4L2_MBUS_FMT_YUYV8_1_5X8, 200 .code = V4L2_MBUS_FMT_YUYV8_1_5X8,
@@ -186,6 +204,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
186 .bits_per_sample = 8, 204 .bits_per_sample = 8,
187 .packing = SOC_MBUS_PACKING_1_5X8, 205 .packing = SOC_MBUS_PACKING_1_5X8,
188 .order = SOC_MBUS_ORDER_LE, 206 .order = SOC_MBUS_ORDER_LE,
207 .layout = SOC_MBUS_LAYOUT_PACKED,
189 }, 208 },
190}, { 209}, {
191 .code = V4L2_MBUS_FMT_YVYU8_1_5X8, 210 .code = V4L2_MBUS_FMT_YVYU8_1_5X8,
@@ -195,6 +214,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
195 .bits_per_sample = 8, 214 .bits_per_sample = 8,
196 .packing = SOC_MBUS_PACKING_1_5X8, 215 .packing = SOC_MBUS_PACKING_1_5X8,
197 .order = SOC_MBUS_ORDER_LE, 216 .order = SOC_MBUS_ORDER_LE,
217 .layout = SOC_MBUS_LAYOUT_PACKED,
198 }, 218 },
199}, { 219}, {
200 .code = V4L2_MBUS_FMT_UYVY8_1X16, 220 .code = V4L2_MBUS_FMT_UYVY8_1X16,
@@ -204,6 +224,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
204 .bits_per_sample = 16, 224 .bits_per_sample = 16,
205 .packing = SOC_MBUS_PACKING_EXTEND16, 225 .packing = SOC_MBUS_PACKING_EXTEND16,
206 .order = SOC_MBUS_ORDER_LE, 226 .order = SOC_MBUS_ORDER_LE,
227 .layout = SOC_MBUS_LAYOUT_PACKED,
207 }, 228 },
208}, { 229}, {
209 .code = V4L2_MBUS_FMT_VYUY8_1X16, 230 .code = V4L2_MBUS_FMT_VYUY8_1X16,
@@ -213,6 +234,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
213 .bits_per_sample = 16, 234 .bits_per_sample = 16,
214 .packing = SOC_MBUS_PACKING_EXTEND16, 235 .packing = SOC_MBUS_PACKING_EXTEND16,
215 .order = SOC_MBUS_ORDER_LE, 236 .order = SOC_MBUS_ORDER_LE,
237 .layout = SOC_MBUS_LAYOUT_PACKED,
216 }, 238 },
217}, { 239}, {
218 .code = V4L2_MBUS_FMT_YUYV8_1X16, 240 .code = V4L2_MBUS_FMT_YUYV8_1X16,
@@ -222,6 +244,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
222 .bits_per_sample = 16, 244 .bits_per_sample = 16,
223 .packing = SOC_MBUS_PACKING_EXTEND16, 245 .packing = SOC_MBUS_PACKING_EXTEND16,
224 .order = SOC_MBUS_ORDER_LE, 246 .order = SOC_MBUS_ORDER_LE,
247 .layout = SOC_MBUS_LAYOUT_PACKED,
225 }, 248 },
226}, { 249}, {
227 .code = V4L2_MBUS_FMT_YVYU8_1X16, 250 .code = V4L2_MBUS_FMT_YVYU8_1X16,
@@ -231,6 +254,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
231 .bits_per_sample = 16, 254 .bits_per_sample = 16,
232 .packing = SOC_MBUS_PACKING_EXTEND16, 255 .packing = SOC_MBUS_PACKING_EXTEND16,
233 .order = SOC_MBUS_ORDER_LE, 256 .order = SOC_MBUS_ORDER_LE,
257 .layout = SOC_MBUS_LAYOUT_PACKED,
234 }, 258 },
235}, { 259}, {
236 .code = V4L2_MBUS_FMT_SGRBG8_1X8, 260 .code = V4L2_MBUS_FMT_SGRBG8_1X8,
@@ -240,6 +264,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
240 .bits_per_sample = 8, 264 .bits_per_sample = 8,
241 .packing = SOC_MBUS_PACKING_NONE, 265 .packing = SOC_MBUS_PACKING_NONE,
242 .order = SOC_MBUS_ORDER_LE, 266 .order = SOC_MBUS_ORDER_LE,
267 .layout = SOC_MBUS_LAYOUT_PACKED,
243 }, 268 },
244}, { 269}, {
245 .code = V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8, 270 .code = V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8,
@@ -249,6 +274,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
249 .bits_per_sample = 8, 274 .bits_per_sample = 8,
250 .packing = SOC_MBUS_PACKING_NONE, 275 .packing = SOC_MBUS_PACKING_NONE,
251 .order = SOC_MBUS_ORDER_LE, 276 .order = SOC_MBUS_ORDER_LE,
277 .layout = SOC_MBUS_LAYOUT_PACKED,
252 }, 278 },
253}, { 279}, {
254 .code = V4L2_MBUS_FMT_SGBRG10_1X10, 280 .code = V4L2_MBUS_FMT_SGBRG10_1X10,
@@ -258,6 +284,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
258 .bits_per_sample = 10, 284 .bits_per_sample = 10,
259 .packing = SOC_MBUS_PACKING_EXTEND16, 285 .packing = SOC_MBUS_PACKING_EXTEND16,
260 .order = SOC_MBUS_ORDER_LE, 286 .order = SOC_MBUS_ORDER_LE,
287 .layout = SOC_MBUS_LAYOUT_PACKED,
261 }, 288 },
262}, { 289}, {
263 .code = V4L2_MBUS_FMT_SGRBG10_1X10, 290 .code = V4L2_MBUS_FMT_SGRBG10_1X10,
@@ -267,6 +294,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
267 .bits_per_sample = 10, 294 .bits_per_sample = 10,
268 .packing = SOC_MBUS_PACKING_EXTEND16, 295 .packing = SOC_MBUS_PACKING_EXTEND16,
269 .order = SOC_MBUS_ORDER_LE, 296 .order = SOC_MBUS_ORDER_LE,
297 .layout = SOC_MBUS_LAYOUT_PACKED,
270 }, 298 },
271}, { 299}, {
272 .code = V4L2_MBUS_FMT_SRGGB10_1X10, 300 .code = V4L2_MBUS_FMT_SRGGB10_1X10,
@@ -276,6 +304,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
276 .bits_per_sample = 10, 304 .bits_per_sample = 10,
277 .packing = SOC_MBUS_PACKING_EXTEND16, 305 .packing = SOC_MBUS_PACKING_EXTEND16,
278 .order = SOC_MBUS_ORDER_LE, 306 .order = SOC_MBUS_ORDER_LE,
307 .layout = SOC_MBUS_LAYOUT_PACKED,
279 }, 308 },
280}, { 309}, {
281 .code = V4L2_MBUS_FMT_SBGGR12_1X12, 310 .code = V4L2_MBUS_FMT_SBGGR12_1X12,
@@ -285,6 +314,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
285 .bits_per_sample = 12, 314 .bits_per_sample = 12,
286 .packing = SOC_MBUS_PACKING_EXTEND16, 315 .packing = SOC_MBUS_PACKING_EXTEND16,
287 .order = SOC_MBUS_ORDER_LE, 316 .order = SOC_MBUS_ORDER_LE,
317 .layout = SOC_MBUS_LAYOUT_PACKED,
288 }, 318 },
289}, { 319}, {
290 .code = V4L2_MBUS_FMT_SGBRG12_1X12, 320 .code = V4L2_MBUS_FMT_SGBRG12_1X12,
@@ -294,6 +324,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
294 .bits_per_sample = 12, 324 .bits_per_sample = 12,
295 .packing = SOC_MBUS_PACKING_EXTEND16, 325 .packing = SOC_MBUS_PACKING_EXTEND16,
296 .order = SOC_MBUS_ORDER_LE, 326 .order = SOC_MBUS_ORDER_LE,
327 .layout = SOC_MBUS_LAYOUT_PACKED,
297 }, 328 },
298}, { 329}, {
299 .code = V4L2_MBUS_FMT_SGRBG12_1X12, 330 .code = V4L2_MBUS_FMT_SGRBG12_1X12,
@@ -303,6 +334,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
303 .bits_per_sample = 12, 334 .bits_per_sample = 12,
304 .packing = SOC_MBUS_PACKING_EXTEND16, 335 .packing = SOC_MBUS_PACKING_EXTEND16,
305 .order = SOC_MBUS_ORDER_LE, 336 .order = SOC_MBUS_ORDER_LE,
337 .layout = SOC_MBUS_LAYOUT_PACKED,
306 }, 338 },
307}, { 339}, {
308 .code = V4L2_MBUS_FMT_SRGGB12_1X12, 340 .code = V4L2_MBUS_FMT_SRGGB12_1X12,
@@ -312,6 +344,7 @@ static const struct soc_mbus_lookup mbus_fmt[] = {
312 .bits_per_sample = 12, 344 .bits_per_sample = 12,
313 .packing = SOC_MBUS_PACKING_EXTEND16, 345 .packing = SOC_MBUS_PACKING_EXTEND16,
314 .order = SOC_MBUS_ORDER_LE, 346 .order = SOC_MBUS_ORDER_LE,
347 .layout = SOC_MBUS_LAYOUT_PACKED,
315 }, 348 },
316}, 349},
317}; 350};
diff --git a/include/media/soc_mediabus.h b/include/media/soc_mediabus.h
index 73f1e7eb60f3..e18eed4e5678 100644
--- a/include/media/soc_mediabus.h
+++ b/include/media/soc_mediabus.h
@@ -47,6 +47,24 @@ enum soc_mbus_order {
47}; 47};
48 48
49/** 49/**
50 * enum soc_mbus_layout - planes layout in memory
51 * @SOC_MBUS_LAYOUT_PACKED: color components packed
52 * @SOC_MBUS_LAYOUT_PLANAR_2Y_U_V: YUV components stored in 3 planes (4:2:2)
53 * @SOC_MBUS_LAYOUT_PLANAR_2Y_C: YUV components stored in a luma and a
54 * chroma plane (C plane is half the size
55 * of Y plane)
56 * @SOC_MBUS_LAYOUT_PLANAR_Y_C: YUV components stored in a luma and a
57 * chroma plane (C plane is the same size
58 * as Y plane)
59 */
60enum soc_mbus_layout {
61 SOC_MBUS_LAYOUT_PACKED = 0,
62 SOC_MBUS_LAYOUT_PLANAR_2Y_U_V,
63 SOC_MBUS_LAYOUT_PLANAR_2Y_C,
64 SOC_MBUS_LAYOUT_PLANAR_Y_C,
65};
66
67/**
50 * struct soc_mbus_pixelfmt - Data format on the media bus 68 * struct soc_mbus_pixelfmt - Data format on the media bus
51 * @name: Name of the format 69 * @name: Name of the format
52 * @fourcc: Fourcc code, that will be obtained if the data is 70 * @fourcc: Fourcc code, that will be obtained if the data is
@@ -60,6 +78,7 @@ struct soc_mbus_pixelfmt {
60 u32 fourcc; 78 u32 fourcc;
61 enum soc_mbus_packing packing; 79 enum soc_mbus_packing packing;
62 enum soc_mbus_order order; 80 enum soc_mbus_order order;
81 enum soc_mbus_layout layout;
63 u8 bits_per_sample; 82 u8 bits_per_sample;
64}; 83};
65 84