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