1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  */
6 
7 #include "sh_css_stream_format.h"
8 #include <ia_css_stream_format.h>
9 
sh_css_stream_format_2_bits_per_subpixel(enum atomisp_input_format format)10 unsigned int sh_css_stream_format_2_bits_per_subpixel(
11     enum atomisp_input_format format)
12 {
13 	unsigned int rval;
14 
15 	switch (format) {
16 	case ATOMISP_INPUT_FORMAT_RGB_444:
17 		rval = 4;
18 		break;
19 	case ATOMISP_INPUT_FORMAT_RGB_555:
20 		rval = 5;
21 		break;
22 	case ATOMISP_INPUT_FORMAT_RGB_565:
23 	case ATOMISP_INPUT_FORMAT_RGB_666:
24 	case ATOMISP_INPUT_FORMAT_RAW_6:
25 		rval = 6;
26 		break;
27 	case ATOMISP_INPUT_FORMAT_RAW_7:
28 		rval = 7;
29 		break;
30 	case ATOMISP_INPUT_FORMAT_YUV420_8_LEGACY:
31 	case ATOMISP_INPUT_FORMAT_YUV420_8:
32 	case ATOMISP_INPUT_FORMAT_YUV422_8:
33 	case ATOMISP_INPUT_FORMAT_RGB_888:
34 	case ATOMISP_INPUT_FORMAT_RAW_8:
35 	case ATOMISP_INPUT_FORMAT_BINARY_8:
36 	case ATOMISP_INPUT_FORMAT_USER_DEF1:
37 	case ATOMISP_INPUT_FORMAT_USER_DEF2:
38 	case ATOMISP_INPUT_FORMAT_USER_DEF3:
39 	case ATOMISP_INPUT_FORMAT_USER_DEF4:
40 	case ATOMISP_INPUT_FORMAT_USER_DEF5:
41 	case ATOMISP_INPUT_FORMAT_USER_DEF6:
42 	case ATOMISP_INPUT_FORMAT_USER_DEF7:
43 	case ATOMISP_INPUT_FORMAT_USER_DEF8:
44 		rval = 8;
45 		break;
46 	case ATOMISP_INPUT_FORMAT_YUV420_10:
47 	case ATOMISP_INPUT_FORMAT_YUV422_10:
48 	case ATOMISP_INPUT_FORMAT_RAW_10:
49 		rval = 10;
50 		break;
51 	case ATOMISP_INPUT_FORMAT_RAW_12:
52 		rval = 12;
53 		break;
54 	case ATOMISP_INPUT_FORMAT_RAW_14:
55 		rval = 14;
56 		break;
57 	case ATOMISP_INPUT_FORMAT_RAW_16:
58 	case ATOMISP_INPUT_FORMAT_YUV420_16:
59 	case ATOMISP_INPUT_FORMAT_YUV422_16:
60 		rval = 16;
61 		break;
62 	default:
63 		rval = 0;
64 		break;
65 	}
66 
67 	return rval;
68 }
69