aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/vimc/vimc-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/platform/vimc/vimc-common.c')
-rw-r--r--drivers/media/platform/vimc/vimc-common.c27
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 */
23static const struct vimc_pix_map vimc_pix_map_list[] = { 27static 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