aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorThierry Reding <thierry.reding@avionic-design.de>2011-08-04 03:14:09 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-08-31 16:17:17 -0400
commitc0fa65ff9e7fdbdea7bf1bbc02fb2c3ee6814cc7 (patch)
treea22893ac905d88489a815094cda938da4ab356ba /drivers/staging
parent873545820a52e8ab6f6d54a748b1759b98f9354a (diff)
[media] tm6000: Rework standard register tables
This commit uses sentinel entries to terminate the TV standard register tables instead of hard-coding their size, allowing further entries to be added more easily. It is also more space-efficient if the tables have a varying number of entries. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/tm6000/tm6000-stds.c610
1 files changed, 294 insertions, 316 deletions
diff --git a/drivers/staging/tm6000/tm6000-stds.c b/drivers/staging/tm6000/tm6000-stds.c
index cd6962645b83..f44451b932b3 100644
--- a/drivers/staging/tm6000/tm6000-stds.c
+++ b/drivers/staging/tm6000/tm6000-stds.c
@@ -35,316 +35,303 @@ struct tm6000_reg_settings {
35 35
36struct tm6000_std_settings { 36struct tm6000_std_settings {
37 v4l2_std_id id; 37 v4l2_std_id id;
38 struct tm6000_reg_settings common[27]; 38 struct tm6000_reg_settings *common;
39};
40
41static struct tm6000_reg_settings composite_pal_m[] = {
42 { TM6010_REQ07_R3F_RESET, 0x01 },
43 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x04 },
44 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
45 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
46 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x00 },
47 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
48 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e },
49 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x83 },
50 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x0a },
51 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe0 },
52 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
53 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
54 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
55 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
56 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88 },
57 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x20 },
58 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61 },
59 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c },
60 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
61 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52 },
62 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
63 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc },
64 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
65 { TM6010_REQ07_R3F_RESET, 0x00 },
66 { 0, 0, 0 }
67};
68
69static struct tm6000_reg_settings composite_pal_nc[] = {
70 { TM6010_REQ07_R3F_RESET, 0x01 },
71 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x36 },
72 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
73 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
74 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x02 },
75 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
76 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e },
77 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x91 },
78 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x1f },
79 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x0c },
80 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
81 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
82 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
83 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
84 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c },
85 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2c },
86 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1 },
87 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c },
88 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
89 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52 },
90 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
91 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc },
92 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
93 { TM6010_REQ07_R3F_RESET, 0x00 },
94 { 0, 0, 0 }
95};
96
97static struct tm6000_reg_settings composite_pal[] = {
98 { TM6010_REQ07_R3F_RESET, 0x01 },
99 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x32 },
100 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
101 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
102 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x02 },
103 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
104 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x25 },
105 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0xd5 },
106 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x63 },
107 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x50 },
108 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
109 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
110 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
111 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
112 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c },
113 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2c },
114 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1 },
115 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c },
116 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
117 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52 },
118 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
119 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc },
120 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
121 { TM6010_REQ07_R3F_RESET, 0x00 },
122 { 0, 0, 0 }
123};
124
125static struct tm6000_reg_settings composite_secam[] = {
126 { TM6010_REQ07_R3F_RESET, 0x01 },
127 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x38 },
128 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
129 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
130 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x02 },
131 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
132 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x24 },
133 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x92 },
134 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xe8 },
135 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xed },
136 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
137 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
138 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
139 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
140 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c },
141 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2c },
142 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1 },
143 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x2c },
144 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x18 },
145 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42 },
146 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0xff },
147 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
148 { TM6010_REQ07_R3F_RESET, 0x00 },
149 { 0, 0, 0 }
150};
151
152static struct tm6000_reg_settings composite_ntsc[] = {
153 { TM6010_REQ07_R3F_RESET, 0x01 },
154 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x00 },
155 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0f },
156 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
157 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x00 },
158 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
159 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e },
160 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x8b },
161 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xa2 },
162 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe9 },
163 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
164 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
165 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
166 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
167 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88 },
168 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22 },
169 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61 },
170 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x1c },
171 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
172 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42 },
173 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
174 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdd },
175 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
176 { TM6010_REQ07_R3F_RESET, 0x00 },
177 { 0, 0, 0 }
39}; 178};
40 179
41static struct tm6000_std_settings composite_stds[] = { 180static struct tm6000_std_settings composite_stds[] = {
42 { 181 { .id = V4L2_STD_PAL_M, .common = composite_pal_m, },
43 .id = V4L2_STD_PAL_M, 182 { .id = V4L2_STD_PAL_Nc, .common = composite_pal_nc, },
44 .common = { 183 { .id = V4L2_STD_PAL, .common = composite_pal, },
45 {TM6010_REQ07_R3F_RESET, 0x01}, 184 { .id = V4L2_STD_SECAM, .common = composite_secam, },
46 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x04}, 185 { .id = V4L2_STD_NTSC, .common = composite_ntsc, },
47 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
48 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
49 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x00},
50 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31},
51 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e},
52 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x83},
53 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x0a},
54 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe0},
55 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
56 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
57 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
58 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
59 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88},
60 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x20},
61 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61},
62 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c},
63 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c},
64 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52},
65 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F},
66
67 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
68 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
69 {TM6010_REQ07_R3F_RESET, 0x00},
70 {0, 0, 0},
71 },
72 }, {
73 .id = V4L2_STD_PAL_Nc,
74 .common = {
75 {TM6010_REQ07_R3F_RESET, 0x01},
76 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x36},
77 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
78 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
79 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x02},
80 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31},
81 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e},
82 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x91},
83 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x1f},
84 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x0c},
85 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
86 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
87 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
88 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
89 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c},
90 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2c},
91 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1},
92 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c},
93 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c},
94 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52},
95 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F},
96
97 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
98 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
99 {TM6010_REQ07_R3F_RESET, 0x00},
100 {0, 0, 0},
101 },
102 }, {
103 .id = V4L2_STD_PAL,
104 .common = {
105 {TM6010_REQ07_R3F_RESET, 0x01},
106 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x32},
107 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
108 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
109 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x02},
110 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31},
111 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x25},
112 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0xd5},
113 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x63},
114 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x50},
115 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
116 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
117 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
118 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
119 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c},
120 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2c},
121 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1},
122 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c},
123 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c},
124 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52},
125 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F},
126
127 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
128 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
129 {TM6010_REQ07_R3F_RESET, 0x00},
130 {0, 0, 0},
131 },
132 }, {
133 .id = V4L2_STD_SECAM,
134 .common = {
135 {TM6010_REQ07_R3F_RESET, 0x01},
136 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x38},
137 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
138 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
139 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x02},
140 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31},
141 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x24},
142 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x92},
143 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xe8},
144 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xed},
145 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
146 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
147 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
148 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
149 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c},
150 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2c},
151 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1},
152 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x2c},
153 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x18},
154 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42},
155 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0xFF},
156
157 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
158 {TM6010_REQ07_R3F_RESET, 0x00},
159 {0, 0, 0},
160 },
161 }, {
162 .id = V4L2_STD_NTSC,
163 .common = {
164 {TM6010_REQ07_R3F_RESET, 0x01},
165 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x00},
166 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0f},
167 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
168 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x00},
169 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31},
170 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e},
171 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x8b},
172 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xa2},
173 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe9},
174 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
175 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
176 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
177 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
178 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88},
179 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22},
180 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61},
181 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x1c},
182 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c},
183 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42},
184 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F},
185
186 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdd},
187 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
188 {TM6010_REQ07_R3F_RESET, 0x00},
189 {0, 0, 0},
190 },
191 },
192}; 186};
193 187
194static struct tm6000_std_settings svideo_stds[] = { 188static struct tm6000_reg_settings svideo_pal_m[] = {
195 { 189 { TM6010_REQ07_R3F_RESET, 0x01 },
196 .id = V4L2_STD_PAL_M, 190 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x05 },
197 .common = { 191 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
198 {TM6010_REQ07_R3F_RESET, 0x01}, 192 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
199 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x05}, 193 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x04 },
200 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e}, 194 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
201 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f}, 195 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e },
202 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x04}, 196 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x83 },
203 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31}, 197 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x0a },
204 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e}, 198 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe0 },
205 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x83}, 199 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
206 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x0a}, 200 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
207 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe0}, 201 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
208 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c}, 202 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
209 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc}, 203 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88 },
210 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc}, 204 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22 },
211 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd}, 205 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61 },
212 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88}, 206 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c },
213 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22}, 207 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
214 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61}, 208 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52 },
215 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c}, 209 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
216 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c}, 210 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc },
217 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52}, 211 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
218 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F}, 212 { TM6010_REQ07_R3F_RESET, 0x00 },
219 213 { 0, 0, 0 }
220 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
221 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
222 {TM6010_REQ07_R3F_RESET, 0x00},
223 {0, 0, 0},
224 },
225 }, {
226 .id = V4L2_STD_PAL_Nc,
227 .common = {
228 {TM6010_REQ07_R3F_RESET, 0x01},
229 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x37},
230 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
231 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
232 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x04},
233 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31},
234 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e},
235 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x91},
236 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x1f},
237 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x0c},
238 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
239 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
240 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
241 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
242 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88},
243 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22},
244 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1},
245 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c},
246 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c},
247 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52},
248 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F},
249
250 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
251 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
252 {TM6010_REQ07_R3F_RESET, 0x00},
253 {0, 0, 0},
254 },
255 }, {
256 .id = V4L2_STD_PAL,
257 .common = {
258 {TM6010_REQ07_R3F_RESET, 0x01},
259 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x33},
260 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
261 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
262 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x04},
263 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x30},
264 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x25},
265 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0xd5},
266 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x63},
267 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x50},
268 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
269 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
270 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
271 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
272 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c},
273 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2a},
274 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1},
275 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c},
276 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c},
277 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52},
278 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F},
279
280 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc},
281 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
282 {TM6010_REQ07_R3F_RESET, 0x00},
283 {0, 0, 0},
284 },
285 }, {
286 .id = V4L2_STD_SECAM,
287 .common = {
288 {TM6010_REQ07_R3F_RESET, 0x01},
289 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x39},
290 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e},
291 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
292 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x03},
293 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31},
294 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x24},
295 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x92},
296 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xe8},
297 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xed},
298 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
299 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
300 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
301 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
302 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c},
303 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2a},
304 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1},
305 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x2c},
306 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x18},
307 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42},
308 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0xFF},
309
310 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
311 {TM6010_REQ07_R3F_RESET, 0x00},
312 {0, 0, 0},
313 },
314 }, {
315 .id = V4L2_STD_NTSC,
316 .common = {
317 {TM6010_REQ07_R3F_RESET, 0x01},
318 {TM6010_REQ07_R00_VIDEO_CONTROL0, 0x01},
319 {TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0f},
320 {TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f},
321 {TM6010_REQ07_R03_YC_SEP_CONTROL, 0x03},
322 {TM6010_REQ07_R07_OUTPUT_CONTROL, 0x30},
323 {TM6010_REQ07_R17_HLOOP_MAXSTATE, 0x8b},
324 {TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e},
325 {TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x8b},
326 {TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xa2},
327 {TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe9},
328 {TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c},
329 {TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc},
330 {TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc},
331 {TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd},
332 {TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88},
333 {TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22},
334 {TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61},
335 {TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x1c},
336 {TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c},
337 {TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42},
338 {TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6F},
339
340 {TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdd},
341 {TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07},
342 {TM6010_REQ07_R3F_RESET, 0x00},
343 {0, 0, 0},
344 },
345 },
346}; 214};
347 215
216static struct tm6000_reg_settings svideo_pal_nc[] = {
217 { TM6010_REQ07_R3F_RESET, 0x01 },
218 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x37 },
219 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
220 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
221 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x04 },
222 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
223 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e },
224 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x91 },
225 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x1f },
226 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x0c },
227 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
228 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
229 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
230 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
231 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88 },
232 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22 },
233 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1 },
234 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c },
235 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
236 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52 },
237 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
238 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc },
239 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
240 { TM6010_REQ07_R3F_RESET, 0x00 },
241 { 0, 0, 0 }
242};
243
244static struct tm6000_reg_settings svideo_pal[] = {
245 { TM6010_REQ07_R3F_RESET, 0x01 },
246 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x33 },
247 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
248 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
249 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x04 },
250 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x30 },
251 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x25 },
252 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0xd5 },
253 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0x63 },
254 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0x50 },
255 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
256 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
257 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
258 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
259 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c },
260 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2a },
261 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1 },
262 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x0c },
263 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
264 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x52 },
265 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
266 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdc },
267 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
268 { TM6010_REQ07_R3F_RESET, 0x00 },
269 { 0, 0, 0 }
270};
271
272static struct tm6000_reg_settings svideo_secam[] = {
273 { TM6010_REQ07_R3F_RESET, 0x01 },
274 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x39 },
275 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0e },
276 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
277 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x03 },
278 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x31 },
279 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x24 },
280 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x92 },
281 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xe8 },
282 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xed },
283 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
284 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
285 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
286 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
287 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x8c },
288 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x2a },
289 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0xc1 },
290 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x2c },
291 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x18 },
292 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42 },
293 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0xff },
294 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
295 { TM6010_REQ07_R3F_RESET, 0x00 },
296 { 0, 0, 0 }
297};
298
299static struct tm6000_reg_settings svideo_ntsc[] = {
300 { TM6010_REQ07_R3F_RESET, 0x01 },
301 { TM6010_REQ07_R00_VIDEO_CONTROL0, 0x01 },
302 { TM6010_REQ07_R01_VIDEO_CONTROL1, 0x0f },
303 { TM6010_REQ07_R02_VIDEO_CONTROL2, 0x5f },
304 { TM6010_REQ07_R03_YC_SEP_CONTROL, 0x03 },
305 { TM6010_REQ07_R07_OUTPUT_CONTROL, 0x30 },
306 { TM6010_REQ07_R17_HLOOP_MAXSTATE, 0x8b },
307 { TM6010_REQ07_R18_CHROMA_DTO_INCREMENT3, 0x1e },
308 { TM6010_REQ07_R19_CHROMA_DTO_INCREMENT2, 0x8b },
309 { TM6010_REQ07_R1A_CHROMA_DTO_INCREMENT1, 0xa2 },
310 { TM6010_REQ07_R1B_CHROMA_DTO_INCREMENT0, 0xe9 },
311 { TM6010_REQ07_R1C_HSYNC_DTO_INCREMENT3, 0x1c },
312 { TM6010_REQ07_R1D_HSYNC_DTO_INCREMENT2, 0xcc },
313 { TM6010_REQ07_R1E_HSYNC_DTO_INCREMENT1, 0xcc },
314 { TM6010_REQ07_R1F_HSYNC_DTO_INCREMENT0, 0xcd },
315 { TM6010_REQ07_R2E_ACTIVE_VIDEO_HSTART, 0x88 },
316 { TM6010_REQ07_R30_ACTIVE_VIDEO_VSTART, 0x22 },
317 { TM6010_REQ07_R31_ACTIVE_VIDEO_VHIGHT, 0x61 },
318 { TM6010_REQ07_R33_VSYNC_HLOCK_MAX, 0x1c },
319 { TM6010_REQ07_R35_VSYNC_AGC_MAX, 0x1c },
320 { TM6010_REQ07_R82_COMB_FILTER_CONFIG, 0x42 },
321 { TM6010_REQ07_R83_CHROMA_LOCK_CONFIG, 0x6f },
322 { TM6010_REQ07_R04_LUMA_HAGC_CONTROL, 0xdd },
323 { TM6010_REQ07_R0D_CHROMA_KILL_LEVEL, 0x07 },
324 { TM6010_REQ07_R3F_RESET, 0x00 },
325 { 0, 0, 0 }
326};
327
328static struct tm6000_std_settings svideo_stds[] = {
329 { .id = V4L2_STD_PAL_M, .common = svideo_pal_m, },
330 { .id = V4L2_STD_PAL_Nc, .common = svideo_pal_nc, },
331 { .id = V4L2_STD_PAL, .common = svideo_pal, },
332 { .id = V4L2_STD_SECAM, .common = svideo_secam, },
333 { .id = V4L2_STD_NTSC, .common = svideo_ntsc, },
334};
348 335
349static int tm6000_set_audio_std(struct tm6000_core *dev) 336static int tm6000_set_audio_std(struct tm6000_core *dev)
350{ 337{
@@ -501,16 +488,12 @@ void tm6000_get_std_res(struct tm6000_core *dev)
501 dev->width = 720; 488 dev->width = 720;
502} 489}
503 490
504static int tm6000_load_std(struct tm6000_core *dev, 491static int tm6000_load_std(struct tm6000_core *dev, struct tm6000_reg_settings *set)
505 struct tm6000_reg_settings *set, int max_size)
506{ 492{
507 int i, rc; 493 int i, rc;
508 494
509 /* Load board's initialization table */ 495 /* Load board's initialization table */
510 for (i = 0; max_size; i++) { 496 for (i = 0; set[i].req; i++) {
511 if (!set[i].req)
512 return 0;
513
514 rc = tm6000_set_reg(dev, set[i].req, set[i].reg, set[i].value); 497 rc = tm6000_set_reg(dev, set[i].req, set[i].reg, set[i].value);
515 if (rc < 0) { 498 if (rc < 0) {
516 printk(KERN_ERR "Error %i while setting " 499 printk(KERN_ERR "Error %i while setting "
@@ -645,9 +628,7 @@ int tm6000_set_standard(struct tm6000_core *dev)
645 if (input->type == TM6000_INPUT_SVIDEO) { 628 if (input->type == TM6000_INPUT_SVIDEO) {
646 for (i = 0; i < ARRAY_SIZE(svideo_stds); i++) { 629 for (i = 0; i < ARRAY_SIZE(svideo_stds); i++) {
647 if (dev->norm & svideo_stds[i].id) { 630 if (dev->norm & svideo_stds[i].id) {
648 rc = tm6000_load_std(dev, svideo_stds[i].common, 631 rc = tm6000_load_std(dev, svideo_stds[i].common);
649 sizeof(svideo_stds[i].
650 common));
651 goto ret; 632 goto ret;
652 } 633 }
653 } 634 }
@@ -655,10 +636,7 @@ int tm6000_set_standard(struct tm6000_core *dev)
655 } else { 636 } else {
656 for (i = 0; i < ARRAY_SIZE(composite_stds); i++) { 637 for (i = 0; i < ARRAY_SIZE(composite_stds); i++) {
657 if (dev->norm & composite_stds[i].id) { 638 if (dev->norm & composite_stds[i].id) {
658 rc = tm6000_load_std(dev, 639 rc = tm6000_load_std(dev, composite_stds[i].common);
659 composite_stds[i].common,
660 sizeof(composite_stds[i].
661 common));
662 goto ret; 640 goto ret;
663 } 641 }
664 } 642 }