diff options
Diffstat (limited to 'drivers/media/platform/vimc/vimc-common.c')
-rw-r--r-- | drivers/media/platform/vimc/vimc-common.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/media/platform/vimc/vimc-common.c b/drivers/media/platform/vimc/vimc-common.c index da7f2b7a2e58..9d63c84a9876 100644 --- a/drivers/media/platform/vimc/vimc-common.c +++ b/drivers/media/platform/vimc/vimc-common.c | |||
@@ -20,6 +20,10 @@ | |||
20 | 20 | ||
21 | #include "vimc-common.h" | 21 | #include "vimc-common.h" |
22 | 22 | ||
23 | /* | ||
24 | * NOTE: non-bayer formats need to come first (necessary for enum_mbus_code | ||
25 | * in the scaler) | ||
26 | */ | ||
23 | static const struct vimc_pix_map vimc_pix_map_list[] = { | 27 | static const struct vimc_pix_map vimc_pix_map_list[] = { |
24 | /* TODO: add all missing formats */ | 28 | /* TODO: add all missing formats */ |
25 | 29 | ||
@@ -28,16 +32,19 @@ static const struct vimc_pix_map vimc_pix_map_list[] = { | |||
28 | .code = MEDIA_BUS_FMT_BGR888_1X24, | 32 | .code = MEDIA_BUS_FMT_BGR888_1X24, |
29 | .pixelformat = V4L2_PIX_FMT_BGR24, | 33 | .pixelformat = V4L2_PIX_FMT_BGR24, |
30 | .bpp = 3, | 34 | .bpp = 3, |
35 | .bayer = false, | ||
31 | }, | 36 | }, |
32 | { | 37 | { |
33 | .code = MEDIA_BUS_FMT_RGB888_1X24, | 38 | .code = MEDIA_BUS_FMT_RGB888_1X24, |
34 | .pixelformat = V4L2_PIX_FMT_RGB24, | 39 | .pixelformat = V4L2_PIX_FMT_RGB24, |
35 | .bpp = 3, | 40 | .bpp = 3, |
41 | .bayer = false, | ||
36 | }, | 42 | }, |
37 | { | 43 | { |
38 | .code = MEDIA_BUS_FMT_ARGB8888_1X32, | 44 | .code = MEDIA_BUS_FMT_ARGB8888_1X32, |
39 | .pixelformat = V4L2_PIX_FMT_ARGB32, | 45 | .pixelformat = V4L2_PIX_FMT_ARGB32, |
40 | .bpp = 4, | 46 | .bpp = 4, |
47 | .bayer = false, | ||
41 | }, | 48 | }, |
42 | 49 | ||
43 | /* Bayer formats */ | 50 | /* Bayer formats */ |
@@ -45,41 +52,49 @@ static const struct vimc_pix_map vimc_pix_map_list[] = { | |||
45 | .code = MEDIA_BUS_FMT_SBGGR8_1X8, | 52 | .code = MEDIA_BUS_FMT_SBGGR8_1X8, |
46 | .pixelformat = V4L2_PIX_FMT_SBGGR8, | 53 | .pixelformat = V4L2_PIX_FMT_SBGGR8, |
47 | .bpp = 1, | 54 | .bpp = 1, |
55 | .bayer = true, | ||
48 | }, | 56 | }, |
49 | { | 57 | { |
50 | .code = MEDIA_BUS_FMT_SGBRG8_1X8, | 58 | .code = MEDIA_BUS_FMT_SGBRG8_1X8, |
51 | .pixelformat = V4L2_PIX_FMT_SGBRG8, | 59 | .pixelformat = V4L2_PIX_FMT_SGBRG8, |
52 | .bpp = 1, | 60 | .bpp = 1, |
61 | .bayer = true, | ||
53 | }, | 62 | }, |
54 | { | 63 | { |
55 | .code = MEDIA_BUS_FMT_SGRBG8_1X8, | 64 | .code = MEDIA_BUS_FMT_SGRBG8_1X8, |
56 | .pixelformat = V4L2_PIX_FMT_SGRBG8, | 65 | .pixelformat = V4L2_PIX_FMT_SGRBG8, |
57 | .bpp = 1, | 66 | .bpp = 1, |
67 | .bayer = true, | ||
58 | }, | 68 | }, |
59 | { | 69 | { |
60 | .code = MEDIA_BUS_FMT_SRGGB8_1X8, | 70 | .code = MEDIA_BUS_FMT_SRGGB8_1X8, |
61 | .pixelformat = V4L2_PIX_FMT_SRGGB8, | 71 | .pixelformat = V4L2_PIX_FMT_SRGGB8, |
62 | .bpp = 1, | 72 | .bpp = 1, |
73 | .bayer = true, | ||
63 | }, | 74 | }, |
64 | { | 75 | { |
65 | .code = MEDIA_BUS_FMT_SBGGR10_1X10, | 76 | .code = MEDIA_BUS_FMT_SBGGR10_1X10, |
66 | .pixelformat = V4L2_PIX_FMT_SBGGR10, | 77 | .pixelformat = V4L2_PIX_FMT_SBGGR10, |
67 | .bpp = 2, | 78 | .bpp = 2, |
79 | .bayer = true, | ||
68 | }, | 80 | }, |
69 | { | 81 | { |
70 | .code = MEDIA_BUS_FMT_SGBRG10_1X10, | 82 | .code = MEDIA_BUS_FMT_SGBRG10_1X10, |
71 | .pixelformat = V4L2_PIX_FMT_SGBRG10, | 83 | .pixelformat = V4L2_PIX_FMT_SGBRG10, |
72 | .bpp = 2, | 84 | .bpp = 2, |
85 | .bayer = true, | ||
73 | }, | 86 | }, |
74 | { | 87 | { |
75 | .code = MEDIA_BUS_FMT_SGRBG10_1X10, | 88 | .code = MEDIA_BUS_FMT_SGRBG10_1X10, |
76 | .pixelformat = V4L2_PIX_FMT_SGRBG10, | 89 | .pixelformat = V4L2_PIX_FMT_SGRBG10, |
77 | .bpp = 2, | 90 | .bpp = 2, |
91 | .bayer = true, | ||
78 | }, | 92 | }, |
79 | { | 93 | { |
80 | .code = MEDIA_BUS_FMT_SRGGB10_1X10, | 94 | .code = MEDIA_BUS_FMT_SRGGB10_1X10, |
81 | .pixelformat = V4L2_PIX_FMT_SRGGB10, | 95 | .pixelformat = V4L2_PIX_FMT_SRGGB10, |
82 | .bpp = 2, | 96 | .bpp = 2, |
97 | .bayer = true, | ||
83 | }, | 98 | }, |
84 | 99 | ||
85 | /* 10bit raw bayer a-law compressed to 8 bits */ | 100 | /* 10bit raw bayer a-law compressed to 8 bits */ |
@@ -87,21 +102,25 @@ static const struct vimc_pix_map vimc_pix_map_list[] = { | |||
87 | .code = MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8, | 102 | .code = MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8, |
88 | .pixelformat = V4L2_PIX_FMT_SBGGR10ALAW8, | 103 | .pixelformat = V4L2_PIX_FMT_SBGGR10ALAW8, |
89 | .bpp = 1, | 104 | .bpp = 1, |
105 | .bayer = true, | ||
90 | }, | 106 | }, |
91 | { | 107 | { |
92 | .code = MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8, | 108 | .code = MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8, |
93 | .pixelformat = V4L2_PIX_FMT_SGBRG10ALAW8, | 109 | .pixelformat = V4L2_PIX_FMT_SGBRG10ALAW8, |
94 | .bpp = 1, | 110 | .bpp = 1, |
111 | .bayer = true, | ||
95 | }, | 112 | }, |
96 | { | 113 | { |
97 | .code = MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8, | 114 | .code = MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8, |
98 | .pixelformat = V4L2_PIX_FMT_SGRBG10ALAW8, | 115 | .pixelformat = V4L2_PIX_FMT_SGRBG10ALAW8, |
99 | .bpp = 1, | 116 | .bpp = 1, |
117 | .bayer = true, | ||
100 | }, | 118 | }, |
101 | { | 119 | { |
102 | .code = MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8, | 120 | .code = MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8, |
103 | .pixelformat = V4L2_PIX_FMT_SRGGB10ALAW8, | 121 | .pixelformat = V4L2_PIX_FMT_SRGGB10ALAW8, |
104 | .bpp = 1, | 122 | .bpp = 1, |
123 | .bayer = true, | ||
105 | }, | 124 | }, |
106 | 125 | ||
107 | /* 10bit raw bayer DPCM compressed to 8 bits */ | 126 | /* 10bit raw bayer DPCM compressed to 8 bits */ |
@@ -109,41 +128,49 @@ static const struct vimc_pix_map vimc_pix_map_list[] = { | |||
109 | .code = MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8, | 128 | .code = MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8, |
110 | .pixelformat = V4L2_PIX_FMT_SBGGR10DPCM8, | 129 | .pixelformat = V4L2_PIX_FMT_SBGGR10DPCM8, |
111 | .bpp = 1, | 130 | .bpp = 1, |
131 | .bayer = true, | ||
112 | }, | 132 | }, |
113 | { | 133 | { |
114 | .code = MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8, | 134 | .code = MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8, |
115 | .pixelformat = V4L2_PIX_FMT_SGBRG10DPCM8, | 135 | .pixelformat = V4L2_PIX_FMT_SGBRG10DPCM8, |
116 | .bpp = 1, | 136 | .bpp = 1, |
137 | .bayer = true, | ||
117 | }, | 138 | }, |
118 | { | 139 | { |
119 | .code = MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8, | 140 | .code = MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8, |
120 | .pixelformat = V4L2_PIX_FMT_SGRBG10DPCM8, | 141 | .pixelformat = V4L2_PIX_FMT_SGRBG10DPCM8, |
121 | .bpp = 1, | 142 | .bpp = 1, |
143 | .bayer = true, | ||
122 | }, | 144 | }, |
123 | { | 145 | { |
124 | .code = MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8, | 146 | .code = MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8, |
125 | .pixelformat = V4L2_PIX_FMT_SRGGB10DPCM8, | 147 | .pixelformat = V4L2_PIX_FMT_SRGGB10DPCM8, |
126 | .bpp = 1, | 148 | .bpp = 1, |
149 | .bayer = true, | ||
127 | }, | 150 | }, |
128 | { | 151 | { |
129 | .code = MEDIA_BUS_FMT_SBGGR12_1X12, | 152 | .code = MEDIA_BUS_FMT_SBGGR12_1X12, |
130 | .pixelformat = V4L2_PIX_FMT_SBGGR12, | 153 | .pixelformat = V4L2_PIX_FMT_SBGGR12, |
131 | .bpp = 2, | 154 | .bpp = 2, |
155 | .bayer = true, | ||
132 | }, | 156 | }, |
133 | { | 157 | { |
134 | .code = MEDIA_BUS_FMT_SGBRG12_1X12, | 158 | .code = MEDIA_BUS_FMT_SGBRG12_1X12, |
135 | .pixelformat = V4L2_PIX_FMT_SGBRG12, | 159 | .pixelformat = V4L2_PIX_FMT_SGBRG12, |
136 | .bpp = 2, | 160 | .bpp = 2, |
161 | .bayer = true, | ||
137 | }, | 162 | }, |
138 | { | 163 | { |
139 | .code = MEDIA_BUS_FMT_SGRBG12_1X12, | 164 | .code = MEDIA_BUS_FMT_SGRBG12_1X12, |
140 | .pixelformat = V4L2_PIX_FMT_SGRBG12, | 165 | .pixelformat = V4L2_PIX_FMT_SGRBG12, |
141 | .bpp = 2, | 166 | .bpp = 2, |
167 | .bayer = true, | ||
142 | }, | 168 | }, |
143 | { | 169 | { |
144 | .code = MEDIA_BUS_FMT_SRGGB12_1X12, | 170 | .code = MEDIA_BUS_FMT_SRGGB12_1X12, |
145 | .pixelformat = V4L2_PIX_FMT_SRGGB12, | 171 | .pixelformat = V4L2_PIX_FMT_SRGGB12, |
146 | .bpp = 2, | 172 | .bpp = 2, |
173 | .bayer = true, | ||
147 | }, | 174 | }, |
148 | }; | 175 | }; |
149 | 176 | ||