Home | History | Annotate | Download | only in cim

Lines Matching refs:buffer

39 vip_initialize(VIPSETMODEBUFFER * buffer)
43 if (!buffer)
56 vip_control1 |= buffer->stream_enables;
60 vip_control1 |= buffer->operating_mode;
64 if (buffer->flags & VIP_MODEFLAG_PLANARCAPTURE) {
67 if (buffer->planar_capture == VIP_420CAPTURE_EVERYLINE) {
70 else if (buffer->planar_capture == VIP_420CAPTURE_ALTERNATINGFIELDS) {
71 if (buffer->flags & VIP_MODEFLAG_PROGRESSIVE)
77 else if (buffer->planar_capture != VIP_420CAPTURE_ALTERNATINGLINES)
100 if (buffer->flags & VIP_MODEFLAG_PROGRESSIVE)
103 if (buffer->flags & VIP_MODEFLAG_TOGGLEEACHFIELD)
105 if (buffer->flags & VIP_MODEFLAG_INVERTPOLARITY)
109 if ((buffer->operating_mode == VIP_MODE_MSG ||
110 buffer->operating_mode == VIP_MODE_DATA) &&
111 (buffer->flags & VIP_MODEFLAG_FLIPMESSAGEWHENFULL)) {
115 else if (buffer->operating_mode == VIP_MODE_VIP2_8BIT ||
116 buffer->operating_mode == VIP_MODE_VIP2_16BIT) {
117 if (buffer->flags & VIP_MODEFLAG_ENABLEREPEATFLAG)
119 if (buffer->flags & VIP_MODEFLAG_INVERTTASKPOLARITY)
123 if (buffer->flags & VIP_MODEFLAG_DISABLEZERODETECT)
125 if (buffer->flags & VIP_MODEFLAG_10BITANCILLARY)
138 if (buffer->operating_mode == VIP_MODE_8BIT601 ||
139 buffer->operating_mode == VIP_MODE_16BIT601) {
140 vip_update_601_params(&buffer->vip601_settings);
154 vip_update_601_params(VIP_601PARAMS * buffer)
158 if (!buffer)
164 if (buffer->flags & VIP_MODEFLAG_VSYNCACTIVEHIGH)
168 if (buffer->flags & VIP_MODEFLAG_HSYNCACTIVEHIGH)
174 WRITE_VIP32(VIP_601_HORZ_START, buffer->horz_start);
175 WRITE_VIP32(VIP_601_VBI_START, buffer->vbi_start);
176 WRITE_VIP32(VIP_601_VBI_END, buffer->vbi_start + buffer->vbi_height - 1);
178 buffer->vert_start_even | ((buffer->vert_start_even +
179 buffer->even_height - 1) << 16));
181 buffer->vert_start_odd | ((buffer->vert_start_odd +
182 buffer->odd_height - 1) << 16));
184 buffer->odd_detect_start | (buffer->odd_detect_end << 16));
193 buffer->horz_start + (buffer->width << 1) + 3);
195 WRITE_VIP32(VIP_601_HORZ_END, buffer->horz_start + buffer->width + 3);
208 * The new buffer addresses are written to the hardware registers although
212 * Review the Cimarron VIP API documentation to determine which buffer
217 vip_configure_capture_buffers(int buffer_type, VIPINPUTBUFFER * buffer)
220 unsigned long cur_buffer = buffer->current_buffer;
222 if (!buffer)
226 offsets = &buffer->offsets[VIP_BUFFER_TASK_A];
235 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY) {
238 if (buffer->flags & VIP_INPUTFLAG_VBI) {
247 if (buffer->flags & VIP_INPUTFLAG_VBI) {
255 if (buffer->flags & VIP_INPUTFLAG_PLANAR) {
263 offsets = &buffer->offsets[VIP_BUFFER_TASK_B];
272 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY) {
275 if (buffer->flags & VIP_INPUTFLAG_VBI) {
284 if (buffer->flags & VIP_INPUTFLAG_VBI) {
292 if (buffer->flags & VIP_INPUTFLAG_PLANAR) {
298 WRITE_VIP32(VIP_ANC_MSG1_BASE, buffer->ancillaryData.msg1_base);
299 WRITE_VIP32(VIP_ANC_MSG2_BASE, buffer->ancillaryData.msg2_base);
300 WRITE_VIP32(VIP_ANC_MSG_SIZE, buffer->ancillaryData.msg_size);
314 * interrupt service routines or other buffer flipping applications that
319 vip_toggle_video_offsets(int buffer_type, VIPINPUTBUFFER * buffer)
321 unsigned long cur_buffer = buffer->current_buffer;
325 offsets = &buffer->offsets[VIP_BUFFER_TASK_A];
329 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY) {
340 offsets = &buffer->offsets[VIP_BUFFER_TASK_B];
344 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY) {
355 offsets = &buffer->offsets[VIP_BUFFER_TASK_A];
359 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY)
365 offsets = &buffer->offsets[VIP_BUFFER_TASK_A];
369 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY)
376 offsets = &buffer->offsets[VIP_BUFFER_TASK_B];
380 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY)
386 offsets = &buffer->offsets[VIP_BUFFER_TASK_B];
390 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY)
666 vip_configure_genlock(VIPGENLOCKBUFFER * buffer)
671 if (!buffer)
685 vip_control1 |= buffer->vip_signal_loss;
691 vip_control2 |= buffer->field_to_vg;
692 vip_control2 |= buffer->vsync_to_vg;
700 if (buffer->enable_timeout)
706 genlk_ctl |= buffer->genlock_skew & DC3_GC_GENLOCK_SKEW_MASK;
751 vip_set_power_characteristics(VIPPOWERBUFFER * buffer)
755 if (!buffer)
762 if (buffer->glink_clock_mode)
767 if (buffer->vip_clock_mode)
784 vip_set_priority_characteristics(VIPPRIORITYBUFFER * buffer)
788 if (!buffer)
793 q_word.low |= (buffer->secondary <<
797 (buffer->primary << VIP_MSR_MCR_PRIMARY_PRIORITY_SHIFT) &
799 q_word.low |= (buffer->pid << VIP_MSR_MCR_PID_SHIFT) & VIP_MSR_MCR_PID_MASK;
813 vip_set_debug_characteristics(VIPDEBUGBUFFER * buffer)
817 if (!buffer)
822 q_word.high |= (buffer->bist << VIP_MSR_DIAG_BIST_SHIFT) &
824 q_word.low |= (buffer->enable_upper ? VIP_MSR_DIAG_MSB_ENABLE : 0x00000000);
825 q_word.low |= (buffer->select_upper << VIP_MSR_DIAG_SEL_UPPER_SHIFT) &
827 q_word.low |= (buffer->enable_lower ? VIP_MSR_DIAG_LSB_ENABLE : 0x00000000);
828 q_word.low |= (buffer->select_lower << VIP_MSR_DIAG_SEL_LOWER_SHIFT) &
910 vip_set_subwindow_enable(VIPSUBWINDOWBUFFER * buffer)
914 if (!buffer)
918 if (buffer->enable) {
921 WRITE_VIP32(VIP_VERTICAL_START_STOP, ((buffer->stop <<
924 ((buffer->start << VIP_VSTART_VERTSTART_SHIFT) &
1160 vip_get_current_mode(VIPSETMODEBUFFER * buffer)
1164 if (!buffer)
1173 buffer->stream_enables = vip_control1 & VIP_ENABLE_ALL;
1174 buffer->operating_mode = vip_control1 & VIP_CONTROL1_MODE_MASK;
1178 buffer->flags = 0;
1179 buffer->planar_capture = 0;
1181 buffer->flags |= VIP_MODEFLAG_PLANARCAPTURE;
1184 buffer->planar_capture = VIP_420CAPTURE_ALTERNATINGFIELDS;
1186 buffer->planar_capture = VIP_420CAPTURE_EVERYLINE;
1189 buffer->planar_capture = VIP_420CAPTURE_ALTERNATINGLINES;
1195 buffer->flags |= VIP_MODEFLAG_PROGRESSIVE;
1197 buffer->flags |= VIP_MODEFLAG_TOGGLEEACHFIELD;
1199 buffer->flags |= VIP_MODEFLAG_INVERTPOLARITY;
1201 buffer->flags |= VIP_MODEFLAG_FLIPMESSAGEWHENFULL;
1203 buffer->flags |= VIP_MODEFLAG_ENABLEREPEATFLAG;
1205 buffer->flags |= VIP_MODEFLAG_INVERTTASKPOLARITY;
1207 buffer->flags |= VIP_MODEFLAG_DISABLEZERODETECT;
1209 buffer->flags |= VIP_MODEFLAG_10BITANCILLARY;
1213 vip_get_601_configuration(&buffer->vip601_settings);
1225 vip_get_601_configuration(VIP_601PARAMS * buffer)
1229 if (!buffer)
1235 buffer->flags = 0;
1237 buffer->flags |= VIP_MODEFLAG_VSYNCACTIVEHIGH;
1239 buffer->flags |= VIP_MODEFLAG_HSYNCACTIVEHIGH;
1241 buffer->horz_start = READ_VIP32(VIP_601_HORZ_START);
1242 buffer->vbi_start = READ_VIP32(VIP_601_VBI_START);
1243 buffer->vbi_height = READ_VIP32(VIP_601_VBI_END) - buffer->vbi_start + 1;
1244 buffer->vert_start_even = READ_VIP32(VIP_601_EVEN_START_STOP) & 0xFFFF;
1245 buffer->even_height = (READ_VIP32(VIP_601_EVEN_START_STOP) >> 16) -
1246 buffer->vert_start_even + 1;
1247 buffer->vert_start_odd = READ_VIP32(VIP_601_ODD_START_STOP) & 0xFFFF;
1248 buffer->odd_height = (READ_VIP32(VIP_601_ODD_START_STOP) >> 16) -
1249 buffer->vert_start_odd + 1;
1250 buffer->odd_detect_start = READ_VIP32(VIP_ODD_FIELD_DETECT) & 0xFFFF;
1251 buffer->odd_detect_end = READ_VIP32(VIP_ODD_FIELD_DETECT) >> 16;
1259 buffer->width = (READ_VIP32(VIP_601_HORZ_END) -
1260 buffer->horz_start - 3) >> 1;
1262 buffer->width = (READ_VIP32(VIP_601_HORZ_END) - buffer->horz_start - 3);
1270 * This routine reads the current buffer configuration for Task A, Task B,
1276 vip_get_buffer_configuration(int buffer_type, VIPINPUTBUFFER * buffer)
1278 unsigned long cur_buffer = buffer->current_buffer;
1281 if (!buffer)
1285 offsets = &buffer->offsets[VIP_BUFFER_TASK_A];
1294 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY) {
1298 if (buffer->flags & VIP_INPUTFLAG_VBI) {
1308 if (buffer->flags & VIP_INPUTFLAG_VBI) {
1316 if (buffer->flags & VIP_INPUTFLAG_PLANAR) {
1324 offsets = &buffer->offsets[VIP_BUFFER_TASK_B];
1333 if (buffer->flags & VIP_INPUTFLAG_INVERTPOLARITY) {
1337 if (buffer->flags & VIP_INPUTFLAG_VBI) {
1347 if (buffer->flags & VIP_INPUTFLAG_VBI) {
1355 if (buffer->flags & VIP_INPUTFLAG_PLANAR) {
1361 buffer->ancillaryData.msg1_base = READ_VIP32(VIP_ANC_MSG1_BASE);
1362 buffer->ancillaryData.msg2_base = READ_VIP32(VIP_ANC_MSG2_BASE);
1363 buffer->ancillaryData.msg_size = READ_VIP32(VIP_ANC_MSG_SIZE);
1379 vip_get_genlock_configuration(VIPGENLOCKBUFFER * buffer)
1384 if (!buffer)
1396 buffer->vip_signal_loss = vip_control1 & VIP_CONTROL1_VDE_FF_MASK;
1397 buffer->field_to_vg = vip_control2 & VIP_CONTROL2_FIELD2VG_MASK;
1398 buffer->vsync_to_vg = vip_control2 & VIP_CONTROL2_SYNC2VG_MASK;
1402 buffer->enable_timeout = 0;
1404 buffer->enable_timeout = 1;
1408 buffer->genlock_skew = genlk_ctl & DC3_GC_GENLOCK_SKEW_MASK;
1557 vip_get_power_characteristics(VIPPOWERBUFFER * buffer)
1561 if (!buffer)
1570 buffer->glink_clock_mode = (int) (q_word.low & VIP_MSR_POWER_GLINK);
1571 buffer->vip_clock_mode = (int) (q_word.low & VIP_MSR_POWER_CLOCK);
1584 vip_get_priority_characteristics(VIPPRIORITYBUFFER * buffer)
1588 if (!buffer)
1597 buffer->secondary = (q_word.low & VIP_MSR_MCR_SECOND_PRIORITY_MASK) >>
1599 buffer->primary = (q_word.low & VIP_MSR_MCR_PRIMARY_PRIORITY_MASK) >>
1601 buffer->pid = q_word.low & VIP_MSR_MCR_PID_MASK;
1613 vip_get_capability_characteristics(VIPCAPABILITIESBUFFER * buffer)
1617 if (!buffer)
1626 buffer->revision_id = (q_word.low & VIP_MSR_CAP_REVID_MASK) >>
1628 buffer->device_id = (q_word.low & VIP_MSR_CAP_DEVID_MASK) >>
1630 buffer->n_clock_domains = (q_word.low & VIP_MSR_CAP_NCLK_MASK) >>
1632 buffer->n_smi_registers = (q_word.low & VIP_MSR_CAP_NSMI_MASK) >>