2 * SN9C2028 common functions
4 * Copyright (C) 2009 Theodore Kilgore <kilgota@auburn,edu>
6 * Based closely upon the file gspca/pac_common.h
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
20 static const unsigned char sn9c2028_sof_marker
[] = {
21 0xff, 0xff, 0x00, 0xc4, 0xc4, 0x96,
26 0x00, /* avg luminance lower 8 bit */
27 0x00, /* avg luminance higher 8 bit */
30 static unsigned char *sn9c2028_find_sof(struct gspca_dev
*gspca_dev
,
31 unsigned char *m
, int len
)
33 struct sd
*sd
= (struct sd
*) gspca_dev
;
36 /* Search for the SOF marker (fixed part) in the header */
37 for (i
= 0; i
< len
; i
++) {
38 if ((m
[i
] == sn9c2028_sof_marker
[sd
->sof_read
]) ||
41 if (sd
->sof_read
== 11)
43 if (sd
->sof_read
== 12)
44 sd
->avg_lum
= (m
[i
] << 8) + sd
->avg_lum_l
;
45 if (sd
->sof_read
== sizeof(sn9c2028_sof_marker
)) {
46 gspca_dbg(gspca_dev
, D_FRAM
,
47 "SOF found, bytes to analyze: %u - Frame starts at byte #%u\n",