Lines Matching +full:v +full:- +full:blanking

1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Derived from cx25840-vbi.c
12 #include "cx18-driver.h"
15 * For sliced VBI output, we set up to use VIP-1.1, 8-bit mode,
17 * Thus, according to the VIP-2 Spec, our VBI ancillary data lines
25 * 2 byte Internal DID: VBI-line-# 0x80
30 * The RP codes for EAVs when in VIP-1.1 mode, not in raw mode, &
31 * in the vertical blanking interval are:
35 * Since the V bit is only allowed to toggle in the EAV RP code, just
113 struct cx18_av_state *state = &cx->av_state;
121 int is_pal = !(state->std & V4L2_STD_525_60);
124 memset(svbi->service_lines, 0, sizeof(svbi->service_lines));
125 svbi->service_set = 0;
133 u8 v = cx18_av_read(cx, 0x424 + i - 7);
135 svbi->service_lines[0][i] = lcr2vbi[v >> 4];
136 svbi->service_lines[1][i] = lcr2vbi[v & 0xf];
137 svbi->service_set |= svbi->service_lines[0][i] |
138 svbi->service_lines[1][i];
142 u8 v = cx18_av_read(cx, 0x424 + i - 10);
144 svbi->service_lines[0][i] = lcr2vbi[v >> 4];
145 svbi->service_lines[1][i] = lcr2vbi[v & 0xf];
146 svbi->service_set |= svbi->service_lines[0][i] |
147 svbi->service_lines[1][i];
156 struct cx18_av_state *state = &cx->av_state;
162 cx18_av_write(cx, 0x47f, state->slicer_line_delay);
170 struct cx18_av_state *state = &cx->av_state;
171 int is_pal = !(state->std & V4L2_STD_525_60);
184 cx18_av_write(cx, 0x47f, state->slicer_line_delay);
189 svbi->service_lines[0][i] =
190 svbi->service_lines[1][i] = 0;
193 svbi->service_lines[0][i] =
194 svbi->service_lines[1][i] = 0;
197 svbi->service_lines[0][i] =
198 svbi->service_lines[1][i] = 0;
204 switch (svbi->service_lines[1-x][i]) {
241 struct cx18_av_state *state = &cx->av_state;
242 struct vbi_anc_data *anc = (struct vbi_anc_data *)vbi->p;
249 if (anc->preamble[0] ||
250 anc->preamble[1] != 0xff || anc->preamble[2] != 0xff ||
251 (anc->did != sliced_vbi_did[0] &&
252 anc->did != sliced_vbi_did[1])) {
253 vbi->line = vbi->type = 0;
257 did = anc->did;
258 sdid = anc->sdid & 0xf;
259 l = anc->idid[0] & 0x3f;
260 l += state->slicer_line_offset;
261 p = anc->payload;
286 vbi->type = err ? 0 : sdid;
287 vbi->line = err ? 0 : l;
288 vbi->is_second_field = err ? 0 : (did == sliced_vbi_did[1]);
289 vbi->p = p;