Lines Matching refs:av7110
41 int msp_writereg(struct av7110 *av7110, u8 dev, u16 reg, u16 val) in msp_writereg() argument
46 switch (av7110->adac_type) { in msp_writereg()
57 if (i2c_transfer(&av7110->i2c_adap, &msgs, 1) != 1) { in msp_writereg()
59 av7110->dvb_adapter.num, reg, val); in msp_writereg()
65 static int msp_readreg(struct av7110 *av7110, u8 dev, u16 reg, u16 *val) in msp_readreg() argument
74 switch (av7110->adac_type) { in msp_readreg()
87 if (i2c_transfer(&av7110->i2c_adap, &msgs[0], 2) != 2) { in msp_readreg()
89 av7110->dvb_adapter.num, reg); in msp_readreg()
138 struct av7110 *av7110 = dev->ext_priv; in ves1820_writereg() local
144 if (1 != i2c_transfer(&av7110->i2c_adap, &msg, 1)) in ves1820_writereg()
151 struct av7110 *av7110 = dev->ext_priv; in tuner_write() local
156 if (1 != i2c_transfer(&av7110->i2c_adap, &msg, 1)) in tuner_write()
192 struct av7110 *av7110 = (struct av7110*)dev->ext_priv; in stv0297_set_tv_freq() local
213 if (av7110->fe->ops.i2c_gate_ctrl) in stv0297_set_tv_freq()
214 av7110->fe->ops.i2c_gate_ctrl(av7110->fe, 1); in stv0297_set_tv_freq()
234 struct av7110 *av7110 = (struct av7110*)dev->ext_priv; in av7110_dvb_c_switch() local
238 dprintk(4, "%p\n", av7110); in av7110_dvb_c_switch()
249 if (0 != av7110->current_input) { in av7110_dvb_c_switch()
256 switch (av7110->current_input) { in av7110_dvb_c_switch()
259 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0000); // loudspeaker source in av7110_dvb_c_switch()
260 msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0000); // headphone source in av7110_dvb_c_switch()
261 msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0000); // SCART 1 source in av7110_dvb_c_switch()
262 msp_writereg(av7110, MSP_WR_DSP, 0x000e, 0x3000); // FM matrix, mono in av7110_dvb_c_switch()
263 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x4f00); // loudspeaker + headphone in av7110_dvb_c_switch()
264 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x4f00); // SCART 1 volume in av7110_dvb_c_switch()
266 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { in av7110_dvb_c_switch()
269 } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { in av7110_dvb_c_switch()
273 if (i2c_writereg(av7110, 0x48, 0x02, 0xd0) != 1) in av7110_dvb_c_switch()
274 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
278 if (i2c_writereg(av7110, 0x48, 0x02, 0xd2) != 1) in av7110_dvb_c_switch()
279 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
283 if (i2c_writereg(av7110, 0x48, 0x02, 0xd9) != 1) in av7110_dvb_c_switch()
284 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
295 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0220); // loudspeaker source in av7110_dvb_c_switch()
296 msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0220); // headphone source in av7110_dvb_c_switch()
297 msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0220); // SCART 1 source in av7110_dvb_c_switch()
298 msp_writereg(av7110, MSP_WR_DSP, 0x000e, 0x3000); // FM matrix, mono in av7110_dvb_c_switch()
299 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x7f00); // loudspeaker + headphone in av7110_dvb_c_switch()
300 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x7f00); // SCART 1 volume in av7110_dvb_c_switch()
302 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { in av7110_dvb_c_switch()
305 } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { in av7110_dvb_c_switch()
312 if (av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, ADSwitch, 1, adswitch)) in av7110_dvb_c_switch()
328 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_tuner() local
334 if (!av7110->analog_tuner_flags || t->index != 0) in vidioc_g_tuner()
350 msp_readreg(av7110, MSP_RD_DEM, 0x007e, &stereo_det); in vidioc_g_tuner()
352 msp_readreg(av7110, MSP_RD_DSP, 0x0018, &stereo_det); in vidioc_g_tuner()
372 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_tuner() local
376 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_s_tuner()
406 msp_writereg(av7110, MSP_WR_DSP, 0x000e, fm_matrix); in vidioc_s_tuner()
407 msp_writereg(av7110, MSP_WR_DSP, 0x0008, src); in vidioc_s_tuner()
408 msp_writereg(av7110, MSP_WR_DSP, 0x0009, src); in vidioc_s_tuner()
409 msp_writereg(av7110, MSP_WR_DSP, 0x000a, src); in vidioc_s_tuner()
416 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_frequency() local
420 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_g_frequency()
425 f->frequency = av7110->current_freq; in vidioc_g_frequency()
432 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_frequency() local
436 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_s_frequency()
442 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0xffe0); /* fast mute */ in vidioc_s_frequency()
443 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0xffe0); in vidioc_s_frequency()
446 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) in vidioc_s_frequency()
448 else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) in vidioc_s_frequency()
450 av7110->current_freq = f->frequency; in vidioc_s_frequency()
452 msp_writereg(av7110, MSP_WR_DSP, 0x0015, 0x003f); /* start stereo detection */ in vidioc_s_frequency()
453 msp_writereg(av7110, MSP_WR_DSP, 0x0015, 0x0000); in vidioc_s_frequency()
454 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x4f00); /* loudspeaker + headphone */ in vidioc_s_frequency()
455 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x4f00); /* SCART 1 volume */ in vidioc_s_frequency()
462 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_enum_input() local
466 if (av7110->analog_tuner_flags) { in vidioc_enum_input()
482 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_input() local
484 *input = av7110->current_input; in vidioc_g_input()
492 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_input() local
496 if (!av7110->analog_tuner_flags) in vidioc_s_input()
502 av7110->current_input = input; in vidioc_s_input()
518 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_audio() local
523 if (av7110->current_input >= 2) in vidioc_g_audio()
532 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_audio() local
535 if (av7110->current_input >= 2) in vidioc_s_audio()
544 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_sliced_vbi_cap() local
549 if (FW_VERSION(av7110->arm_app) >= 0x2623) { in vidioc_g_sliced_vbi_cap()
560 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_fmt_sliced_vbi_out() local
563 if (FW_VERSION(av7110->arm_app) < 0x2623) in vidioc_g_fmt_sliced_vbi_out()
566 if (av7110->wssMode) { in vidioc_g_fmt_sliced_vbi_out()
578 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_fmt_sliced_vbi_out() local
581 if (FW_VERSION(av7110->arm_app) < 0x2623) in vidioc_s_fmt_sliced_vbi_out()
587 av7110->wssMode = 0; in vidioc_s_fmt_sliced_vbi_out()
588 av7110->wssData = 0; in vidioc_s_fmt_sliced_vbi_out()
589 return av7110_fw_cmd(av7110, COMTYPE_ENCODER, in vidioc_s_fmt_sliced_vbi_out()
597 av7110->wssMode = 1; in vidioc_s_fmt_sliced_vbi_out()
598 av7110->wssData = 0; in vidioc_s_fmt_sliced_vbi_out()
607 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in av7110_vbi_reset() local
610 av7110->wssMode = 0; in av7110_vbi_reset()
611 av7110->wssData = 0; in av7110_vbi_reset()
612 if (FW_VERSION(av7110->arm_app) < 0x2623) in av7110_vbi_reset()
615 return av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetWSSConfig, 1, 0); in av7110_vbi_reset()
622 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in av7110_vbi_write() local
627 if (FW_VERSION(av7110->arm_app) < 0x2623 || !av7110->wssMode || count != sizeof d) in av7110_vbi_write()
634 av7110->wssData = ((d.data[1] << 8) & 0x3f00) | d.data[0]; in av7110_vbi_write()
636 av7110->wssData = 0x8000; in av7110_vbi_write()
637 rc = av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetWSSConfig, 2, 1, av7110->wssData); in av7110_vbi_write()
707 int av7110_init_analog_module(struct av7110 *av7110) in av7110_init_analog_module() argument
711 if (i2c_writereg(av7110, 0x80, 0x0, 0x80) == 1 && in av7110_init_analog_module()
712 i2c_writereg(av7110, 0x80, 0x0, 0) == 1) { in av7110_init_analog_module()
714 av7110->dvb_adapter.num); in av7110_init_analog_module()
715 av7110->adac_type = DVB_ADAC_MSP34x0; in av7110_init_analog_module()
716 } else if (i2c_writereg(av7110, 0x84, 0x0, 0x80) == 1 && in av7110_init_analog_module()
717 i2c_writereg(av7110, 0x84, 0x0, 0) == 1) { in av7110_init_analog_module()
719 av7110->dvb_adapter.num); in av7110_init_analog_module()
720 av7110->adac_type = DVB_ADAC_MSP34x5; in av7110_init_analog_module()
725 msp_readreg(av7110, MSP_RD_DSP, 0x001e, &version1); in av7110_init_analog_module()
726 msp_readreg(av7110, MSP_RD_DSP, 0x001f, &version2); in av7110_init_analog_module()
728 av7110->dvb_adapter.num, version1, version2); in av7110_init_analog_module()
729 msp_writereg(av7110, MSP_WR_DSP, 0x0013, 0x0c00); in av7110_init_analog_module()
730 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x7f00); // loudspeaker + headphone in av7110_init_analog_module()
731 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0220); // loudspeaker source in av7110_init_analog_module()
732 msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0220); // headphone source in av7110_init_analog_module()
733 msp_writereg(av7110, MSP_WR_DSP, 0x0004, 0x7f00); // loudspeaker volume in av7110_init_analog_module()
734 msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0220); // SCART 1 source in av7110_init_analog_module()
735 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x7f00); // SCART 1 volume in av7110_init_analog_module()
736 msp_writereg(av7110, MSP_WR_DSP, 0x000d, 0x1900); // prescale SCART in av7110_init_analog_module()
738 if (i2c_writereg(av7110, 0x48, 0x01, 0x00)!=1) { in av7110_init_analog_module()
743 …if ((av7110->dev->pci->subsystem_vendor == 0x110a) && (av7110->dev->pci->subsystem_device == 0x000… in av7110_init_analog_module()
745 av7110->analog_tuner_flags |= ANALOG_TUNER_VES1820; in av7110_init_analog_module()
746 …} else if ((av7110->dev->pci->subsystem_vendor == 0x13c2) && (av7110->dev->pci->subsystem_device =… in av7110_init_analog_module()
748 av7110->analog_tuner_flags |= ANALOG_TUNER_VES1820; in av7110_init_analog_module()
749 …} else if ((av7110->dev->pci->subsystem_vendor == 0x13c2) && (av7110->dev->pci->subsystem_device =… in av7110_init_analog_module()
751 av7110->analog_tuner_flags |= ANALOG_TUNER_STV0297; in av7110_init_analog_module()
755 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { in av7110_init_analog_module()
756 if (ves1820_writereg(av7110->dev, 0x09, 0x0f, 0x20)) in av7110_init_analog_module()
758 } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { in av7110_init_analog_module()
759 saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD) in av7110_init_analog_module()
760 saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF) in av7110_init_analog_module()
765 if (i2c_writereg(av7110, 0x48, i[0], i[1]) != 1) { in av7110_init_analog_module()
766 dprintk(1, "saa7113 initialization failed @ card %d", av7110->dvb_adapter.num); in av7110_init_analog_module()
772 msp_writereg(av7110, MSP_WR_DEM, 0x00bb, 0x02d0); // AD_CV in av7110_init_analog_module()
773 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 3); // FIR1 in av7110_init_analog_module()
774 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 18); // FIR1 in av7110_init_analog_module()
775 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 27); // FIR1 in av7110_init_analog_module()
776 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 48); // FIR1 in av7110_init_analog_module()
777 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 66); // FIR1 in av7110_init_analog_module()
778 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 72); // FIR1 in av7110_init_analog_module()
779 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 4); // FIR2 in av7110_init_analog_module()
780 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 64); // FIR2 in av7110_init_analog_module()
781 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 0); // FIR2 in av7110_init_analog_module()
782 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 3); // FIR2 in av7110_init_analog_module()
783 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 18); // FIR2 in av7110_init_analog_module()
784 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 27); // FIR2 in av7110_init_analog_module()
785 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 48); // FIR2 in av7110_init_analog_module()
786 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 66); // FIR2 in av7110_init_analog_module()
787 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 72); // FIR2 in av7110_init_analog_module()
788 msp_writereg(av7110, MSP_WR_DEM, 0x0083, 0xa000); // MODE_REG in av7110_init_analog_module()
789 msp_writereg(av7110, MSP_WR_DEM, 0x0093, 0x00aa); // DCO1_LO 5.74MHz in av7110_init_analog_module()
790 msp_writereg(av7110, MSP_WR_DEM, 0x009b, 0x04fc); // DCO1_HI in av7110_init_analog_module()
791 msp_writereg(av7110, MSP_WR_DEM, 0x00a3, 0x038e); // DCO2_LO 5.5MHz in av7110_init_analog_module()
792 msp_writereg(av7110, MSP_WR_DEM, 0x00ab, 0x04c6); // DCO2_HI in av7110_init_analog_module()
793 msp_writereg(av7110, MSP_WR_DEM, 0x0056, 0); // LOAD_REG 1/2 in av7110_init_analog_module()
798 saa7146_write(av7110->dev, DD1_STREAM_B, 0x00000000); in av7110_init_analog_module()
799 saa7146_write(av7110->dev, DD1_INIT, 0x03000700); in av7110_init_analog_module()
800 saa7146_write(av7110->dev, MC2, (MASK_09 | MASK_25 | MASK_10 | MASK_26)); in av7110_init_analog_module()
805 int av7110_init_v4l(struct av7110 *av7110) in av7110_init_v4l() argument
807 struct saa7146_dev* dev = av7110->dev; in av7110_init_v4l()
814 if (av7110->analog_tuner_flags) in av7110_init_v4l()
845 if (FW_VERSION(av7110->arm_app) < 0x2623) in av7110_init_v4l()
848 if (saa7146_register_device(&av7110->v4l_dev, dev, "av7110", VFL_TYPE_GRABBER)) { in av7110_init_v4l()
853 if (FW_VERSION(av7110->arm_app) >= 0x2623) { in av7110_init_v4l()
854 if (saa7146_register_device(&av7110->vbi_dev, dev, "av7110", VFL_TYPE_VBI)) in av7110_init_v4l()
860 int av7110_exit_v4l(struct av7110 *av7110) in av7110_exit_v4l() argument
862 struct saa7146_dev* dev = av7110->dev; in av7110_exit_v4l()
864 saa7146_unregister_device(&av7110->v4l_dev, av7110->dev); in av7110_exit_v4l()
865 saa7146_unregister_device(&av7110->vbi_dev, av7110->dev); in av7110_exit_v4l()
920 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in std_callback() local
923 av7110->vidmode = AV7110_VIDEO_MODE_PAL; in std_callback()
924 av7110_set_vidmode(av7110, av7110->vidmode); in std_callback()
927 av7110->vidmode = AV7110_VIDEO_MODE_NTSC; in std_callback()
928 av7110_set_vidmode(av7110, av7110->vidmode); in std_callback()