| .. | .. |
|---|
| 202 | 202 | case V4L2_PIX_FMT_SGBRG12: |
|---|
| 203 | 203 | case V4L2_PIX_FMT_SGRBG12: |
|---|
| 204 | 204 | case V4L2_PIX_FMT_SRGGB12: |
|---|
| 205 | + case V4L2_PIX_FMT_SBGGR16: |
|---|
| 206 | + case V4L2_PIX_FMT_SGBRG16: |
|---|
| 207 | + case V4L2_PIX_FMT_SGRBG16: |
|---|
| 208 | + case V4L2_PIX_FMT_SRGGB16: |
|---|
| 205 | 209 | tpg->interleaved = true; |
|---|
| 206 | 210 | tpg->vdownsampling[1] = 1; |
|---|
| 207 | 211 | tpg->hdownsampling[1] = 1; |
|---|
| 208 | 212 | tpg->planes = 2; |
|---|
| 209 | | - /* fall through */ |
|---|
| 213 | + fallthrough; |
|---|
| 210 | 214 | case V4L2_PIX_FMT_RGB332: |
|---|
| 211 | 215 | case V4L2_PIX_FMT_RGB565: |
|---|
| 212 | 216 | case V4L2_PIX_FMT_RGB565X: |
|---|
| 213 | 217 | case V4L2_PIX_FMT_RGB444: |
|---|
| 214 | 218 | case V4L2_PIX_FMT_XRGB444: |
|---|
| 215 | 219 | case V4L2_PIX_FMT_ARGB444: |
|---|
| 220 | + case V4L2_PIX_FMT_RGBX444: |
|---|
| 221 | + case V4L2_PIX_FMT_RGBA444: |
|---|
| 222 | + case V4L2_PIX_FMT_XBGR444: |
|---|
| 223 | + case V4L2_PIX_FMT_ABGR444: |
|---|
| 224 | + case V4L2_PIX_FMT_BGRX444: |
|---|
| 225 | + case V4L2_PIX_FMT_BGRA444: |
|---|
| 216 | 226 | case V4L2_PIX_FMT_RGB555: |
|---|
| 217 | 227 | case V4L2_PIX_FMT_XRGB555: |
|---|
| 218 | 228 | case V4L2_PIX_FMT_ARGB555: |
|---|
| 229 | + case V4L2_PIX_FMT_RGBX555: |
|---|
| 230 | + case V4L2_PIX_FMT_RGBA555: |
|---|
| 231 | + case V4L2_PIX_FMT_XBGR555: |
|---|
| 232 | + case V4L2_PIX_FMT_ABGR555: |
|---|
| 233 | + case V4L2_PIX_FMT_BGRX555: |
|---|
| 234 | + case V4L2_PIX_FMT_BGRA555: |
|---|
| 219 | 235 | case V4L2_PIX_FMT_RGB555X: |
|---|
| 220 | 236 | case V4L2_PIX_FMT_XRGB555X: |
|---|
| 221 | 237 | case V4L2_PIX_FMT_ARGB555X: |
|---|
| .. | .. |
|---|
| 228 | 244 | case V4L2_PIX_FMT_XBGR32: |
|---|
| 229 | 245 | case V4L2_PIX_FMT_ARGB32: |
|---|
| 230 | 246 | case V4L2_PIX_FMT_ABGR32: |
|---|
| 247 | + case V4L2_PIX_FMT_RGBX32: |
|---|
| 248 | + case V4L2_PIX_FMT_BGRX32: |
|---|
| 249 | + case V4L2_PIX_FMT_RGBA32: |
|---|
| 250 | + case V4L2_PIX_FMT_BGRA32: |
|---|
| 231 | 251 | tpg->color_enc = TGP_COLOR_ENC_RGB; |
|---|
| 232 | 252 | break; |
|---|
| 233 | 253 | case V4L2_PIX_FMT_GREY: |
|---|
| .. | .. |
|---|
| 235 | 255 | case V4L2_PIX_FMT_Y12: |
|---|
| 236 | 256 | case V4L2_PIX_FMT_Y16: |
|---|
| 237 | 257 | case V4L2_PIX_FMT_Y16_BE: |
|---|
| 258 | + case V4L2_PIX_FMT_Z16: |
|---|
| 238 | 259 | tpg->color_enc = TGP_COLOR_ENC_LUMA; |
|---|
| 239 | 260 | break; |
|---|
| 240 | 261 | case V4L2_PIX_FMT_YUV444: |
|---|
| 241 | 262 | case V4L2_PIX_FMT_YUV555: |
|---|
| 242 | 263 | case V4L2_PIX_FMT_YUV565: |
|---|
| 243 | 264 | case V4L2_PIX_FMT_YUV32: |
|---|
| 265 | + case V4L2_PIX_FMT_AYUV32: |
|---|
| 266 | + case V4L2_PIX_FMT_XYUV32: |
|---|
| 267 | + case V4L2_PIX_FMT_VUYA32: |
|---|
| 268 | + case V4L2_PIX_FMT_VUYX32: |
|---|
| 244 | 269 | tpg->color_enc = TGP_COLOR_ENC_YCBCR; |
|---|
| 245 | 270 | break; |
|---|
| 246 | 271 | case V4L2_PIX_FMT_YUV420M: |
|---|
| 247 | 272 | case V4L2_PIX_FMT_YVU420M: |
|---|
| 248 | 273 | tpg->buffers = 3; |
|---|
| 249 | | - /* fall through */ |
|---|
| 274 | + fallthrough; |
|---|
| 250 | 275 | case V4L2_PIX_FMT_YUV420: |
|---|
| 251 | 276 | case V4L2_PIX_FMT_YVU420: |
|---|
| 252 | 277 | tpg->vdownsampling[1] = 2; |
|---|
| .. | .. |
|---|
| 259 | 284 | case V4L2_PIX_FMT_YUV422M: |
|---|
| 260 | 285 | case V4L2_PIX_FMT_YVU422M: |
|---|
| 261 | 286 | tpg->buffers = 3; |
|---|
| 262 | | - /* fall through */ |
|---|
| 287 | + fallthrough; |
|---|
| 263 | 288 | case V4L2_PIX_FMT_YUV422P: |
|---|
| 264 | 289 | tpg->vdownsampling[1] = 1; |
|---|
| 265 | 290 | tpg->vdownsampling[2] = 1; |
|---|
| .. | .. |
|---|
| 271 | 296 | case V4L2_PIX_FMT_NV16M: |
|---|
| 272 | 297 | case V4L2_PIX_FMT_NV61M: |
|---|
| 273 | 298 | tpg->buffers = 2; |
|---|
| 274 | | - /* fall through */ |
|---|
| 299 | + fallthrough; |
|---|
| 275 | 300 | case V4L2_PIX_FMT_NV16: |
|---|
| 276 | 301 | case V4L2_PIX_FMT_NV61: |
|---|
| 277 | 302 | tpg->vdownsampling[1] = 1; |
|---|
| .. | .. |
|---|
| 283 | 308 | case V4L2_PIX_FMT_NV12M: |
|---|
| 284 | 309 | case V4L2_PIX_FMT_NV21M: |
|---|
| 285 | 310 | tpg->buffers = 2; |
|---|
| 286 | | - /* fall through */ |
|---|
| 311 | + fallthrough; |
|---|
| 287 | 312 | case V4L2_PIX_FMT_NV12: |
|---|
| 288 | 313 | case V4L2_PIX_FMT_NV21: |
|---|
| 289 | 314 | tpg->vdownsampling[1] = 2; |
|---|
| .. | .. |
|---|
| 334 | 359 | case V4L2_PIX_FMT_RGB444: |
|---|
| 335 | 360 | case V4L2_PIX_FMT_XRGB444: |
|---|
| 336 | 361 | case V4L2_PIX_FMT_ARGB444: |
|---|
| 362 | + case V4L2_PIX_FMT_RGBX444: |
|---|
| 363 | + case V4L2_PIX_FMT_RGBA444: |
|---|
| 364 | + case V4L2_PIX_FMT_XBGR444: |
|---|
| 365 | + case V4L2_PIX_FMT_ABGR444: |
|---|
| 366 | + case V4L2_PIX_FMT_BGRX444: |
|---|
| 367 | + case V4L2_PIX_FMT_BGRA444: |
|---|
| 337 | 368 | case V4L2_PIX_FMT_RGB555: |
|---|
| 338 | 369 | case V4L2_PIX_FMT_XRGB555: |
|---|
| 339 | 370 | case V4L2_PIX_FMT_ARGB555: |
|---|
| 371 | + case V4L2_PIX_FMT_RGBX555: |
|---|
| 372 | + case V4L2_PIX_FMT_RGBA555: |
|---|
| 373 | + case V4L2_PIX_FMT_XBGR555: |
|---|
| 374 | + case V4L2_PIX_FMT_ABGR555: |
|---|
| 375 | + case V4L2_PIX_FMT_BGRX555: |
|---|
| 376 | + case V4L2_PIX_FMT_BGRA555: |
|---|
| 340 | 377 | case V4L2_PIX_FMT_RGB555X: |
|---|
| 341 | 378 | case V4L2_PIX_FMT_XRGB555X: |
|---|
| 342 | 379 | case V4L2_PIX_FMT_ARGB555X: |
|---|
| .. | .. |
|---|
| 351 | 388 | case V4L2_PIX_FMT_Y12: |
|---|
| 352 | 389 | case V4L2_PIX_FMT_Y16: |
|---|
| 353 | 390 | case V4L2_PIX_FMT_Y16_BE: |
|---|
| 391 | + case V4L2_PIX_FMT_Z16: |
|---|
| 354 | 392 | tpg->twopixelsize[0] = 2 * 2; |
|---|
| 355 | 393 | break; |
|---|
| 356 | 394 | case V4L2_PIX_FMT_RGB24: |
|---|
| .. | .. |
|---|
| 365 | 403 | case V4L2_PIX_FMT_XBGR32: |
|---|
| 366 | 404 | case V4L2_PIX_FMT_ARGB32: |
|---|
| 367 | 405 | case V4L2_PIX_FMT_ABGR32: |
|---|
| 406 | + case V4L2_PIX_FMT_RGBX32: |
|---|
| 407 | + case V4L2_PIX_FMT_BGRX32: |
|---|
| 408 | + case V4L2_PIX_FMT_RGBA32: |
|---|
| 409 | + case V4L2_PIX_FMT_BGRA32: |
|---|
| 368 | 410 | case V4L2_PIX_FMT_YUV32: |
|---|
| 411 | + case V4L2_PIX_FMT_AYUV32: |
|---|
| 412 | + case V4L2_PIX_FMT_XYUV32: |
|---|
| 413 | + case V4L2_PIX_FMT_VUYA32: |
|---|
| 414 | + case V4L2_PIX_FMT_VUYX32: |
|---|
| 369 | 415 | case V4L2_PIX_FMT_HSV32: |
|---|
| 370 | 416 | tpg->twopixelsize[0] = 2 * 4; |
|---|
| 371 | 417 | break; |
|---|
| .. | .. |
|---|
| 392 | 438 | case V4L2_PIX_FMT_SGRBG12: |
|---|
| 393 | 439 | case V4L2_PIX_FMT_SGBRG12: |
|---|
| 394 | 440 | case V4L2_PIX_FMT_SBGGR12: |
|---|
| 441 | + case V4L2_PIX_FMT_SRGGB16: |
|---|
| 442 | + case V4L2_PIX_FMT_SGRBG16: |
|---|
| 443 | + case V4L2_PIX_FMT_SGBRG16: |
|---|
| 444 | + case V4L2_PIX_FMT_SBGGR16: |
|---|
| 395 | 445 | tpg->twopixelsize[0] = 4; |
|---|
| 396 | 446 | tpg->twopixelsize[1] = 4; |
|---|
| 397 | 447 | break; |
|---|
| .. | .. |
|---|
| 989 | 1039 | case V4L2_PIX_FMT_RGB444: |
|---|
| 990 | 1040 | case V4L2_PIX_FMT_XRGB444: |
|---|
| 991 | 1041 | case V4L2_PIX_FMT_ARGB444: |
|---|
| 1042 | + case V4L2_PIX_FMT_RGBX444: |
|---|
| 1043 | + case V4L2_PIX_FMT_RGBA444: |
|---|
| 1044 | + case V4L2_PIX_FMT_XBGR444: |
|---|
| 1045 | + case V4L2_PIX_FMT_ABGR444: |
|---|
| 1046 | + case V4L2_PIX_FMT_BGRX444: |
|---|
| 1047 | + case V4L2_PIX_FMT_BGRA444: |
|---|
| 992 | 1048 | r >>= 8; |
|---|
| 993 | 1049 | g >>= 8; |
|---|
| 994 | 1050 | b >>= 8; |
|---|
| .. | .. |
|---|
| 996 | 1052 | case V4L2_PIX_FMT_RGB555: |
|---|
| 997 | 1053 | case V4L2_PIX_FMT_XRGB555: |
|---|
| 998 | 1054 | case V4L2_PIX_FMT_ARGB555: |
|---|
| 1055 | + case V4L2_PIX_FMT_RGBX555: |
|---|
| 1056 | + case V4L2_PIX_FMT_RGBA555: |
|---|
| 1057 | + case V4L2_PIX_FMT_XBGR555: |
|---|
| 1058 | + case V4L2_PIX_FMT_ABGR555: |
|---|
| 1059 | + case V4L2_PIX_FMT_BGRX555: |
|---|
| 1060 | + case V4L2_PIX_FMT_BGRA555: |
|---|
| 999 | 1061 | case V4L2_PIX_FMT_RGB555X: |
|---|
| 1000 | 1062 | case V4L2_PIX_FMT_XRGB555X: |
|---|
| 1001 | 1063 | case V4L2_PIX_FMT_ARGB555X: |
|---|
| .. | .. |
|---|
| 1062 | 1124 | buf[0][offset+1] = r_y_h >> 4; |
|---|
| 1063 | 1125 | break; |
|---|
| 1064 | 1126 | case V4L2_PIX_FMT_Y16: |
|---|
| 1127 | + case V4L2_PIX_FMT_Z16: |
|---|
| 1065 | 1128 | /* |
|---|
| 1066 | 1129 | * Ideally both bytes should be set to r_y_h, but then you won't |
|---|
| 1067 | 1130 | * be able to detect endian problems. So keep it 0 except for |
|---|
| .. | .. |
|---|
| 1212 | 1275 | case V4L2_PIX_FMT_RGB444: |
|---|
| 1213 | 1276 | case V4L2_PIX_FMT_XRGB444: |
|---|
| 1214 | 1277 | alpha = 0; |
|---|
| 1215 | | - /* fall through */ |
|---|
| 1278 | + fallthrough; |
|---|
| 1216 | 1279 | case V4L2_PIX_FMT_YUV444: |
|---|
| 1217 | 1280 | case V4L2_PIX_FMT_ARGB444: |
|---|
| 1218 | 1281 | buf[0][offset] = (g_u_s << 4) | b_v; |
|---|
| 1219 | 1282 | buf[0][offset + 1] = (alpha & 0xf0) | r_y_h; |
|---|
| 1220 | 1283 | break; |
|---|
| 1284 | + case V4L2_PIX_FMT_RGBX444: |
|---|
| 1285 | + alpha = 0; |
|---|
| 1286 | + fallthrough; |
|---|
| 1287 | + case V4L2_PIX_FMT_RGBA444: |
|---|
| 1288 | + buf[0][offset] = (b_v << 4) | (alpha >> 4); |
|---|
| 1289 | + buf[0][offset + 1] = (r_y_h << 4) | g_u_s; |
|---|
| 1290 | + break; |
|---|
| 1291 | + case V4L2_PIX_FMT_XBGR444: |
|---|
| 1292 | + alpha = 0; |
|---|
| 1293 | + fallthrough; |
|---|
| 1294 | + case V4L2_PIX_FMT_ABGR444: |
|---|
| 1295 | + buf[0][offset] = (g_u_s << 4) | r_y_h; |
|---|
| 1296 | + buf[0][offset + 1] = (alpha & 0xf0) | b_v; |
|---|
| 1297 | + break; |
|---|
| 1298 | + case V4L2_PIX_FMT_BGRX444: |
|---|
| 1299 | + alpha = 0; |
|---|
| 1300 | + fallthrough; |
|---|
| 1301 | + case V4L2_PIX_FMT_BGRA444: |
|---|
| 1302 | + buf[0][offset] = (r_y_h << 4) | (alpha >> 4); |
|---|
| 1303 | + buf[0][offset + 1] = (b_v << 4) | g_u_s; |
|---|
| 1304 | + break; |
|---|
| 1221 | 1305 | case V4L2_PIX_FMT_RGB555: |
|---|
| 1222 | 1306 | case V4L2_PIX_FMT_XRGB555: |
|---|
| 1223 | 1307 | alpha = 0; |
|---|
| 1224 | | - /* fall through */ |
|---|
| 1308 | + fallthrough; |
|---|
| 1225 | 1309 | case V4L2_PIX_FMT_YUV555: |
|---|
| 1226 | 1310 | case V4L2_PIX_FMT_ARGB555: |
|---|
| 1227 | 1311 | buf[0][offset] = (g_u_s << 5) | b_v; |
|---|
| 1228 | 1312 | buf[0][offset + 1] = (alpha & 0x80) | (r_y_h << 2) |
|---|
| 1229 | 1313 | | (g_u_s >> 3); |
|---|
| 1230 | 1314 | break; |
|---|
| 1315 | + case V4L2_PIX_FMT_RGBX555: |
|---|
| 1316 | + alpha = 0; |
|---|
| 1317 | + fallthrough; |
|---|
| 1318 | + case V4L2_PIX_FMT_RGBA555: |
|---|
| 1319 | + buf[0][offset] = (g_u_s << 6) | (b_v << 1) | |
|---|
| 1320 | + ((alpha & 0x80) >> 7); |
|---|
| 1321 | + buf[0][offset + 1] = (r_y_h << 3) | (g_u_s >> 2); |
|---|
| 1322 | + break; |
|---|
| 1323 | + case V4L2_PIX_FMT_XBGR555: |
|---|
| 1324 | + alpha = 0; |
|---|
| 1325 | + fallthrough; |
|---|
| 1326 | + case V4L2_PIX_FMT_ABGR555: |
|---|
| 1327 | + buf[0][offset] = (g_u_s << 5) | r_y_h; |
|---|
| 1328 | + buf[0][offset + 1] = (alpha & 0x80) | (b_v << 2) |
|---|
| 1329 | + | (g_u_s >> 3); |
|---|
| 1330 | + break; |
|---|
| 1331 | + case V4L2_PIX_FMT_BGRX555: |
|---|
| 1332 | + alpha = 0; |
|---|
| 1333 | + fallthrough; |
|---|
| 1334 | + case V4L2_PIX_FMT_BGRA555: |
|---|
| 1335 | + buf[0][offset] = (g_u_s << 6) | (r_y_h << 1) | |
|---|
| 1336 | + ((alpha & 0x80) >> 7); |
|---|
| 1337 | + buf[0][offset + 1] = (b_v << 3) | (g_u_s >> 2); |
|---|
| 1338 | + break; |
|---|
| 1231 | 1339 | case V4L2_PIX_FMT_RGB555X: |
|---|
| 1232 | 1340 | case V4L2_PIX_FMT_XRGB555X: |
|---|
| 1233 | 1341 | alpha = 0; |
|---|
| 1234 | | - /* fall through */ |
|---|
| 1342 | + fallthrough; |
|---|
| 1235 | 1343 | case V4L2_PIX_FMT_ARGB555X: |
|---|
| 1236 | 1344 | buf[0][offset] = (alpha & 0x80) | (r_y_h << 2) | (g_u_s >> 3); |
|---|
| 1237 | 1345 | buf[0][offset + 1] = (g_u_s << 5) | b_v; |
|---|
| .. | .. |
|---|
| 1256 | 1364 | case V4L2_PIX_FMT_RGB32: |
|---|
| 1257 | 1365 | case V4L2_PIX_FMT_XRGB32: |
|---|
| 1258 | 1366 | case V4L2_PIX_FMT_HSV32: |
|---|
| 1367 | + case V4L2_PIX_FMT_XYUV32: |
|---|
| 1259 | 1368 | alpha = 0; |
|---|
| 1260 | | - /* fall through */ |
|---|
| 1369 | + fallthrough; |
|---|
| 1261 | 1370 | case V4L2_PIX_FMT_YUV32: |
|---|
| 1262 | 1371 | case V4L2_PIX_FMT_ARGB32: |
|---|
| 1372 | + case V4L2_PIX_FMT_AYUV32: |
|---|
| 1263 | 1373 | buf[0][offset] = alpha; |
|---|
| 1264 | 1374 | buf[0][offset + 1] = r_y_h; |
|---|
| 1265 | 1375 | buf[0][offset + 2] = g_u_s; |
|---|
| 1266 | 1376 | buf[0][offset + 3] = b_v; |
|---|
| 1267 | 1377 | break; |
|---|
| 1378 | + case V4L2_PIX_FMT_RGBX32: |
|---|
| 1379 | + alpha = 0; |
|---|
| 1380 | + fallthrough; |
|---|
| 1381 | + case V4L2_PIX_FMT_RGBA32: |
|---|
| 1382 | + buf[0][offset] = r_y_h; |
|---|
| 1383 | + buf[0][offset + 1] = g_u_s; |
|---|
| 1384 | + buf[0][offset + 2] = b_v; |
|---|
| 1385 | + buf[0][offset + 3] = alpha; |
|---|
| 1386 | + break; |
|---|
| 1268 | 1387 | case V4L2_PIX_FMT_BGR32: |
|---|
| 1269 | 1388 | case V4L2_PIX_FMT_XBGR32: |
|---|
| 1389 | + case V4L2_PIX_FMT_VUYX32: |
|---|
| 1270 | 1390 | alpha = 0; |
|---|
| 1271 | | - /* fall through */ |
|---|
| 1391 | + fallthrough; |
|---|
| 1272 | 1392 | case V4L2_PIX_FMT_ABGR32: |
|---|
| 1393 | + case V4L2_PIX_FMT_VUYA32: |
|---|
| 1273 | 1394 | buf[0][offset] = b_v; |
|---|
| 1274 | 1395 | buf[0][offset + 1] = g_u_s; |
|---|
| 1275 | 1396 | buf[0][offset + 2] = r_y_h; |
|---|
| 1276 | 1397 | buf[0][offset + 3] = alpha; |
|---|
| 1398 | + break; |
|---|
| 1399 | + case V4L2_PIX_FMT_BGRX32: |
|---|
| 1400 | + alpha = 0; |
|---|
| 1401 | + fallthrough; |
|---|
| 1402 | + case V4L2_PIX_FMT_BGRA32: |
|---|
| 1403 | + buf[0][offset] = alpha; |
|---|
| 1404 | + buf[0][offset + 1] = b_v; |
|---|
| 1405 | + buf[0][offset + 2] = g_u_s; |
|---|
| 1406 | + buf[0][offset + 3] = r_y_h; |
|---|
| 1277 | 1407 | break; |
|---|
| 1278 | 1408 | case V4L2_PIX_FMT_SBGGR8: |
|---|
| 1279 | 1409 | buf[0][offset] = odd ? g_u_s : b_v; |
|---|
| .. | .. |
|---|
| 1355 | 1485 | buf[0][offset] |= (buf[0][offset] >> 4) & 0xf; |
|---|
| 1356 | 1486 | buf[1][offset] |= (buf[1][offset] >> 4) & 0xf; |
|---|
| 1357 | 1487 | break; |
|---|
| 1488 | + case V4L2_PIX_FMT_SBGGR16: |
|---|
| 1489 | + buf[0][offset] = buf[0][offset + 1] = odd ? g_u_s : b_v; |
|---|
| 1490 | + buf[1][offset] = buf[1][offset + 1] = odd ? r_y_h : g_u_s; |
|---|
| 1491 | + break; |
|---|
| 1492 | + case V4L2_PIX_FMT_SGBRG16: |
|---|
| 1493 | + buf[0][offset] = buf[0][offset + 1] = odd ? b_v : g_u_s; |
|---|
| 1494 | + buf[1][offset] = buf[1][offset + 1] = odd ? g_u_s : r_y_h; |
|---|
| 1495 | + break; |
|---|
| 1496 | + case V4L2_PIX_FMT_SGRBG16: |
|---|
| 1497 | + buf[0][offset] = buf[0][offset + 1] = odd ? r_y_h : g_u_s; |
|---|
| 1498 | + buf[1][offset] = buf[1][offset + 1] = odd ? g_u_s : b_v; |
|---|
| 1499 | + break; |
|---|
| 1500 | + case V4L2_PIX_FMT_SRGGB16: |
|---|
| 1501 | + buf[0][offset] = buf[0][offset + 1] = odd ? g_u_s : r_y_h; |
|---|
| 1502 | + buf[1][offset] = buf[1][offset + 1] = odd ? b_v : g_u_s; |
|---|
| 1503 | + break; |
|---|
| 1358 | 1504 | } |
|---|
| 1359 | 1505 | } |
|---|
| 1360 | 1506 | |
|---|
| .. | .. |
|---|
| 1373 | 1519 | case V4L2_PIX_FMT_SGBRG12: |
|---|
| 1374 | 1520 | case V4L2_PIX_FMT_SGRBG12: |
|---|
| 1375 | 1521 | case V4L2_PIX_FMT_SRGGB12: |
|---|
| 1522 | + case V4L2_PIX_FMT_SBGGR16: |
|---|
| 1523 | + case V4L2_PIX_FMT_SGBRG16: |
|---|
| 1524 | + case V4L2_PIX_FMT_SGRBG16: |
|---|
| 1525 | + case V4L2_PIX_FMT_SRGGB16: |
|---|
| 1376 | 1526 | return buf_line & 1; |
|---|
| 1377 | 1527 | default: |
|---|
| 1378 | 1528 | return 0; |
|---|
| .. | .. |
|---|
| 1777 | 1927 | |
|---|
| 1778 | 1928 | static noinline void tpg_print_str_2(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2], |
|---|
| 1779 | 1929 | unsigned p, unsigned first, unsigned div, unsigned step, |
|---|
| 1780 | | - int y, int x, char *text, unsigned len) |
|---|
| 1930 | + int y, int x, const char *text, unsigned len) |
|---|
| 1781 | 1931 | { |
|---|
| 1782 | 1932 | PRINTSTR(u8); |
|---|
| 1783 | 1933 | } |
|---|
| 1784 | 1934 | |
|---|
| 1785 | 1935 | static noinline void tpg_print_str_4(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2], |
|---|
| 1786 | 1936 | unsigned p, unsigned first, unsigned div, unsigned step, |
|---|
| 1787 | | - int y, int x, char *text, unsigned len) |
|---|
| 1937 | + int y, int x, const char *text, unsigned len) |
|---|
| 1788 | 1938 | { |
|---|
| 1789 | 1939 | PRINTSTR(u16); |
|---|
| 1790 | 1940 | } |
|---|
| 1791 | 1941 | |
|---|
| 1792 | 1942 | static noinline void tpg_print_str_6(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2], |
|---|
| 1793 | 1943 | unsigned p, unsigned first, unsigned div, unsigned step, |
|---|
| 1794 | | - int y, int x, char *text, unsigned len) |
|---|
| 1944 | + int y, int x, const char *text, unsigned len) |
|---|
| 1795 | 1945 | { |
|---|
| 1796 | 1946 | PRINTSTR(x24); |
|---|
| 1797 | 1947 | } |
|---|
| 1798 | 1948 | |
|---|
| 1799 | 1949 | static noinline void tpg_print_str_8(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2], |
|---|
| 1800 | 1950 | unsigned p, unsigned first, unsigned div, unsigned step, |
|---|
| 1801 | | - int y, int x, char *text, unsigned len) |
|---|
| 1951 | + int y, int x, const char *text, unsigned len) |
|---|
| 1802 | 1952 | { |
|---|
| 1803 | 1953 | PRINTSTR(u32); |
|---|
| 1804 | 1954 | } |
|---|
| 1805 | 1955 | |
|---|
| 1806 | 1956 | void tpg_gen_text(const struct tpg_data *tpg, u8 *basep[TPG_MAX_PLANES][2], |
|---|
| 1807 | | - int y, int x, char *text) |
|---|
| 1957 | + int y, int x, const char *text) |
|---|
| 1808 | 1958 | { |
|---|
| 1809 | 1959 | unsigned step = V4L2_FIELD_HAS_T_OR_B(tpg->field) ? 2 : 1; |
|---|
| 1810 | 1960 | unsigned div = step; |
|---|
| 1811 | 1961 | unsigned first = 0; |
|---|
| 1812 | | - unsigned len = strlen(text); |
|---|
| 1962 | + unsigned len; |
|---|
| 1813 | 1963 | unsigned p; |
|---|
| 1814 | 1964 | |
|---|
| 1815 | | - if (font8x16 == NULL || basep == NULL) |
|---|
| 1965 | + if (font8x16 == NULL || basep == NULL || text == NULL) |
|---|
| 1816 | 1966 | return; |
|---|
| 1967 | + |
|---|
| 1968 | + len = strlen(text); |
|---|
| 1817 | 1969 | |
|---|
| 1818 | 1970 | /* Checks if it is possible to show string */ |
|---|
| 1819 | 1971 | if (y + 16 >= tpg->compose.height || x + 8 >= tpg->compose.width) |
|---|
| .. | .. |
|---|
| 1855 | 2007 | } |
|---|
| 1856 | 2008 | } |
|---|
| 1857 | 2009 | EXPORT_SYMBOL_GPL(tpg_gen_text); |
|---|
| 2010 | + |
|---|
| 2011 | +const char *tpg_g_color_order(const struct tpg_data *tpg) |
|---|
| 2012 | +{ |
|---|
| 2013 | + switch (tpg->pattern) { |
|---|
| 2014 | + case TPG_PAT_75_COLORBAR: |
|---|
| 2015 | + case TPG_PAT_100_COLORBAR: |
|---|
| 2016 | + case TPG_PAT_CSC_COLORBAR: |
|---|
| 2017 | + case TPG_PAT_100_HCOLORBAR: |
|---|
| 2018 | + return "White, yellow, cyan, green, magenta, red, blue, black"; |
|---|
| 2019 | + case TPG_PAT_BLACK: |
|---|
| 2020 | + return "Black"; |
|---|
| 2021 | + case TPG_PAT_WHITE: |
|---|
| 2022 | + return "White"; |
|---|
| 2023 | + case TPG_PAT_RED: |
|---|
| 2024 | + return "Red"; |
|---|
| 2025 | + case TPG_PAT_GREEN: |
|---|
| 2026 | + return "Green"; |
|---|
| 2027 | + case TPG_PAT_BLUE: |
|---|
| 2028 | + return "Blue"; |
|---|
| 2029 | + default: |
|---|
| 2030 | + return NULL; |
|---|
| 2031 | + } |
|---|
| 2032 | +} |
|---|
| 2033 | +EXPORT_SYMBOL_GPL(tpg_g_color_order); |
|---|
| 1858 | 2034 | |
|---|
| 1859 | 2035 | void tpg_update_mv_step(struct tpg_data *tpg) |
|---|
| 1860 | 2036 | { |
|---|
| .. | .. |
|---|
| 2038 | 2214 | tpg->compose.left, tpg->compose.top); |
|---|
| 2039 | 2215 | pr_info("tpg colorspace: %d\n", tpg->colorspace); |
|---|
| 2040 | 2216 | pr_info("tpg transfer function: %d/%d\n", tpg->xfer_func, tpg->real_xfer_func); |
|---|
| 2041 | | - pr_info("tpg Y'CbCr encoding: %d/%d\n", tpg->ycbcr_enc, tpg->real_ycbcr_enc); |
|---|
| 2042 | | - pr_info("tpg HSV encoding: %d/%d\n", tpg->hsv_enc, tpg->real_hsv_enc); |
|---|
| 2217 | + if (tpg->color_enc == TGP_COLOR_ENC_HSV) |
|---|
| 2218 | + pr_info("tpg HSV encoding: %d/%d\n", |
|---|
| 2219 | + tpg->hsv_enc, tpg->real_hsv_enc); |
|---|
| 2220 | + else if (tpg->color_enc == TGP_COLOR_ENC_YCBCR) |
|---|
| 2221 | + pr_info("tpg Y'CbCr encoding: %d/%d\n", |
|---|
| 2222 | + tpg->ycbcr_enc, tpg->real_ycbcr_enc); |
|---|
| 2043 | 2223 | pr_info("tpg quantization: %d/%d\n", tpg->quantization, tpg->real_quantization); |
|---|
| 2044 | 2224 | pr_info("tpg RGB range: %d/%d\n", tpg->rgb_range, tpg->real_rgb_range); |
|---|
| 2045 | 2225 | } |
|---|