Merge tag 'reset-for-v5.3' of git://git.pengutronix.de/git/pza/linux into arm/drivers
[sfrench/cifs-2.6.git] / drivers / media / pci / solo6x10 / solo6x10-jpeg.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2010-2013 Bluecherry, LLC <http://www.bluecherrydvr.com>
4  *
5  * Original author:
6  * Ben Collins <bcollins@ubuntu.com>
7  *
8  * Additional work by:
9  * John Brooks <john.brooks@bluecherry.net>
10  */
11
12 #ifndef __SOLO6X10_JPEG_H
13 #define __SOLO6X10_JPEG_H
14
15 static const u8 jpeg_header[] = {
16         0xff, 0xd8, 0xff, 0xfe, 0x00, 0x0d, 0x42, 0x6c,
17         0x75, 0x65, 0x63, 0x68, 0x65, 0x72, 0x72, 0x79,
18         0x20, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x20, 0x16,
19         0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c, 0x1a, 0x1c,
20         0x24, 0x22, 0x20, 0x26, 0x30, 0x50, 0x34, 0x30,
21         0x2c, 0x2c, 0x30, 0x62, 0x46, 0x4a, 0x3a, 0x50,
22         0x74, 0x66, 0x7a, 0x78, 0x72, 0x66, 0x70, 0x6e,
23         0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88, 0xae, 0x8a,
24         0x6e, 0x70, 0xa0, 0xda, 0xa2, 0xae, 0xbe, 0xc4,
25         0xce, 0xd0, 0xce, 0x7c, 0x9a, 0xe2, 0xf2, 0xe0,
26         0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6, 0xff, 0xdb,
27         0x00, 0x43, 0x01, 0x22, 0x24, 0x24, 0x30, 0x2a,
28         0x30, 0x5e, 0x34, 0x34, 0x5e, 0xc6, 0x84, 0x70,
29         0x84, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
30         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
31         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
32         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
33         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
34         0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
35         0xc6, 0xc6, 0xc6, 0xff, 0xc4, 0x01, 0xa2, 0x00,
36         0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01,
37         0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
39         0x08, 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01,
40         0x03, 0x03, 0x02, 0x04, 0x03, 0x05, 0x05, 0x04,
41         0x04, 0x00, 0x00, 0x01, 0x7d, 0x01, 0x02, 0x03,
42         0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41,
43         0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14,
44         0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1,
45         0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62,
46         0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19,
47         0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34,
48         0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44,
49         0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54,
50         0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64,
51         0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74,
52         0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84,
53         0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93,
54         0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2,
55         0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa,
56         0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
57         0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
58         0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
59         0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5,
60         0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3,
61         0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x01,
62         0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
63         0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
64         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
65         0x08, 0x09, 0x0a, 0x0b, 0x11, 0x00, 0x02, 0x01,
66         0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04,
67         0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 0x02,
68         0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12,
69         0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32,
70         0x81, 0x08, 0x14, 0x42, 0x91, 0xa1, 0xb1, 0xc1,
71         0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72,
72         0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1,
73         0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29,
74         0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43,
75         0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53,
76         0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63,
77         0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73,
78         0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82,
79         0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
80         0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
81         0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
82         0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
83         0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6,
84         0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5,
85         0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2, 0xe3, 0xe4,
86         0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3,
87         0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff,
88         0xc0, 0x00, 0x11, 0x08, 0x00, 0xf0, 0x02, 0xc0,
89         0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03,
90         0x11, 0x01, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01,
91         0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00
92 };
93
94 /* This is the byte marker for the start of SOF0: 0xffc0 marker */
95 #define SOF0_START      575
96
97 /* This is the byte marker for the start of the DQT */
98 #define DQT_START       17
99 #define DQT_LEN         138
100 static const u8 jpeg_dqt[4][DQT_LEN] = {
101         {
102                 0xff, 0xdb, 0x00, 0x43, 0x00,
103                 0x08, 0x06, 0x06, 0x07, 0x06, 0x05, 0x08, 0x07,
104                 0x07, 0x07, 0x09, 0x09, 0x08, 0x0a, 0x0c, 0x14,
105                 0x0d, 0x0c, 0x0b, 0x0b, 0x0c, 0x19, 0x12, 0x13,
106                 0x0f, 0x14, 0x1d, 0x1a, 0x1f, 0x1e, 0x1d, 0x1a,
107                 0x1c, 0x1c, 0x20, 0x24, 0x2e, 0x27, 0x20, 0x22,
108                 0x2c, 0x23, 0x1c, 0x1c, 0x28, 0x37, 0x29, 0x2c,
109                 0x30, 0x31, 0x34, 0x34, 0x34, 0x1f, 0x27, 0x39,
110                 0x3d, 0x38, 0x32, 0x3c, 0x2e, 0x33, 0x34, 0x32,
111                 0xff, 0xdb, 0x00, 0x43, 0x01,
112                 0x09, 0x09, 0x09, 0x0c, 0x0b, 0x0c, 0x18, 0x0d,
113                 0x0d, 0x18, 0x32, 0x21, 0x1c, 0x21, 0x32, 0x32,
114                 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
115                 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
116                 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
117                 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
118                 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
119                 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32
120         }, {
121                 0xff, 0xdb, 0x00, 0x43, 0x00,
122                 0x10, 0x0b, 0x0c, 0x0e, 0x0c, 0x0a, 0x10, 0x0e,
123                 0x0d, 0x0e, 0x12, 0x11, 0x10, 0x13, 0x18, 0x28,
124                 0x1a, 0x18, 0x16, 0x16, 0x18, 0x31, 0x23, 0x25,
125                 0x1d, 0x28, 0x3a, 0x33, 0x3d, 0x3c, 0x39, 0x33,
126                 0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 0x44,
127                 0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57,
128                 0x5f, 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71,
129                 0x79, 0x70, 0x64, 0x78, 0x5c, 0x65, 0x67, 0x63,
130                 0xff, 0xdb, 0x00, 0x43, 0x01,
131                 0x11, 0x12, 0x12, 0x18, 0x15, 0x18, 0x2f, 0x1a,
132                 0x1a, 0x2f, 0x63, 0x42, 0x38, 0x42, 0x63, 0x63,
133                 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
134                 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
135                 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
136                 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
137                 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
138                 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63
139         }, {
140                 0xff, 0xdb, 0x00, 0x43, 0x00,
141                 0x20, 0x16, 0x18, 0x1c, 0x18, 0x14, 0x20, 0x1c,
142                 0x1a, 0x1c, 0x24, 0x22, 0x20, 0x26, 0x30, 0x50,
143                 0x34, 0x30, 0x2c, 0x2c, 0x30, 0x62, 0x46, 0x4a,
144                 0x3a, 0x50, 0x74, 0x66, 0x7a, 0x78, 0x72, 0x66,
145                 0x70, 0x6e, 0x80, 0x90, 0xb8, 0x9c, 0x80, 0x88,
146                 0xae, 0x8a, 0x6e, 0x70, 0xa0, 0xda, 0xa2, 0xae,
147                 0xbe, 0xc4, 0xce, 0xd0, 0xce, 0x7c, 0x9a, 0xe2,
148                 0xf2, 0xe0, 0xc8, 0xf0, 0xb8, 0xca, 0xce, 0xc6,
149                 0xff, 0xdb, 0x00, 0x43, 0x01,
150                 0x22, 0x24, 0x24, 0x30, 0x2a, 0x30, 0x5e, 0x34,
151                 0x34, 0x5e, 0xc6, 0x84, 0x70, 0x84, 0xc6, 0xc6,
152                 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
153                 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
154                 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
155                 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
156                 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
157                 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6
158         }, {
159                 0xff, 0xdb, 0x00, 0x43, 0x00,
160                 0x30, 0x21, 0x24, 0x2a, 0x24, 0x1e, 0x30, 0x2a,
161                 0x27, 0x2a, 0x36, 0x33, 0x30, 0x39, 0x48, 0x78,
162                 0x4e, 0x48, 0x42, 0x42, 0x48, 0x93, 0x69, 0x6f,
163                 0x57, 0x78, 0xae, 0x99, 0xb7, 0xb4, 0xab, 0x99,
164                 0xa8, 0xa5, 0xc0, 0xd8, 0xff, 0xea, 0xc0, 0xcc,
165                 0xff, 0xcf, 0xa5, 0xa8, 0xf0, 0xff, 0xf3, 0xff,
166                 0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xe7, 0xff,
167                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
168                 0xff, 0xdb, 0x00, 0x43, 0x01,
169                 0x33, 0x36, 0x36, 0x48, 0x3f, 0x48, 0x8d, 0x4e,
170                 0x4e, 0x8d, 0xff, 0xc6, 0xa8, 0xc6, 0xff, 0xff,
171                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
172                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
173                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
174                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
175                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
176                 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
177         }
178 };
179
180 #endif /* __SOLO6X10_JPEG_H */