Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 178946 | Differences between
and this patch

Collapse All | Expand All

(-)stk11xx-1.2.3/Kbuild (-1 / +9 lines)
Lines 1-6 Link Here
1
1
2
EXTRA_CFLAGS = -Idrivers/media/video/usbvideo/
2
EXTRA_CFLAGS = -Idrivers/media/video/usbvideo/
3
3
obj-m := stk11xx.o
4
obj-m := stk11xx.o
5
4
stk11xx-objs := stk11xx-usb.o stk11xx-v4l.o stk11xx-sysfs.o stk11xx-dev.o stk11xx-buf.o stk11xx-bayer.o
6
stk11xx-objs := stk11xx-usb.o stk11xx-v4l.o stk11xx-sysfs.o stk11xx-dev.o stk11xx-buf.o stk11xx-bayer.o
5
stk11xx-objs += stk11xx-dev-a311.o stk11xx-dev-a821.o stk11xx-dev-6a31.o stk11xx-dev-6a33.o stk11xx-dev-6a54.o
7
8
stk11xx-objs += stk11xx-dev-a311.o
9
stk11xx-objs += stk11xx-dev-a821.o
10
stk11xx-objs += stk11xx-dev-6a31.o
11
stk11xx-objs += stk11xx-dev-6a33.o
12
stk11xx-objs += stk11xx-dev-6a51.o
13
stk11xx-objs += stk11xx-dev-6a54.o
6
14
(-)stk11xx-1.2.3/Kconfig (+1 lines)
Lines 9-14 Link Here
9
	   * 174f:a821
9
	   * 174f:a821
10
	   * 174f:6a31
10
	   * 174f:6a31
11
	   * 174f:6a33
11
	   * 174f:6a33
12
	   * 174f:6a51
12
	   * 174f:6a54
13
	   * 174f:6a54
13
	   * 05e1:0501
14
	   * 05e1:0501
