Lines Matching +full:0 +full:x1181
26 #define SCALE_MASK 0x0f
27 #define SCALE_160x120 0
31 #define MODE_RAW 0x10
32 #define MODE_JPEG 0x20
33 #define MODE_SXGA 0x80
35 #define SENSOR_OV9650 0
50 #define HAS_NO_BUTTON 0x1
51 #define LED_REVERSE 0x2 /* some cameras unset gpio to turn on leds */
52 #define FLIP_DETECT 0x4
53 #define HAS_LED_TORCH 0x8
312 3, 0, -1, -3, -6, -8, -10, -12,
334 -12, -9, -7, -5, -3, 0, 1, 3,
344 14, 12, 10, 7, 5, 3, 0, -1,
367 -5, -3, 0, 1, 3, 6, 8, 10,
400 -7, -4, -2, 0, 1, 3, 6, 8,
422 15, 13, 11, 9, 7, 4, 2, 0,
443 0, 1, 3, 5, 7, 9, 11, 14,
465 9, 7, 4, 2, 0, -1, -3, -5,
498 2, 0, -1, -3, -5, -7, -9, -12,
520 -11, -9, -7, -5, -2, 0, 1, 3,
553 -12, -10, -8, -6, -4, -2, 0, 1,
576 4, 2, 0, -1, -3, -5, -7, -9, -11
580 {0x1000, 0x78}, {0x1001, 0x40}, {0x1002, 0x1c},
581 {0x1020, 0x80}, {0x1061, 0x01}, {0x1067, 0x40},
582 {0x1068, 0x30}, {0x1069, 0x20}, {0x106a, 0x10},
583 {0x106b, 0x08}, {0x1188, 0x87}, {0x11a1, 0x00},
584 {0x11a2, 0x00}, {0x11a3, 0x6a}, {0x11a4, 0x50},
585 {0x11ab, 0x00}, {0x11ac, 0x00}, {0x11ad, 0x50},
586 {0x11ae, 0x3c}, {0x118a, 0x04}, {0x0395, 0x04},
587 {0x11b8, 0x3a}, {0x118b, 0x0e}, {0x10f7, 0x05},
588 {0x10f8, 0x14}, {0x10fa, 0xff}, {0x10f9, 0x00},
589 {0x11ba, 0x0a}, {0x11a5, 0x2d}, {0x11a6, 0x2d},
590 {0x11a7, 0x3a}, {0x11a8, 0x05}, {0x11a9, 0x04},
591 {0x11aa, 0x3f}, {0x11af, 0x28}, {0x11b0, 0xd8},
592 {0x11b1, 0x14}, {0x11b2, 0xec}, {0x11b3, 0x32},
593 {0x11b4, 0xdd}, {0x11b5, 0x32}, {0x11b6, 0xdd},
594 {0x10e0, 0x2c}, {0x11bc, 0x40}, {0x11bd, 0x01},
595 {0x11be, 0xf0}, {0x11bf, 0x00}, {0x118c, 0x1f},
596 {0x118d, 0x1f}, {0x118e, 0x1f}, {0x118f, 0x1f},
597 {0x1180, 0x01}, {0x1181, 0x00}, {0x1182, 0x01},
598 {0x1183, 0x00}, {0x1184, 0x50}, {0x1185, 0x80},
599 {0x1007, 0x00}
602 /* Gain = (bit[3:0] / 16 + 1) * (bit[4] + 1) * (bit[5] + 1) * (bit[6] + 1) */
604 0x00 /* 1x */, 0x04 /* 1.25x */, 0x08 /* 1.5x */, 0x0c /* 1.75x */,
605 0x10 /* 2x */, 0x12 /* 2.25x */, 0x14 /* 2.5x */, 0x16 /* 2.75x */,
606 0x18 /* 3x */, 0x1a /* 3.25x */, 0x1c /* 3.5x */, 0x1e /* 3.75x */,
607 0x30 /* 4x */, 0x31 /* 4.25x */, 0x32 /* 4.5x */, 0x33 /* 4.75x */,
608 0x34 /* 5x */, 0x35 /* 5.25x */, 0x36 /* 5.5x */, 0x37 /* 5.75x */,
609 0x38 /* 6x */, 0x39 /* 6.25x */, 0x3a /* 6.5x */, 0x3b /* 6.75x */,
610 0x3c /* 7x */, 0x3d /* 7.25x */, 0x3e /* 7.5x */, 0x3f /* 7.75x */,
611 0x70 /* 8x */
614 /* Gain = (bit[8] + 1) * (bit[7] + 1) * (bit[6:0] * 0.03125) */
617 0x0020, 0x0028, 0x0030, 0x0038,
619 0x00a0, 0x00a4, 0x00a8, 0x00ac,
621 0x00b0, 0x00b4, 0x00b8, 0x00bc,
623 0x00c0, 0x00c4, 0x00c8, 0x00cc,
625 0x00d0, 0x00d4, 0x00d8, 0x00dc,
627 0x00e0, 0x00e4, 0x00e8, 0x00ec,
629 0x00f0, 0x00f4, 0x00f8, 0x00fc,
631 0x01c0
635 /* Gain = (bit[6] + 1) * (bit[5-0] * 0.125) */
638 0x0008, 0x000a, 0x000c, 0x000e,
640 0x0010, 0x0012, 0x0014, 0x0016,
642 0x0018, 0x001a, 0x001c, 0x001e,
644 0x0020, 0x0051, 0x0052, 0x0053,
646 0x0054, 0x0055, 0x0056, 0x0057,
648 0x0058, 0x0059, 0x005a, 0x005b,
650 0x005c, 0x005d, 0x005e, 0x005f,
652 0x0060
655 /* Gain = .5 + bit[7:0] / 16 */
657 0x08 /* 1x */, 0x0c /* 1.25x */, 0x10 /* 1.5x */, 0x14 /* 1.75x */,
658 0x18 /* 2x */, 0x1c /* 2.25x */, 0x20 /* 2.5x */, 0x24 /* 2.75x */,
659 0x28 /* 3x */, 0x2c /* 3.25x */, 0x30 /* 3.5x */, 0x34 /* 3.75x */,
660 0x38 /* 4x */, 0x3c /* 4.25x */, 0x40 /* 4.5x */, 0x44 /* 4.75x */,
661 0x48 /* 5x */, 0x4c /* 5.25x */, 0x50 /* 5.5x */, 0x54 /* 5.75x */,
662 0x58 /* 6x */, 0x5c /* 6.25x */, 0x60 /* 6.5x */, 0x64 /* 6.75x */,
663 0x68 /* 7x */, 0x6c /* 7.25x */, 0x70 /* 7.5x */, 0x74 /* 7.75x */,
664 0x78 /* 8x */
668 {0x0c, 0x00}, {0x0f, 0x1f},
669 {0x11, 0x80}, {0x38, 0x52}, {0x1e, 0x00},
670 {0x33, 0x08}, {0x35, 0x8c}, {0x36, 0x0c},
671 {0x37, 0x04}, {0x45, 0x04}, {0x47, 0xff},
672 {0x3e, 0x00}, {0x3f, 0x00}, {0x3b, 0x20},
673 {0x3a, 0x96}, {0x3d, 0x0a}, {0x14, 0x8e},
674 {0x13, 0x8b}, {0x12, 0x40}, {0x17, 0x13},
675 {0x18, 0x63}, {0x19, 0x01}, {0x1a, 0x79},
676 {0x32, 0x24}, {0x03, 0x00}, {0x11, 0x40},
677 {0x2a, 0x10}, {0x2b, 0xe0}, {0x10, 0x32},
678 {0x00, 0x00}, {0x01, 0x80}, {0x02, 0x80},
682 {0x0e, 0x80}, {0x0d, 0x08}, {0x0f, 0xc3},
683 {0x04, 0xc3}, {0x10, 0x40}, {0x11, 0x40},
684 {0x12, 0x05}, {0x13, 0xba}, {0x14, 0x2a},
685 /* HDG Set hstart and hstop, datasheet default 0x11, 0x61, using
686 0x10, 0x61 and sd->hstart, vstart = 3, fixes ugly colored borders */
687 {0x17, 0x10}, {0x18, 0x61},
688 {0x37, 0x0f}, {0x38, 0x02}, {0x39, 0x43},
689 {0x3a, 0x00}, {0x69, 0x90}, {0x2d, 0x00},
690 {0x2e, 0x00}, {0x01, 0x78}, {0x02, 0x50},
694 {0x11, 0x80}, {0x3a, 0x04}, {0x12, 0x01},
695 {0x32, 0xb6}, {0x03, 0x0a}, {0x0c, 0x00}, {0x3e, 0x00},
696 {0x70, 0x3a}, {0x71, 0x35}, {0x72, 0x11}, {0x73, 0xf0},
697 {0xa2, 0x02}, {0x13, 0xe0}, {0x00, 0x00}, {0x10, 0x00},
698 {0x0d, 0x40}, {0x14, 0x28}, {0xa5, 0x05}, {0xab, 0x07},
699 {0x24, 0x95}, {0x25, 0x33}, {0x26, 0xe3}, {0x9f, 0x75},
700 {0xa0, 0x65}, {0xa1, 0x0b}, {0xa6, 0xd8}, {0xa7, 0xd8},
701 {0xa8, 0xf0}, {0xa9, 0x90}, {0xaa, 0x94}, {0x13, 0xe5},
702 {0x0e, 0x61}, {0x0f, 0x4b}, {0x16, 0x02}, {0x1e, 0x27},
703 {0x21, 0x02}, {0x22, 0x91}, {0x29, 0x07}, {0x33, 0x0b},
704 {0x35, 0x0b}, {0x37, 0x1d}, {0x38, 0x71}, {0x39, 0x2a},
705 {0x3c, 0x78}, {0x4d, 0x40}, {0x4e, 0x20}, {0x69, 0x00},
706 {0x74, 0x19}, {0x8d, 0x4f}, {0x8e, 0x00}, {0x8f, 0x00},
707 {0x90, 0x00}, {0x91, 0x00}, {0x96, 0x00}, {0x9a, 0x80},
708 {0xb0, 0x84}, {0xb1, 0x0c}, {0xb2, 0x0e}, {0xb3, 0x82},
709 {0xb8, 0x0a}, {0x43, 0x0a}, {0x44, 0xf0}, {0x45, 0x20},
710 {0x46, 0x7d}, {0x47, 0x29}, {0x48, 0x4a}, {0x59, 0x8c},
711 {0x5a, 0xa5}, {0x5b, 0xde}, {0x5c, 0x96}, {0x5d, 0x66},
712 {0x5e, 0x10}, {0x6c, 0x0a}, {0x6d, 0x55}, {0x6e, 0x11},
713 {0x6f, 0x9e}, {0x6a, 0x40}, {0x01, 0x40}, {0x02, 0x40},
714 {0x13, 0xe7}, {0x4f, 0x6e}, {0x50, 0x70}, {0x51, 0x02},
715 {0x52, 0x1d}, {0x53, 0x56}, {0x54, 0x73}, {0x55, 0x0a},
716 {0x56, 0x55}, {0x57, 0x80}, {0x58, 0x9e}, {0x41, 0x08},
717 {0x3f, 0x02}, {0x75, 0x03}, {0x76, 0x63}, {0x4c, 0x04},
718 {0x77, 0x06}, {0x3d, 0x02}, {0x4b, 0x09}, {0xc9, 0x30},
719 {0x41, 0x08}, {0x56, 0x48}, {0x34, 0x11}, {0xa4, 0x88},
720 {0x96, 0x00}, {0x97, 0x30}, {0x98, 0x20}, {0x99, 0x30},
721 {0x9a, 0x84}, {0x9b, 0x29}, {0x9c, 0x03}, {0x9d, 0x99},
722 {0x9e, 0x7f}, {0x78, 0x04}, {0x79, 0x01}, {0xc8, 0xf0},
723 {0x79, 0x0f}, {0xc8, 0x00}, {0x79, 0x10}, {0xc8, 0x7e},
724 {0x79, 0x0a}, {0xc8, 0x80}, {0x79, 0x0b}, {0xc8, 0x01},
725 {0x79, 0x0c}, {0xc8, 0x0f}, {0x79, 0x0d}, {0xc8, 0x20},
726 {0x79, 0x09}, {0xc8, 0x80}, {0x79, 0x02}, {0xc8, 0xc0},
727 {0x79, 0x03}, {0xc8, 0x40}, {0x79, 0x05}, {0xc8, 0x30},
728 {0x79, 0x26}, {0x62, 0x20}, {0x63, 0x00}, {0x64, 0x06},
729 {0x65, 0x00}, {0x66, 0x05}, {0x94, 0x05}, {0x95, 0x0a},
730 {0x17, 0x13}, {0x18, 0x01}, {0x19, 0x02}, {0x1a, 0x7a},
731 {0x46, 0x59}, {0x47, 0x30}, {0x58, 0x9a}, {0x59, 0x84},
732 {0x5a, 0x91}, {0x5b, 0x57}, {0x5c, 0x75}, {0x5d, 0x6d},
733 {0x5e, 0x13}, {0x64, 0x07}, {0x94, 0x07}, {0x95, 0x0d},
734 {0xa6, 0xdf}, {0xa7, 0xdf}, {0x48, 0x4d}, {0x51, 0x00},
735 {0x6b, 0x0a}, {0x11, 0x80}, {0x2a, 0x00}, {0x2b, 0x00},
736 {0x92, 0x00}, {0x93, 0x00}, {0x55, 0x0a}, {0x56, 0x60},
737 {0x4f, 0x6e}, {0x50, 0x70}, {0x51, 0x00}, {0x52, 0x1d},
738 {0x53, 0x56}, {0x54, 0x73}, {0x58, 0x9a}, {0x4f, 0x6e},
739 {0x50, 0x70}, {0x51, 0x00}, {0x52, 0x1d}, {0x53, 0x56},
740 {0x54, 0x73}, {0x58, 0x9a}, {0x3f, 0x01}, {0x7b, 0x03},
741 {0x7c, 0x09}, {0x7d, 0x16}, {0x7e, 0x38}, {0x7f, 0x47},
742 {0x80, 0x53}, {0x81, 0x5e}, {0x82, 0x6a}, {0x83, 0x74},
743 {0x84, 0x80}, {0x85, 0x8c}, {0x86, 0x9b}, {0x87, 0xb2},
744 {0x88, 0xcc}, {0x89, 0xe5}, {0x7a, 0x24}, {0x3b, 0x00},
745 {0x9f, 0x76}, {0xa0, 0x65}, {0x13, 0xe2}, {0x6b, 0x0a},
746 {0x11, 0x80}, {0x2a, 0x00}, {0x2b, 0x00}, {0x92, 0x00},
747 {0x93, 0x00},
751 {0x00, 0x00}, {0x01, 0x78},
752 {0x02, 0x78}, {0x03, 0x36}, {0x04, 0x03},
753 {0x05, 0x00}, {0x06, 0x00}, {0x08, 0x00},
754 {0x09, 0x01}, {0x0c, 0x00}, {0x0d, 0x00},
755 {0x0e, 0xa0}, {0x0f, 0x52}, {0x10, 0x7c},
756 {0x11, 0x80}, {0x12, 0x45}, {0x13, 0xc2},
757 {0x14, 0x2e}, {0x15, 0x00}, {0x16, 0x07},
758 {0x17, 0x24}, {0x18, 0xc5}, {0x19, 0x00},
759 {0x1a, 0x3c}, {0x1b, 0x00}, {0x1e, 0x04},
760 {0x1f, 0x00}, {0x24, 0x78}, {0x25, 0x68},
761 {0x26, 0xd4}, {0x27, 0x80}, {0x28, 0x80},
762 {0x29, 0x30}, {0x2a, 0x00}, {0x2b, 0x00},
763 {0x2c, 0x80}, {0x2d, 0x00}, {0x2e, 0x00},
764 {0x2f, 0x00}, {0x30, 0x08}, {0x31, 0x30},
765 {0x32, 0x84}, {0x33, 0xe2}, {0x34, 0xbf},
766 {0x35, 0x81}, {0x36, 0xf9}, {0x37, 0x00},
767 {0x38, 0x93}, {0x39, 0x50}, {0x3a, 0x01},
768 {0x3b, 0x01}, {0x3c, 0x73}, {0x3d, 0x19},
769 {0x3e, 0x0b}, {0x3f, 0x80}, {0x40, 0xc1},
770 {0x41, 0x00}, {0x42, 0x08}, {0x67, 0x80},
771 {0x68, 0x80}, {0x69, 0x40}, {0x6a, 0x00},
772 {0x6b, 0x0a}, {0x8b, 0x06}, {0x8c, 0x20},
773 {0x8d, 0x00}, {0x8e, 0x00}, {0x8f, 0xdf},
774 {0x92, 0x00}, {0x93, 0x00}, {0x94, 0x88},
775 {0x95, 0x88}, {0x96, 0x04}, {0xa1, 0x00},
776 {0xa5, 0x80}, {0xa8, 0x80}, {0xa9, 0xb8},
777 {0xaa, 0x92}, {0xab, 0x0a},
781 {0x0e, 0x61}, {0x11, 0x80}, {0x13, 0xba},
782 {0x14, 0x2e}, {0x16, 0x24}, {0x1e, 0x04}, {0x27, 0x08},
783 {0x28, 0x08}, {0x29, 0x15}, {0x2c, 0x08}, {0x34, 0x3d},
784 {0x35, 0x00}, {0x38, 0x12}, {0x0f, 0x42}, {0x39, 0x57},
785 {0x3a, 0x00}, {0x3b, 0xcc}, {0x3c, 0x0c}, {0x3d, 0x19},
786 {0x3e, 0x0c}, {0x3f, 0x01}, {0x41, 0x40}, {0x42, 0x80},
787 {0x45, 0x46}, {0x46, 0x62}, {0x47, 0x2a}, {0x48, 0x3c},
788 {0x4a, 0xf0}, {0x4b, 0xdc}, {0x4c, 0xdc}, {0x4d, 0xdc},
789 {0x4e, 0xdc}, {0x6c, 0x04}, {0x6f, 0x9e}, {0x70, 0x05},
790 {0x71, 0x78}, {0x77, 0x02}, {0x8a, 0x23}, {0x90, 0x7e},
791 {0x91, 0x7c}, {0x9f, 0x6e}, {0xa0, 0x6e}, {0xa5, 0x68},
792 {0xa6, 0x60}, {0xa8, 0xc1}, {0xa9, 0xfa}, {0xaa, 0x92},
793 {0xab, 0x04}, {0xac, 0x80}, {0xad, 0x80}, {0xae, 0x80},
794 {0xaf, 0x80}, {0xb2, 0xf2}, {0xb3, 0x20}, {0xb5, 0x00},
795 {0xb6, 0xaf}, {0xbb, 0xae}, {0xbc, 0x44}, {0xbd, 0x44},
796 {0xbe, 0x3b}, {0xbf, 0x3a}, {0xc1, 0xc8}, {0xc2, 0x01},
797 {0xc4, 0x00}, {0xc6, 0x85}, {0xc7, 0x81}, {0xc9, 0xe0},
798 {0xca, 0xe8}, {0xcc, 0xd8}, {0xcd, 0x93}, {0x2d, 0x00},
799 {0x2e, 0x00}, {0x01, 0x80}, {0x02, 0x80}, {0x12, 0x61},
800 {0x36, 0xfa}, {0x8c, 0x8d}, {0xc0, 0xaa}, {0x69, 0x0a},
801 {0x03, 0x09}, {0x17, 0x16}, {0x18, 0x6e}, {0x19, 0x01},
802 {0x1a, 0x3e}, {0x32, 0x09}, {0x2a, 0x10}, {0x2b, 0x0a},
803 {0x92, 0x00}, {0x93, 0x00}, {0xa1, 0x00}, {0x10, 0x7c},
804 {0x04, 0x03}, {0x00, 0x13},
808 {0xf0, 0x0000}, {0x0d, 0x0021}, {0x0d, 0x0020},
809 {0x34, 0xc019}, {0x0a, 0x0011}, {0x0b, 0x000b},
810 {0x20, 0x0703}, {0x35, 0x2022}, {0xf0, 0x0001},
811 {0x05, 0x0000}, {0x06, 0x340c}, {0x3b, 0x042a},
812 {0x3c, 0x0400}, {0xf0, 0x0002}, {0x2e, 0x0c58},
813 {0x5b, 0x0001}, {0xc8, 0x9f0b}, {0xf0, 0x0001},
814 {0x9b, 0x5300}, {0xf0, 0x0000}, {0x2b, 0x0020},
815 {0x2c, 0x002a}, {0x2d, 0x0032}, {0x2e, 0x0020},
816 {0x09, 0x01dc}, {0x01, 0x000c}, {0x02, 0x0020},
817 {0x03, 0x01e0}, {0x04, 0x0280}, {0x06, 0x000c},
818 {0x05, 0x0098}, {0x20, 0x0703}, {0x09, 0x01f2},
819 {0x2b, 0x00a0}, {0x2c, 0x00a0}, {0x2d, 0x00a0},
820 {0x2e, 0x00a0}, {0x01, 0x000c}, {0x02, 0x0020},
821 {0x03, 0x01e0}, {0x04, 0x0280}, {0x06, 0x000c},
822 {0x05, 0x0098}, {0x09, 0x01c1}, {0x2b, 0x00ae},
823 {0x2c, 0x00ae}, {0x2d, 0x00ae}, {0x2e, 0x00ae},
827 {0x01, 0x0004}, {0x0d, 0x0001}, {0x0d, 0x0000},
828 {0x01, 0x0001}, {0x05, 0x0004}, {0x2d, 0xe0a0},
829 {0x2e, 0x0c64}, {0x2f, 0x0064}, {0x06, 0x600e},
830 {0x08, 0x0480}, {0x01, 0x0004}, {0x02, 0x0016},
831 {0x03, 0x01e7}, {0x04, 0x0287}, {0x05, 0x0004},
832 {0x06, 0x002d}, {0x07, 0x3002}, {0x08, 0x0008},
833 {0x0e, 0x0008}, {0x20, 0x0000}
837 {0x07, 0x0002}, {0x0d, 0x0001}, {0x0d, 0x0000},
838 {0x01, 0x0008}, {0x02, 0x0016}, {0x03, 0x01e1},
839 {0x04, 0x0281}, {0x05, 0x0083}, {0x06, 0x0006},
840 {0x0d, 0x0002}, {0x0a, 0x0000}, {0x0b, 0x0000},
841 {0x0c, 0x0000}, {0x0d, 0x0000}, {0x0e, 0x0000},
842 {0x0f, 0x0000}, {0x10, 0x0000}, {0x11, 0x0000},
843 {0x12, 0x0000}, {0x13, 0x0000}, {0x14, 0x0000},
844 {0x15, 0x0000}, {0x16, 0x0000}, {0x17, 0x0000},
845 {0x18, 0x0000}, {0x19, 0x0000}, {0x1a, 0x0000},
846 {0x1b, 0x0000}, {0x1c, 0x0000}, {0x1d, 0x0000},
847 {0x32, 0x0000}, {0x20, 0x1101}, {0x21, 0x0000},
848 {0x22, 0x0000}, {0x23, 0x0000}, {0x24, 0x0000},
849 {0x25, 0x0000}, {0x26, 0x0000}, {0x27, 0x0024},
850 {0x2f, 0xf7b0}, {0x30, 0x0005}, {0x31, 0x0000},
851 {0x32, 0x0000}, {0x33, 0x0000}, {0x34, 0x0100},
852 {0x3d, 0x068f}, {0x40, 0x01e0}, {0x41, 0x00d1},
853 {0x44, 0x0082}, {0x5a, 0x0000}, {0x5b, 0x0000},
854 {0x5c, 0x0000}, {0x5d, 0x0000}, {0x5e, 0x0000},
855 {0x5f, 0xa31d}, {0x62, 0x0611}, {0x0a, 0x0000},
856 {0x06, 0x0029}, {0x05, 0x0009}, {0x20, 0x1101},
857 {0x20, 0x1101}, {0x09, 0x0064}, {0x07, 0x0003},
858 {0x2b, 0x0033}, {0x2c, 0x00a0}, {0x2d, 0x00a0},
859 {0x2e, 0x0033}, {0x07, 0x0002}, {0x06, 0x0000},
860 {0x06, 0x0029}, {0x05, 0x0009},
864 {0x0d, 0x0001},
865 {0x0d, 0x0000},
866 {0x04, 0x0500}, /* hres = 1280 */
867 {0x03, 0x0400}, /* vres = 1024 */
868 {0x20, 0x1100},
869 {0x06, 0x0010},
870 {0x2b, 0x0024},
871 {0x2e, 0x0024},
872 {0x35, 0x0024},
873 {0x2d, 0x0020},
874 {0x2c, 0x0020},
875 {0x09, 0x0ad4},
876 {0x35, 0x0057},
880 {0xf0, 0x0000}, {0x0d, 0x0021}, {0x0d, 0x0008},
881 {0xf0, 0x0001}, {0x3a, 0x4300}, {0x9b, 0x4300},
882 {0x06, 0x708e}, {0xf0, 0x0002}, {0x2e, 0x0a1e},
883 {0xf0, 0x0000},
887 {0xf0, 0x0000}, {0x0d, 0x0021}, {0x0d, 0x0008},
888 {0xf0, 0x0001}, {0x3a, 0x4300}, {0x9b, 0x4300},
889 {0x06, 0x708e}, {0xf0, 0x0002}, {0x2e, 0x0a1e},
890 {0xf0, 0x0000},
894 {0x02, 0x08}, {0x02, 0x00}, {0x01, 0x08},
895 {0x02, 0x00}, {0x20, 0x00}, {0x21, 0xd0},
896 {0x22, 0x00}, {0x23, 0x09}, {0x01, 0x08},
897 {0x01, 0x08}, {0x01, 0x08}, {0x25, 0x07},
898 {0x26, 0xc3}, {0x27, 0x50}, {0x30, 0x62},
899 {0x31, 0x10}, {0x32, 0x06}, {0x33, 0x10},
900 {0x20, 0x00}, {0x21, 0xd0}, {0x22, 0x00},
901 {0x23, 0x09}, {0x01, 0x08},
909 if (gspca_dev->usb_err < 0) in reg_r()
911 result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), in reg_r()
912 0x00, in reg_r()
915 0x00, in reg_r()
919 if (unlikely(result < 0 || result != length)) { in reg_r()
926 memset(gspca_dev->usb_buf, 0, USB_BUF_SZ); in reg_r()
936 if (gspca_dev->usb_err < 0) in reg_w()
939 result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), in reg_w()
940 0x08, in reg_w()
943 0x00, in reg_w()
947 if (unlikely(result < 0 || result != length)) { in reg_w()
962 reg_w(gspca_dev, 0x10c0, buffer, 8); in i2c_w()
963 for (i = 0; i < 5; i++) { in i2c_w()
964 reg_r(gspca_dev, 0x10c0, 1); in i2c_w()
965 if (gspca_dev->usb_err < 0) in i2c_w()
967 if (gspca_dev->usb_buf[0] & 0x04) { in i2c_w()
968 if (gspca_dev->usb_buf[0] & 0x08) { in i2c_w()
989 row[0] = sd->i2c_intf | (2 << 4); in i2c_w1()
993 row[4] = 0x00; in i2c_w1()
994 row[5] = 0x00; in i2c_w1()
995 row[6] = 0x00; in i2c_w1()
996 row[7] = 0x10; in i2c_w1()
1004 while (--sz >= 0) { in i2c_w1_buf()
1019 row[0] = sd->i2c_intf | (3 << 4); in i2c_w2()
1024 row[5] = 0x00; in i2c_w2()
1025 row[6] = 0x00; in i2c_w2()
1026 row[7] = 0x10; in i2c_w2()
1034 while (--sz >= 0) { in i2c_w2_buf()
1045 row[0] = sd->i2c_intf | (1 << 4); in i2c_r1()
1048 row[3] = 0; in i2c_r1()
1049 row[4] = 0; in i2c_r1()
1050 row[5] = 0; in i2c_r1()
1051 row[6] = 0; in i2c_r1()
1052 row[7] = 0x10; in i2c_r1()
1054 row[0] = sd->i2c_intf | (1 << 4) | 0x02; in i2c_r1()
1055 row[2] = 0; in i2c_r1()
1057 reg_r(gspca_dev, 0x10c2, 5); in i2c_r1()
1066 row[0] = sd->i2c_intf | (1 << 4); in i2c_r2()
1069 row[3] = 0; in i2c_r2()
1070 row[4] = 0; in i2c_r2()
1071 row[5] = 0; in i2c_r2()
1072 row[6] = 0; in i2c_r2()
1073 row[7] = 0x10; in i2c_r2()
1075 row[0] = sd->i2c_intf | (2 << 4) | 0x02; in i2c_r2()
1076 row[2] = 0; in i2c_r2()
1078 reg_r(gspca_dev, 0x10c2, 5); in i2c_r2()
1087 i2c_r2(gspca_dev, 0x1c, &id); in ov9650_init_sensor()
1088 if (gspca_dev->usb_err < 0) in ov9650_init_sensor()
1091 if (id != 0x7fa2) { in ov9650_init_sensor()
1092 pr_err("sensor id for ov9650 doesn't match (0x%04x)\n", id); in ov9650_init_sensor()
1097 i2c_w1(gspca_dev, 0x12, 0x80); /* sensor reset */ in ov9650_init_sensor()
1100 if (gspca_dev->usb_err < 0) in ov9650_init_sensor()
1110 i2c_w1(gspca_dev, 0x12, 0x80); /* sensor reset */ in ov9655_init_sensor()
1113 if (gspca_dev->usb_err < 0) in ov9655_init_sensor()
1124 i2c_w1(gspca_dev, 0x12, 0x80); /* sensor reset */ in soi968_init_sensor()
1127 if (gspca_dev->usb_err < 0) in soi968_init_sensor()
1138 i2c_w1(gspca_dev, 0x12, 0x80); /* sensor reset */ in ov7660_init_sensor()
1141 if (gspca_dev->usb_err < 0) in ov7660_init_sensor()
1151 i2c_w1(gspca_dev, 0x12, 0x80); /* sensor reset */ in ov7670_init_sensor()
1154 if (gspca_dev->usb_err < 0) in ov7670_init_sensor()
1157 sd->hstart = 0; in ov7670_init_sensor()
1166 sd->i2c_addr = 0x5d; in mt9v_init_sensor()
1167 i2c_r2(gspca_dev, 0xff, &value); in mt9v_init_sensor()
1168 if (gspca_dev->usb_err >= 0 in mt9v_init_sensor()
1169 && value == 0x8243) { in mt9v_init_sensor()
1171 if (gspca_dev->usb_err < 0) { in mt9v_init_sensor()
1182 gspca_dev->usb_err = 0; in mt9v_init_sensor()
1183 sd->i2c_addr = 0x5c; in mt9v_init_sensor()
1184 i2c_w2(gspca_dev, 0x01, 0x0004); in mt9v_init_sensor()
1185 i2c_r2(gspca_dev, 0xff, &value); in mt9v_init_sensor()
1186 if (gspca_dev->usb_err >= 0 in mt9v_init_sensor()
1187 && value == 0x823a) { in mt9v_init_sensor()
1189 if (gspca_dev->usb_err < 0) { in mt9v_init_sensor()
1200 gspca_dev->usb_err = 0; in mt9v_init_sensor()
1201 sd->i2c_addr = 0x5d; in mt9v_init_sensor()
1202 i2c_w2(gspca_dev, 0xf0, 0x0000); in mt9v_init_sensor()
1203 if (gspca_dev->usb_err < 0) { in mt9v_init_sensor()
1204 gspca_dev->usb_err = 0; in mt9v_init_sensor()
1205 sd->i2c_addr = 0x48; in mt9v_init_sensor()
1206 i2c_w2(gspca_dev, 0xf0, 0x0000); in mt9v_init_sensor()
1208 i2c_r2(gspca_dev, 0x00, &value); in mt9v_init_sensor()
1209 if (gspca_dev->usb_err >= 0 in mt9v_init_sensor()
1210 && value == 0x1229) { in mt9v_init_sensor()
1212 if (gspca_dev->usb_err < 0) { in mt9v_init_sensor()
1231 if (gspca_dev->usb_err < 0) in mt9m112_init_sensor()
1234 sd->hstart = 0; in mt9m112_init_sensor()
1243 if (gspca_dev->usb_err < 0) in mt9m111_init_sensor()
1246 sd->hstart = 0; in mt9m111_init_sensor()
1255 i2c_r2(gspca_dev, 0x00, &id); in mt9m001_init_sensor()
1256 if (gspca_dev->usb_err < 0) in mt9m001_init_sensor()
1259 /* must be 0x8411 or 0x8421 for colour sensor and 8431 for bw */ in mt9m001_init_sensor()
1261 case 0x8411: in mt9m001_init_sensor()
1262 case 0x8421: in mt9m001_init_sensor()
1265 case 0x8431: in mt9m001_init_sensor()
1275 if (gspca_dev->usb_err < 0) in mt9m001_init_sensor()
1287 if (gspca_dev->usb_err < 0) in hv7131r_init_sensor()
1290 sd->hstart = 0; in hv7131r_init_sensor()
1300 memset(cmatrix, 0, sizeof(cmatrix)); in set_cmatrix()
1301 cmatrix[2] = (contrast * 0x25 / 0x100) + 0x26; in set_cmatrix()
1302 cmatrix[0] = 0x13 + (cmatrix[2] - 0x26) * 0x13 / 0x25; in set_cmatrix()
1303 cmatrix[4] = 0x07 + (cmatrix[2] - 0x26) * 0x07 / 0x25; in set_cmatrix()
1304 cmatrix[18] = brightness - 0x80; in set_cmatrix()
1308 cmatrix[7] = (hue_coord >> 8) & 0x0f; in set_cmatrix()
1312 cmatrix[9] = (hue_coord >> 8) & 0x0f; in set_cmatrix()
1316 cmatrix[11] = (hue_coord >> 8) & 0x0f; in set_cmatrix()
1320 cmatrix[13] = (hue_coord >> 8) & 0x0f; in set_cmatrix()
1324 cmatrix[15] = (hue_coord >> 8) & 0x0f; in set_cmatrix()
1328 cmatrix[17] = (hue_coord >> 8) & 0x0f; in set_cmatrix()
1330 reg_w(gspca_dev, 0x10e1, cmatrix, 21); in set_cmatrix()
1336 u8 gval = val * 0xb8 / 0x100; in set_gamma()
1338 gamma[0] = 0x0a; in set_gamma()
1339 gamma[1] = 0x13 + (gval * (0xcb - 0x13) / 0xb8); in set_gamma()
1340 gamma[2] = 0x25 + (gval * (0xee - 0x25) / 0xb8); in set_gamma()
1341 gamma[3] = 0x37 + (gval * (0xfa - 0x37) / 0xb8); in set_gamma()
1342 gamma[4] = 0x45 + (gval * (0xfc - 0x45) / 0xb8); in set_gamma()
1343 gamma[5] = 0x55 + (gval * (0xfb - 0x55) / 0xb8); in set_gamma()
1344 gamma[6] = 0x65 + (gval * (0xfc - 0x65) / 0xb8); in set_gamma()
1345 gamma[7] = 0x74 + (gval * (0xfd - 0x74) / 0xb8); in set_gamma()
1346 gamma[8] = 0x83 + (gval * (0xfe - 0x83) / 0xb8); in set_gamma()
1347 gamma[9] = 0x92 + (gval * (0xfc - 0x92) / 0xb8); in set_gamma()
1348 gamma[10] = 0xa1 + (gval * (0xfc - 0xa1) / 0xb8); in set_gamma()
1349 gamma[11] = 0xb0 + (gval * (0xfc - 0xb0) / 0xb8); in set_gamma()
1350 gamma[12] = 0xbf + (gval * (0xfb - 0xbf) / 0xb8); in set_gamma()
1351 gamma[13] = 0xce + (gval * (0xfb - 0xce) / 0xb8); in set_gamma()
1352 gamma[14] = 0xdf + (gval * (0xfd - 0xdf) / 0xb8); in set_gamma()
1353 gamma[15] = 0xea + (gval * (0xf9 - 0xea) / 0xb8); in set_gamma()
1354 gamma[16] = 0xf5; in set_gamma()
1356 reg_w(gspca_dev, 0x1190, gamma, 17); in set_gamma()
1361 reg_w1(gspca_dev, 0x118c, red); in set_redblue()
1362 reg_w1(gspca_dev, 0x118f, blue); in set_redblue()
1378 value = 0x01; in set_hvflip()
1380 value |= 0x20; in set_hvflip()
1382 value |= 0x10; in set_hvflip()
1387 reg_w1(gspca_dev, 0x1182, sd->vstart); in set_hvflip()
1388 i2c_w1(gspca_dev, 0x1e, value); in set_hvflip()
1391 i2c_r1(gspca_dev, 0x1e, &value); in set_hvflip()
1392 value &= ~0x30; in set_hvflip()
1393 tslb = 0x01; in set_hvflip()
1395 value |= 0x20; in set_hvflip()
1397 value |= 0x10; in set_hvflip()
1398 tslb = 0x49; in set_hvflip()
1400 i2c_w1(gspca_dev, 0x1e, value); in set_hvflip()
1401 i2c_w1(gspca_dev, 0x3a, tslb); in set_hvflip()
1405 i2c_r2(gspca_dev, 0x20, &value2); in set_hvflip()
1406 value2 &= ~0xc0a0; in set_hvflip()
1408 value2 |= 0x8080; in set_hvflip()
1410 value2 |= 0x4020; in set_hvflip()
1411 i2c_w2(gspca_dev, 0x20, value2); in set_hvflip()
1416 i2c_r2(gspca_dev, 0x20, &value2); in set_hvflip()
1417 value2 &= ~0x0003; in set_hvflip()
1419 value2 |= 0x0002; in set_hvflip()
1421 value2 |= 0x0001; in set_hvflip()
1422 i2c_w2(gspca_dev, 0x20, value2); in set_hvflip()
1425 i2c_r1(gspca_dev, 0x01, &value); in set_hvflip()
1426 value &= ~0x03; in set_hvflip()
1428 value |= 0x01; in set_hvflip()
1430 value |= 0x02; in set_hvflip()
1431 i2c_w1(gspca_dev, 0x01, value); in set_hvflip()
1440 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}; in set_exposure()
1444 exp[7] = 0x1e; in set_exposure()
1455 exp[0] |= (2 << 4); in set_exposure()
1456 exp[2] = 0x10; /* AECH */ in set_exposure()
1458 exp[7] = 0x10; in set_exposure()
1460 exp[2] = 0x04; /* COM1 */ in set_exposure()
1461 exp[3] = expo2 & 0x0003; in set_exposure()
1462 exp[7] = 0x10; in set_exposure()
1465 exp[7] = 0x1e; in set_exposure()
1466 exp[0] |= (3 << 4); in set_exposure()
1467 exp[2] = 0x2d; /* ADVFL & ADVFH */ in set_exposure()
1474 exp[0] |= (3 << 4); in set_exposure()
1475 exp[2] = 0x09; in set_exposure()
1480 exp[0] |= (4 << 4); in set_exposure()
1481 exp[2] = 0x25; in set_exposure()
1484 exp[5] = 0; in set_exposure()
1496 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}; in set_gain()
1499 gain[7] = 0x15; /* or 1d ? */ in set_gain()
1507 gain[0] |= (2 << 4); in set_gain()
1511 gain[0] |= (3 << 4); in set_gain()
1512 gain[2] = 0x35; in set_gain()
1517 gain[0] |= (3 << 4); in set_gain()
1518 gain[2] = 0x2f; in set_gain()
1523 gain[0] |= (3 << 4); in set_gain()
1524 gain[2] = 0x2f; in set_gain()
1529 gain[0] |= (2 << 4); in set_gain()
1530 gain[2] = 0x30; in set_gain()
1541 reg_w1(gspca_dev, 0x1007, 0x60); in set_led_mode()
1542 reg_w1(gspca_dev, 0x1006, val ? 0x40 : 0x00); in set_led_mode()
1550 reg_w1(gspca_dev, 0x1061, 0x01); /* stop transfer */ in set_quality()
1551 reg_w1(gspca_dev, 0x10e0, sd->fmt | 0x20); /* write QTAB */ in set_quality()
1552 reg_w(gspca_dev, 0x1100, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); in set_quality()
1553 reg_w(gspca_dev, 0x1140, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); in set_quality()
1554 reg_w1(gspca_dev, 0x1061, 0x03); /* restart transfer */ in set_quality()
1555 reg_w1(gspca_dev, 0x10e0, sd->fmt); in set_quality()
1556 sd->fmt ^= 0x0c; /* invert QTAB use + write */ in set_quality()
1557 reg_w1(gspca_dev, 0x10e0, sd->fmt); in set_quality()
1568 case 0: in sd_dbg_g_register()
1569 if (reg->reg < 0x1000 || reg->reg > 0x11ff) in sd_dbg_g_register()
1572 reg->val = gspca_dev->usb_buf[0]; in sd_dbg_g_register()
1593 case 0: in sd_dbg_s_register()
1594 if (reg->reg < 0x1000 || reg->reg > 0x11ff) in sd_dbg_s_register()
1617 return 0; in sd_chip_info()
1633 sd->i2c_intf = 0x80; /* i2c 100 Kb/s */ in sd_config()
1648 sd->i2c_intf = 0x81; /* i2c 400 Kb/s */ in sd_config()
1656 sd->old_step = 0; in sd_config()
1657 sd->older_step = 0; in sd_config()
1662 return 0; in sd_config()
1671 gspca_dev->usb_err = 0; in sd_s_ctrl()
1674 return 0; in sd_s_ctrl()
1731 V4L2_CID_BRIGHTNESS, 0, 255, 1, 127); in sd_init_controls()
1733 V4L2_CID_CONTRAST, 0, 255, 1, 127); in sd_init_controls()
1735 V4L2_CID_SATURATION, 0, 255, 1, 127); in sd_init_controls()
1737 V4L2_CID_HUE, -180, 180, 1, 0); in sd_init_controls()
1740 V4L2_CID_GAMMA, 0, 255, 1, 0x10); in sd_init_controls()
1743 V4L2_CID_BLUE_BALANCE, 0, 127, 1, 0x28); in sd_init_controls()
1745 V4L2_CID_RED_BALANCE, 0, 127, 1, 0x28); in sd_init_controls()
1751 V4L2_CID_HFLIP, 0, 1, 1, 0); in sd_init_controls()
1753 V4L2_CID_VFLIP, 0, 1, 1, 0); in sd_init_controls()
1760 V4L2_CID_EXPOSURE, 0, 0x1780, 1, 0x33); in sd_init_controls()
1765 V4L2_CID_GAIN, 0, 28, 1, 0); in sd_init_controls()
1767 V4L2_CID_AUTOGAIN, 0, 1, 1, 1); in sd_init_controls()
1776 ~0x5, V4L2_FLASH_LED_MODE_NONE); in sd_init_controls()
1792 v4l2_ctrl_auto_cluster(3, &sd->autogain, 0, false); in sd_init_controls()
1795 v4l2_ctrl_auto_cluster(2, &sd->autogain, 0, false); in sd_init_controls()
1797 return 0; in sd_init_controls()
1806 0x80, sd->i2c_addr, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03 in sd_init()
1809 for (i = 0; i < ARRAY_SIZE(bridge_init); i++) { in sd_init()
1811 reg_w(gspca_dev, bridge_init[i][0], &value, 1); in sd_init()
1812 if (gspca_dev->usb_err < 0) { in sd_init()
1819 reg_w1(gspca_dev, 0x1006, 0x00); in sd_init()
1821 reg_w1(gspca_dev, 0x1006, 0x20); in sd_init()
1823 reg_w(gspca_dev, 0x10c0, i2c_init, 9); in sd_init()
1824 if (gspca_dev->usb_err < 0) { in sd_init()
1832 if (gspca_dev->usb_err < 0) in sd_init()
1838 if (gspca_dev->usb_err < 0) in sd_init()
1844 if (gspca_dev->usb_err < 0) in sd_init()
1850 if (gspca_dev->usb_err < 0) in sd_init()
1856 if (gspca_dev->usb_err < 0) in sd_init()
1862 if (gspca_dev->usb_err < 0) in sd_init()
1868 if (gspca_dev->usb_err < 0) in sd_init()
1874 if (gspca_dev->usb_err < 0) in sd_init()
1880 if (gspca_dev->usb_err < 0) in sd_init()
1885 if (gspca_dev->usb_err < 0) in sd_init()
1904 i2c_w1(gspca_dev, 0x17, 0x1d); in configure_sensor_output()
1905 i2c_w1(gspca_dev, 0x18, 0xbd); in configure_sensor_output()
1906 i2c_w1(gspca_dev, 0x19, 0x01); in configure_sensor_output()
1907 i2c_w1(gspca_dev, 0x1a, 0x81); in configure_sensor_output()
1908 i2c_w1(gspca_dev, 0x12, 0x00); in configure_sensor_output()
1912 i2c_w1(gspca_dev, 0x17, 0x13); in configure_sensor_output()
1913 i2c_w1(gspca_dev, 0x18, 0x63); in configure_sensor_output()
1914 i2c_w1(gspca_dev, 0x19, 0x01); in configure_sensor_output()
1915 i2c_w1(gspca_dev, 0x1a, 0x79); in configure_sensor_output()
1916 i2c_w1(gspca_dev, 0x12, 0x40); in configure_sensor_output()
1923 i2c_w1(gspca_dev, 0x17, 0x1b); in configure_sensor_output()
1924 i2c_w1(gspca_dev, 0x18, 0xbc); in configure_sensor_output()
1925 i2c_w1(gspca_dev, 0x19, 0x01); in configure_sensor_output()
1926 i2c_w1(gspca_dev, 0x1a, 0x82); in configure_sensor_output()
1927 i2c_r1(gspca_dev, 0x12, &value); in configure_sensor_output()
1928 i2c_w1(gspca_dev, 0x12, value & 0x07); in configure_sensor_output()
1930 i2c_w1(gspca_dev, 0x17, 0x24); in configure_sensor_output()
1931 i2c_w1(gspca_dev, 0x18, 0xc5); in configure_sensor_output()
1932 i2c_w1(gspca_dev, 0x19, 0x00); in configure_sensor_output()
1933 i2c_w1(gspca_dev, 0x1a, 0x3c); in configure_sensor_output()
1934 i2c_r1(gspca_dev, 0x12, &value); in configure_sensor_output()
1935 i2c_w1(gspca_dev, 0x12, (value & 0x7) | 0x40); in configure_sensor_output()
1941 i2c_w2(gspca_dev, 0xf0, 0x0002); in configure_sensor_output()
1942 i2c_w2(gspca_dev, 0xc8, 0x970b); in configure_sensor_output()
1943 i2c_w2(gspca_dev, 0xf0, 0x0000); in configure_sensor_output()
1945 i2c_w2(gspca_dev, 0xf0, 0x0002); in configure_sensor_output()
1946 i2c_w2(gspca_dev, 0xc8, 0x8000); in configure_sensor_output()
1947 i2c_w2(gspca_dev, 0xf0, 0x0000); in configure_sensor_output()
1970 return 0; in sd_isoc_init()
1986 return 0; in sd_isoc_init()
1990 ((const u8 []){hstart, 0, vstart, 0, \
1996 {0, width >> 2, 0, height >> 1,\
1997 ((width >> 10) & 0x01) | ((height >> 8) & 0x6)})
2005 u8 fmt, scale = 0; in sd_start()
2008 0x21); in sd_start()
2012 fmt = 0x2d; in sd_start()
2014 fmt = 0x24; in sd_start()
2016 fmt = 0x2f; /* YUV 420 */ in sd_start()
2021 scale = 0xc0; in sd_start()
2025 scale = 0x80; in sd_start()
2029 scale = 0x90; in sd_start()
2033 scale = 0xa0; in sd_start()
2039 reg_w(gspca_dev, 0x1100, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); in sd_start()
2040 reg_w(gspca_dev, 0x1140, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); in sd_start()
2041 reg_w(gspca_dev, 0x10fb, CLR_WIN(width, height), 5); in sd_start()
2042 reg_w(gspca_dev, 0x1180, HW_WIN(mode, sd->hstart, sd->vstart), 6); in sd_start()
2043 reg_w1(gspca_dev, 0x1189, scale); in sd_start()
2044 reg_w1(gspca_dev, 0x10e0, fmt); in sd_start()
2061 reg_w1(gspca_dev, 0x1007, 0x20); in sd_start()
2062 reg_w1(gspca_dev, 0x1061, 0x03); in sd_start()
2066 sd->pktsz = sd->npkt = 0; in sd_start()
2067 sd->nchg = 0; in sd_start()
2070 v4l2_ctrl_s_ctrl(sd->led_mode, 0); in sd_start()
2077 reg_w1(gspca_dev, 0x1007, 0x00); in sd_stopN()
2078 reg_w1(gspca_dev, 0x1061, 0x01); in sd_stopN()
2081 /* called on streamoff with alt==0 and on disconnect */
2134 sd->old_step = 0; in do_autoexposure()
2180 gspca_dev->usb_err = 0; in qual_upd()
2195 input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0); in sd_int_pkt_scan()
2197 return 0; in sd_int_pkt_scan()
2210 new_qual = 0; in transfer_check()
2213 if (data[6] & 0x08) { /* USB FIFO full */ in transfer_check()
2221 gspca_dev->urb[0]->iso_frame_desc[0].length); in transfer_check()
2227 if (new_qual != 0) { in transfer_check()
2234 sd->nchg = 0; in transfer_check()
2246 sd->nchg = 0; in transfer_check()
2248 sd->pktsz = sd->npkt = 0; in transfer_check()
2258 0xff, 0xff, 0x00, 0xc4, 0xc4, 0x96 in sd_pkt_scan()
2261 is_jpeg = (sd->fmt & 0x03) == 0; in sd_pkt_scan()
2262 if (len >= 64 && memcmp(data, frame_header, 6) == 0) { in sd_pkt_scan()
2293 gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); in sd_pkt_scan()
2295 if (len == 0) in sd_pkt_scan()
2342 .driver_info = ((flags & 0xff) << 16) \
2347 {USB_DEVICE(0x0c45, 0x6240), SN9C20X(MT9M001, 0x5d, 0)},
2348 {USB_DEVICE(0x0c45, 0x6242), SN9C20X(MT9M111, 0x5d, HAS_LED_TORCH)},
2349 {USB_DEVICE(0x0c45, 0x6248), SN9C20X(OV9655, 0x30, 0)},
2350 {USB_DEVICE(0x0c45, 0x624c), SN9C20X(MT9M112, 0x5d, 0)},
2351 {USB_DEVICE(0x0c45, 0x624e), SN9C20X(SOI968, 0x30, LED_REVERSE)},
2352 {USB_DEVICE(0x0c45, 0x624f), SN9C20X(OV9650, 0x30,
2354 {USB_DEVICE(0x0c45, 0x6251), SN9C20X(OV9650, 0x30, 0)},
2355 {USB_DEVICE(0x0c45, 0x6253), SN9C20X(OV9650, 0x30, 0)},
2356 {USB_DEVICE(0x0c45, 0x6260), SN9C20X(OV7670, 0x21, 0)},
2357 {USB_DEVICE(0x0c45, 0x6270), SN9C20X(MT9VPRB, 0x00, 0)},
2358 {USB_DEVICE(0x0c45, 0x627b), SN9C20X(OV7660, 0x21, FLIP_DETECT)},
2359 {USB_DEVICE(0x0c45, 0x627c), SN9C20X(HV7131R, 0x11, 0)},
2360 {USB_DEVICE(0x0c45, 0x627f), SN9C20X(OV9650, 0x30, 0)},
2361 {USB_DEVICE(0x0c45, 0x6280), SN9C20X(MT9M001, 0x5d, 0)},
2362 {USB_DEVICE(0x0c45, 0x6282), SN9C20X(MT9M111, 0x5d, 0)},
2363 {USB_DEVICE(0x0c45, 0x6288), SN9C20X(OV9655, 0x30, 0)},
2364 {USB_DEVICE(0x0c45, 0x628c), SN9C20X(MT9M112, 0x5d, 0)},
2365 {USB_DEVICE(0x0c45, 0x628e), SN9C20X(SOI968, 0x30, 0)},
2366 {USB_DEVICE(0x0c45, 0x628f), SN9C20X(OV9650, 0x30, 0)},
2367 {USB_DEVICE(0x0c45, 0x62a0), SN9C20X(OV7670, 0x21, 0)},
2368 {USB_DEVICE(0x0c45, 0x62b0), SN9C20X(MT9VPRB, 0x00, 0)},
2369 {USB_DEVICE(0x0c45, 0x62b3), SN9C20X(OV9655, 0x30, LED_REVERSE)},
2370 {USB_DEVICE(0x0c45, 0x62bb), SN9C20X(OV7660, 0x21, LED_REVERSE)},
2371 {USB_DEVICE(0x0c45, 0x62bc), SN9C20X(HV7131R, 0x11, 0)},
2372 {USB_DEVICE(0x045e, 0x00f4), SN9C20X(OV9650, 0x30, 0)},
2373 {USB_DEVICE(0x145f, 0x013d), SN9C20X(OV7660, 0x21, 0)},
2374 {USB_DEVICE(0x0458, 0x7029), SN9C20X(HV7131R, 0x11, 0)},
2375 {USB_DEVICE(0x0458, 0x7045), SN9C20X(MT9M112, 0x5d, LED_REVERSE)},
2376 {USB_DEVICE(0x0458, 0x704a), SN9C20X(MT9M112, 0x5d, 0)},
2377 {USB_DEVICE(0x0458, 0x704c), SN9C20X(MT9M112, 0x5d, 0)},
2378 {USB_DEVICE(0xa168, 0x0610), SN9C20X(HV7131R, 0x11, 0)},
2379 {USB_DEVICE(0xa168, 0x0611), SN9C20X(HV7131R, 0x11, 0)},
2380 {USB_DEVICE(0xa168, 0x0613), SN9C20X(HV7131R, 0x11, 0)},
2381 {USB_DEVICE(0xa168, 0x0618), SN9C20X(HV7131R, 0x11, 0)},
2382 {USB_DEVICE(0xa168, 0x0614), SN9C20X(MT9M111, 0x5d, 0)},
2383 {USB_DEVICE(0xa168, 0x0615), SN9C20X(MT9M111, 0x5d, 0)},
2384 {USB_DEVICE(0xa168, 0x0617), SN9C20X(MT9M111, 0x5d, 0)},