diff options
Diffstat (limited to 'drivers/media/dvb/ttpci/av7110_v4l.c')
| -rw-r--r-- | drivers/media/dvb/ttpci/av7110_v4l.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/drivers/media/dvb/ttpci/av7110_v4l.c b/drivers/media/dvb/ttpci/av7110_v4l.c index cdd31cae46c4..ee8ee1d481fa 100644 --- a/drivers/media/dvb/ttpci/av7110_v4l.c +++ b/drivers/media/dvb/ttpci/av7110_v4l.c | |||
| @@ -25,6 +25,8 @@ | |||
| 25 | * the project's page is at http://www.linuxtv.org/ | 25 | * the project's page is at http://www.linuxtv.org/ |
| 26 | */ | 26 | */ |
| 27 | 27 | ||
| 28 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
| 29 | |||
| 28 | #include <linux/kernel.h> | 30 | #include <linux/kernel.h> |
| 29 | #include <linux/types.h> | 31 | #include <linux/types.h> |
| 30 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
| @@ -253,7 +255,7 @@ static int av7110_dvb_c_switch(struct saa7146_fh *fh) | |||
| 253 | 255 | ||
| 254 | switch (av7110->current_input) { | 256 | switch (av7110->current_input) { |
| 255 | case 1: | 257 | case 1: |
| 256 | dprintk(1, "switching SAA7113 to Analog Tuner Input.\n"); | 258 | dprintk(1, "switching SAA7113 to Analog Tuner Input\n"); |
| 257 | msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0000); // loudspeaker source | 259 | msp_writereg(av7110, MSP_WR_DSP, 0x0008, 0x0000); // loudspeaker source |
| 258 | msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0000); // headphone source | 260 | msp_writereg(av7110, MSP_WR_DSP, 0x0009, 0x0000); // headphone source |
| 259 | msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0000); // SCART 1 source | 261 | msp_writereg(av7110, MSP_WR_DSP, 0x000a, 0x0000); // SCART 1 source |
| @@ -263,7 +265,7 @@ static int av7110_dvb_c_switch(struct saa7146_fh *fh) | |||
| 263 | 265 | ||
| 264 | if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { | 266 | if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { |
| 265 | if (ves1820_writereg(dev, 0x09, 0x0f, 0x60)) | 267 | if (ves1820_writereg(dev, 0x09, 0x0f, 0x60)) |
| 266 | dprintk(1, "setting band in demodulator failed.\n"); | 268 | dprintk(1, "setting band in demodulator failed\n"); |
| 267 | } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { | 269 | } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { |
| 268 | saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTHI); // TDA9819 pin9(STD) | 270 | saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTHI); // TDA9819 pin9(STD) |
| 269 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); // TDA9819 pin30(VIF) | 271 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); // TDA9819 pin30(VIF) |
| @@ -272,17 +274,17 @@ static int av7110_dvb_c_switch(struct saa7146_fh *fh) | |||
| 272 | dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); | 274 | dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); |
| 273 | break; | 275 | break; |
| 274 | case 2: | 276 | case 2: |
| 275 | dprintk(1, "switching SAA7113 to Video AV CVBS Input.\n"); | 277 | dprintk(1, "switching SAA7113 to Video AV CVBS Input\n"); |
| 276 | if (i2c_writereg(av7110, 0x48, 0x02, 0xd2) != 1) | 278 | if (i2c_writereg(av7110, 0x48, 0x02, 0xd2) != 1) |
| 277 | dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); | 279 | dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); |
| 278 | break; | 280 | break; |
| 279 | case 3: | 281 | case 3: |
| 280 | dprintk(1, "switching SAA7113 to Video AV Y/C Input.\n"); | 282 | dprintk(1, "switching SAA7113 to Video AV Y/C Input\n"); |
| 281 | if (i2c_writereg(av7110, 0x48, 0x02, 0xd9) != 1) | 283 | if (i2c_writereg(av7110, 0x48, 0x02, 0xd9) != 1) |
| 282 | dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); | 284 | dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num); |
| 283 | break; | 285 | break; |
| 284 | default: | 286 | default: |
| 285 | dprintk(1, "switching SAA7113 to Input: AV7110: SAA7113: invalid input.\n"); | 287 | dprintk(1, "switching SAA7113 to Input: AV7110: SAA7113: invalid input\n"); |
| 286 | } | 288 | } |
| 287 | } else { | 289 | } else { |
| 288 | adswitch = 0; | 290 | adswitch = 0; |
| @@ -299,7 +301,7 @@ static int av7110_dvb_c_switch(struct saa7146_fh *fh) | |||
| 299 | 301 | ||
| 300 | if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { | 302 | if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { |
| 301 | if (ves1820_writereg(dev, 0x09, 0x0f, 0x20)) | 303 | if (ves1820_writereg(dev, 0x09, 0x0f, 0x20)) |
| 302 | dprintk(1, "setting band in demodulator failed.\n"); | 304 | dprintk(1, "setting band in demodulator failed\n"); |
| 303 | } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { | 305 | } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { |
| 304 | saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD) | 306 | saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD) |
| 305 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF) | 307 | saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF) |
| @@ -413,7 +415,7 @@ static int vidioc_g_frequency(struct file *file, void *fh, struct v4l2_frequency | |||
| 413 | struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; | 415 | struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; |
| 414 | struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; | 416 | struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; |
| 415 | 417 | ||
| 416 | dprintk(2, "VIDIOC_G_FREQ: freq:0x%08x.\n", f->frequency); | 418 | dprintk(2, "VIDIOC_G_FREQ: freq:0x%08x\n", f->frequency); |
| 417 | 419 | ||
| 418 | if (!av7110->analog_tuner_flags || av7110->current_input != 1) | 420 | if (!av7110->analog_tuner_flags || av7110->current_input != 1) |
| 419 | return -EINVAL; | 421 | return -EINVAL; |
| @@ -429,7 +431,7 @@ static int vidioc_s_frequency(struct file *file, void *fh, struct v4l2_frequency | |||
| 429 | struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; | 431 | struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev; |
| 430 | struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; | 432 | struct av7110 *av7110 = (struct av7110 *)dev->ext_priv; |
| 431 | 433 | ||
| 432 | dprintk(2, "VIDIOC_S_FREQUENCY: freq:0x%08x.\n", f->frequency); | 434 | dprintk(2, "VIDIOC_S_FREQUENCY: freq:0x%08x\n", f->frequency); |
| 433 | 435 | ||
| 434 | if (!av7110->analog_tuner_flags || av7110->current_input != 1) | 436 | if (!av7110->analog_tuner_flags || av7110->current_input != 1) |
| 435 | return -EINVAL; | 437 | return -EINVAL; |
| @@ -689,12 +691,12 @@ int av7110_init_analog_module(struct av7110 *av7110) | |||
| 689 | 691 | ||
| 690 | if (i2c_writereg(av7110, 0x80, 0x0, 0x80) == 1 && | 692 | if (i2c_writereg(av7110, 0x80, 0x0, 0x80) == 1 && |
| 691 | i2c_writereg(av7110, 0x80, 0x0, 0) == 1) { | 693 | i2c_writereg(av7110, 0x80, 0x0, 0) == 1) { |
| 692 | printk("dvb-ttpci: DVB-C analog module @ card %d detected, initializing MSP3400\n", | 694 | pr_info("DVB-C analog module @ card %d detected, initializing MSP3400\n", |
| 693 | av7110->dvb_adapter.num); | 695 | av7110->dvb_adapter.num); |
| 694 | av7110->adac_type = DVB_ADAC_MSP34x0; | 696 | av7110->adac_type = DVB_ADAC_MSP34x0; |
| 695 | } else if (i2c_writereg(av7110, 0x84, 0x0, 0x80) == 1 && | 697 | } else if (i2c_writereg(av7110, 0x84, 0x0, 0x80) == 1 && |
| 696 | i2c_writereg(av7110, 0x84, 0x0, 0) == 1) { | 698 | i2c_writereg(av7110, 0x84, 0x0, 0) == 1) { |
| 697 | printk("dvb-ttpci: DVB-C analog module @ card %d detected, initializing MSP3415\n", | 699 | pr_info("DVB-C analog module @ card %d detected, initializing MSP3415\n", |
| 698 | av7110->dvb_adapter.num); | 700 | av7110->dvb_adapter.num); |
| 699 | av7110->adac_type = DVB_ADAC_MSP34x5; | 701 | av7110->adac_type = DVB_ADAC_MSP34x5; |
| 700 | } else | 702 | } else |
| @@ -715,7 +717,7 @@ int av7110_init_analog_module(struct av7110 *av7110) | |||
| 715 | msp_writereg(av7110, MSP_WR_DSP, 0x000d, 0x1900); // prescale SCART | 717 | msp_writereg(av7110, MSP_WR_DSP, 0x000d, 0x1900); // prescale SCART |
| 716 | 718 | ||
| 717 | if (i2c_writereg(av7110, 0x48, 0x01, 0x00)!=1) { | 719 | if (i2c_writereg(av7110, 0x48, 0x01, 0x00)!=1) { |
| 718 | INFO(("saa7113 not accessible.\n")); | 720 | pr_info("saa7113 not accessible\n"); |
| 719 | } else { | 721 | } else { |
| 720 | u8 *i = saa7113_init_regs; | 722 | u8 *i = saa7113_init_regs; |
| 721 | 723 | ||
| @@ -733,7 +735,7 @@ int av7110_init_analog_module(struct av7110 *av7110) | |||
| 733 | /* setup for DVB by default */ | 735 | /* setup for DVB by default */ |
| 734 | if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { | 736 | if (av7110->analog_tuner_flags & ANALOG_TUNER_VES1820) { |
| 735 | if (ves1820_writereg(av7110->dev, 0x09, 0x0f, 0x20)) | 737 | if (ves1820_writereg(av7110->dev, 0x09, 0x0f, 0x20)) |
| 736 | dprintk(1, "setting band in demodulator failed.\n"); | 738 | dprintk(1, "setting band in demodulator failed\n"); |
| 737 | } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { | 739 | } else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) { |
| 738 | saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD) | 740 | saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD) |
| 739 | saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF) | 741 | saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF) |
| @@ -797,7 +799,7 @@ int av7110_init_v4l(struct av7110 *av7110) | |||
| 797 | ret = saa7146_vv_init(dev, vv_data); | 799 | ret = saa7146_vv_init(dev, vv_data); |
| 798 | 800 | ||
| 799 | if (ret) { | 801 | if (ret) { |
| 800 | ERR(("cannot init capture device. skipping.\n")); | 802 | ERR("cannot init capture device. skipping\n"); |
| 801 | return -ENODEV; | 803 | return -ENODEV; |
| 802 | } | 804 | } |
| 803 | vv_data->ops.vidioc_enum_input = vidioc_enum_input; | 805 | vv_data->ops.vidioc_enum_input = vidioc_enum_input; |
| @@ -814,12 +816,12 @@ int av7110_init_v4l(struct av7110 *av7110) | |||
| 814 | vv_data->ops.vidioc_s_fmt_sliced_vbi_out = vidioc_s_fmt_sliced_vbi_out; | 816 | vv_data->ops.vidioc_s_fmt_sliced_vbi_out = vidioc_s_fmt_sliced_vbi_out; |
| 815 | 817 | ||
| 816 | if (saa7146_register_device(&av7110->v4l_dev, dev, "av7110", VFL_TYPE_GRABBER)) { | 818 | if (saa7146_register_device(&av7110->v4l_dev, dev, "av7110", VFL_TYPE_GRABBER)) { |
| 817 | ERR(("cannot register capture device. skipping.\n")); | 819 | ERR("cannot register capture device. skipping\n"); |
| 818 | saa7146_vv_release(dev); | 820 | saa7146_vv_release(dev); |
| 819 | return -ENODEV; | 821 | return -ENODEV; |
| 820 | } | 822 | } |
| 821 | if (saa7146_register_device(&av7110->vbi_dev, dev, "av7110", VFL_TYPE_VBI)) | 823 | if (saa7146_register_device(&av7110->vbi_dev, dev, "av7110", VFL_TYPE_VBI)) |
| 822 | ERR(("cannot register vbi v4l2 device. skipping.\n")); | 824 | ERR("cannot register vbi v4l2 device. skipping\n"); |
| 823 | return 0; | 825 | return 0; |
| 824 | } | 826 | } |
| 825 | 827 | ||
