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> 42 #include <linux/usb.h> 43 #include <media/v4l2-common.h> 44 #include <media/v4l2-ioctl.h> 75 STK_INFO(
"Initialize USB2.0 Syntek Camera\n");
113 for (i=0; i<16; i++) {
118 STK_DEBUG(
"Loop 1 : Read 0x0000 = %02X\n", value);
162 for (i=0; i<16; i++) {
167 STK_DEBUG(
"Loop 2 : Read 0x0000 = %02X\n", value);
217 for (i=0; i<16; i++) {
222 STK_DEBUG(
"Loop 3 : Read 0x0000 = %02X\n", value);
315 STK_INFO(
"Syntek USB2.0 Camera is ready\n");
339 static const int values_001B[] = {
340 0x0e, 0x03, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0e, 0x0e, 0x0e, 0x0e
342 static const int values_001C[] = {
343 0x06, 0x02, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x46, 0x46, 0x46, 0x46
345 static const int values_0202[] = {
346 0x1e, 0x0a, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x0a, 0x1e, 0x14, 0x1e, 0x1f, 0x0a, 0x0a, 0x0a, 0x0a
348 static const int values_0110[] = {
349 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
351 static const int values_0112[] = {
352 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01
354 static const int values_0114[] = {
355 0x87, 0x80, 0x80, 0x80, 0x80, 0x00, 0xbe, 0xbe, 0x80, 0x80, 0x84, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80
357 static const int values_0115[] = {
358 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
360 static const int values_0116[] = {
361 0xe7, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe9, 0xe9, 0xe0, 0xe0, 0xe4, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1
363 static const int values_0117[] = {
364 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
366 static const int values_0100[] = {
367 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
371 STK_DEBUG(
"dev_stk6a51_configure_device : %d\n", step);
786 static const int values_205[][4] = {
787 { 0x33, 0x86, 0x05, 0x01 },
788 { 0x33, 0x86, 0x05, 0x00 },
789 { 0x33, 0x8c, 0xa1, 0x04 },
791 { 0x30, 0x1a, 0x0a, 0xcc },
792 { 0x32, 0x02, 0x00, 0x08 },
793 { 0x33, 0xf4, 0x03, 0x1d },
794 { 0x33, 0x8c, 0xa1, 0x04 },
796 { 0x33, 0x8c, 0xa1, 0x04 },
798 { 0x34, 0x1e, 0x8f, 0x09 },
799 { 0x34, 0x1c, 0x02, 0x50 },
800 { 0x34, 0x1e, 0x8f, 0x09 },
801 { 0x34, 0x1e, 0x8f, 0x08 },
802 { 0x33, 0x8c, 0x04, 0x00 },
803 { 0x33, 0x90, 0x30, 0x8f },
804 { 0x33, 0x92, 0xc3, 0xff },
805 { 0x33, 0x94, 0xed, 0x8f },
806 { 0x33, 0x96, 0x35, 0x8f },
807 { 0x33, 0x98, 0x18, 0x8f },
808 { 0x33, 0x9a, 0x30, 0x8f },
809 { 0x33, 0x9c, 0xc3, 0x00 },
810 { 0x33, 0x9e, 0x15, 0x8f },
811 { 0x33, 0x8c, 0x04, 0x10 },
812 { 0x33, 0x90, 0xcc, 0x00 },
813 { 0x33, 0x92, 0x07, 0xbd },
814 { 0x33, 0x94, 0x04, 0xb5 },
815 { 0x33, 0x96, 0xbd, 0x9e },
816 { 0x33, 0x98, 0x9f, 0xf6 },
817 { 0x33, 0x9a, 0x03, 0x22 },
818 { 0x33, 0x9c, 0x30, 0xe7 },
819 { 0x33, 0x9e, 0x0a, 0xf6 },
820 { 0x33, 0x8c, 0x04, 0x20 },
821 { 0x33, 0x90, 0x02, 0x39 },
822 { 0x33, 0x92, 0xc1, 0x01 },
823 { 0x33, 0x94, 0x26, 0x05 },
824 { 0x33, 0x96, 0xf6, 0x03 },
825 { 0x33, 0x98, 0x23, 0xe7 },
826 { 0x33, 0x9a, 0x0a, 0x7d },
827 { 0x33, 0x9c, 0x03, 0x21 },
828 { 0x33, 0x9e, 0x27, 0x20 },
829 { 0x33, 0x8c, 0x04, 0x30 },
830 { 0x33, 0x90, 0xf6, 0x02 },
831 { 0x33, 0x92, 0x39, 0xe7 },
832 { 0x33, 0x94, 0x02, 0x8f },
833 { 0x33, 0x96, 0xc3, 0x00 },
834 { 0x33, 0x98, 0x0b, 0x30 },
835 { 0x33, 0x9a, 0xed, 0x00 },
836 { 0x33, 0x9c, 0xfe, 0x02 },
837 { 0x33, 0x9e, 0x37, 0xee },
838 { 0x33, 0x8c, 0x04, 0x40 },
839 { 0x33, 0x90, 0x04, 0x5f },
840 { 0x33, 0x92, 0xad, 0x00 },
841 { 0x33, 0x94, 0x30, 0xe6 },
842 { 0x33, 0x96, 0x0a, 0x4f },
843 { 0x33, 0x98, 0xed, 0x08 },
844 { 0x33, 0x9a, 0xec, 0x11 },
845 { 0x33, 0x9c, 0xa3, 0x08 },
846 { 0x33, 0x9e, 0xdd, 0x56 },
847 { 0x33, 0x8c, 0x04, 0x50 },
848 { 0x33, 0x90, 0x30, 0xc6 },
849 { 0x33, 0x92, 0x13, 0x3a },
850 { 0x33, 0x94, 0x35, 0x39 },
851 { 0x33, 0x96, 0x3c, 0x3c },
852 { 0x33, 0x98, 0x3c, 0xc6 },
853 { 0x33, 0x9a, 0x01, 0xf7 },
854 { 0x33, 0x9c, 0x03, 0x21 },
855 { 0x33, 0x9e, 0xc6, 0x0a },
856 { 0x33, 0x8c, 0x04, 0x60 },
857 { 0x33, 0x90, 0xf7, 0x03 },
858 { 0x33, 0x92, 0x22, 0xf7 },
859 { 0x33, 0x94, 0x03, 0x23 },
860 { 0x33, 0x96, 0xcc, 0x03 },
861 { 0x33, 0x98, 0x03, 0x30 },
862 { 0x33, 0x9a, 0xed, 0x02 },
863 { 0x33, 0x9c, 0xfe, 0x10 },
864 { 0x33, 0x9e, 0x50, 0xec },
865 { 0x33, 0x8c, 0x04, 0x70 },
866 { 0x33, 0x90, 0x04, 0xfd },
867 { 0x33, 0x92, 0x02, 0xff },
868 { 0x33, 0x94, 0xfe, 0x02 },
869 { 0x33, 0x96, 0xff, 0xec },
870 { 0x33, 0x98, 0x00, 0xfd },
871 { 0x33, 0x9a, 0x03, 0x01 },
872 { 0x33, 0x9c, 0x5f, 0x4f },
873 { 0x33, 0x9e, 0x30, 0xed },
874 { 0x33, 0x8c, 0x04, 0x80 },
875 { 0x33, 0x90, 0x04, 0xec },
876 { 0x33, 0x92, 0x04, 0x05 },
877 { 0x33, 0x94, 0xf3, 0x03 },
878 { 0x33, 0x96, 0x01, 0x8f },
879 { 0x33, 0x98, 0xec, 0x00 },
880 { 0x33, 0x9a, 0x30, 0xed },
881 { 0x33, 0x9c, 0x00, 0xec },
882 { 0x33, 0x9e, 0x04, 0x05 },
883 { 0x33, 0x8c, 0x04, 0x90 },
884 { 0x33, 0x90, 0xe3, 0x02 },
885 { 0x33, 0x92, 0x18, 0x8f },
886 { 0x33, 0x94, 0xec, 0x00 },
887 { 0x33, 0x96, 0x18, 0xed },
888 { 0x33, 0x98, 0x00, 0xec },
889 { 0x33, 0x9a, 0x04, 0xc3 },
890 { 0x33, 0x9c, 0x00, 0x01 },
891 { 0x33, 0x9e, 0xed, 0x04 },
892 { 0x33, 0x8c, 0x04, 0xa0 },
893 { 0x33, 0x90, 0x83, 0x00 },
894 { 0x33, 0x92, 0x0f, 0x25 },
895 { 0x33, 0x94, 0xdc, 0xee },
896 { 0x33, 0x96, 0x02, 0xcc },
897 { 0x33, 0x98, 0x04, 0x00 },
898 { 0x33, 0x9a, 0xed, 0x04 },
899 { 0x33, 0x9c, 0xcc, 0x03 },
900 { 0x33, 0x9e, 0x03, 0xdd },
901 { 0x33, 0x8c, 0x04, 0xb0 },
902 { 0x33, 0x90, 0x52, 0x38 },
903 { 0x33, 0x92, 0x38, 0x38 },
904 { 0x33, 0x94, 0x39, 0x37 },
905 { 0x33, 0x96, 0x36, 0x8f },
906 { 0x33, 0x98, 0x30, 0xe3 },
907 { 0x33, 0x9a, 0x00, 0x8f },
908 { 0x33, 0x9c, 0x18, 0x8f },
909 { 0x33, 0x9e, 0x18, 0x30 },
910 { 0x33, 0x8c, 0x04, 0xc0 },
911 { 0x33, 0x90, 0x18, 0xe3 },
912 { 0x33, 0x92, 0x00, 0x18 },
913 { 0x33, 0x94, 0x8f, 0x32 },
914 { 0x33, 0x96, 0x33, 0x36 },
915 { 0x33, 0x98, 0xa6, 0x00 },
916 { 0x33, 0x9a, 0x18, 0xa7 },
917 { 0x33, 0x9c, 0x00, 0x09 },
918 { 0x33, 0x9e, 0x18, 0x09 },
919 { 0x33, 0x8c, 0x04, 0xd0 },
920 { 0x33, 0x90, 0xc0, 0x01 },
921 { 0x33, 0x92, 0x24, 0xf4 },
922 { 0x33, 0x94, 0x32, 0x80 },
923 { 0x33, 0x96, 0x01, 0x24 },
924 { 0x33, 0x98, 0xee, 0x39 },
925 { 0x33, 0x8c, 0x20, 0x03 },
926 { 0x33, 0x90, 0x04, 0x56 },
927 { 0x33, 0x8c, 0xa0, 0x02 },
928 { 0x33, 0x90, 0x00, 0x01 },
929 { 0x33, 0x8c, 0xa1, 0x04 },
931 { 0x34, 0xce, 0x81, 0x60 },
932 { 0x34, 0xd0, 0x66, 0x33 },
933 { 0x34, 0xd2, 0x31, 0x9a },
934 { 0x34, 0xd4, 0x94, 0x63 },
935 { 0x34, 0xd6, 0x4b, 0x25 },
936 { 0x34, 0xd8, 0x26, 0x70 },
937 { 0x34, 0xda, 0x72, 0x4c },
938 { 0x34, 0xdc, 0xff, 0x04 },
939 { 0x34, 0xde, 0x00, 0xf4 },
940 { 0x34, 0xe6, 0x00, 0xcc },
941 { 0x34, 0xee, 0x0e, 0x42 },
942 { 0x34, 0xf6, 0x0d, 0xb5 },
943 { 0x35, 0x00, 0x0a, 0xfa },
944 { 0x35, 0x08, 0x0f, 0x10 },
945 { 0x35, 0x10, 0x11, 0x22 },
946 { 0x35, 0x18, 0x0c, 0x28 },
947 { 0x35, 0x20, 0x1c, 0x2c },
948 { 0x35, 0x28, 0x17, 0x40 },
949 { 0x35, 0x30, 0x08, 0xf2 },
950 { 0x35, 0x38, 0xfb, 0xd5 },
951 { 0x35, 0x4c, 0x05, 0xc7 },
952 { 0x35, 0x44, 0x04, 0xf9 },
953 { 0x35, 0x5c, 0x05, 0xd0 },
954 { 0x35, 0x54, 0x05, 0xf4 },
955 { 0x34, 0xe0, 0x01, 0x05 },
956 { 0x34, 0xe8, 0x00, 0xa0 },
957 { 0x34, 0xf0, 0x0e, 0xa1 },
958 { 0x34, 0xf8, 0x0e, 0x01 },
959 { 0x35, 0x02, 0x0f, 0xeb },
960 { 0x35, 0x0a, 0x09, 0x0a },
961 { 0x35, 0x12, 0x10, 0x1e },
962 { 0x35, 0x1a, 0x08, 0x23 },
963 { 0x35, 0x22, 0x1c, 0x22 },
964 { 0x35, 0x2a, 0x07, 0x22 },
965 { 0x35, 0x32, 0x0b, 0x06 },
966 { 0x35, 0x3a, 0xf9, 0x16 },
967 { 0x35, 0x4e, 0x05, 0x9f },
968 { 0x35, 0x46, 0x05, 0x30 },
969 { 0x35, 0x5e, 0x06, 0x75 },
970 { 0x35, 0x56, 0x06, 0x5c },
971 { 0x34, 0xe4, 0x00, 0xc5 },
972 { 0x34, 0xec, 0x00, 0x48 },
973 { 0x34, 0xf4, 0x0f, 0x66 },
974 { 0x34, 0xfc, 0x0e, 0x61 },
975 { 0x35, 0x06, 0x1b, 0xdb },
976 { 0x35, 0x0e, 0x04, 0x0a },
977 { 0x35, 0x16, 0x11, 0x13 },
978 { 0x35, 0x1e, 0x08, 0x1f },
979 { 0x35, 0x26, 0x11, 0x19 },
980 { 0x35, 0x2e, 0xf8, 0x1a },
981 { 0x35, 0x36, 0x04, 0x0c },
982 { 0x35, 0x3e, 0xfa, 0x00 },
983 { 0x35, 0x52, 0x06, 0xf1 },
984 { 0x35, 0x4a, 0x04, 0x0e },
985 { 0x35, 0x62, 0x06, 0xa1 },
986 { 0x35, 0x5a, 0x06, 0x91 },
987 { 0x34, 0xe2, 0x00, 0xd2 },
988 { 0x34, 0xea, 0x00, 0x72 },
989 { 0x34, 0xf2, 0x0e, 0x1d },
990 { 0x34, 0xfa, 0x0e, 0x06 },
991 { 0x35, 0x04, 0x13, 0x0e },
992 { 0x35, 0x0c, 0x0f, 0x0d },
993 { 0x35, 0x14, 0x13, 0x1c },
994 { 0x35, 0x1c, 0x13, 0x29 },
995 { 0x35, 0x24, 0x0d, 0x24 },
996 { 0x35, 0x2c, 0xfd, 0x29 },
997 { 0x35, 0x34, 0x07, 0xf4 },
998 { 0x35, 0x3c, 0xee, 0xe7 },
999 { 0x35, 0x50, 0x06, 0x50 },
1000 { 0x35, 0x48, 0x05, 0xc1 },
1001 { 0x35, 0x60, 0x06, 0x11 },
1002 { 0x35, 0x58, 0x06, 0x58 },
1003 { 0x35, 0x40, 0x00, 0x00 },
1004 { 0x35, 0x42, 0x00, 0x00 },
1005 { 0x32, 0x10, 0x01, 0xfc },
1006 { 0x33, 0x8c, 0xa3, 0x52 },
1007 { 0x33, 0x90, 0x00, 0x3c },
1008 { 0x33, 0x8c, 0xa1, 0x18 },
1009 { 0x33, 0x90, 0x00, 0x3c },
1010 { 0x33, 0x8c, 0xa1, 0x19 },
1011 { 0x33, 0x90, 0x00, 0x0a },
1012 { 0x33, 0x8c, 0xa7, 0x6d },
1013 { 0x33, 0x90, 0x00, 0x03 },
1014 { 0x33, 0x8c, 0xa7, 0x6e },
1015 { 0x33, 0x90, 0x00, 0x03 },
1016 { 0x33, 0x8c, 0xa7, 0x6f },
1017 { 0x33, 0x90, 0x00, 0x00 },
1018 { 0x33, 0x8c, 0xa7, 0x70 },
1019 { 0x33, 0x90, 0x00, 0x05 },
1020 { 0x33, 0x8c, 0xa7, 0x71 },
1021 { 0x33, 0x90, 0x00, 0x10 },
1022 { 0x33, 0x8c, 0xa7, 0x72 },
1023 { 0x33, 0x90, 0x00, 0x30 },
1024 { 0x33, 0x8c, 0xa7, 0x73 },
1025 { 0x33, 0x90, 0x00, 0x5b },
1026 { 0x33, 0x8c, 0xa7, 0x74 },
1027 { 0x33, 0x90, 0x00, 0x77 },
1028 { 0x33, 0x8c, 0xa7, 0x75 },
1029 { 0x33, 0x90, 0x00, 0x8e },
1030 { 0x33, 0x8c, 0xa7, 0x76 },
1031 { 0x33, 0x90, 0x00, 0xa0 },
1032 { 0x33, 0x8c, 0xa7, 0x77 },
1033 { 0x33, 0x90, 0x00, 0xaf },
1034 { 0x33, 0x8c, 0xa7, 0x78 },
1035 { 0x33, 0x90, 0x00, 0xbc },
1036 { 0x33, 0x8c, 0xa7, 0x79 },
1037 { 0x33, 0x90, 0x00, 0xc7 },
1038 { 0x33, 0x8c, 0xa7, 0x7a },
1039 { 0x33, 0x90, 0x00, 0xd0 },
1040 { 0x33, 0x8c, 0xa7, 0x7b },
1041 { 0x33, 0x90, 0x00, 0xd9 },
1042 { 0x33, 0x8c, 0xa7, 0x7c },
1043 { 0x33, 0x90, 0x00, 0xe0 },
1044 { 0x33, 0x8c, 0xa7, 0x7d },
1045 { 0x33, 0x90, 0x00, 0xe8 },
1046 { 0x33, 0x8c, 0xa7, 0x7e },
1047 { 0x33, 0x90, 0x00, 0xee },
1048 { 0x33, 0x8c, 0xa7, 0x7f },
1049 { 0x33, 0x90, 0x00, 0xf4 },
1050 { 0x33, 0x8c, 0xa7, 0x80 },
1051 { 0x33, 0x90, 0x00, 0xfa },
1052 { 0x33, 0x8c, 0xa7, 0x81 },
1053 { 0x33, 0x90, 0x00, 0xff },
1054 { 0x33, 0x8c, 0xa7, 0x82 },
1055 { 0x33, 0x90, 0x00, 0x00 },
1056 { 0x33, 0x8c, 0xa7, 0x83 },
1057 { 0x33, 0x90, 0x00, 0x05 },
1058 { 0x33, 0x8c, 0xa7, 0x84 },
1059 { 0x33, 0x90, 0x00, 0x10 },
1060 { 0x33, 0x8c, 0xa7, 0x85 },
1061 { 0x33, 0x90, 0x00, 0x30 },
1062 { 0x33, 0x8c, 0xa7, 0x86 },
1063 { 0x33, 0x90, 0x00, 0x5b },
1064 { 0x33, 0x8c, 0xa7, 0x87 },
1065 { 0x33, 0x90, 0x00, 0x77 },
1066 { 0x33, 0x8c, 0xa7, 0x88 },
1067 { 0x33, 0x90, 0x00, 0x8e },
1068 { 0x33, 0x8c, 0xa7, 0x89 },
1069 { 0x33, 0x90, 0x00, 0xa0 },
1070 { 0x33, 0x8c, 0xa7, 0x8a },
1071 { 0x33, 0x90, 0x00, 0xaf },
1072 { 0x33, 0x8c, 0xa7, 0x8b },
1073 { 0x33, 0x90, 0x00, 0xbc },
1074 { 0x33, 0x8c, 0xa7, 0x8c },
1075 { 0x33, 0x90, 0x00, 0xc7 },
1076 { 0x33, 0x8c, 0xa7, 0x8d },
1077 { 0x33, 0x90, 0x00, 0xd0 },
1078 { 0x33, 0x8c, 0xa7, 0x8e },
1079 { 0x33, 0x90, 0x00, 0xd9 },
1080 { 0x33, 0x8c, 0xa7, 0x8f },
1081 { 0x33, 0x90, 0x00, 0xe0 },
1082 { 0x33, 0x8c, 0xa7, 0x90 },
1083 { 0x33, 0x90, 0x00, 0xe8 },
1084 { 0x33, 0x8c, 0xa7, 0x91 },
1085 { 0x33, 0x90, 0x00, 0xee },
1086 { 0x33, 0x8c, 0xa7, 0x92 },
1087 { 0x33, 0x90, 0x00, 0xf4 },
1088 { 0x33, 0x8c, 0xa7, 0x93 },
1089 { 0x33, 0x90, 0x00, 0xfa },
1090 { 0x33, 0x8c, 0xa7, 0x94 },
1091 { 0x33, 0x90, 0x00, 0xff },
1092 { 0x33, 0x8c, 0xa1, 0x03 },
1093 { 0x33, 0x90, 0x00, 0x05 },
1094 { 0x33, 0x8c, 0xa1, 0x04 },
1096 { 0x33, 0x8c, 0xa2, 0x06 },
1097 { 0x33, 0x90, 0x00, 0x50 },
1098 { 0x33, 0x8c, 0x27, 0x03 },
1099 { 0x33, 0x90, 0x02, 0x82 },
1100 { 0x33, 0x8c, 0x27, 0x05 },
1101 { 0x33, 0x90, 0x01, 0xe2 },
1102 { 0x33, 0x8c, 0x27, 0x07 },
1103 { 0x33, 0x90, 0x05, 0x02 },
1104 { 0x33, 0x8c, 0x27, 0x09 },
1105 { 0x33, 0x90, 0x04, 0x02 },
1106 { 0x33, 0x8c, 0x27, 0x0d },
1107 { 0x33, 0x90, 0x00, 0x00 },
1108 { 0x33, 0x8c, 0x27, 0x0f },
1109 { 0x33, 0x90, 0x00, 0x00 },
1110 { 0x33, 0x8c, 0x27, 0x11 },
1111 { 0x33, 0x90, 0x04, 0xbd },
1112 { 0x33, 0x8c, 0x27, 0x13 },
1113 { 0x33, 0x90, 0x06, 0x4d },
1114 { 0x33, 0x8c, 0x27, 0x15 },
1115 { 0x33, 0x90, 0x04, 0x00 },
1116 { 0x33, 0x8c, 0x27, 0x17 },
1117 { 0x33, 0x90, 0x21, 0x11 },
1118 { 0x33, 0x8c, 0x27, 0x19 },
1119 { 0x33, 0x90, 0x04, 0x6c },
1120 { 0x33, 0x8c, 0x27, 0x1b },
1121 { 0x33, 0x90, 0x02, 0x4f },
1122 { 0x33, 0x8c, 0x27, 0x1d },
1123 { 0x33, 0x90, 0x01, 0x02 },
1124 { 0x33, 0x8c, 0x27, 0x1f },
1125 { 0x33, 0x90, 0x02, 0x79 },
1126 { 0x33, 0x8c, 0x27, 0x21 },
1127 { 0x33, 0x90, 0x01, 0x55 },
1128 { 0x33, 0x8c, 0x27, 0x23 },
1129 { 0x33, 0x90, 0x03, 0x5b },
1130 { 0x33, 0x8c, 0x27, 0x25 },
1131 { 0x33, 0x90, 0x06, 0x0f },
1132 { 0x33, 0x8c, 0x27, 0x27 },
1133 { 0x33, 0x90, 0x20, 0x20 },
1134 { 0x33, 0x8c, 0x27, 0x29 },
1135 { 0x33, 0x90, 0x20, 0x20 },
1136 { 0x33, 0x8c, 0x27, 0x2b },
1137 { 0x33, 0x90, 0x10, 0x20 },
1138 { 0x33, 0x8c, 0x27, 0x2d },
1139 { 0x33, 0x90, 0x20, 0x07 },
1140 { 0x33, 0x8c, 0x27, 0x2f },
1141 { 0x33, 0x90, 0x00, 0x04 },
1142 { 0x33, 0x8c, 0x27, 0x31 },
1143 { 0x33, 0x90, 0x00, 0x04 },
1144 { 0x33, 0x8c, 0x27, 0x33 },
1145 { 0x33, 0x90, 0x04, 0xbb },
1146 { 0x33, 0x8c, 0x27, 0x35 },
1147 { 0x33, 0x90, 0x06, 0x4b },
1148 { 0x33, 0x8c, 0x27, 0x37 },
1149 { 0x33, 0x90, 0x04, 0xce },
1150 { 0x33, 0x8c, 0x27, 0x39 },
1151 { 0x33, 0x90, 0x21, 0x11 },
1152 { 0x33, 0x8c, 0x27, 0x3b },
1153 { 0x33, 0x90, 0x00, 0x24 },
1154 { 0x33, 0x8c, 0x27, 0x3d },
1155 { 0x33, 0x90, 0x01, 0x20 },
1156 { 0x33, 0x8c, 0x27, 0x41 },
1157 { 0x33, 0x90, 0x01, 0x69 },
1158 { 0x33, 0x8c, 0x27, 0x45 },
1159 { 0x33, 0x90, 0x04, 0xff },
1160 { 0x33, 0x8c, 0x27, 0x47 },
1161 { 0x33, 0x90, 0x08, 0x24 },
1162 { 0x33, 0x8c, 0x27, 0x51 },
1163 { 0x33, 0x90, 0x00, 0x00 },
1164 { 0x33, 0x8c, 0x27, 0x53 },
1165 { 0x33, 0x90, 0x03, 0x20 },
1166 { 0x33, 0x8c, 0x27, 0x55 },
1167 { 0x33, 0x90, 0x00, 0x00 },
1168 { 0x33, 0x8c, 0x27, 0x57 },
1169 { 0x33, 0x90, 0x02, 0x58 },
1170 { 0x33, 0x8c, 0x27, 0x5f },
1171 { 0x33, 0x90, 0x00, 0x00 },
1172 { 0x33, 0x8c, 0x27, 0x61 },
1173 { 0x33, 0x90, 0x06, 0x40 },
1174 { 0x33, 0x8c, 0x27, 0x63 },
1175 { 0x33, 0x90, 0x00, 0x00 },
1176 { 0x33, 0x8c, 0x27, 0x65 },
1177 { 0x33, 0x90, 0x04, 0xb0 },
1178 { 0x33, 0x8c, 0x22, 0x2e },
1179 { 0x33, 0x90, 0x00, 0xd7 },
1180 { 0x33, 0x8c, 0xa4, 0x08 },
1181 { 0x33, 0x90, 0x00, 0x2a },
1182 { 0x33, 0x8c, 0xa4, 0x09 },
1183 { 0x33, 0x90, 0x00, 0x2c },
1184 { 0x33, 0x8c, 0xa4, 0x0a },
1185 { 0x33, 0x90, 0x00, 0x32 },
1186 { 0x33, 0x8c, 0xa4, 0x0b },
1187 { 0x33, 0x90, 0x00, 0x34 },
1188 { 0x33, 0x8c, 0x24, 0x11 },
1189 { 0x33, 0x90, 0x00, 0xd7 },
1190 { 0x33, 0x8c, 0x24, 0x13 },
1191 { 0x33, 0x90, 0x01, 0x02 },
1192 { 0x33, 0x8c, 0x24, 0x15 },
1193 { 0x33, 0x90, 0x00, 0xa0 },
1194 { 0x33, 0x8c, 0x24, 0x17 },
1195 { 0x33, 0x90, 0x00, 0xc0 },
1196 { 0x33, 0x8c, 0x27, 0x99 },
1197 { 0x33, 0x90, 0x64, 0x08 },
1198 { 0x33, 0x8c, 0x27, 0x9b },
1199 { 0x33, 0x90, 0x64, 0x08 },
1200 { 0x33, 0x8c, 0xa2, 0x0c },
1201 { 0x33, 0x90, 0x00, 0x18 },
1202 { 0x33, 0x8c, 0xa2, 0x14 },
1203 { 0x33, 0x90, 0x00, 0x24 },
1204 { 0x33, 0x8c, 0xa2, 0x15 },
1205 { 0x33, 0x90, 0x00, 0x04 },
1206 { 0x33, 0x8c, 0xa2, 0x0d },
1207 { 0x33, 0x90, 0x00, 0x30 },
1208 { 0x33, 0x8c, 0xa2, 0x0e },
1209 { 0x33, 0x90, 0x00, 0x80 },
1210 { 0x33, 0x8c, 0xa1, 0x03 },
1211 { 0x33, 0x90, 0x00, 0x05 },
1212 { 0x33, 0x8c, 0xa1, 0x04 },
1214 { 0x33, 0x8c, 0xa1, 0x03 },
1215 { 0x33, 0x90, 0x00, 0x06 },
1216 { 0x33, 0x8c, 0xa1, 0x04 },
1218 { 0x33, 0x8c, 0xa1, 0x30 },
1219 { 0x33, 0x90, 0x00, 0x04 },
1220 { 0x33, 0x8c, 0xa1, 0x15 },
1221 { 0x33, 0x90, 0x00, 0xef },
1222 { 0x33, 0x8c, 0xa1, 0x16 },
1223 { 0x33, 0x90, 0x00, 0x30 },
1224 { 0x33, 0x8c, 0xa1, 0x17 },
1225 { 0x33, 0x90, 0x00, 0x55 },
1226 { 0x33, 0x8c, 0xa1, 0x18 },
1227 { 0x33, 0x90, 0x00, 0x5a },
1228 { 0x33, 0x8c, 0xa1, 0x19 },
1229 { 0x33, 0x90, 0x00, 0x28 },
1230 { 0x33, 0x8c, 0xa1, 0x1a },
1231 { 0x33, 0x90, 0x00, 0x08 },
1232 { 0x33, 0x8c, 0xa1, 0x1b },
1233 { 0x33, 0x90, 0x00, 0x1e },
1234 { 0x33, 0x8c, 0xa1, 0x1c },
1235 { 0x33, 0x90, 0x00, 0x02 },
1236 { 0x33, 0x8c, 0xa1, 0x1d },
1237 { 0x33, 0x90, 0x00, 0x00 },
1238 { 0x33, 0x8c, 0xa1, 0x1e },
1239 { 0x33, 0x90, 0x00, 0x00 },
1240 { 0x33, 0x8c, 0xa1, 0x1f },
1241 { 0x33, 0x90, 0x00, 0x04 },
1242 { 0x33, 0x8c, 0xab, 0x05 },
1243 { 0x33, 0x90, 0x00, 0x00 },
1244 { 0x33, 0x8c, 0xa7, 0x6d },
1245 { 0x33, 0x90, 0x00, 0x03 },
1246 { 0x33, 0x8c, 0xa7, 0x6e },
1247 { 0x33, 0x90, 0x00, 0x03 },
1248 { 0x33, 0x8c, 0xa7, 0x6f },
1249 { 0x33, 0x90, 0x00, 0x00 },
1250 { 0x33, 0x8c, 0xa7, 0x70 },
1251 { 0x33, 0x90, 0x00, 0x15 },
1252 { 0x33, 0x8c, 0xa7, 0x71 },
1253 { 0x33, 0x90, 0x00, 0x25 },
1254 { 0x33, 0x8c, 0xa7, 0x72 },
1255 { 0x33, 0x90, 0x00, 0x3f },
1256 { 0x33, 0x8c, 0xa7, 0x73 },
1257 { 0x33, 0x90, 0x00, 0x64 },
1258 { 0x33, 0x8c, 0xa7, 0x74 },
1259 { 0x33, 0x90, 0x00, 0x80 },
1260 { 0x33, 0x8c, 0xa7, 0x75 },
1261 { 0x33, 0x90, 0x00, 0x97 },
1262 { 0x33, 0x8c, 0xa7, 0x76 },
1263 { 0x33, 0x90, 0x00, 0xa9 },
1264 { 0x33, 0x8c, 0xa7, 0x77 },
1265 { 0x33, 0x90, 0x00, 0xba },
1266 { 0x33, 0x8c, 0xa7, 0x78 },
1267 { 0x33, 0x90, 0x00, 0xc7 },
1268 { 0x33, 0x8c, 0xa7, 0x79 },
1269 { 0x33, 0x90, 0x00, 0xd2 },
1270 { 0x33, 0x8c, 0xa7, 0x7a },
1271 { 0x33, 0x90, 0x00, 0xdc },
1272 { 0x33, 0x8c, 0xa7, 0x7b },
1273 { 0x33, 0x90, 0x00, 0xe4 },
1274 { 0x33, 0x8c, 0xa7, 0x7c },
1275 { 0x33, 0x90, 0x00, 0xea },
1276 { 0x33, 0x8c, 0xa7, 0x7d },
1277 { 0x33, 0x90, 0x00, 0xf0 },
1278 { 0x33, 0x8c, 0xa7, 0x7e },
1279 { 0x33, 0x90, 0x00, 0xf4 },
1280 { 0x33, 0x8c, 0xa7, 0x7f },
1281 { 0x33, 0x90, 0x00, 0xf8 },
1282 { 0x33, 0x8c, 0xa7, 0x80 },
1283 { 0x33, 0x90, 0x00, 0xfc },
1284 { 0x33, 0x8c, 0xa7, 0x81 },
1285 { 0x33, 0x90, 0x00, 0xff },
1286 { 0x33, 0x8c, 0xa7, 0x82 },
1287 { 0x33, 0x90, 0x00, 0x00 },
1288 { 0x33, 0x8c, 0xa7, 0x83 },
1289 { 0x33, 0x90, 0x00, 0x15 },
1290 { 0x33, 0x8c, 0xa7, 0x84 },
1291 { 0x33, 0x90, 0x00, 0x25 },
1292 { 0x33, 0x8c, 0xa7, 0x85 },
1293 { 0x33, 0x90, 0x00, 0x3f },
1294 { 0x33, 0x8c, 0xa7, 0x86 },
1295 { 0x33, 0x90, 0x00, 0x64 },
1296 { 0x33, 0x8c, 0xa7, 0x87 },
1297 { 0x33, 0x90, 0x00, 0x80 },
1298 { 0x33, 0x8c, 0xa7, 0x88 },
1299 { 0x33, 0x90, 0x00, 0x97 },
1300 { 0x33, 0x8c, 0xa7, 0x89 },
1301 { 0x33, 0x90, 0x00, 0xa9 },
1302 { 0x33, 0x8c, 0xa7, 0x8a },
1303 { 0x33, 0x90, 0x00, 0xba },
1304 { 0x33, 0x8c, 0xa7, 0x8b },
1305 { 0x33, 0x90, 0x00, 0xc7 },
1306 { 0x33, 0x8c, 0xa7, 0x8c },
1307 { 0x33, 0x90, 0x00, 0xd2 },
1308 { 0x33, 0x8c, 0xa7, 0x8d },
1309 { 0x33, 0x90, 0x00, 0xdc },
1310 { 0x33, 0x8c, 0xa7, 0x8e },
1311 { 0x33, 0x90, 0x00, 0xe4 },
1312 { 0x33, 0x8c, 0xa7, 0x8f },
1313 { 0x33, 0x90, 0x00, 0xea },
1314 { 0x33, 0x8c, 0xa7, 0x90 },
1315 { 0x33, 0x90, 0x00, 0xf0 },
1316 { 0x33, 0x8c, 0xa7, 0x91 },
1317 { 0x33, 0x90, 0x00, 0xf4 },
1318 { 0x33, 0x8c, 0xa7, 0x92 },
1319 { 0x33, 0x90, 0x00, 0xf8 },
1320 { 0x33, 0x8c, 0xa7, 0x93 },
1321 { 0x33, 0x90, 0x00, 0xfc },
1322 { 0x33, 0x8c, 0xa7, 0x94 },
1323 { 0x33, 0x90, 0x00, 0xff },
1324 { 0x33, 0x8c, 0xa1, 0x03 },
1325 { 0x33, 0x90, 0x00, 0x06 },
1326 { 0x33, 0x8c, 0xa1, 0x04 },
1328 { 0x35, 0xa4, 0x05, 0x96 },
1329 { 0x33, 0x8c, 0xa1, 0x18 },
1330 { 0x33, 0x90, 0x00, 0x1e },
1331 { 0x33, 0x8c, 0xa1, 0x19 },
1332 { 0x33, 0x90, 0x00, 0x04 },
1333 { 0x33, 0x8c, 0xa1, 0x1a },
1334 { 0x33, 0x90, 0x00, 0x0a },
1335 { 0x33, 0x8c, 0xa1, 0x1b },
1336 { 0x33, 0x90, 0x00, 0x20 },
1337 { 0x33, 0x8c, 0xa1, 0x3e },
1338 { 0x33, 0x90, 0x00, 0x04 },
1339 { 0x33, 0x8c, 0xa1, 0x3f },
1340 { 0x33, 0x90, 0x00, 0x0e },
1341 { 0x33, 0x8c, 0xa1, 0x40 },
1342 { 0x33, 0x90, 0x00, 0x04 },
1343 { 0x33, 0x8c, 0xa1, 0x41 },
1344 { 0x33, 0x90, 0x00, 0x04 },
1345 { 0x33, 0x8c, 0xa1, 0x42 },
1346 { 0x33, 0x90, 0x00, 0x32 },
1347 { 0x33, 0x8c, 0xa1, 0x43 },
1348 { 0x33, 0x90, 0x00, 0x0f },
1349 { 0x33, 0x8c, 0xa1, 0x44 },
1350 { 0x33, 0x90, 0x00, 0x32 },
1351 { 0x33, 0x8c, 0xa1, 0x45 },
1352 { 0x33, 0x90, 0x00, 0x32 },
1353 { 0x33, 0x8c, 0xa1, 0x46 },
1354 { 0x33, 0x90, 0x00, 0x05 },
1355 { 0x33, 0x8c, 0xa1, 0x04 },
1357 { 0x33, 0x8c, 0xa1, 0x47 },
1358 { 0x33, 0x90, 0x00, 0x3a },
1359 { 0x33, 0x8c, 0x27, 0x95 },
1360 { 0x33, 0x90, 0x01, 0x00 },
1361 { 0x33, 0x8c, 0xa1, 0x03 },
1362 { 0x33, 0x90, 0x00, 0x05 },
1363 { 0x33, 0x8c, 0xa1, 0x04 },
1365 { 0x33, 0x8c, 0x27, 0x97 },
1366 { 0x33, 0x90, 0x01, 0x00 },
1367 { 0x33, 0x8c, 0xa1, 0x03 },
1368 { 0x33, 0x90, 0x00, 0x05 },
1369 { 0x33, 0x8c, 0xa1, 0x04 },
1371 { 0x33, 0x8c, 0xa4, 0x04 },
1372 { 0x33, 0x90, 0x00, 0x80 },
1373 { 0x33, 0x8c, 0xa1, 0x03 },
1374 { 0x33, 0x90, 0x00, 0x05 },
1375 { 0x33, 0x8c, 0xa1, 0x04 },
1380 asize = ARRAY_SIZE(values_205);
1382 for(i=0; i<asize; i++) {
1389 if (values_205[i][2] == -1) {
1500 int value_116, value_117;
int dev_stk11xx_camera_off(struct usb_stk11xx *dev)
This function switchs off the camera.
int dev_stk6a51_stop_stream(struct usb_stk11xx *dev)
This function sets the device to stop the stream.
int dev_stk11xx_camera_settings(struct usb_stk11xx *dev)
This function permits to modify the settings of the camera.
#define STK_DEBUG(str, args...)
int dev_stk6a51_configure_device(struct usb_stk11xx *dev, int step)
This function permits to configure the device.
struct stk11xx_video vsettings
int dev_stk6a51_initialize_device(struct usb_stk11xx *dev)
This function permits to initialize the device.
int dev_stk11xx_check_device(struct usb_stk11xx *dev, int nbr)
This function permits to check the device in reading the register 0x0201.
int dev_stk6a51_reconf_camera(struct usb_stk11xx *dev)
Reconfigure the camera before the stream.
int dev_stk6a51_camera_settings(struct usb_stk11xx *dev)
This function permits to modify the settings of the camera.
int dev_stk6a51_camera_asleep(struct usb_stk11xx *dev)
Wake-up the camera.
int dev_stk6a51_sensor_settings(struct usb_stk11xx *dev)
This function permits to set default sensor settings.
int dev_stk6a51_set_camera_quality(struct usb_stk11xx *dev)
This function permits to modify the settings of the camera.
int usb_stk11xx_set_feature(struct usb_stk11xx *dev, int index)
Send the message SET_FEATURE and choose the interface.
int dev_stk6a51_start_stream(struct usb_stk11xx *dev)
This function sets the device to start the stream.
int dev_stk6a51_init_camera(struct usb_stk11xx *dev)
This function initializes the device for the stream.
#define STK_INFO(str, args...)
int usb_stk11xx_write_registry(struct usb_stk11xx *dev, __u16 index, __u16 value)
Write a 16-bits value to a 16-bits register.
int usb_stk11xx_read_registry(struct usb_stk11xx *dev, __u16 index, int *value)
Read a 16-bits value from a 16-bits register.
Driver for Syntek USB video camera.
Driver for Syntek USB video camera.
int dev_stk6a51_set_camera_fps(struct usb_stk11xx *dev)
This function permits to modify the settings of the camera.