14
15
(-)stk11xx-1.2.3/Makefile (-3 / +9 lines)
Lines 1-6 Link Here
1
stk11xx-objs := stk11xx-usb.o stk11xx-v4l.o stk11xx-sysfs.o stk11xx-dev.o
1
2
stk11xx-objs += stk11xx-buf.o stk11xx-bayer.o
2
stk11xx-objs := stk11xx-usb.o stk11xx-v4l.o stk11xx-sysfs.o stk11xx-dev.o stk11xx-buf.o stk11xx-bayer.o
3
stk11xx-objs += stk11xx-dev-a311.o stk11xx-dev-a821.o stk11xx-dev-6a31.o stk11xx-dev-6a33.o stk11xx-dev-6a54.o
3
4
stk11xx-objs += stk11xx-dev-a311.o
5
stk11xx-objs += stk11xx-dev-a821.o
6
stk11xx-objs += stk11xx-dev-6a31.o
7
stk11xx-objs += stk11xx-dev-6a33.o
8
stk11xx-objs += stk11xx-dev-6a51.o
9
stk11xx-objs += stk11xx-dev-6a54.o
4
10
5
obj-$(CONFIG_STK11XX) += stk11xx.o
11
obj-$(CONFIG_STK11XX) += stk11xx.o
6
12
(-)stk11xx-1.2.3/stk11xx-bayer.c (-1 / +1 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-bayer.c
2
 * @file stk11xx-bayer.c
3
 * @author Martin ROOS
3
 * @author Martin ROOS
4
 * @date 2006-01-14
4
 * @date 2006-01-14
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
(-)stk11xx-1.2.3/stk11xx-buf.c (-4 / +4 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-buf.c
2
 * @file stk11xx-buf.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-buf.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-buf.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
(-)stk11xx-1.2.3/stk11xx-dev-6a31.c (-4 / +4 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-dev-6a31.c
2
 * @file stk11xx-dev-6a31.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2007-11-23
4
 * @date 2007-11-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-dev-6a31.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev-6a31.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
(-)stk11xx-1.2.3/stk11xx-dev-6a33.c (-4 / +4 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-dev-6a33.c
2
 * @file stk11xx-dev-6a33.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-dev-6a33.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev-6a33.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
(-)stk11xx-1.2.3/stk11xx-dev-6a51.c (+1554 lines)
Line 0 Link Here
1
/** 
2
 * @file stk11xx-dev-6a51.c
3
 * @author Nicolas VIVIEN
4
 * @date 2007-12-07
5
 * @version v1.3.x
6
 *
7
 * @brief Driver for Syntek USB video camera
8
 *
9
 * @note Copyright (C) Nicolas VIVIEN
10
 *
11
 * @par Licences
12
 *
13
 * This program is free software; you can redistribute it and/or modify
14
 * it under the terms of the GNU General Public License as published by
15
 * the Free Software Foundation; either version 2 of the License, or
16
 * any later version.
17
 *
18
 * This program is distributed in the hope that it will be useful,
19
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
 * GNU General Public License for more details.
22
 *
23
 * You should have received a copy of the GNU General Public License
24
 * along with this program; if not, write to the Free Software
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
27
 * @par SubVersion
28
 *   $Date: 2007-12-11 14:50:16 +0100 (k, 11 dec 2007) $
29
 *   $Revision: 70 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev-6a51.c $
32
 */
33
34
#include <linux/module.h>
35
#include <linux/init.h>
36
#include <linux/kernel.h>
37
#include <linux/version.h>
38
#include <linux/errno.h>
39
#include <linux/slab.h>
40
#include <linux/kref.h>
41
42
#include <linux/usb.h>
43
#include <media/v4l2-common.h>
44
45
#include "stk11xx.h"
46
#include "stk11xx-dev.h"
47
48
49
//=============================================================================
50
//
51
// STK-6A51 API
52
//
53
//=============================================================================
54
55
56
/** 
57
 * @param dev Device structure
58
 * 
59
 * @returns 0 if all is OK
60
 *
61
 * @brief This function permits to initialize the device.
62
 *
63
 * This function must be called at first. It's the start of the
64
 * initialization process. After this process, the device is
65
 * completly initalized and it's ready.
66
 *
67
 * This function is written from the USB log.
68
 */
69
int dev_stk6a51_initialize_device(struct usb_stk11xx *dev)
70
{
71
	int i;
72
	int value;
73
	int retok;
74
75
	STK_INFO("Initialize USB2.0 Syntek Camera\n");
76
77
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
78
	usb_stk11xx_write_registry(dev, 0x0002, 0x0078);
79
	usb_stk11xx_write_registry(dev, 0x0003, 0x0080);
80
81
	usb_stk11xx_write_registry(dev, 0x0002, 0x007f);
82
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
83
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
84
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
85
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
86
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
87
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
88
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
89
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
90
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
91
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
92
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
93
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
94
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
95
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
96
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
97
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
98
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
99
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
100
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
101
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
102
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
103
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
104
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
105
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
106
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
107
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
108
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
109
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
110
	usb_stk11xx_write_registry(dev, 0x0002, 0x007d);
111
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
112
113
	for (i=0; i<16; i++) {
114
		usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
115
		usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
116
		usb_stk11xx_read_registry(dev, 0x0000, &value);
117
	
118
		STK_DEBUG("Loop 1 : Read 0x0000 = %02X\n", value);
119
	}
120
121
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
122
	usb_stk11xx_write_registry(dev, 0x0000, 0x0020);
123
124
	usb_stk11xx_write_registry(dev, 0x0002, 0x007f);
125
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
126
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
127
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
128
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
129
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
130
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
131
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
132
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
133
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
134
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
135
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
136
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
137
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
138
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
139
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
140
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
141
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
142
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
143
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
144
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
145
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
146
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
147
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
148
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
149
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
150
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
151
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
152
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
153
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
154
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
155
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
156
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
157
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
158
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
159
	usb_stk11xx_write_registry(dev, 0x0002, 0x007d);
160
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
161
162
	for (i=0; i<16; i++) {
163
		usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
164
		usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
165
		usb_stk11xx_read_registry(dev, 0x0000, &value);
166
167
		STK_DEBUG("Loop 2 : Read 0x0000 = %02X\n", value);
168
	}
169
170
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
171
	usb_stk11xx_write_registry(dev, 0x0000, 0x0020);
172
173
	usb_stk11xx_write_registry(dev, 0x0002, 0x007f);
174
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
175
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
176
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
177
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
178
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
179
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
180
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
181
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
182
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
183
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
184
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
185
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
186
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
187
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
188
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
189
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
190
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
191
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
192
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
193
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
194
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
195
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
196
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
197
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
198
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
199
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
200
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
201
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
202
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
203
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
204
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
205
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
206
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
207
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
208
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
209
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
210
	usb_stk11xx_write_registry(dev, 0x0000, 0x0027);
211
	usb_stk11xx_write_registry(dev, 0x0000, 0x0026);
212
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
213
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
214
	usb_stk11xx_write_registry(dev, 0x0002, 0x007d);
215
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
216
217
	for (i=0; i<16; i++) {
218
		usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
219
		usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
220
		usb_stk11xx_read_registry(dev, 0x0000, &value);
221
	
222
		STK_DEBUG("Loop 3 : Read 0x0000 = %02X\n", value);
223
	}
224
225
	usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
226
	usb_stk11xx_write_registry(dev, 0x0000, 0x0020);
227
	usb_stk11xx_write_registry(dev, 0x0002, 0x007f);
228
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
229
	usb_stk11xx_write_registry(dev, 0x0000, 0x0020);
230
231
	usb_stk11xx_write_registry(dev, 0x0117, 0x0000);
232
	usb_stk11xx_read_registry(dev, 0x0103, &value);
233
	usb_stk11xx_write_registry(dev, 0x0103, 0x0001);
234
	usb_stk11xx_read_registry(dev, 0x0103, &value);
235
	usb_stk11xx_write_registry(dev, 0x0103, 0x0000);
236
237
	usb_stk11xx_write_registry(dev, 0x0000, 0x00e0);
238
	usb_stk11xx_write_registry(dev, 0x0002, 0x00f8);
239
	usb_stk11xx_write_registry(dev, 0x0002, 0x0078);
240
	usb_stk11xx_write_registry(dev, 0x0000, 0x0020);
241
242
	dev_stk6a51_configure_device(dev, 0);
243
	retok = dev_stk11xx_check_device(dev, 65);
244
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
245
246
	dev_stk6a51_configure_device(dev, 1);
247
	retok = dev_stk11xx_check_device(dev, 65);
248
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
249
250
	dev_stk6a51_configure_device(dev, 2);
251
	retok = dev_stk11xx_check_device(dev, 65);
252
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
253
254
	dev_stk6a51_configure_device(dev, 3);
255
	retok = dev_stk11xx_check_device(dev, 65);
256
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
257
258
	dev_stk6a51_configure_device(dev, 4);
259
	retok = dev_stk11xx_check_device(dev, 65);
260
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
261
262
	dev_stk6a51_configure_device(dev, 5);
263
	retok = dev_stk11xx_check_device(dev, 65);
264
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
265
266
	dev_stk6a51_configure_device(dev, 6);
267
	retok = dev_stk11xx_check_device(dev, 65);
268
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
269
270
	dev_stk6a51_configure_device(dev, 7);
271
	retok = dev_stk11xx_check_device(dev, 65);
272
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
273
274
	dev_stk6a51_configure_device(dev, 8);
275
	retok = dev_stk11xx_check_device(dev, 65);
276
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
277
278
	dev_stk6a51_configure_device(dev, 9);
279
	retok = dev_stk11xx_check_device(dev, 65);
280
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
281
282
	dev_stk6a51_configure_device(dev, 10);
283
	retok = dev_stk11xx_check_device(dev, 65);
284
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
285
286
	dev_stk6a51_configure_device(dev, 11);
287
	retok = dev_stk11xx_check_device(dev, 65);
288
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
289
290
	dev_stk6a51_configure_device(dev, 12);
291
	retok = dev_stk11xx_check_device(dev, 65);
292
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
293
294
	dev_stk6a51_configure_device(dev, 13);
295
296
	dev_stk6a51_configure_device(dev, 14);
297
298
	dev_stk6a51_configure_device(dev, 15);
299
	retok = dev_stk11xx_check_device(dev, 65);
300
	usb_stk11xx_write_registry(dev, 0x0200, 0x0008);
301
302
	dev_stk6a51_configure_device(dev, 16);
303
304
	dev_stk6a51_configure_device(dev, 17);
305
306
307
308
309
310
	dev_stk6a51_camera_asleep(dev);
311
312
	usb_stk11xx_set_feature(dev, 0);
313
314
	// Device is initialized and is ready !!!
315
	STK_INFO("Syntek USB2.0 Camera is ready\n");
316
317
	return 0;
318
}
319
320
321
/** 
322
 * @param dev Device structure
323
 * @param step The step of configuration [0-11]
324
 * 
325
 * @returns 0 if all is OK
326
 *
327
 * @brief This function permits to configure the device.
328
 *
329
 * The configuration of device is composed of 12 steps.
330
 * This function is called by the initialization process.
331
 *
332
 * We don't know the meaning of these steps ! We only replay the USB log.
333
 */
334
int dev_stk6a51_configure_device(struct usb_stk11xx *dev, int step)
335
{
336
	int retok;
337
	int value;
338
339
	//     0,    1,    2,    3,    4,    5,    6,    7,    8,    9,   10,   11,   12,   13,   14,   15,   16,   17,   18,   19
340
	static const int values_001B[] = {
341
		0x0e, 0x03, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0e, 0x0e, 0x0e, 0x0e
342
	};
343
	static const int values_001C[] = {
344
		0x06, 0x02, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x46, 0x46, 0x46, 0x46
345
	};
346
	static const int values_0202[] = {
347
		0x1e, 0x0a, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x0a, 0x1e, 0x14, 0x1e, 0x1f, 0x0a, 0x0a, 0x0a, 0x0a
348
	};
349
	static const int values_0110[] = {
350
		0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
351
	};
352
	static const int values_0112[] = {
353
		0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01
354
	};
355
	static const int values_0114[] = {
356
		0x87, 0x80, 0x80, 0x80, 0x80, 0x00, 0xbe, 0xbe, 0x80, 0x80, 0x84, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80
357
	};
358
	static const int values_0115[] = {
359
		0x02, 0x02, 0x02, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
360
	};
361
	static const int values_0116[] = {
362
		0xe7, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe9, 0xe9, 0xe0, 0xe0, 0xe4, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1
363
	};
364
	static const int values_0117[] = {
365
		0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
366
	};
367
	static const int values_0100[] = {
368
		0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
369
	};
370
371
372
	STK_DEBUG("dev_stk6a51_configure_device : %d\n", step);
373
374
	usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
375
	usb_stk11xx_write_registry(dev, 0x0002, 0x0078);
376
	usb_stk11xx_write_registry(dev, 0x0003, 0x0080);
377
	usb_stk11xx_write_registry(dev, 0x0005, 0x0000);
378
	
379
	usb_stk11xx_write_registry(dev, 0x0007, 0x0003);
380
	usb_stk11xx_write_registry(dev, 0x000d, 0x0000);
381
	usb_stk11xx_write_registry(dev, 0x000f, 0x0002);
382
	usb_stk11xx_write_registry(dev, 0x0300, 0x0012);
383
	usb_stk11xx_write_registry(dev, 0x0350, 0x0041);
384
	
385
	usb_stk11xx_write_registry(dev, 0x0351, 0x0000);
386
	usb_stk11xx_write_registry(dev, 0x0352, 0x0000);
387
	usb_stk11xx_write_registry(dev, 0x0353, 0x0000);
388
	usb_stk11xx_write_registry(dev, 0x0018, 0x0010);
389
	usb_stk11xx_write_registry(dev, 0x0019, 0x0000);
390
	
391
	usb_stk11xx_write_registry(dev, 0x001b, values_001B[step]);
392
	usb_stk11xx_write_registry(dev, 0x001c, values_001C[step]);
393
	usb_stk11xx_write_registry(dev, 0x0300, 0x0080);
394
	usb_stk11xx_write_registry(dev, 0x001a, 0x0004);
395
	usb_stk11xx_write_registry(dev, 0x0202, values_0202[step]);
396
	
397
	usb_stk11xx_write_registry(dev, 0x0110, values_0110[step]);
398
	usb_stk11xx_write_registry(dev, 0x0111, 0x0000);
399
	usb_stk11xx_write_registry(dev, 0x0112, values_0112[step]);
400
	usb_stk11xx_write_registry(dev, 0x0113, 0x0000);
401
	usb_stk11xx_write_registry(dev, 0x0114, values_0114[step]);
402
	
403
	usb_stk11xx_write_registry(dev, 0x0115, values_0115[step]);
404
	usb_stk11xx_write_registry(dev, 0x0116, values_0116[step]);
405
	usb_stk11xx_write_registry(dev, 0x0117, values_0117[step]);
406
407
	usb_stk11xx_read_registry(dev, 0x0100, &value);
408
	usb_stk11xx_write_registry(dev, 0x0100, values_0100[step]);
409
410
//	usb_stk11xx_write_registry(dev, 0x0200, 0x0080); 
411
//	usb_stk11xx_write_registry(dev, 0x0200, 0x0000); 
412
	usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 
413
414
415
	switch (step) {
416
		case 0:
417
			usb_stk11xx_write_registry(dev, 0x0203, 0x0040); 
418
419
			usb_stk11xx_write_registry(dev, 0x0204, 0x0041); 
420
			usb_stk11xx_write_registry(dev, 0x0205, 0x0001); 
421
			usb_stk11xx_write_registry(dev, 0x0204, 0x001c); 
422
			usb_stk11xx_write_registry(dev, 0x0205, 0x0002); 
423
424
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
425
426
			break;
427
	
428
		case 1:
429
			usb_stk11xx_write_registry(dev, 0x0203, 0x0022); 
430
431
			usb_stk11xx_write_registry(dev, 0x0204, 0x0027); 
432
			usb_stk11xx_write_registry(dev, 0x0205, 0x00a5); 
433
434
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
435
436
			break;
437
438
		case 2:
439
			usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 
440
441
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
442
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
443
			usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 
444
			usb_stk11xx_write_registry(dev, 0x0205, 0x00bf); 
445
446
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
447
448
			break;
449
450
		case 3:
451
			usb_stk11xx_write_registry(dev, 0x0203, 0x0042); 
452
453
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
454
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
455
			usb_stk11xx_write_registry(dev, 0x0204, 0x0024); 
456
			usb_stk11xx_write_registry(dev, 0x0205, 0x00a5); 
457
458
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
459
460
			break;
461
462
		case 4:
463
			usb_stk11xx_write_registry(dev, 0x0203, 0x0042); 
464
465
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
466
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
467
			usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 
468
			usb_stk11xx_write_registry(dev, 0x0205, 0x00e0); 
469
			usb_stk11xx_write_registry(dev, 0x0204, 0x0024); 
470
			usb_stk11xx_write_registry(dev, 0x0205, 0x00a5); 
471
472
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
473
474
			break;
475
476
		case 5:
477
			usb_stk11xx_write_registry(dev, 0x0203, 0x0042); 
478
479
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
480
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
481
			usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 
482
			usb_stk11xx_write_registry(dev, 0x0205, 0x00bf); 
483
484
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
485
486
			break;
487
488
		case 6:
489
			usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 
490
491
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
492
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
493
			usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 
494
			usb_stk11xx_write_registry(dev, 0x0205, 0x00ff); 
495
496
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
497
498
			break;
499
500
		case 7:
501
			usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 
502
503
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
504
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
505
			usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 
506
			usb_stk11xx_write_registry(dev, 0x0205, 0x00ff); 
507
508
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
509
510
			break;
511
512
		case 8:
513
			usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 
514
515
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
516
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
517
			usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 
518
			usb_stk11xx_write_registry(dev, 0x0205, 0x00b7); 
519
520
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
521
522
			break;
523
524
		case 9:
525
			usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 
526
527
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
528
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
529
			usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 
530
			usb_stk11xx_write_registry(dev, 0x0205, 0x00b7); 
531
532
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
533
534
			break;
535
536
		case 10:
537
			usb_stk11xx_write_registry(dev, 0x0203, 0x0080); 
538
539
			usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 
540
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
541
			usb_stk11xx_write_registry(dev, 0x0204, 0x000a); 
542
			usb_stk11xx_write_registry(dev, 0x0205, 0x00ff); 
543
544
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
545
546
			break;
547
548
		case 11:
549
			usb_stk11xx_write_registry(dev, 0x0203, 0x00dc); 
550
551
			usb_stk11xx_write_registry(dev, 0x0204, 0x0015); 
552
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
553
554
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
555
556
			break;
557
558
		case 12:
559
			usb_stk11xx_write_registry(dev, 0x0203, 0x00ec); 
560
561
			usb_stk11xx_write_registry(dev, 0x0204, 0x0015); 
562
			usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 
563
564
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
565
566
			break;
567
568
		case 13:
569
			usb_stk11xx_write_registry(dev, 0x0203, 0x00ba); 
570
571
			usb_stk11xx_read_registry(dev, 0x02ff, &value);
572
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
573
574
			usb_stk11xx_write_registry(dev, 0x0208, 0x0020);
575
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020);
576
			retok = dev_stk11xx_check_device(dev, 500);
577
			usb_stk11xx_read_registry(dev, 0x0209, &value);
578
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
579
580
			break;
581
582
		case 14:
583
			usb_stk11xx_write_registry(dev, 0x0203, 0x00ba); 
584
585
			usb_stk11xx_read_registry(dev, 0x02ff, &value);
586
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
587
588
			usb_stk11xx_write_registry(dev, 0x0208, 0x0000);
589
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020);
590
			retok = dev_stk11xx_check_device(dev, 500);
591
			usb_stk11xx_read_registry(dev, 0x0209, &value);
592
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
593
			usb_stk11xx_read_registry(dev, 0x02ff, &value);
594
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
595
596
			usb_stk11xx_write_registry(dev, 0x0208, 0x00f1);
597
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020);
598
			retok = dev_stk11xx_check_device(dev, 500);
599
			usb_stk11xx_read_registry(dev, 0x0209, &value);
600
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
601
602
			break;
603
604
		case 15:
605
			usb_stk11xx_write_registry(dev, 0x0203, 0x00ba); 
606
607
			usb_stk11xx_write_registry(dev, 0x0204, 0x0001); 
608
			usb_stk11xx_write_registry(dev, 0x0205, 0x0000); 
609
			usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 
610
611
			break;
612
613
		case 16:
614
			usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 
615
616
			usb_stk11xx_read_registry(dev, 0x02ff, &value);
617
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
618
			usb_stk11xx_write_registry(dev, 0x0205, 0x0030); 
619
			usb_stk11xx_write_registry(dev, 0x0205, 0x0000); 
620
			usb_stk11xx_read_registry(dev, 0x0201, &value);
621
			usb_stk11xx_read_registry(dev, 0x0201, &value);
622
			usb_stk11xx_read_registry(dev, 0x0201, &value);
623
			usb_stk11xx_read_registry(dev, 0x0209, &value);
624
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 
625
			usb_stk11xx_read_registry(dev, 0x0201, &value);
626
			usb_stk11xx_read_registry(dev, 0x0209, &value);
627
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
628
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
629
630
			usb_stk11xx_write_registry(dev, 0x0002, 0x007f);
631
			usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
632
			usb_stk11xx_write_registry(dev, 0x0002, 0x007d);
633
			usb_stk11xx_write_registry(dev, 0x0000, 0x0024);
634
			usb_stk11xx_write_registry(dev, 0x0000, 0x0025);
635
			usb_stk11xx_write_registry(dev, 0x0000, 0x0020);
636
637
			break;
638
639
		case 17:
640
			usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 
641
642
			dev_stk6a51_sensor_settings(dev);
643
644
			usb_stk11xx_read_registry(dev, 0x02ff, &value);
645
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
646
647
			usb_stk11xx_write_registry(dev, 0x0205, 0x0033);
648
			usb_stk11xx_write_registry(dev, 0x0205, 0x0090);
649
			usb_stk11xx_write_registry(dev, 0x0200, 0x0061);
650
			retok = dev_stk11xx_check_device(dev, 500);
651
			usb_stk11xx_read_registry(dev, 0x0209, &value);
652
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 
653
			retok = dev_stk11xx_check_device(dev, 500);
654
			usb_stk11xx_read_registry(dev, 0x0209, &value);
655
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
656
			usb_stk11xx_read_registry(dev, 0x0201, &value);
657
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
658
659
			usb_stk11xx_write_registry(dev, 0x0200, 0x0080);
660
			usb_stk11xx_write_registry(dev, 0x0200, 0x0000);
661
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
662
663
			break;
664
665
		case 18:
666
			usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 
667
668
			dev_stk6a51_sensor_settings(dev);
669
670
			usb_stk11xx_read_registry(dev, 0x02ff, &value);
671
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
672
673
			usb_stk11xx_write_registry(dev, 0x0205, 0x0033);
674
			usb_stk11xx_write_registry(dev, 0x0205, 0x0090);
675
			usb_stk11xx_write_registry(dev, 0x0200, 0x0061);
676
			retok = dev_stk11xx_check_device(dev, 500);
677
			usb_stk11xx_read_registry(dev, 0x0209, &value);
678
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 
679
			retok = dev_stk11xx_check_device(dev, 500);
680
			usb_stk11xx_read_registry(dev, 0x0209, &value);
681
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
682
			break;
683
684
		case 19:
685
			usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 
686
687
			dev_stk6a51_sensor_settings(dev);
688
689
			usb_stk11xx_read_registry(dev, 0x02ff, &value);
690
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
691
692
			usb_stk11xx_write_registry(dev, 0x0205, 0x0033);
693
			usb_stk11xx_write_registry(dev, 0x0205, 0x0090);
694
			usb_stk11xx_write_registry(dev, 0x0200, 0x0061);
695
			retok = dev_stk11xx_check_device(dev, 500);
696
			usb_stk11xx_read_registry(dev, 0x0209, &value);
697
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 
698
			retok = dev_stk11xx_check_device(dev, 500);
699
			usb_stk11xx_read_registry(dev, 0x0209, &value);
700
			usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
701
			break;
702
	}
703
	
704
	return 0;
705
}
706
707
708
/** 
709
 * @param dev Device structure
710
 * 
711
 * @returns 0 if all is OK
712
 *
713
 * @brief Wake-up the camera.
714
 *
715
 * This function permits to wake-up the device.
716
 */
717
int dev_stk6a51_camera_asleep(struct usb_stk11xx *dev)
718
{
719
	int value;
720
721
	usb_stk11xx_write_registry(dev, 0x0203, 0x00a0); 
722
723
	usb_stk11xx_read_registry(dev, 0x0104, &value);
724
	usb_stk11xx_read_registry(dev, 0x0105, &value);
725
	usb_stk11xx_read_registry(dev, 0x0106, &value);
726
727
	usb_stk11xx_write_registry(dev, 0x0100, 0x0021);
728
	usb_stk11xx_write_registry(dev, 0x0116, 0x0000);
729
	usb_stk11xx_write_registry(dev, 0x0117, 0x0000);
730
	usb_stk11xx_write_registry(dev, 0x0018, 0x0000);
731
732
	usb_stk11xx_read_registry(dev, 0x0000, &value);
733
	usb_stk11xx_write_registry(dev, 0x0000, 0x0049);
734
735
	return 0;
736
}
737
738
739
/** 
740
 * @param dev Device structure
741
 * 
742
 * @returns 0 if all is OK
743
 *
744
 * @brief This function initializes the device for the stream.
745
 *
746
 * It's the start. This function has to be called at first, before
747
 * enabling the video stream.
748
 */
749
int dev_stk6a51_init_camera(struct usb_stk11xx *dev)
750
{
751
	dev_stk6a51_camera_asleep(dev);
752
753
	usb_stk11xx_set_feature(dev, 0);
754
755
	dev_stk6a51_camera_asleep(dev);
756
757
	usb_stk11xx_write_registry(dev, 0x0000, 0x00e0);
758
	usb_stk11xx_write_registry(dev, 0x0002, 0x00f8);
759
	usb_stk11xx_write_registry(dev, 0x0002, 0x0078);
760
	usb_stk11xx_write_registry(dev, 0x0000, 0x0020);
761
762
	dev_stk6a51_configure_device(dev, 18);
763
764
	dev_stk11xx_camera_off(dev);
765
766
	return 0;
767
}
768
769
770
/** 
771
 * @param dev Device structure
772
 * 
773
 * @returns 0 if all is OK
774
 *
775
 * @brief This function permits to set default sensor settings.
776
 *
777
 * We set some registers in using a I2C bus.
778
 * WARNING, the sensor settings can be different following the situation.
779
 */
780
int dev_stk6a51_sensor_settings(struct usb_stk11xx *dev)
781
{
782
	int i;
783
	int retok;
784
	int value;
785
786
	int asize;
787
788
	static const int values_205[][4] = {
789
		{ 0x33, 0x86, 0x05, 0x01 },
790
		{ 0x33, 0x86, 0x05, 0x00 },
791
		{ 0x33, 0x8c, 0xa1, 0x04 },
792
		{ 0x33, 0x90, -1 },
793
		{ 0x30, 0x1a, 0x0a, 0xcc },
794
		{ 0x32, 0x02, 0x00, 0x08 },
795
		{ 0x33, 0xf4, 0x03, 0x1d },
796
		{ 0x33, 0x8c, 0xa1, 0x04 },
797
		{ 0x33, 0x90, -1 },
798
		{ 0x33, 0x8c, 0xa1, 0x04 },
799
		{ 0x33, 0x90, -1 },
800
		{ 0x34, 0x1e, 0x8f, 0x09 },
801
		{ 0x34, 0x1c, 0x02, 0x50 },
802
		{ 0x34, 0x1e, 0x8f, 0x09 },
803
		{ 0x34, 0x1e, 0x8f, 0x08 },
804
		{ 0x33, 0x8c, 0x04, 0x00 },
805
		{ 0x33, 0x90, 0x30, 0x8f },
806
		{ 0x33, 0x92, 0xc3, 0xff },
807
		{ 0x33, 0x94, 0xed, 0x8f },
808
		{ 0x33, 0x96, 0x35, 0x8f },
809
		{ 0x33, 0x98, 0x18, 0x8f },
810
		{ 0x33, 0x9a, 0x30, 0x8f },
811
		{ 0x33, 0x9c, 0xc3, 0x00 },
812
		{ 0x33, 0x9e, 0x15, 0x8f },
813
		{ 0x33, 0x8c, 0x04, 0x10 },
814
		{ 0x33, 0x90, 0xcc, 0x00 },
815
		{ 0x33, 0x92, 0x07, 0xbd },
816
		{ 0x33, 0x94, 0x04, 0xb5 },
817
		{ 0x33, 0x96, 0xbd, 0x9e },
818
		{ 0x33, 0x98, 0x9f, 0xf6 },
819
		{ 0x33, 0x9a, 0x03, 0x22 },
820
		{ 0x33, 0x9c, 0x30, 0xe7 },
821
		{ 0x33, 0x9e, 0x0a, 0xf6 },
822
		{ 0x33, 0x8c, 0x04, 0x20 },
823
		{ 0x33, 0x90, 0x02, 0x39 },
824
		{ 0x33, 0x92, 0xc1, 0x01 },
825
		{ 0x33, 0x94, 0x26, 0x05 },
826
		{ 0x33, 0x96, 0xf6, 0x03 },
827
		{ 0x33, 0x98, 0x23, 0xe7 },
828
		{ 0x33, 0x9a, 0x0a, 0x7d },
829
		{ 0x33, 0x9c, 0x03, 0x21 },
830
		{ 0x33, 0x9e, 0x27, 0x20 },
831
		{ 0x33, 0x8c, 0x04, 0x30 },
832
		{ 0x33, 0x90, 0xf6, 0x02 },
833
		{ 0x33, 0x92, 0x39, 0xe7 },
834
		{ 0x33, 0x94, 0x02, 0x8f },
835
		{ 0x33, 0x96, 0xc3, 0x00 },
836
		{ 0x33, 0x98, 0x0b, 0x30 },
837
		{ 0x33, 0x9a, 0xed, 0x00 },
838
		{ 0x33, 0x9c, 0xfe, 0x02 },
839
		{ 0x33, 0x9e, 0x37, 0xee },
840
		{ 0x33, 0x8c, 0x04, 0x40 },
841
		{ 0x33, 0x90, 0x04, 0x5f },
842
		{ 0x33, 0x92, 0xad, 0x00 },
843
		{ 0x33, 0x94, 0x30, 0xe6 },
844
		{ 0x33, 0x96, 0x0a, 0x4f },
845
		{ 0x33, 0x98, 0xed, 0x08 },
846
		{ 0x33, 0x9a, 0xec, 0x11 },
847
		{ 0x33, 0x9c, 0xa3, 0x08 },
848
		{ 0x33, 0x9e, 0xdd, 0x56 },
849
		{ 0x33, 0x8c, 0x04, 0x50 },
850
		{ 0x33, 0x90, 0x30, 0xc6 },
851
		{ 0x33, 0x92, 0x13, 0x3a },
852
		{ 0x33, 0x94, 0x35, 0x39 },
853
		{ 0x33, 0x96, 0x3c, 0x3c },
854
		{ 0x33, 0x98, 0x3c, 0xc6 },
855
		{ 0x33, 0x9a, 0x01, 0xf7 },
856
		{ 0x33, 0x9c, 0x03, 0x21 },
857
		{ 0x33, 0x9e, 0xc6, 0x0a },
858
		{ 0x33, 0x8c, 0x04, 0x60 },
859
		{ 0x33, 0x90, 0xf7, 0x03 },
860
		{ 0x33, 0x92, 0x22, 0xf7 },
861
		{ 0x33, 0x94, 0x03, 0x23 },
862
		{ 0x33, 0x96, 0xcc, 0x03 },
863
		{ 0x33, 0x98, 0x03, 0x30 },
864
		{ 0x33, 0x9a, 0xed, 0x02 },
865
		{ 0x33, 0x9c, 0xfe, 0x10 },
866
		{ 0x33, 0x9e, 0x50, 0xec },
867
		{ 0x33, 0x8c, 0x04, 0x70 },
868
		{ 0x33, 0x90, 0x04, 0xfd },
869
		{ 0x33, 0x92, 0x02, 0xff },
870
		{ 0x33, 0x94, 0xfe, 0x02 },
871
		{ 0x33, 0x96, 0xff, 0xec },
872
		{ 0x33, 0x98, 0x00, 0xfd },
873
		{ 0x33, 0x9a, 0x03, 0x01 },
874
		{ 0x33, 0x9c, 0x5f, 0x4f },
875
		{ 0x33, 0x9e, 0x30, 0xed },
876
		{ 0x33, 0x8c, 0x04, 0x80 },
877
		{ 0x33, 0x90, 0x04, 0xec },
878
		{ 0x33, 0x92, 0x04, 0x05 },
879
		{ 0x33, 0x94, 0xf3, 0x03 },
880
		{ 0x33, 0x96, 0x01, 0x8f },
881
		{ 0x33, 0x98, 0xec, 0x00 },
882
		{ 0x33, 0x9a, 0x30, 0xed },
883
		{ 0x33, 0x9c, 0x00, 0xec },
884
		{ 0x33, 0x9e, 0x04, 0x05 },
885
		{ 0x33, 0x8c, 0x04, 0x90 },
886
		{ 0x33, 0x90, 0xe3, 0x02 },
887
		{ 0x33, 0x92, 0x18, 0x8f },
888
		{ 0x33, 0x94, 0xec, 0x00 },
889
		{ 0x33, 0x96, 0x18, 0xed },
890
		{ 0x33, 0x98, 0x00, 0xec },
891
		{ 0x33, 0x9a, 0x04, 0xc3 },
892
		{ 0x33, 0x9c, 0x00, 0x01 },
893
		{ 0x33, 0x9e, 0xed, 0x04 },
894
		{ 0x33, 0x8c, 0x04, 0xa0 },
895
		{ 0x33, 0x90, 0x83, 0x00 },
896
		{ 0x33, 0x92, 0x0f, 0x25 },
897
		{ 0x33, 0x94, 0xdc, 0xee },
898
		{ 0x33, 0x96, 0x02, 0xcc },
899
		{ 0x33, 0x98, 0x04, 0x00 },
900
		{ 0x33, 0x9a, 0xed, 0x04 },
901
		{ 0x33, 0x9c, 0xcc, 0x03 },
902
		{ 0x33, 0x9e, 0x03, 0xdd },
903
		{ 0x33, 0x8c, 0x04, 0xb0 },
904
		{ 0x33, 0x90, 0x52, 0x38 },
905
		{ 0x33, 0x92, 0x38, 0x38 },
906
		{ 0x33, 0x94, 0x39, 0x37 },
907
		{ 0x33, 0x96, 0x36, 0x8f },
908
		{ 0x33, 0x98, 0x30, 0xe3 },
909
		{ 0x33, 0x9a, 0x00, 0x8f },
910
		{ 0x33, 0x9c, 0x18, 0x8f },
911
		{ 0x33, 0x9e, 0x18, 0x30 },
912
		{ 0x33, 0x8c, 0x04, 0xc0 },
913
		{ 0x33, 0x90, 0x18, 0xe3 },
914
		{ 0x33, 0x92, 0x00, 0x18 },
915
		{ 0x33, 0x94, 0x8f, 0x32 },
916
		{ 0x33, 0x96, 0x33, 0x36 },
917
		{ 0x33, 0x98, 0xa6, 0x00 },
918
		{ 0x33, 0x9a, 0x18, 0xa7 },
919
		{ 0x33, 0x9c, 0x00, 0x09 },
920
		{ 0x33, 0x9e, 0x18, 0x09 },
921
		{ 0x33, 0x8c, 0x04, 0xd0 },
922
		{ 0x33, 0x90, 0xc0, 0x01 },
923
		{ 0x33, 0x92, 0x24, 0xf4 },
924
		{ 0x33, 0x94, 0x32, 0x80 },
925
		{ 0x33, 0x96, 0x01, 0x24 },
926
		{ 0x33, 0x98, 0xee, 0x39 },
927
		{ 0x33, 0x8c, 0x20, 0x03 },
928
		{ 0x33, 0x90, 0x04, 0x56 },
929
		{ 0x33, 0x8c, 0xa0, 0x02 },
930
		{ 0x33, 0x90, 0x00, 0x01 },
931
		{ 0x33, 0x8c, 0xa1, 0x04 },
932
		{ 0x33, 0x90, -1 },
933
		{ 0x34, 0xce, 0x81, 0x60 },
934
		{ 0x34, 0xd0, 0x66, 0x33 },
935
		{ 0x34, 0xd2, 0x31, 0x9a },
936
		{ 0x34, 0xd4, 0x94, 0x63 },
937
		{ 0x34, 0xd6, 0x4b, 0x25 },
938
		{ 0x34, 0xd8, 0x26, 0x70 },
939
		{ 0x34, 0xda, 0x72, 0x4c },
940
		{ 0x34, 0xdc, 0xff, 0x04 },
941
		{ 0x34, 0xde, 0x00, 0xf4 },
942
		{ 0x34, 0xe6, 0x00, 0xcc },
943
		{ 0x34, 0xee, 0x0e, 0x42 },
944
		{ 0x34, 0xf6, 0x0d, 0xb5 },
945
		{ 0x35, 0x00, 0x0a, 0xfa },
946
		{ 0x35, 0x08, 0x0f, 0x10 },
947
		{ 0x35, 0x10, 0x11, 0x22 },
948
		{ 0x35, 0x18, 0x0c, 0x28 },
949
		{ 0x35, 0x20, 0x1c, 0x2c },
950
		{ 0x35, 0x28, 0x17, 0x40 },
951
		{ 0x35, 0x30, 0x08, 0xf2 },
952
		{ 0x35, 0x38, 0xfb, 0xd5 },
953
		{ 0x35, 0x4c, 0x05, 0xc7 },
954
		{ 0x35, 0x44, 0x04, 0xf9 },
955
		{ 0x35, 0x5c, 0x05, 0xd0 },
956
		{ 0x35, 0x54, 0x05, 0xf4 },
957
		{ 0x34, 0xe0, 0x01, 0x05 },
958
		{ 0x34, 0xe8, 0x00, 0xa0 },
959
		{ 0x34, 0xf0, 0x0e, 0xa1 },
960
		{ 0x34, 0xf8, 0x0e, 0x01 },
961
		{ 0x35, 0x02, 0x0f, 0xeb },
962
		{ 0x35, 0x0a, 0x09, 0x0a },
963
		{ 0x35, 0x12, 0x10, 0x1e },
964
		{ 0x35, 0x1a, 0x08, 0x23 },
965
		{ 0x35, 0x22, 0x1c, 0x22 },
966
		{ 0x35, 0x2a, 0x07, 0x22 },
967
		{ 0x35, 0x32, 0x0b, 0x06 },
968
		{ 0x35, 0x3a, 0xf9, 0x16 },
969
		{ 0x35, 0x4e, 0x05, 0x9f },
970
		{ 0x35, 0x46, 0x05, 0x30 },
971
		{ 0x35, 0x5e, 0x06, 0x75 },
972
		{ 0x35, 0x56, 0x06, 0x5c },
973
		{ 0x34, 0xe4, 0x00, 0xc5 },
974
		{ 0x34, 0xec, 0x00, 0x48 },
975
		{ 0x34, 0xf4, 0x0f, 0x66 },
976
		{ 0x34, 0xfc, 0x0e, 0x61 },
977
		{ 0x35, 0x06, 0x1b, 0xdb },
978
		{ 0x35, 0x0e, 0x04, 0x0a },
979
		{ 0x35, 0x16, 0x11, 0x13 },
980
		{ 0x35, 0x1e, 0x08, 0x1f },
981
		{ 0x35, 0x26, 0x11, 0x19 },
982
		{ 0x35, 0x2e, 0xf8, 0x1a },
983
		{ 0x35, 0x36, 0x04, 0x0c },
984
		{ 0x35, 0x3e, 0xfa, 0x00 },
985
		{ 0x35, 0x52, 0x06, 0xf1 },
986
		{ 0x35, 0x4a, 0x04, 0x0e },
987
		{ 0x35, 0x62, 0x06, 0xa1 },
988
		{ 0x35, 0x5a, 0x06, 0x91 },
989
		{ 0x34, 0xe2, 0x00, 0xd2 },
990
		{ 0x34, 0xea, 0x00, 0x72 },
991
		{ 0x34, 0xf2, 0x0e, 0x1d },
992
		{ 0x34, 0xfa, 0x0e, 0x06 },
993
		{ 0x35, 0x04, 0x13, 0x0e },
994
		{ 0x35, 0x0c, 0x0f, 0x0d },
995
		{ 0x35, 0x14, 0x13, 0x1c },
996
		{ 0x35, 0x1c, 0x13, 0x29 },
997
		{ 0x35, 0x24, 0x0d, 0x24 },
998
		{ 0x35, 0x2c, 0xfd, 0x29 },
999
		{ 0x35, 0x34, 0x07, 0xf4 },
1000
		{ 0x35, 0x3c, 0xee, 0xe7 },
1001
		{ 0x35, 0x50, 0x06, 0x50 },
1002
		{ 0x35, 0x48, 0x05, 0xc1 },
1003
		{ 0x35, 0x60, 0x06, 0x11 },
1004
		{ 0x35, 0x58, 0x06, 0x58 },
1005
		{ 0x35, 0x40, 0x00, 0x00 },
1006
		{ 0x35, 0x42, 0x00, 0x00 },
1007
		{ 0x32, 0x10, 0x01, 0xfc },
1008
		{ 0x33, 0x8c, 0xa3, 0x52 },
1009
		{ 0x33, 0x90, 0x00, 0x3c },
1010
		{ 0x33, 0x8c, 0xa1, 0x18 },
1011
		{ 0x33, 0x90, 0x00, 0x3c },
1012
		{ 0x33, 0x8c, 0xa1, 0x19 },
1013
		{ 0x33, 0x90, 0x00, 0x0a },
1014
		{ 0x33, 0x8c, 0xa7, 0x6d },
1015
		{ 0x33, 0x90, 0x00, 0x03 },
1016
		{ 0x33, 0x8c, 0xa7, 0x6e },
1017
		{ 0x33, 0x90, 0x00, 0x03 },
1018
		{ 0x33, 0x8c, 0xa7, 0x6f },
1019
		{ 0x33, 0x90, 0x00, 0x00 },
1020
		{ 0x33, 0x8c, 0xa7, 0x70 },
1021
		{ 0x33, 0x90, 0x00, 0x05 },
1022
		{ 0x33, 0x8c, 0xa7, 0x71 },
1023
		{ 0x33, 0x90, 0x00, 0x10 },
1024
		{ 0x33, 0x8c, 0xa7, 0x72 },
1025
		{ 0x33, 0x90, 0x00, 0x30 },
1026
		{ 0x33, 0x8c, 0xa7, 0x73 },
1027
		{ 0x33, 0x90, 0x00, 0x5b },
1028
		{ 0x33, 0x8c, 0xa7, 0x74 },
1029
		{ 0x33, 0x90, 0x00, 0x77 },
1030
		{ 0x33, 0x8c, 0xa7, 0x75 },
1031
		{ 0x33, 0x90, 0x00, 0x8e },
1032
		{ 0x33, 0x8c, 0xa7, 0x76 },
1033
		{ 0x33, 0x90, 0x00, 0xa0 },
1034
		{ 0x33, 0x8c, 0xa7, 0x77 },
1035
		{ 0x33, 0x90, 0x00, 0xaf },
1036
		{ 0x33, 0x8c, 0xa7, 0x78 },
1037
		{ 0x33, 0x90, 0x00, 0xbc },
1038
		{ 0x33, 0x8c, 0xa7, 0x79 },
1039
		{ 0x33, 0x90, 0x00, 0xc7 },
1040
		{ 0x33, 0x8c, 0xa7, 0x7a },
1041
		{ 0x33, 0x90, 0x00, 0xd0 },
1042
		{ 0x33, 0x8c, 0xa7, 0x7b },
1043
		{ 0x33, 0x90, 0x00, 0xd9 },
1044
		{ 0x33, 0x8c, 0xa7, 0x7c },
1045
		{ 0x33, 0x90, 0x00, 0xe0 },
1046
		{ 0x33, 0x8c, 0xa7, 0x7d },
1047
		{ 0x33, 0x90, 0x00, 0xe8 },
1048
		{ 0x33, 0x8c, 0xa7, 0x7e },
1049
		{ 0x33, 0x90, 0x00, 0xee },
1050
		{ 0x33, 0x8c, 0xa7, 0x7f },
1051
		{ 0x33, 0x90, 0x00, 0xf4 },
1052
		{ 0x33, 0x8c, 0xa7, 0x80 },
1053
		{ 0x33, 0x90, 0x00, 0xfa },
1054
		{ 0x33, 0x8c, 0xa7, 0x81 },
1055
		{ 0x33, 0x90, 0x00, 0xff },
1056
		{ 0x33, 0x8c, 0xa7, 0x82 },
1057
		{ 0x33, 0x90, 0x00, 0x00 },
1058
		{ 0x33, 0x8c, 0xa7, 0x83 },
1059
		{ 0x33, 0x90, 0x00, 0x05 },
1060
		{ 0x33, 0x8c, 0xa7, 0x84 },
1061
		{ 0x33, 0x90, 0x00, 0x10 },
1062
		{ 0x33, 0x8c, 0xa7, 0x85 },
1063
		{ 0x33, 0x90, 0x00, 0x30 },
1064
		{ 0x33, 0x8c, 0xa7, 0x86 },
1065
		{ 0x33, 0x90, 0x00, 0x5b },
1066
		{ 0x33, 0x8c, 0xa7, 0x87 },
1067
		{ 0x33, 0x90, 0x00, 0x77 },
1068
		{ 0x33, 0x8c, 0xa7, 0x88 },
1069
		{ 0x33, 0x90, 0x00, 0x8e },
1070
		{ 0x33, 0x8c, 0xa7, 0x89 },
1071
		{ 0x33, 0x90, 0x00, 0xa0 },
1072
		{ 0x33, 0x8c, 0xa7, 0x8a },
1073
		{ 0x33, 0x90, 0x00, 0xaf },
1074
		{ 0x33, 0x8c, 0xa7, 0x8b },
1075
		{ 0x33, 0x90, 0x00, 0xbc },
1076
		{ 0x33, 0x8c, 0xa7, 0x8c },
1077
		{ 0x33, 0x90, 0x00, 0xc7 },
1078
		{ 0x33, 0x8c, 0xa7, 0x8d },
1079
		{ 0x33, 0x90, 0x00, 0xd0 },
1080
		{ 0x33, 0x8c, 0xa7, 0x8e },
1081
		{ 0x33, 0x90, 0x00, 0xd9 },
1082
		{ 0x33, 0x8c, 0xa7, 0x8f },
1083
		{ 0x33, 0x90, 0x00, 0xe0 },
1084
		{ 0x33, 0x8c, 0xa7, 0x90 },
1085
		{ 0x33, 0x90, 0x00, 0xe8 },
1086
		{ 0x33, 0x8c, 0xa7, 0x91 },
1087
		{ 0x33, 0x90, 0x00, 0xee },
1088
		{ 0x33, 0x8c, 0xa7, 0x92 },
1089
		{ 0x33, 0x90, 0x00, 0xf4 },
1090
		{ 0x33, 0x8c, 0xa7, 0x93 },
1091
		{ 0x33, 0x90, 0x00, 0xfa },
1092
		{ 0x33, 0x8c, 0xa7, 0x94 },
1093
		{ 0x33, 0x90, 0x00, 0xff },
1094
		{ 0x33, 0x8c, 0xa1, 0x03 },
1095
		{ 0x33, 0x90, 0x00, 0x05 },
1096
		{ 0x33, 0x8c, 0xa1, 0x04 },
1097
		{ 0x33, 0x90, -1 },
1098
		{ 0x33, 0x8c, 0xa2, 0x06 },
1099
		{ 0x33, 0x90, 0x00, 0x50 },
1100
		{ 0x33, 0x8c, 0x27, 0x03 },
1101
		{ 0x33, 0x90, 0x02, 0x82 },
1102
		{ 0x33, 0x8c, 0x27, 0x05 },
1103
		{ 0x33, 0x90, 0x01, 0xe2 },
1104
		{ 0x33, 0x8c, 0x27, 0x07 },
1105
		{ 0x33, 0x90, 0x05, 0x02 },
1106
		{ 0x33, 0x8c, 0x27, 0x09 },
1107
		{ 0x33, 0x90, 0x04, 0x02 },
1108
		{ 0x33, 0x8c, 0x27, 0x0d },
1109
		{ 0x33, 0x90, 0x00, 0x00 },
1110
		{ 0x33, 0x8c, 0x27, 0x0f },
1111
		{ 0x33, 0x90, 0x00, 0x00 },
1112
		{ 0x33, 0x8c, 0x27, 0x11 },
1113
		{ 0x33, 0x90, 0x04, 0xbd },
1114
		{ 0x33, 0x8c, 0x27, 0x13 },
1115
		{ 0x33, 0x90, 0x06, 0x4d },
1116
		{ 0x33, 0x8c, 0x27, 0x15 },
1117
		{ 0x33, 0x90, 0x04, 0x00 },
1118
		{ 0x33, 0x8c, 0x27, 0x17 },
1119
		{ 0x33, 0x90, 0x21, 0x11 },
1120
		{ 0x33, 0x8c, 0x27, 0x19 },
1121
		{ 0x33, 0x90, 0x04, 0x6c },
1122
		{ 0x33, 0x8c, 0x27, 0x1b },
1123
		{ 0x33, 0x90, 0x02, 0x4f },
1124
		{ 0x33, 0x8c, 0x27, 0x1d },
1125
		{ 0x33, 0x90, 0x01, 0x02 },
1126
		{ 0x33, 0x8c, 0x27, 0x1f },
1127
		{ 0x33, 0x90, 0x02, 0x79 },
1128
		{ 0x33, 0x8c, 0x27, 0x21 },
1129
		{ 0x33, 0x90, 0x01, 0x55 },
1130
		{ 0x33, 0x8c, 0x27, 0x23 },
1131
		{ 0x33, 0x90, 0x03, 0x5b },
1132
		{ 0x33, 0x8c, 0x27, 0x25 },
1133
		{ 0x33, 0x90, 0x06, 0x0f },
1134
		{ 0x33, 0x8c, 0x27, 0x27 },
1135
		{ 0x33, 0x90, 0x20, 0x20 },
1136
		{ 0x33, 0x8c, 0x27, 0x29 },
1137
		{ 0x33, 0x90, 0x20, 0x20 },
1138
		{ 0x33, 0x8c, 0x27, 0x2b },
1139
		{ 0x33, 0x90, 0x10, 0x20 },
1140
		{ 0x33, 0x8c, 0x27, 0x2d },
1141
		{ 0x33, 0x90, 0x20, 0x07 },
1142
		{ 0x33, 0x8c, 0x27, 0x2f },
1143
		{ 0x33, 0x90, 0x00, 0x04 },
1144
		{ 0x33, 0x8c, 0x27, 0x31 },
1145
		{ 0x33, 0x90, 0x00, 0x04 },
1146
		{ 0x33, 0x8c, 0x27, 0x33 },
1147
		{ 0x33, 0x90, 0x04, 0xbb },
1148
		{ 0x33, 0x8c, 0x27, 0x35 },
1149
		{ 0x33, 0x90, 0x06, 0x4b },
1150
		{ 0x33, 0x8c, 0x27, 0x37 },
1151
		{ 0x33, 0x90, 0x04, 0xce },
1152
		{ 0x33, 0x8c, 0x27, 0x39 },
1153
		{ 0x33, 0x90, 0x21, 0x11 },
1154
		{ 0x33, 0x8c, 0x27, 0x3b },
1155
		{ 0x33, 0x90, 0x00, 0x24 },
1156
		{ 0x33, 0x8c, 0x27, 0x3d },
1157
		{ 0x33, 0x90, 0x01, 0x20 },
1158
		{ 0x33, 0x8c, 0x27, 0x41 },
1159
		{ 0x33, 0x90, 0x01, 0x69 },
1160
		{ 0x33, 0x8c, 0x27, 0x45 },
1161
		{ 0x33, 0x90, 0x04, 0xff },
1162
		{ 0x33, 0x8c, 0x27, 0x47 },
1163
		{ 0x33, 0x90, 0x08, 0x24 },
1164
		{ 0x33, 0x8c, 0x27, 0x51 },
1165
		{ 0x33, 0x90, 0x00, 0x00 },
1166
		{ 0x33, 0x8c, 0x27, 0x53 },
1167
		{ 0x33, 0x90, 0x03, 0x20 },
1168
		{ 0x33, 0x8c, 0x27, 0x55 },
1169
		{ 0x33, 0x90, 0x00, 0x00 },
1170
		{ 0x33, 0x8c, 0x27, 0x57 },
1171
		{ 0x33, 0x90, 0x02, 0x58 },
1172
		{ 0x33, 0x8c, 0x27, 0x5f },
1173
		{ 0x33, 0x90, 0x00, 0x00 },
1174
		{ 0x33, 0x8c, 0x27, 0x61 },
1175
		{ 0x33, 0x90, 0x06, 0x40 },
1176
		{ 0x33, 0x8c, 0x27, 0x63 },
1177
		{ 0x33, 0x90, 0x00, 0x00 },
1178
		{ 0x33, 0x8c, 0x27, 0x65 },
1179
		{ 0x33, 0x90, 0x04, 0xb0 },
1180
		{ 0x33, 0x8c, 0x22, 0x2e },
1181
		{ 0x33, 0x90, 0x00, 0xd7 },
1182
		{ 0x33, 0x8c, 0xa4, 0x08 },
1183
		{ 0x33, 0x90, 0x00, 0x2a },
1184
		{ 0x33, 0x8c, 0xa4, 0x09 },
1185
		{ 0x33, 0x90, 0x00, 0x2c },
1186
		{ 0x33, 0x8c, 0xa4, 0x0a },
1187
		{ 0x33, 0x90, 0x00, 0x32 },
1188
		{ 0x33, 0x8c, 0xa4, 0x0b },
1189
		{ 0x33, 0x90, 0x00, 0x34 },
1190
		{ 0x33, 0x8c, 0x24, 0x11 },
1191
		{ 0x33, 0x90, 0x00, 0xd7 },
1192
		{ 0x33, 0x8c, 0x24, 0x13 },
1193
		{ 0x33, 0x90, 0x01, 0x02 },
1194
		{ 0x33, 0x8c, 0x24, 0x15 },
1195
		{ 0x33, 0x90, 0x00, 0xa0 },
1196
		{ 0x33, 0x8c, 0x24, 0x17 },
1197
		{ 0x33, 0x90, 0x00, 0xc0 },
1198
		{ 0x33, 0x8c, 0x27, 0x99 },
1199
		{ 0x33, 0x90, 0x64, 0x08 },
1200
		{ 0x33, 0x8c, 0x27, 0x9b },
1201
		{ 0x33, 0x90, 0x64, 0x08 },
1202
		{ 0x33, 0x8c, 0xa2, 0x0c },
1203
		{ 0x33, 0x90, 0x00, 0x18 },
1204
		{ 0x33, 0x8c, 0xa2, 0x14 },
1205
		{ 0x33, 0x90, 0x00, 0x24 },
1206
		{ 0x33, 0x8c, 0xa2, 0x15 },
1207
		{ 0x33, 0x90, 0x00, 0x04 },
1208
		{ 0x33, 0x8c, 0xa2, 0x0d },
1209
		{ 0x33, 0x90, 0x00, 0x30 },
1210
		{ 0x33, 0x8c, 0xa2, 0x0e },
1211
		{ 0x33, 0x90, 0x00, 0x80 },
1212
		{ 0x33, 0x8c, 0xa1, 0x03 },
1213
		{ 0x33, 0x90, 0x00, 0x05 },
1214
		{ 0x33, 0x8c, 0xa1, 0x04 },
1215
		{ 0x33, 0x90, -1 },
1216
		{ 0x33, 0x8c, 0xa1, 0x03 },
1217
		{ 0x33, 0x90, 0x00, 0x06 },
1218
		{ 0x33, 0x8c, 0xa1, 0x04 },
1219
		{ 0x33, 0x90, -1 },
1220
		{ 0x33, 0x8c, 0xa1, 0x30 },
1221
		{ 0x33, 0x90, 0x00, 0x04 },
1222
		{ 0x33, 0x8c, 0xa1, 0x15 },
1223
		{ 0x33, 0x90, 0x00, 0xef },
1224
		{ 0x33, 0x8c, 0xa1, 0x16 },
1225
		{ 0x33, 0x90, 0x00, 0x30 },
1226
		{ 0x33, 0x8c, 0xa1, 0x17 },
1227
		{ 0x33, 0x90, 0x00, 0x55 },
1228
		{ 0x33, 0x8c, 0xa1, 0x18 },
1229
		{ 0x33, 0x90, 0x00, 0x5a },
1230
		{ 0x33, 0x8c, 0xa1, 0x19 },
1231
		{ 0x33, 0x90, 0x00, 0x28 },
1232
		{ 0x33, 0x8c, 0xa1, 0x1a },
1233
		{ 0x33, 0x90, 0x00, 0x08 },
1234
		{ 0x33, 0x8c, 0xa1, 0x1b },
1235
		{ 0x33, 0x90, 0x00, 0x1e },
1236
		{ 0x33, 0x8c, 0xa1, 0x1c },
1237
		{ 0x33, 0x90, 0x00, 0x02 },
1238
		{ 0x33, 0x8c, 0xa1, 0x1d },
1239
		{ 0x33, 0x90, 0x00, 0x00 },
1240
		{ 0x33, 0x8c, 0xa1, 0x1e },
1241
		{ 0x33, 0x90, 0x00, 0x00 },
1242
		{ 0x33, 0x8c, 0xa1, 0x1f },
1243
		{ 0x33, 0x90, 0x00, 0x04 },
1244
		{ 0x33, 0x8c, 0xab, 0x05 },
1245
		{ 0x33, 0x90, 0x00, 0x00 },
1246
		{ 0x33, 0x8c, 0xa7, 0x6d },
1247
		{ 0x33, 0x90, 0x00, 0x03 },
1248
		{ 0x33, 0x8c, 0xa7, 0x6e },
1249
		{ 0x33, 0x90, 0x00, 0x03 },
1250
		{ 0x33, 0x8c, 0xa7, 0x6f },
1251
		{ 0x33, 0x90, 0x00, 0x00 },
1252
		{ 0x33, 0x8c, 0xa7, 0x70 },
1253
		{ 0x33, 0x90, 0x00, 0x15 },
1254
		{ 0x33, 0x8c, 0xa7, 0x71 },
1255
		{ 0x33, 0x90, 0x00, 0x25 },
1256
		{ 0x33, 0x8c, 0xa7, 0x72 },
1257
		{ 0x33, 0x90, 0x00, 0x3f },
1258
		{ 0x33, 0x8c, 0xa7, 0x73 },
1259
		{ 0x33, 0x90, 0x00, 0x64 },
1260
		{ 0x33, 0x8c, 0xa7, 0x74 },
1261
		{ 0x33, 0x90, 0x00, 0x80 },
1262
		{ 0x33, 0x8c, 0xa7, 0x75 },
1263
		{ 0x33, 0x90, 0x00, 0x97 },
1264
		{ 0x33, 0x8c, 0xa7, 0x76 },
1265
		{ 0x33, 0x90, 0x00, 0xa9 },
1266
		{ 0x33, 0x8c, 0xa7, 0x77 },
1267
		{ 0x33, 0x90, 0x00, 0xba },
1268
		{ 0x33, 0x8c, 0xa7, 0x78 },
1269
		{ 0x33, 0x90, 0x00, 0xc7 },
1270
		{ 0x33, 0x8c, 0xa7, 0x79 },
1271
		{ 0x33, 0x90, 0x00, 0xd2 },
1272
		{ 0x33, 0x8c, 0xa7, 0x7a },
1273
		{ 0x33, 0x90, 0x00, 0xdc },
1274
		{ 0x33, 0x8c, 0xa7, 0x7b },
1275
		{ 0x33, 0x90, 0x00, 0xe4 },
1276
		{ 0x33, 0x8c, 0xa7, 0x7c },
1277
		{ 0x33, 0x90, 0x00, 0xea },
1278
		{ 0x33, 0x8c, 0xa7, 0x7d },
1279
		{ 0x33, 0x90, 0x00, 0xf0 },
1280
		{ 0x33, 0x8c, 0xa7, 0x7e },
1281
		{ 0x33, 0x90, 0x00, 0xf4 },
1282
		{ 0x33, 0x8c, 0xa7, 0x7f },
1283
		{ 0x33, 0x90, 0x00, 0xf8 },
1284
		{ 0x33, 0x8c, 0xa7, 0x80 },
1285
		{ 0x33, 0x90, 0x00, 0xfc },
1286
		{ 0x33, 0x8c, 0xa7, 0x81 },
1287
		{ 0x33, 0x90, 0x00, 0xff },
1288
		{ 0x33, 0x8c, 0xa7, 0x82 },
1289
		{ 0x33, 0x90, 0x00, 0x00 },
1290
		{ 0x33, 0x8c, 0xa7, 0x83 },
1291
		{ 0x33, 0x90, 0x00, 0x15 },
1292
		{ 0x33, 0x8c, 0xa7, 0x84 },
1293
		{ 0x33, 0x90, 0x00, 0x25 },
1294
		{ 0x33, 0x8c, 0xa7, 0x85 },
1295
		{ 0x33, 0x90, 0x00, 0x3f },
1296
		{ 0x33, 0x8c, 0xa7, 0x86 },
1297
		{ 0x33, 0x90, 0x00, 0x64 },
1298
		{ 0x33, 0x8c, 0xa7, 0x87 },
1299
		{ 0x33, 0x90, 0x00, 0x80 },
1300
		{ 0x33, 0x8c, 0xa7, 0x88 },
1301
		{ 0x33, 0x90, 0x00, 0x97 },
1302
		{ 0x33, 0x8c, 0xa7, 0x89 },
1303
		{ 0x33, 0x90, 0x00, 0xa9 },
1304
		{ 0x33, 0x8c, 0xa7, 0x8a },
1305
		{ 0x33, 0x90, 0x00, 0xba },
1306
		{ 0x33, 0x8c, 0xa7, 0x8b },
1307
		{ 0x33, 0x90, 0x00, 0xc7 },
1308
		{ 0x33, 0x8c, 0xa7, 0x8c },
1309
		{ 0x33, 0x90, 0x00, 0xd2 },
1310
		{ 0x33, 0x8c, 0xa7, 0x8d },
1311
		{ 0x33, 0x90, 0x00, 0xdc },
1312
		{ 0x33, 0x8c, 0xa7, 0x8e },
1313
		{ 0x33, 0x90, 0x00, 0xe4 },
1314
		{ 0x33, 0x8c, 0xa7, 0x8f },
1315
		{ 0x33, 0x90, 0x00, 0xea },
1316
		{ 0x33, 0x8c, 0xa7, 0x90 },
1317
		{ 0x33, 0x90, 0x00, 0xf0 },
1318
		{ 0x33, 0x8c, 0xa7, 0x91 },
1319
		{ 0x33, 0x90, 0x00, 0xf4 },
1320
		{ 0x33, 0x8c, 0xa7, 0x92 },
1321
		{ 0x33, 0x90, 0x00, 0xf8 },
1322
		{ 0x33, 0x8c, 0xa7, 0x93 },
1323
		{ 0x33, 0x90, 0x00, 0xfc },
1324
		{ 0x33, 0x8c, 0xa7, 0x94 },
1325
		{ 0x33, 0x90, 0x00, 0xff },
1326
		{ 0x33, 0x8c, 0xa1, 0x03 },
1327
		{ 0x33, 0x90, 0x00, 0x06 },
1328
		{ 0x33, 0x8c, 0xa1, 0x04 },
1329
		{ 0x33, 0x90, -1 },
1330
		{ 0x35, 0xa4, 0x05, 0x96 },
1331
		{ 0x33, 0x8c, 0xa1, 0x18 },
1332
		{ 0x33, 0x90, 0x00, 0x1e },
1333
		{ 0x33, 0x8c, 0xa1, 0x19 },
1334
		{ 0x33, 0x90, 0x00, 0x04 },
1335
		{ 0x33, 0x8c, 0xa1, 0x1a },
1336
		{ 0x33, 0x90, 0x00, 0x0a },
1337
		{ 0x33, 0x8c, 0xa1, 0x1b },
1338
		{ 0x33, 0x90, 0x00, 0x20 },
1339
		{ 0x33, 0x8c, 0xa1, 0x3e },
1340
		{ 0x33, 0x90, 0x00, 0x04 },
1341
		{ 0x33, 0x8c, 0xa1, 0x3f },
1342
		{ 0x33, 0x90, 0x00, 0x0e },
1343
		{ 0x33, 0x8c, 0xa1, 0x40 },
1344
		{ 0x33, 0x90, 0x00, 0x04 },
1345
		{ 0x33, 0x8c, 0xa1, 0x41 },
1346
		{ 0x33, 0x90, 0x00, 0x04 },
1347
		{ 0x33, 0x8c, 0xa1, 0x42 },
1348
		{ 0x33, 0x90, 0x00, 0x32 },
1349
		{ 0x33, 0x8c, 0xa1, 0x43 },
1350
		{ 0x33, 0x90, 0x00, 0x0f },
1351
		{ 0x33, 0x8c, 0xa1, 0x44 },
1352
		{ 0x33, 0x90, 0x00, 0x32 },
1353
		{ 0x33, 0x8c, 0xa1, 0x45 },
1354
		{ 0x33, 0x90, 0x00, 0x32 },
1355
		{ 0x33, 0x8c, 0xa1, 0x46 },
1356
		{ 0x33, 0x90, 0x00, 0x05 },
1357
		{ 0x33, 0x8c, 0xa1, 0x04 },
1358
		{ 0x33, 0x90, -1 },
1359
		{ 0x33, 0x8c, 0xa1, 0x47 },
1360
		{ 0x33, 0x90, 0x00, 0x3a },
1361
		{ 0x33, 0x8c, 0x27, 0x95 },
1362
		{ 0x33, 0x90, 0x01, 0x00 },
1363
		{ 0x33, 0x8c, 0xa1, 0x03 },
1364
		{ 0x33, 0x90, 0x00, 0x05 },
1365
		{ 0x33, 0x8c, 0xa1, 0x04 },
1366
		{ 0x33, 0x90, -1 },
1367
		{ 0x33, 0x8c, 0x27, 0x97 },
1368
		{ 0x33, 0x90, 0x01, 0x00 },
1369
		{ 0x33, 0x8c, 0xa1, 0x03 },
1370
		{ 0x33, 0x90, 0x00, 0x05 },
1371
		{ 0x33, 0x8c, 0xa1, 0x04 },
1372
		{ 0x33, 0x90, -1 },
1373
		{ 0x33, 0x8c, 0xa4, 0x04 },
1374
		{ 0x33, 0x90, 0x00, 0x80 },
1375
		{ 0x33, 0x8c, 0xa1, 0x03 },
1376
		{ 0x33, 0x90, 0x00, 0x05 },
1377
		{ 0x33, 0x8c, 0xa1, 0x04 },
1378
		{ 0x33, 0x90 }
1379
	};
1380
1381
1382
	asize = ARRAY_SIZE(values_205);
1383
1384
	for(i=0; i<asize; i++) {
1385
		usb_stk11xx_read_registry(dev, 0x02ff, &value);
1386
		usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
1387
1388
		usb_stk11xx_write_registry(dev, 0x0205, values_205[i][0]);
1389
		usb_stk11xx_write_registry(dev, 0x0205, values_205[i][1]);
1390
1391
		if (values_205[i][2] == -1) {
1392
			usb_stk11xx_write_registry(dev, 0x0200, 0x0061);
1393
1394
			retok = dev_stk11xx_check_device(dev, 500);
1395
1396
			usb_stk11xx_read_registry(dev, 0x0209, &value);
1397
			usb_stk11xx_write_registry(dev, 0x0200, 0x0020);
1398
1399
			retok = dev_stk11xx_check_device(dev, 500);
1400
1401
			usb_stk11xx_read_registry(dev, 0x0209, &value);
1402
		}
1403
		else {
1404
			usb_stk11xx_write_registry(dev, 0x0205, values_205[i][2]);
1405
			usb_stk11xx_write_registry(dev, 0x0205, values_205[i][3]);
1406
			usb_stk11xx_write_registry(dev, 0x0200, 0x0001);
1407
1408
			retok = dev_stk11xx_check_device(dev, 500);
1409
		}
1410
1411
		usb_stk11xx_write_registry(dev, 0x02ff, 0x0001);
1412
	}
1413
1414
	return 0;
1415
}
1416
1417
1418
/** 
1419
 * @param dev Device structure
1420
 * 
1421
 * @returns 0 if all is OK
1422
 *
1423
 * @brief This function permits to modify the settings of the camera.
1424
 *
1425
 * This functions permits to modify the settings :
1426
 *   - brightness
1427
 *   - contrast
1428
 *   - white balance
1429
 *   - ...
1430
 */
1431
int dev_stk6a51_camera_settings(struct usb_stk11xx *dev)
1432
{
1433
	return 0;
1434
}
1435
1436
1437
/** 
1438
 * @param dev Device structure
1439
 * 
1440
 * @returns 0 if all is OK
1441
 *
1442
 * @brief This function permits to modify the settings of the camera.
1443
 *
1444
 * This functions permits to modify the settings :
1445
 *   - brightness
1446
 *   - contrast
1447
 *   - white balance
1448
 *   - ...
1449
 */
1450
int dev_stk6a51_set_camera_quality(struct usb_stk11xx *dev)
1451
{
1452
	int ret;
1453
	int value;
1454
1455
	// Contrast register
1456
	usb_stk11xx_read_registry(dev, 0x02ff, &value);
1457
	usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
1458
1459
	usb_stk11xx_write_registry(dev, 0x0204, 0x00b3);
1460
	usb_stk11xx_write_registry(dev, 0x0205, (dev->vsettings.contrast >> 8));
1461
1462
	usb_stk11xx_write_registry(dev, 0x0200, 0x0001);
1463
	ret = dev_stk11xx_check_device(dev, 500);
1464
	usb_stk11xx_write_registry(dev, 0x02ff, 0x0000);
1465
1466
	STK_DEBUG("Set colour : %d\n", dev->vsettings.colour);
1467
	STK_DEBUG("Set contrast : %d\n", dev->vsettings.contrast);
1468
	STK_DEBUG("Set whiteness : %d\n", dev->vsettings.whiteness);
1469
	STK_DEBUG("Set brightness : %d\n", dev->vsettings.brightness);
1470
1471
	return 0;
1472
}
1473
1474
1475
/** 
1476
 * @param dev Device structure
1477
 * 
1478
 * @returns 0 if all is OK
1479
 *
1480
 * @brief This function permits to modify the settings of the camera.
1481
 *
1482
 * This functions permits to modify the frame rate per second.
1483
 */
1484
int dev_stk6a51_set_camera_fps(struct usb_stk11xx *dev)
1485
{
1486
	return 0;
1487
}
1488
1489
1490
/** 
1491
 * @param dev Device structure
1492
 * 
1493
 * @returns 0 if all is OK
1494
 *
1495
 * @brief This function sets the device to start the stream.
1496
 *
1497
 * After the initialization of the device and the initialization of the video stream,
1498
 * this function permits to enable the stream.
1499
 */
1500
int dev_stk6a51_start_stream(struct usb_stk11xx *dev)
1501
{
1502
	int value;
1503
	int value_116, value_117;
1504
1505
	usb_stk11xx_read_registry(dev, 0x0116, &value_116);
1506
	usb_stk11xx_read_registry(dev, 0x0117, &value_117);
1507
1508
	usb_stk11xx_write_registry(dev, 0x0116, 0x0000);
1509
	usb_stk11xx_write_registry(dev, 0x0117, 0x0000);
1510
1511
	usb_stk11xx_read_registry(dev, 0x0100, &value); // read 0x21
1512
	usb_stk11xx_write_registry(dev, 0x0100, 0x00a0);
1513
1514
	usb_stk11xx_write_registry(dev, 0x0116, value_116);
1515
	usb_stk11xx_write_registry(dev, 0x0117, value_117);
1516
1517
	return 0;
1518
}
1519
1520
1521
/** 
1522
 * @param dev Device structure
1523
 * 
1524
 * @returns 0 if all is OK
1525
 *
1526
 * @brief Reconfigure the camera before the stream.
1527
 *
1528
 * Before enabling the video stream, you have to reconfigure the device.
1529
 */
1530
int dev_stk6a51_reconf_camera(struct usb_stk11xx *dev)
1531
{
1532
	dev_stk6a51_configure_device(dev, 19);
1533
1534
	dev_stk11xx_camera_settings(dev);
1535
1536
	return 0;
1537
}
1538
1539
1540
/** 
1541
 * @param dev Device structure
1542
 * 
1543
 * @returns 0 if all is OK
1544
 *
1545
 * @brief This function sets the device to stop the stream.
1546
 *
1547
 * You use the function start_stream to enable the video stream. So you
1548
 * have to use the function stop_strem to disable the video stream.
1549
 */
1550
int dev_stk6a51_stop_stream(struct usb_stk11xx *dev)
1551
{
1552
	return 0;
1553
}
1554
(-)stk11xx-1.2.3/stk11xx-dev-6a54.c (-4 / +4 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-dev-6a54.c
2
 * @file stk11xx-dev-6a54.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-dev-6a54.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev-6a54.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
(-)stk11xx-1.2.3/stk11xx-dev-a311.c (-4 / +4 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-dev-a311.c
2
 * @file stk11xx-dev-a311.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-dev-a311.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev-a311.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
(-)stk11xx-1.2.3/stk11xx-dev-a821.c (-4 / +4 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-dev-a821.c
2
 * @file stk11xx-dev-a821.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-dev-a821.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev-a821.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
(-)stk11xx-1.2.3/stk11xx-dev.c (-5 / +45 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-dev.c
2
 * @file stk11xx-dev.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-11 14:50:16 +0100 (k, 11 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 70 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-dev.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
Lines 81-86 Link Here
81
			ret = dev_stk6a33_initialize_device(dev);
81
			ret = dev_stk6a33_initialize_device(dev);
82
			break;
82
			break;
83
83
84
		case SYNTEK_STK_6A51:
85
			ret = dev_stk6a51_initialize_device(dev);
86
			break;
87
84
		case SYNTEK_STK_6A54:
88
		case SYNTEK_STK_6A54:
85
			ret = dev_stk6a54_initialize_device(dev);
89
			ret = dev_stk6a54_initialize_device(dev);
86
			break;
90
			break;
Lines 125-130 Link Here
125
			ret = dev_stk6a33_init_camera(dev);
129
			ret = dev_stk6a33_init_camera(dev);
126
			break;
130
			break;
127
131
132
		case SYNTEK_STK_6A51:
133
			ret = dev_stk6a51_init_camera(dev);
134
			break;
135
128
		case SYNTEK_STK_6A54:
136
		case SYNTEK_STK_6A54:
129
			ret = dev_stk6a54_init_camera(dev);
137
			ret = dev_stk6a54_init_camera(dev);
130
			break;
138
			break;
Lines 160-169 Link Here
160
		
168
		
161
		if (value == 0x00) {
169
		if (value == 0x00) {
162
		}
170
		}
171
		else if ((value == 0x14) || (value == 0x30) || (value == 0x70) || (value == 0x71)) {
172
		}
163
		else if (value == 0x01) {
173
		else if (value == 0x01) {
164
			return 1;
174
			return 1;
165
		}
175
		}
166
		else if (value == 0x04)
176
		else if ((value == 0x04) || (value == 0x05))
177
			return 1;
178
		else if (value == 0x15) 
167
			return 1;
179
			return 1;
168
		else {
180
		else {
169
			STK_ERROR("Check device return error (0x0201 = %02X) !\n", value);
181
			STK_ERROR("Check device return error (0x0201 = %02X) !\n", value);
Lines 277-282 Link Here
277
			ret = dev_stk6a33_camera_asleep(dev);
289
			ret = dev_stk6a33_camera_asleep(dev);
278
			break;
290
			break;
279
291
292
		case SYNTEK_STK_6A51:
293
			ret = dev_stk6a51_camera_asleep(dev);
294
			break;
295
280
		case SYNTEK_STK_6A54:
296
		case SYNTEK_STK_6A54:
281
			ret = dev_stk6a54_camera_asleep(dev);
297
			ret = dev_stk6a54_camera_asleep(dev);
282
			break;
298
			break;
Lines 324-329 Link Here
324
			ret = dev_stk6a33_camera_settings(dev);
340
			ret = dev_stk6a33_camera_settings(dev);
325
			break;
341
			break;
326
342
343
		case SYNTEK_STK_6A51:
344
			ret = dev_stk6a51_camera_settings(dev);
345
			break;
346
327
		case SYNTEK_STK_6A54:
347
		case SYNTEK_STK_6A54:
328
			ret = dev_stk6a54_camera_settings(dev);
348
			ret = dev_stk6a54_camera_settings(dev);
329
			break;
349
			break;
Lines 371-376 Link Here
371
			ret = dev_stk6a33_set_camera_quality(dev);
391
			ret = dev_stk6a33_set_camera_quality(dev);
372
			break;
392
			break;
373
393
394
		case SYNTEK_STK_6A51:
395
			ret = dev_stk6a51_set_camera_quality(dev);
396
			break;
397
374
		case SYNTEK_STK_6A54:
398
		case SYNTEK_STK_6A54:
375
			ret = dev_stk6a54_set_camera_quality(dev);
399
			ret = dev_stk6a54_set_camera_quality(dev);
376
			break;
400
			break;
Lines 415-420 Link Here
415
			ret = dev_stk6a33_set_camera_fps(dev);
439
			ret = dev_stk6a33_set_camera_fps(dev);
416
			break;
440
			break;
417
441
442
		case SYNTEK_STK_6A51:
443
			ret = dev_stk6a51_set_camera_fps(dev);
444
			break;
445
418
		case SYNTEK_STK_6A54:
446
		case SYNTEK_STK_6A54:
419
			ret = dev_stk6a54_set_camera_fps(dev);
447
			ret = dev_stk6a54_set_camera_fps(dev);
420
			break;
448
			break;
Lines 459-464 Link Here
459
			ret = dev_stk6a33_start_stream(dev);
487
			ret = dev_stk6a33_start_stream(dev);
460
			break;
488
			break;
461
489
490
		case SYNTEK_STK_6A51:
491
			ret = dev_stk6a51_start_stream(dev);
492
			break;
493
462
		case SYNTEK_STK_6A54:
494
		case SYNTEK_STK_6A54:
463
			ret = dev_stk6a54_start_stream(dev);
495
			ret = dev_stk6a54_start_stream(dev);
464
			break;
496
			break;
Lines 502-507 Link Here
502
			ret = dev_stk6a33_reconf_camera(dev);
534
			ret = dev_stk6a33_reconf_camera(dev);
503
			break;
535
			break;
504
536
537
		case SYNTEK_STK_6A51:
538
			ret = dev_stk6a51_reconf_camera(dev);
539
			break;
540
505
		case SYNTEK_STK_6A54:
541
		case SYNTEK_STK_6A54:
506
			ret = dev_stk6a54_reconf_camera(dev);
542
			ret = dev_stk6a54_reconf_camera(dev);
507
			break;
543
			break;
Lines 546-551 Link Here
546
			ret = dev_stk6a33_stop_stream(dev);
582
			ret = dev_stk6a33_stop_stream(dev);
547
			break;
583
			break;
548
584
585
		case SYNTEK_STK_6A51:
586
			ret = dev_stk6a51_stop_stream(dev);
587
			break;
588
549
		case SYNTEK_STK_6A54:
589
		case SYNTEK_STK_6A54:
550
			ret = dev_stk6a54_stop_stream(dev);
590
			ret = dev_stk6a54_stop_stream(dev);
551
			break;
591
			break;
(-)stk11xx-1.2.3/stk11xx-dev.h (-4 / +16 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-dev.h
2
 * @file stk11xx-dev.h
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2007-11-23
4
 * @date 2007-11-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-dev.h $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-dev.h $
32
 */
32
 */
33
33
34
#ifndef STK11XX_DEV_H
34
#ifndef STK11XX_DEV_H
Lines 83-88 Link Here
83
int dev_stk6a33_set_camera_quality(struct usb_stk11xx *);
83
int dev_stk6a33_set_camera_quality(struct usb_stk11xx *);
84
int dev_stk6a33_set_camera_fps(struct usb_stk11xx *);
84
int dev_stk6a33_set_camera_fps(struct usb_stk11xx *);
85
85
86
int dev_stk6a51_initialize_device(struct usb_stk11xx *);
87
int dev_stk6a51_configure_device(struct usb_stk11xx *, int);
88
int dev_stk6a51_start_stream(struct usb_stk11xx *);
89
int dev_stk6a51_stop_stream(struct usb_stk11xx *);
90
int dev_stk6a51_camera_asleep(struct usb_stk11xx *);
91
int dev_stk6a51_init_camera(struct usb_stk11xx *);
92
int dev_stk6a51_sensor_settings(struct usb_stk11xx *);
93
int dev_stk6a51_reconf_camera(struct usb_stk11xx *);
94
int dev_stk6a51_camera_settings(struct usb_stk11xx *);
95
int dev_stk6a51_set_camera_quality(struct usb_stk11xx *);
96
int dev_stk6a51_set_camera_fps(struct usb_stk11xx *);
97
86
int dev_stk6a54_initialize_device(struct usb_stk11xx *);
98
int dev_stk6a54_initialize_device(struct usb_stk11xx *);
87
int dev_stk6a54_configure_device(struct usb_stk11xx *, int);
99
int dev_stk6a54_configure_device(struct usb_stk11xx *, int);
88
int dev_stk6a54_start_stream(struct usb_stk11xx *);
100
int dev_stk6a54_start_stream(struct usb_stk11xx *);
(-)stk11xx-1.2.3/stk11xx.h (-7 / +10 lines)
Lines 2-8 Link Here
2
 * @file stk11xx.h
2
 * @file stk11xx.h
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 11:18:03 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-09 14:25:47 +0100 (v, 09 dec 2007) $
29
 *   $Revision: 66 $
29
 *   $Revision: 69 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx.h $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx.h $
32
 */
32
 */
33
33
34
#ifndef STK11XX_H
34
#ifndef STK11XX_H
Lines 36-43 Link Here
36
36
37
37
38
#define DRIVER_NAME					"stk11xx"					/**< Name of this driver */
38
#define DRIVER_NAME					"stk11xx"					/**< Name of this driver */
39
#define DRIVER_VERSION				"v1.2.3"					/**< Version of this driver */
39
#define DRIVER_VERSION				"v1.3.0"					/**< Version of this driver */
40
#define DRIVER_VERSION_NUM			0x010202					/**< Version numerical of this driver */
40
#define DRIVER_VERSION_NUM			0x010300					/**< Version numerical of this driver */
41
#define DRIVER_DESC					"Syntek USB Video Camera"	/**< Short description of this driver */
41
#define DRIVER_DESC					"Syntek USB Video Camera"	/**< Short description of this driver */
42
#define DRIVER_AUTHOR				"Nicolas VIVIEN"			/**< Author of this driver */
42
#define DRIVER_AUTHOR				"Nicolas VIVIEN"			/**< Author of this driver */
43
#define PREFIX						DRIVER_NAME ": "			/**< Prefix use for the STK "printk" */
43
#define PREFIX						DRIVER_NAME ": "			/**< Prefix use for the STK "printk" */
Lines 49-54 Link Here
49
#define USB_STK_A821_PRODUCT_ID		0xa821						/**< Product ID of the camera STK-1135 */
49
#define USB_STK_A821_PRODUCT_ID		0xa821						/**< Product ID of the camera STK-1135 */
50
#define USB_STK_6A31_PRODUCT_ID		0x6a31						/**< Product ID of the camera DC-NEW */
50
#define USB_STK_6A31_PRODUCT_ID		0x6a31						/**< Product ID of the camera DC-NEW */
51
#define USB_STK_6A33_PRODUCT_ID		0x6a33						/**< Product ID of the camera DC-NEW */
51
#define USB_STK_6A33_PRODUCT_ID		0x6a33						/**< Product ID of the camera DC-NEW */
52
#define USB_STK_6A51_PRODUCT_ID		0x6a51						/**< Product ID of the camera DC-NEW */
52
#define USB_STK_6A54_PRODUCT_ID		0x6a54						/**< Product ID of the camera DC-NEW */
53
#define USB_STK_6A54_PRODUCT_ID		0x6a54						/**< Product ID of the camera DC-NEW */
53
54
54
#define USB_STK_0501_PRODUCT_ID		0x0501						/**< Product ID of the camera DC-1125 */
55
#define USB_STK_0501_PRODUCT_ID		0x0501						/**< Product ID of the camera DC-1125 */
Lines 182-188 Link Here
182
	SYNTEK_STK_A821 = 3,
183
	SYNTEK_STK_A821 = 3,
183
	SYNTEK_STK_6A31 = 4,
184
	SYNTEK_STK_6A31 = 4,
184
	SYNTEK_STK_6A33 = 5,
185
	SYNTEK_STK_6A33 = 5,
185
	SYNTEK_STK_6A54 = 6
186
	SYNTEK_STK_6A51 = 6,
187
	SYNTEK_STK_6A54 = 7
186
} T_SYNTEK_DEVICE;
188
} T_SYNTEK_DEVICE;
187
189
188
190
Lines 332-337 Link Here
332
	struct stk11xx_frame_buf *read_frame;
334
	struct stk11xx_frame_buf *read_frame;
333
335
334
	// 3: image
336
	// 3: image
337
	int view_size;
335
	int image_size;
338
	int image_size;
336
	void *image_data;
339
	void *image_data;
337
	struct stk11xx_image_buf images[STK11XX_MAX_IMAGES];
340
	struct stk11xx_image_buf images[STK11XX_MAX_IMAGES];
(-)stk11xx-1.2.3/stk11xx-sysfs.c (-4 / +4 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-sysfs.c
2
 * @file stk11xx-sysfs.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-sysfs.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-sysfs.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
(-)stk11xx-1.2.3/stk11xx-usb.c (-4 / +14 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-usb.c
2
 * @file stk11xx-usb.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-08 11:34:45 +0100 (szo, 08 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 68 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-usb.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-usb.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
Lines 97-102 Link Here
97
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_A821_PRODUCT_ID) },
97
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_A821_PRODUCT_ID) },
98
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_6A31_PRODUCT_ID) },
98
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_6A31_PRODUCT_ID) },
99
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_6A33_PRODUCT_ID) },
99
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_6A33_PRODUCT_ID) },
100
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_6A51_PRODUCT_ID) },
101
	{ USB_DEVICE(USB_SYNTEK1_VENDOR_ID, USB_STK_6A54_PRODUCT_ID) },
