Lines Matching +full:switching +full:- +full:freq
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * av7110_v4l.c: av7110 video4linux interface for DVB and Siemens DVB-C analog module
5 * Copyright (C) 1999-2002 Ralph Metzler
9 * Copyright (C) 1998,1999 Christian Theiss <mistert@rz.fh-augsburg.de>
32 switch (av7110->adac_type) { in msp_writereg()
43 if (i2c_transfer(&av7110->i2c_adap, &msgs, 1) != 1) { in msp_writereg()
44 dprintk(1, "dvb-ttpci: failed @ card %d, %u = %u\n", in msp_writereg()
45 av7110->dvb_adapter.num, reg, val); in msp_writereg()
46 return -EIO; in msp_writereg()
60 switch (av7110->adac_type) { in msp_readreg()
73 if (i2c_transfer(&av7110->i2c_adap, &msgs[0], 2) != 2) { in msp_readreg()
74 dprintk(1, "dvb-ttpci: failed @ card %d, %u\n", in msp_readreg()
75 av7110->dvb_adapter.num, reg); in msp_readreg()
76 return -EIO; in msp_readreg()
124 struct av7110 *av7110 = dev->ext_priv; in ves1820_writereg()
130 if (1 != i2c_transfer(&av7110->i2c_adap, &msg, 1)) in ves1820_writereg()
131 return -1; in ves1820_writereg()
137 struct av7110 *av7110 = dev->ext_priv; in tuner_write()
142 if (1 != i2c_transfer(&av7110->i2c_adap, &msg, 1)) in tuner_write()
143 return -1; in tuner_write()
147 static int ves1820_set_tv_freq(struct saa7146_dev *dev, u32 freq) in ves1820_set_tv_freq() argument
153 dprintk(4, "freq: 0x%08x\n", freq); in ves1820_set_tv_freq()
157 div = freq + 614; in ves1820_set_tv_freq()
163 if (freq < 16U * 16825 / 100) in ves1820_set_tv_freq()
165 else if (freq < 16U * 44725 / 100) in ves1820_set_tv_freq()
176 static int stv0297_set_tv_freq(struct saa7146_dev *dev, u32 freq) in stv0297_set_tv_freq() argument
178 struct av7110 *av7110 = (struct av7110*)dev->ext_priv; in stv0297_set_tv_freq()
182 div = (freq + 38900000 + 31250) / 62500; in stv0297_set_tv_freq()
188 if (freq < 45000000) in stv0297_set_tv_freq()
189 return -EINVAL; in stv0297_set_tv_freq()
190 else if (freq < 137000000) in stv0297_set_tv_freq()
192 else if (freq < 403000000) in stv0297_set_tv_freq()
194 else if (freq < 860000000) in stv0297_set_tv_freq()
197 return -EINVAL; in stv0297_set_tv_freq()
199 if (av7110->fe->ops.i2c_gate_ctrl) in stv0297_set_tv_freq()
200 av7110->fe->ops.i2c_gate_ctrl(av7110->fe, 1); in stv0297_set_tv_freq()
218 struct saa7146_dev *dev = fh->dev; in av7110_dvb_c_switch()
219 struct saa7146_vv *vv = dev->vv_data; in av7110_dvb_c_switch()
220 struct av7110 *av7110 = (struct av7110*)dev->ext_priv; in av7110_dvb_c_switch()
226 if ((vv->video_status & STATUS_OVERLAY) != 0) { in av7110_dvb_c_switch()
227 vv->ov_suspend = vv->video_fh; in av7110_dvb_c_switch()
228 …err = saa7146_stop_preview(vv->video_fh); /* side effect: video_status is now 0, video_fh is NULL … in av7110_dvb_c_switch()
231 vv->ov_suspend = NULL; in av7110_dvb_c_switch()
235 if (0 != av7110->current_input) { in av7110_dvb_c_switch()
236 dprintk(1, "switching to analog TV:\n"); in av7110_dvb_c_switch()
242 switch (av7110->current_input) { in av7110_dvb_c_switch()
244 dprintk(1, "switching SAA7113 to Analog Tuner Input\n"); in av7110_dvb_c_switch()
252 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { in av7110_dvb_c_switch()
255 } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { in av7110_dvb_c_switch()
260 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
263 dprintk(1, "switching SAA7113 to Video AV CVBS Input\n"); in av7110_dvb_c_switch()
265 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
268 dprintk(1, "switching SAA7113 to Video AV Y/C Input\n"); in av7110_dvb_c_switch()
270 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
273 dprintk(1, "switching SAA7113 to Input: AV7110: SAA7113: invalid input\n"); in av7110_dvb_c_switch()
280 dprintk(1, "switching DVB mode\n"); in av7110_dvb_c_switch()
288 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { in av7110_dvb_c_switch()
291 } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { in av7110_dvb_c_switch()
303 if (vv->ov_suspend != NULL) { in av7110_dvb_c_switch()
304 saa7146_start_preview(vv->ov_suspend); in av7110_dvb_c_switch()
305 vv->ov_suspend = NULL; in av7110_dvb_c_switch()
313 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_g_tuner()
314 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_tuner()
318 dprintk(2, "VIDIOC_G_TUNER: %d\n", t->index); in vidioc_g_tuner()
320 if (!av7110->analog_tuner_flags || t->index != 0) in vidioc_g_tuner()
321 return -EINVAL; in vidioc_g_tuner()
324 strscpy((char *)t->name, "Television", sizeof(t->name)); in vidioc_g_tuner()
326 t->type = V4L2_TUNER_ANALOG_TV; in vidioc_g_tuner()
327 t->capability = V4L2_TUNER_CAP_NORM | V4L2_TUNER_CAP_STEREO | in vidioc_g_tuner()
329 t->rangelow = 772; /* 48.25 MHZ / 62.5 kHz = 772, see fi1216mk2-specs, page 2 */ in vidioc_g_tuner()
330 t->rangehigh = 13684; /* 855.25 MHz / 62.5 kHz = 13684 */ in vidioc_g_tuner()
332 t->signal = 0xffff; in vidioc_g_tuner()
333 t->afc = 0; in vidioc_g_tuner()
343 t->rxsubchans = V4L2_TUNER_SUB_STEREO | V4L2_TUNER_SUB_MONO; in vidioc_g_tuner()
344 t->audmode = V4L2_TUNER_MODE_STEREO; in vidioc_g_tuner()
345 } else if (stereo < -0x10) { in vidioc_g_tuner()
347 t->rxsubchans = V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2; in vidioc_g_tuner()
348 t->audmode = V4L2_TUNER_MODE_LANG1; in vidioc_g_tuner()
350 t->rxsubchans = V4L2_TUNER_SUB_MONO; in vidioc_g_tuner()
357 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_s_tuner()
358 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_tuner()
360 dprintk(2, "VIDIOC_S_TUNER: %d\n", t->index); in vidioc_s_tuner()
362 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_s_tuner()
363 return -EINVAL; in vidioc_s_tuner()
365 switch (t->audmode) { in vidioc_s_tuner()
401 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_g_frequency()
402 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_frequency()
404 dprintk(2, "VIDIOC_G_FREQ: freq:0x%08x\n", f->frequency); in vidioc_g_frequency()
406 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_g_frequency()
407 return -EINVAL; in vidioc_g_frequency()
410 f->type = V4L2_TUNER_ANALOG_TV; in vidioc_g_frequency()
411 f->frequency = av7110->current_freq; in vidioc_g_frequency()
417 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_s_frequency()
418 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_frequency()
420 dprintk(2, "VIDIOC_S_FREQUENCY: freq:0x%08x\n", f->frequency); in vidioc_s_frequency()
422 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_s_frequency()
423 return -EINVAL; in vidioc_s_frequency()
425 if (V4L2_TUNER_ANALOG_TV != f->type) in vidioc_s_frequency()
426 return -EINVAL; in vidioc_s_frequency()
432 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) in vidioc_s_frequency()
433 ves1820_set_tv_freq(dev, f->frequency); in vidioc_s_frequency()
434 else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) in vidioc_s_frequency()
435 stv0297_set_tv_freq(dev, f->frequency); in vidioc_s_frequency()
436 av7110->current_freq = f->frequency; in vidioc_s_frequency()
447 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_enum_input()
448 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_enum_input()
450 dprintk(2, "VIDIOC_ENUMINPUT: %d\n", i->index); in vidioc_enum_input()
452 if (av7110->analog_tuner_flags) { in vidioc_enum_input()
453 if (i->index >= 4) in vidioc_enum_input()
454 return -EINVAL; in vidioc_enum_input()
456 if (i->index != 0) in vidioc_enum_input()
457 return -EINVAL; in vidioc_enum_input()
460 memcpy(i, &inputs[i->index], sizeof(struct v4l2_input)); in vidioc_enum_input()
467 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_g_input()
468 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_input()
470 *input = av7110->current_input; in vidioc_g_input()
477 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_s_input()
478 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_input()
482 if (!av7110->analog_tuner_flags) in vidioc_s_input()
483 return input ? -EINVAL : 0; in vidioc_s_input()
486 return -EINVAL; in vidioc_s_input()
488 av7110->current_input = input; in vidioc_s_input()
494 dprintk(2, "VIDIOC_G_AUDIO: %d\n", a->index); in vidioc_enumaudio()
495 if (a->index != 0) in vidioc_enumaudio()
496 return -EINVAL; in vidioc_enumaudio()
503 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_g_audio()
504 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_audio()
506 dprintk(2, "VIDIOC_G_AUDIO: %d\n", a->index); in vidioc_g_audio()
507 if (a->index != 0) in vidioc_g_audio()
508 return -EINVAL; in vidioc_g_audio()
509 if (av7110->current_input >= 2) in vidioc_g_audio()
510 return -EINVAL; in vidioc_g_audio()
517 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_s_audio()
518 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_audio()
520 dprintk(2, "VIDIOC_S_AUDIO: %d\n", a->index); in vidioc_s_audio()
521 if (av7110->current_input >= 2) in vidioc_s_audio()
522 return -EINVAL; in vidioc_s_audio()
523 return a->index ? -EINVAL : 0; in vidioc_s_audio()
529 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_g_sliced_vbi_cap()
530 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_sliced_vbi_cap()
533 if (cap->type != V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) in vidioc_g_sliced_vbi_cap()
534 return -EINVAL; in vidioc_g_sliced_vbi_cap()
535 if (FW_VERSION(av7110->arm_app) >= 0x2623) { in vidioc_g_sliced_vbi_cap()
536 cap->service_set = V4L2_SLICED_WSS_625; in vidioc_g_sliced_vbi_cap()
537 cap->service_lines[0][23] = V4L2_SLICED_WSS_625; in vidioc_g_sliced_vbi_cap()
545 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_g_fmt_sliced_vbi_out()
546 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_fmt_sliced_vbi_out()
549 if (FW_VERSION(av7110->arm_app) < 0x2623) in vidioc_g_fmt_sliced_vbi_out()
550 return -EINVAL; in vidioc_g_fmt_sliced_vbi_out()
551 memset(&f->fmt.sliced, 0, sizeof f->fmt.sliced); in vidioc_g_fmt_sliced_vbi_out()
552 if (av7110->wssMode) { in vidioc_g_fmt_sliced_vbi_out()
553 f->fmt.sliced.service_set = V4L2_SLICED_WSS_625; in vidioc_g_fmt_sliced_vbi_out()
554 f->fmt.sliced.service_lines[0][23] = V4L2_SLICED_WSS_625; in vidioc_g_fmt_sliced_vbi_out()
555 f->fmt.sliced.io_size = sizeof(struct v4l2_sliced_vbi_data); in vidioc_g_fmt_sliced_vbi_out()
563 struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; in vidioc_s_fmt_sliced_vbi_out()
564 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_fmt_sliced_vbi_out()
567 if (FW_VERSION(av7110->arm_app) < 0x2623) in vidioc_s_fmt_sliced_vbi_out()
568 return -EINVAL; in vidioc_s_fmt_sliced_vbi_out()
569 if (f->fmt.sliced.service_set != V4L2_SLICED_WSS_625 && in vidioc_s_fmt_sliced_vbi_out()
570 f->fmt.sliced.service_lines[0][23] != V4L2_SLICED_WSS_625) { in vidioc_s_fmt_sliced_vbi_out()
571 memset(&f->fmt.sliced, 0, sizeof(f->fmt.sliced)); in vidioc_s_fmt_sliced_vbi_out()
573 av7110->wssMode = 0; in vidioc_s_fmt_sliced_vbi_out()
574 av7110->wssData = 0; in vidioc_s_fmt_sliced_vbi_out()
578 memset(&f->fmt.sliced, 0, sizeof(f->fmt.sliced)); in vidioc_s_fmt_sliced_vbi_out()
579 f->fmt.sliced.service_set = V4L2_SLICED_WSS_625; in vidioc_s_fmt_sliced_vbi_out()
580 f->fmt.sliced.service_lines[0][23] = V4L2_SLICED_WSS_625; in vidioc_s_fmt_sliced_vbi_out()
581 f->fmt.sliced.io_size = sizeof(struct v4l2_sliced_vbi_data); in vidioc_s_fmt_sliced_vbi_out()
583 av7110->wssMode = 1; in vidioc_s_fmt_sliced_vbi_out()
584 av7110->wssData = 0; in vidioc_s_fmt_sliced_vbi_out()
591 struct saa7146_fh *fh = file->private_data; in av7110_vbi_reset()
592 struct saa7146_dev *dev = fh->dev; in av7110_vbi_reset()
593 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in av7110_vbi_reset()
596 av7110->wssMode = 0; in av7110_vbi_reset()
597 av7110->wssData = 0; in av7110_vbi_reset()
598 if (FW_VERSION(av7110->arm_app) < 0x2623) in av7110_vbi_reset()
606 struct saa7146_fh *fh = file->private_data; in av7110_vbi_write()
607 struct saa7146_dev *dev = fh->dev; in av7110_vbi_write()
608 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in av7110_vbi_write()
613 if (FW_VERSION(av7110->arm_app) < 0x2623 || !av7110->wssMode || count != sizeof d) in av7110_vbi_write()
614 return -EINVAL; in av7110_vbi_write()
616 return -EFAULT; in av7110_vbi_write()
618 return -EINVAL; in av7110_vbi_write()
620 av7110->wssData = ((d.data[1] << 8) & 0x3f00) | d.data[0]; in av7110_vbi_write()
622 av7110->wssData = 0x8000; in av7110_vbi_write()
623 rc = av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetWSSConfig, 2, 1, av7110->wssData); in av7110_vbi_write()
699 pr_info("DVB-C analog module @ card %d detected, initializing MSP3400\n", in av7110_init_analog_module()
700 av7110->dvb_adapter.num); in av7110_init_analog_module()
701 av7110->adac_type = DVB_ADAC_MSP34x0; in av7110_init_analog_module()
704 pr_info("DVB-C analog module @ card %d detected, initializing MSP3415\n", in av7110_init_analog_module()
705 av7110->dvb_adapter.num); in av7110_init_analog_module()
706 av7110->adac_type = DVB_ADAC_MSP34x5; in av7110_init_analog_module()
708 return -ENODEV; in av7110_init_analog_module()
713 dprintk(1, "dvb-ttpci: @ card %d MSP34xx version 0x%04x 0x%04x\n", in av7110_init_analog_module()
714 av7110->dvb_adapter.num, version1, version2); in av7110_init_analog_module()
729 …if ((av7110->dev->pci->subsystem_vendor == 0x110a) && (av7110->dev->pci->subsystem_device == 0x000… in av7110_init_analog_module()
730 /* Fujitsu/Siemens DVB-Cable */ in av7110_init_analog_module()
731 av7110->analog_tuner_flags |= ANALOG_TUNER_VES1820; in av7110_init_analog_module()
732 …} else if ((av7110->dev->pci->subsystem_vendor == 0x13c2) && (av7110->dev->pci->subsystem_device =… in av7110_init_analog_module()
733 /* Hauppauge/TT DVB-C premium */ in av7110_init_analog_module()
734 av7110->analog_tuner_flags |= ANALOG_TUNER_VES1820; in av7110_init_analog_module()
735 …} else if ((av7110->dev->pci->subsystem_vendor == 0x13c2) && (av7110->dev->pci->subsystem_device =… in av7110_init_analog_module()
736 /* Hauppauge/TT DVB-C premium */ in av7110_init_analog_module()
737 av7110->analog_tuner_flags |= ANALOG_TUNER_STV0297; in av7110_init_analog_module()
741 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { in av7110_init_analog_module()
742 if (ves1820_writereg(av7110->dev, 0x09, 0x0f, 0x20)) in av7110_init_analog_module()
744 } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { in av7110_init_analog_module()
745 saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD) in av7110_init_analog_module()
746 saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF) in av7110_init_analog_module()
752 dprintk(1, "saa7113 initialization failed @ card %d", av7110->dvb_adapter.num); in av7110_init_analog_module()
757 /* setup msp for analog sound: B/G Dual-FM */ in av7110_init_analog_module()
784 saa7146_write(av7110->dev, DD1_STREAM_B, 0x00000000); in av7110_init_analog_module()
785 saa7146_write(av7110->dev, DD1_INIT, 0x03000700); in av7110_init_analog_module()
786 saa7146_write(av7110->dev, MC2, (MASK_09 | MASK_25 | MASK_10 | MASK_26)); in av7110_init_analog_module()
793 struct saa7146_dev* dev = av7110->dev; in av7110_init_v4l()
797 /* special case DVB-C: these cards have an analog tuner in av7110_init_v4l()
800 if (av7110->analog_tuner_flags) in av7110_init_v4l()
808 return -ENODEV; in av7110_init_v4l()
810 vv_data->vid_ops.vidioc_enum_input = vidioc_enum_input; in av7110_init_v4l()
811 vv_data->vid_ops.vidioc_g_input = vidioc_g_input; in av7110_init_v4l()
812 vv_data->vid_ops.vidioc_s_input = vidioc_s_input; in av7110_init_v4l()
813 vv_data->vid_ops.vidioc_g_tuner = vidioc_g_tuner; in av7110_init_v4l()
814 vv_data->vid_ops.vidioc_s_tuner = vidioc_s_tuner; in av7110_init_v4l()
815 vv_data->vid_ops.vidioc_g_frequency = vidioc_g_frequency; in av7110_init_v4l()
816 vv_data->vid_ops.vidioc_s_frequency = vidioc_s_frequency; in av7110_init_v4l()
817 vv_data->vid_ops.vidioc_enumaudio = vidioc_enumaudio; in av7110_init_v4l()
818 vv_data->vid_ops.vidioc_g_audio = vidioc_g_audio; in av7110_init_v4l()
819 vv_data->vid_ops.vidioc_s_audio = vidioc_s_audio; in av7110_init_v4l()
820 vv_data->vid_ops.vidioc_g_fmt_vbi_cap = NULL; in av7110_init_v4l()
822 vv_data->vbi_ops.vidioc_g_tuner = vidioc_g_tuner; in av7110_init_v4l()
823 vv_data->vbi_ops.vidioc_s_tuner = vidioc_s_tuner; in av7110_init_v4l()
824 vv_data->vbi_ops.vidioc_g_frequency = vidioc_g_frequency; in av7110_init_v4l()
825 vv_data->vbi_ops.vidioc_s_frequency = vidioc_s_frequency; in av7110_init_v4l()
826 vv_data->vbi_ops.vidioc_g_fmt_vbi_cap = NULL; in av7110_init_v4l()
827 vv_data->vbi_ops.vidioc_g_sliced_vbi_cap = vidioc_g_sliced_vbi_cap; in av7110_init_v4l()
828 vv_data->vbi_ops.vidioc_g_fmt_sliced_vbi_out = vidioc_g_fmt_sliced_vbi_out; in av7110_init_v4l()
829 vv_data->vbi_ops.vidioc_s_fmt_sliced_vbi_out = vidioc_s_fmt_sliced_vbi_out; in av7110_init_v4l()
831 if (FW_VERSION(av7110->arm_app) < 0x2623) in av7110_init_v4l()
832 vv_data->capabilities &= ~V4L2_CAP_SLICED_VBI_OUTPUT; in av7110_init_v4l()
834 if (saa7146_register_device(&av7110->v4l_dev, dev, "av7110", VFL_TYPE_VIDEO)) { in av7110_init_v4l()
837 return -ENODEV; in av7110_init_v4l()
839 if (FW_VERSION(av7110->arm_app) >= 0x2623) { in av7110_init_v4l()
840 if (saa7146_register_device(&av7110->vbi_dev, dev, "av7110", VFL_TYPE_VBI)) in av7110_init_v4l()
848 struct saa7146_dev* dev = av7110->dev; in av7110_exit_v4l()
850 saa7146_unregister_device(&av7110->v4l_dev, av7110->dev); in av7110_exit_v4l()
851 saa7146_unregister_device(&av7110->vbi_dev, av7110->dev); in av7110_exit_v4l()
861 values from the latest "official" driver -- at least for me... (MiHu) */
906 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in std_callback()
908 if (std->id & V4L2_STD_PAL) { in std_callback()
909 av7110->vidmode = AV7110_VIDEO_MODE_PAL; in std_callback()
910 av7110_set_vidmode(av7110, av7110->vidmode); in std_callback()
912 else if (std->id & V4L2_STD_NTSC) { in std_callback()
913 av7110->vidmode = AV7110_VIDEO_MODE_NTSC; in std_callback()
914 av7110_set_vidmode(av7110, av7110->vidmode); in std_callback()
917 return -1; in std_callback()