Lines Matching refs:av7110
27 int msp_writereg(struct av7110 *av7110, u8 dev, u16 reg, u16 val) in msp_writereg() argument
32 switch (av7110->adac_type) { in msp_writereg()
43 if (i2c_transfer(&av7110->i2c_adap, &msgs, 1) != 1) { in msp_writereg()
45 av7110->dvb_adapter.num, reg, val); in msp_writereg()
51 static int msp_readreg(struct av7110 *av7110, u8 dev, u16 reg, u16 *val) in msp_readreg() argument
60 switch (av7110->adac_type) { in msp_readreg()
73 if (i2c_transfer(&av7110->i2c_adap, &msgs[0], 2) != 2) { in msp_readreg()
75 av7110->dvb_adapter.num, reg); in msp_readreg()
124 struct av7110 *av7110 = dev->ext_priv; in ves1820_writereg() local
130 if (1 != i2c_transfer(&av7110->i2c_adap, &msg, 1)) in ves1820_writereg()
137 struct av7110 *av7110 = dev->ext_priv; in tuner_write() local
142 if (1 != i2c_transfer(&av7110->i2c_adap, &msg, 1)) in tuner_write()
178 struct av7110 *av7110 = (struct av7110*)dev->ext_priv; in stv0297_set_tv_freq() local
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()
220 struct av7110 *av7110 = (struct av7110*)dev->ext_priv; in av7110_dvb_c_switch() local
224 dprintk(4, "%p\n", av7110); in av7110_dvb_c_switch()
235 if (0 != av7110->current_input) { in av7110_dvb_c_switch()
242 switch (av7110->current_input) { in av7110_dvb_c_switch()
245 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0000); // loudspeaker source in av7110_dvb_c_switch()
246 msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0000); // headphone source in av7110_dvb_c_switch()
247 msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0000); // SCART 1 source in av7110_dvb_c_switch()
248 msp_writereg(av7110, MSP_WR_DSP, 0x000e, 0x3000); // FM matrix, mono in av7110_dvb_c_switch()
249 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x4f00); // loudspeaker + headphone in av7110_dvb_c_switch()
250 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x4f00); // SCART 1 volume 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()
259 if (i2c_writereg(av7110, 0x48, 0x02, 0xd0) != 1) in av7110_dvb_c_switch()
260 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
264 if (i2c_writereg(av7110, 0x48, 0x02, 0xd2) != 1) in av7110_dvb_c_switch()
265 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
269 if (i2c_writereg(av7110, 0x48, 0x02, 0xd9) != 1) in av7110_dvb_c_switch()
270 dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); in av7110_dvb_c_switch()
281 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0220); // loudspeaker source in av7110_dvb_c_switch()
282 msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0220); // headphone source in av7110_dvb_c_switch()
283 msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0220); // SCART 1 source in av7110_dvb_c_switch()
284 msp_writereg(av7110, MSP_WR_DSP, 0x000e, 0x3000); // FM matrix, mono in av7110_dvb_c_switch()
285 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x7f00); // loudspeaker + headphone in av7110_dvb_c_switch()
286 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x7f00); // SCART 1 volume 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()
298 if (av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, ADSwitch, 1, adswitch)) in av7110_dvb_c_switch()
314 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_tuner() local
320 if (!av7110->analog_tuner_flags || t->index != 0) in vidioc_g_tuner()
336 msp_readreg(av7110, MSP_RD_DEM, 0x007e, &stereo_det); in vidioc_g_tuner()
338 msp_readreg(av7110, MSP_RD_DSP, 0x0018, &stereo_det); in vidioc_g_tuner()
358 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_tuner() local
362 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_s_tuner()
392 msp_writereg(av7110, MSP_WR_DSP, 0x000e, fm_matrix); in vidioc_s_tuner()
393 msp_writereg(av7110, MSP_WR_DSP, 0x0008, src); in vidioc_s_tuner()
394 msp_writereg(av7110, MSP_WR_DSP, 0x0009, src); in vidioc_s_tuner()
395 msp_writereg(av7110, MSP_WR_DSP, 0x000a, src); in vidioc_s_tuner()
402 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_frequency() local
406 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_g_frequency()
411 f->frequency = av7110->current_freq; in vidioc_g_frequency()
418 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_frequency() local
422 if (!av7110->analog_tuner_flags || av7110->current_input != 1) in vidioc_s_frequency()
428 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0xffe0); /* fast mute */ in vidioc_s_frequency()
429 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0xffe0); in vidioc_s_frequency()
432 if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) in vidioc_s_frequency()
434 else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) in vidioc_s_frequency()
436 av7110->current_freq = f->frequency; in vidioc_s_frequency()
438 msp_writereg(av7110, MSP_WR_DSP, 0x0015, 0x003f); /* start stereo detection */ in vidioc_s_frequency()
439 msp_writereg(av7110, MSP_WR_DSP, 0x0015, 0x0000); in vidioc_s_frequency()
440 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x4f00); /* loudspeaker + headphone */ in vidioc_s_frequency()
441 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x4f00); /* SCART 1 volume */ in vidioc_s_frequency()
448 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_enum_input() local
452 if (av7110->analog_tuner_flags) { in vidioc_enum_input()
468 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_input() local
470 *input = av7110->current_input; in vidioc_g_input()
478 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_input() local
482 if (!av7110->analog_tuner_flags) in vidioc_s_input()
488 av7110->current_input = input; in vidioc_s_input()
504 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_audio() local
509 if (av7110->current_input >= 2) in vidioc_g_audio()
518 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_audio() local
521 if (av7110->current_input >= 2) in vidioc_s_audio()
530 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_sliced_vbi_cap() local
535 if (FW_VERSION(av7110->arm_app) >= 0x2623) { in vidioc_g_sliced_vbi_cap()
546 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_g_fmt_sliced_vbi_out() local
549 if (FW_VERSION(av7110->arm_app) < 0x2623) in vidioc_g_fmt_sliced_vbi_out()
552 if (av7110->wssMode) { in vidioc_g_fmt_sliced_vbi_out()
564 struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; in vidioc_s_fmt_sliced_vbi_out() local
567 if (FW_VERSION(av7110->arm_app) < 0x2623) 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()
575 return av7110_fw_cmd(av7110, COMTYPE_ENCODER, 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()
593 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in av7110_vbi_reset() local
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()
601 return av7110_fw_cmd(av7110, COMTYPE_ENCODER, SetWSSConfig, 1, 0); in av7110_vbi_reset()
608 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in av7110_vbi_write() local
613 if (FW_VERSION(av7110->arm_app) < 0x2623 || !av7110->wssMode || count != sizeof d) 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()
693 int av7110_init_analog_module(struct av7110 *av7110) in av7110_init_analog_module() argument
697 if (i2c_writereg(av7110, 0x80, 0x0, 0x80) == 1 && in av7110_init_analog_module()
698 i2c_writereg(av7110, 0x80, 0x0, 0) == 1) { 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()
702 } else if (i2c_writereg(av7110, 0x84, 0x0, 0x80) == 1 && in av7110_init_analog_module()
703 i2c_writereg(av7110, 0x84, 0x0, 0) == 1) { 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()
711 msp_readreg(av7110, MSP_RD_DSP, 0x001e, &version1); in av7110_init_analog_module()
712 msp_readreg(av7110, MSP_RD_DSP, 0x001f, &version2); in av7110_init_analog_module()
714 av7110->dvb_adapter.num, version1, version2); in av7110_init_analog_module()
715 msp_writereg(av7110, MSP_WR_DSP, 0x0013, 0x0c00); in av7110_init_analog_module()
716 msp_writereg(av7110, MSP_WR_DSP, 0x0000, 0x7f00); // loudspeaker + headphone in av7110_init_analog_module()
717 msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0220); // loudspeaker source in av7110_init_analog_module()
718 msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0220); // headphone source in av7110_init_analog_module()
719 msp_writereg(av7110, MSP_WR_DSP, 0x0004, 0x7f00); // loudspeaker volume in av7110_init_analog_module()
720 msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0220); // SCART 1 source in av7110_init_analog_module()
721 msp_writereg(av7110, MSP_WR_DSP, 0x0007, 0x7f00); // SCART 1 volume in av7110_init_analog_module()
722 msp_writereg(av7110, MSP_WR_DSP, 0x000d, 0x1900); // prescale SCART in av7110_init_analog_module()
724 if (i2c_writereg(av7110, 0x48, 0x01, 0x00)!=1) { in av7110_init_analog_module()
729 …if ((av7110->dev->pci->subsystem_vendor == 0x110a) && (av7110->dev->pci->subsystem_device == 0x000… 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()
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()
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()
751 if (i2c_writereg(av7110, 0x48, i[0], i[1]) != 1) { in av7110_init_analog_module()
752 dprintk(1, "saa7113 initialization failed @ card %d", av7110->dvb_adapter.num); in av7110_init_analog_module()
758 msp_writereg(av7110, MSP_WR_DEM, 0x00bb, 0x02d0); // AD_CV in av7110_init_analog_module()
759 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 3); // FIR1 in av7110_init_analog_module()
760 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 18); // FIR1 in av7110_init_analog_module()
761 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 27); // FIR1 in av7110_init_analog_module()
762 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 48); // FIR1 in av7110_init_analog_module()
763 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 66); // FIR1 in av7110_init_analog_module()
764 msp_writereg(av7110, MSP_WR_DEM, 0x0001, 72); // FIR1 in av7110_init_analog_module()
765 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 4); // FIR2 in av7110_init_analog_module()
766 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 64); // FIR2 in av7110_init_analog_module()
767 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 0); // FIR2 in av7110_init_analog_module()
768 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 3); // FIR2 in av7110_init_analog_module()
769 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 18); // FIR2 in av7110_init_analog_module()
770 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 27); // FIR2 in av7110_init_analog_module()
771 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 48); // FIR2 in av7110_init_analog_module()
772 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 66); // FIR2 in av7110_init_analog_module()
773 msp_writereg(av7110, MSP_WR_DEM, 0x0005, 72); // FIR2 in av7110_init_analog_module()
774 msp_writereg(av7110, MSP_WR_DEM, 0x0083, 0xa000); // MODE_REG in av7110_init_analog_module()
775 msp_writereg(av7110, MSP_WR_DEM, 0x0093, 0x00aa); // DCO1_LO 5.74MHz in av7110_init_analog_module()
776 msp_writereg(av7110, MSP_WR_DEM, 0x009b, 0x04fc); // DCO1_HI in av7110_init_analog_module()
777 msp_writereg(av7110, MSP_WR_DEM, 0x00a3, 0x038e); // DCO2_LO 5.5MHz in av7110_init_analog_module()
778 msp_writereg(av7110, MSP_WR_DEM, 0x00ab, 0x04c6); // DCO2_HI in av7110_init_analog_module()
779 msp_writereg(av7110, MSP_WR_DEM, 0x0056, 0); // LOAD_REG 1/2 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()
791 int av7110_init_v4l(struct av7110 *av7110) in av7110_init_v4l() argument
793 struct saa7146_dev* dev = av7110->dev; in av7110_init_v4l()
800 if (av7110->analog_tuner_flags) in av7110_init_v4l()
831 if (FW_VERSION(av7110->arm_app) < 0x2623) in av7110_init_v4l()
834 if (saa7146_register_device(&av7110->v4l_dev, dev, "av7110", VFL_TYPE_VIDEO)) { 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()
846 int av7110_exit_v4l(struct av7110 *av7110) in av7110_exit_v4l() argument
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()
906 struct av7110 *av7110 = (struct av7110*) dev->ext_priv; in std_callback() local
909 av7110->vidmode = AV7110_VIDEO_MODE_PAL; in std_callback()
910 av7110_set_vidmode(av7110, av7110->vidmode); in std_callback()
913 av7110->vidmode = AV7110_VIDEO_MODE_NTSC; in std_callback()
914 av7110_set_vidmode(av7110, av7110->vidmode); in std_callback()