diff options
Diffstat (limited to 'drivers/media/video/soc_mediabus.c')
-rw-r--r-- | drivers/media/video/soc_mediabus.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/drivers/media/video/soc_mediabus.c b/drivers/media/video/soc_mediabus.c index cf7f2194ded4..89dce097a827 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 | }; |
@@ -345,6 +378,9 @@ EXPORT_SYMBOL(soc_mbus_samples_per_pixel); | |||
345 | 378 | ||
346 | s32 soc_mbus_bytes_per_line(u32 width, const struct soc_mbus_pixelfmt *mf) | 379 | s32 soc_mbus_bytes_per_line(u32 width, const struct soc_mbus_pixelfmt *mf) |
347 | { | 380 | { |
381 | if (mf->layout != SOC_MBUS_LAYOUT_PACKED) | ||
382 | return width * mf->bits_per_sample / 8; | ||
383 | |||
348 | switch (mf->packing) { | 384 | switch (mf->packing) { |
349 | case SOC_MBUS_PACKING_NONE: | 385 | case SOC_MBUS_PACKING_NONE: |
350 | return width * mf->bits_per_sample / 8; | 386 | return width * mf->bits_per_sample / 8; |
@@ -361,6 +397,24 @@ s32 soc_mbus_bytes_per_line(u32 width, const struct soc_mbus_pixelfmt *mf) | |||
361 | } | 397 | } |
362 | EXPORT_SYMBOL(soc_mbus_bytes_per_line); | 398 | EXPORT_SYMBOL(soc_mbus_bytes_per_line); |
363 | 399 | ||
400 | s32 soc_mbus_image_size(const struct soc_mbus_pixelfmt *mf, | ||
401 | u32 bytes_per_line, u32 height) | ||
402 | { | ||
403 | if (mf->layout == SOC_MBUS_LAYOUT_PACKED) | ||
404 | return bytes_per_line * height; | ||
405 | |||
406 | switch (mf->packing) { | ||
407 | case SOC_MBUS_PACKING_2X8_PADHI: | ||
408 | case SOC_MBUS_PACKING_2X8_PADLO: | ||
409 | return bytes_per_line * height * 2; | ||
410 | case SOC_MBUS_PACKING_1_5X8: | ||
411 | return bytes_per_line * height * 3 / 2; | ||
412 | default: | ||
413 | return -EINVAL; | ||
414 | } | ||
415 | } | ||
416 | EXPORT_SYMBOL(soc_mbus_image_size); | ||
417 | |||
364 | const struct soc_mbus_pixelfmt *soc_mbus_find_fmtdesc( | 418 | const struct soc_mbus_pixelfmt *soc_mbus_find_fmtdesc( |
365 | enum v4l2_mbus_pixelcode code, | 419 | enum v4l2_mbus_pixelcode code, |
366 | const struct soc_mbus_lookup *lookup, | 420 | const struct soc_mbus_lookup *lookup, |