100
102
101
	{ USB_DEVICE(USB_SYNTEK2_VENDOR_ID, USB_STK_0501_PRODUCT_ID) },
103
	{ USB_DEVICE(USB_SYNTEK2_VENDOR_ID, USB_STK_0501_PRODUCT_ID) },
102
	{ }
104
	{ }
Lines 640-645 Link Here
640
			dev->vsettings.colour = (default_colour == -1) ? STK11XX_PERCENT(50, 0xFFFF) : default_colour;
642
			dev->vsettings.colour = (default_colour == -1) ? STK11XX_PERCENT(50, 0xFFFF) : default_colour;
641
			break;
643
			break;
642
644
645
		case SYNTEK_STK_6A51:
643
		case SYNTEK_STK_6A54:
646
		case SYNTEK_STK_6A54:
644
			dev->vsettings.fps = (default_fps == -1) ? 25 : default_fps;
647
			dev->vsettings.fps = (default_fps == -1) ? 25 : default_fps;
645
			dev->vsettings.vflip = (default_vflip == -1) ? 0 : default_vflip;
648
			dev->vsettings.vflip = (default_vflip == -1) ? 0 : default_vflip;
Lines 733-738 Link Here
733
				webcam_type = STK11XX_VGA;
736
				webcam_type = STK11XX_VGA;
734
				break;
737
				break;
735
738
739
			case USB_STK_6A51_PRODUCT_ID:
740
				STK_INFO("Syntek USB2.0 - STK-1135 based webcam found.\n");
741
				STK_INFO("Syntek AVStream USB2.0 1.3M WebCam - Product ID 0x6A51.\n");
742
				webcam_model = SYNTEK_STK_6A51;
743
				webcam_type = STK11XX_VGA;
744
				break;
745
736
			case USB_STK_6A54_PRODUCT_ID:
746
			case USB_STK_6A54_PRODUCT_ID:
737
				STK_INFO("Syntek USB2.0 - STK-1135 based webcam found.\n");
747
				STK_INFO("Syntek USB2.0 - STK-1135 based webcam found.\n");
738
				STK_INFO("Syntek AVStream USB2.0 1.3M WebCam - Product ID 0x6A54.\n");
748
				STK_INFO("Syntek AVStream USB2.0 1.3M WebCam - Product ID 0x6A54.\n");
(-)stk11xx-1.2.3/stk11xx-v4l.c (-8 / +11 lines)
Lines 2-8 Link Here
2
 * @file stk11xx-v4l.c
2
 * @file stk11xx-v4l.c
3
 * @author Nicolas VIVIEN
3
 * @author Nicolas VIVIEN
4
 * @date 2006-10-23
4
 * @date 2006-10-23
5
 * @version v1.2.x
5
 * @version v1.3.x
6
 *
6
 *
7
 * @brief Driver for Syntek USB video camera
7
 * @brief Driver for Syntek USB video camera
8
 *
8
 *
Lines 25-34 Link Here
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
 *
26
 *
27
 * @par SubVersion
27
 * @par SubVersion
28
 *   $Date: 2007-12-07 10:20:29 +0100 (ven, 07 déc 2007) $
28
 *   $Date: 2007-12-09 14:25:47 +0100 (v, 09 dec 2007) $
29
 *   $Revision: 64 $
29
 *   $Revision: 69 $
30
 *   $Author: nicklas79 $
30
 *   $Author: nicklas79 $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/tags/1.2.3/stk11xx-v4l.c $
31
 *   $HeadURL: https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver/stk11xx-v4l.c $
32
 */
32
 */
33
33
34
#include <linux/module.h>
34
#include <linux/module.h>
Lines 218-236 Link Here
218
	switch (dev->vsettings.palette) {
218
	switch (dev->vsettings.palette) {
219
		case STK11XX_PALETTE_RGB24:
219
		case STK11XX_PALETTE_RGB24:
220
		case STK11XX_PALETTE_BGR24:
220
		case STK11XX_PALETTE_BGR24:
221
			dev->view_size = 3 * dev->view.x * dev->view.y;
221
			dev->image_size = 3 * dev->frame_size;
222
			dev->image_size = 3 * dev->frame_size;
222
			break;
223
			break;
223
224
224
		case STK11XX_PALETTE_RGB32:
225
		case STK11XX_PALETTE_RGB32:
225
		case STK11XX_PALETTE_BGR32:
226
		case STK11XX_PALETTE_BGR32:
227
			dev->view_size = 3 * dev->view.x * dev->view.y;
226
			dev->image_size = 4 * dev->frame_size;
228
			dev->image_size = 4 * dev->frame_size;
227
			break;
229
			break;
228
230
229
		case STK11XX_PALETTE_UYVY:
231
		case STK11XX_PALETTE_UYVY:
230
			dev->image_size = 2 * dev->frame_size;
231
			break;
232
233
		case STK11XX_PALETTE_YUYV:
232
		case STK11XX_PALETTE_YUYV:
233
			dev->view_size = 2 * dev->view.x * dev->view.y;
234
			dev->image_size = 2 * dev->frame_size;
234
			dev->image_size = 2 * dev->frame_size;
235
			break;
235
			break;
236
	}
236
	}
Lines 431-437 Link Here
431
			return -EFAULT;
431
			return -EFAULT;
432
	}
432
	}
433
433
434
	bytes_to_read = dev->image_size;
434
	bytes_to_read = dev->view_size;
435
435
436
	if (count + dev->image_read_pos > bytes_to_read)
436
	if (count + dev->image_read_pos > bytes_to_read)
437
		count = bytes_to_read - dev->image_read_pos;
437
		count = bytes_to_read - dev->image_read_pos;
Lines 1707-1712 Link Here
1707
	.poll = v4l_stk11xx_poll,
1707
	.poll = v4l_stk11xx_poll,
1708
	.mmap = v4l_stk11xx_mmap,
1708
	.mmap = v4l_stk11xx_mmap,
1709
	.ioctl = v4l_stk11xx_ioctl,
1709
	.ioctl = v4l_stk11xx_ioctl,
1710
#ifdef CONFIG_COMPAT
1711
	.compat_ioctl = v4l_compat_ioctl32,
1712
#endif
1710
	.llseek = no_llseek
1713
	.llseek = no_llseek
1711
};
1714
};
1712
1715

Return to bug 178946