Hello Chris,
please backport the tda9887 FM/TV switching patch introduced in 0.3.4p
to the 0.2.0 development line. I tested it with 0.2.0-3j and it made my
FM radio work. I changed the patch a bit to test for "if(tda9887 >= 0)"
in both parts before calling ivtv_tda9887; please feel free to revert
this change if that isn't correct.
I attached a diff file between 0.2.0-rc3j and my patched version (called
0.2.0-rc3k by me for now). The information about my card is attached, too.
Regards,
Christoph Schulz
> May 19 08:50:28 fenrir kernel: Linux video capture interface: v1.00
> May 19 08:50:28 fenrir kernel: ivtv: ==================== START INIT IVTV
> ====================
> May 19 08:50:28 fenrir kernel: ivtv: version 0.2.0 (rc3k) loading
> May 19 08:50:28 fenrir kernel: ivtv: Linux version: 2.6.11-gentoo-r8 preempt
> PENTIUMII gcc-3.3
> May 19 08:50:28 fenrir kernel: ivtv: In case of problems please include the
> debug info
> May 19 08:50:28 fenrir kernel: ivtv: between the START INIT IVTV and END INIT
> IVTV lines when
> May 19 08:50:28 fenrir kernel: ivtv: mailing the ivtv-devel mailinglist.
> May 19 08:50:28 fenrir kernel: ivtv: Autodetected WinTV PVR 350 card
> May 19 08:50:28 fenrir kernel: ivtv: Found an iTVC15 based chip
> May 19 08:50:28 fenrir kernel: PCI: Found IRQ 9 for device 0000:00:0e.0
> May 19 08:50:28 fenrir kernel: PCI: Sharing IRQ 9 with 0000:01:00.0
> May 19 08:50:28 fenrir kernel: ivtv: XXX PCI device: 0x7180 vendor: 0x8086
> May 19 08:50:28 fenrir kernel: ivtv: i2c attach [client=tveeprom,ok]
> May 19 08:50:28 fenrir kernel: tuner: chip found at addr 0xc2 i2c-bus ivtv
> i2c driver #0
> May 19 08:50:28 fenrir kernel: ivtv: i2c attach [client=(tuner unset),ok]
> May 19 08:50:28 fenrir kernel: saa7115: starting probe for adapter ivtv i2c
> driver #0 (0x10005)
> May 19 08:50:28 fenrir kernel: saa7115: detecting saa7115 client on address
> 0x42
> May 19 08:50:28 fenrir kernel: saa7115: writing init values
> May 19 08:50:28 fenrir kernel: ivtv: i2c attach [client=saa7115[2],ok]
> May 19 08:50:28 fenrir kernel: saa7115: status: (1E) 0x80, (1F) 0x90
> May 19 08:50:28 fenrir kernel: saa7127: detecting saa7127 client on address
> 0x88
> May 19 08:50:28 fenrir kernel: saa7127: Selecting NTSC video Standard
> May 19 08:50:28 fenrir kernel: saa7127: Selecting S-Video+Composite
> May 19 08:50:28 fenrir kernel: saa7127: Turn WSS off
> May 19 08:50:28 fenrir kernel: saa7127: Widescreen Mode 4:3 Full Format
> May 19 08:50:28 fenrir kernel: saa7127: Selecting Normal Encoder Input
> May 19 08:50:28 fenrir kernel: saa7127: Enable Video Output
> May 19 08:50:28 fenrir kernel: ivtv: i2c attach [client=saa7127[2],ok]
> May 19 08:50:28 fenrir kernel: msp34xx: ivtv version
> May 19 08:50:28 fenrir kernel: msp34xx: init: chip=MSP3418W-B3, has NICAM
> support, simple (D) mode, simpler (G) no-thread mode
> May 19 08:50:28 fenrir kernel: msp34xx: $Id$ compiled on: May 12 2005 13:45:02
> May 19 08:50:28 fenrir kernel: ivtv: i2c attach [client=MSP3418W-B3,ok]
> May 19 08:50:28 fenrir kernel: tda9885/6/7: chip found @ 0x86
> May 19 08:50:28 fenrir kernel: ivtv: i2c attach [client=tda9887,ok]
> May 19 08:50:28 fenrir kernel: ivtv: i2c attach [client=unset,ok]
> May 19 08:50:28 fenrir kernel: ir-kbd-i2c: i2c IR (Hauppauge) detected at
> i2c-0/0-0018/ir0 [ivtv i2c driver #0]
> May 19 08:50:28 fenrir kernel: tveeprom: Hauppauge: model = 48139, rev =
> K257, serial# = 7596988
> May 19 08:50:28 fenrir kernel: tveeprom: tuner = Philips FM1216 ME MK3 (idx =
> 57, type = 38)
> May 19 08:50:28 fenrir kernel: tveeprom: tuner fmt = PAL(D/K) (eeprom = 0x74,
> v4l2 = 0x00400e17)
> May 19 08:50:28 fenrir kernel: tveeprom: audio_processor = CS5331 (type = 9)
> May 19 08:50:28 fenrir kernel: ivtv: Tuner Type 38, Tuner formats 0x00400e17,
> Radio: yes, Model 0x00ad2557, Revision 0xc8aa916c
> May 19 08:50:28 fenrir kernel: ivtv: PAL tuner detected
> May 19 08:50:28 fenrir kernel: ivtv: SECAM tuner detected
> May 19 08:50:28 fenrir kernel: ivtv: Radio detected
> May 19 08:50:29 fenrir kernel: ivtv: Encoder revision: 0x02040011
> May 19 08:50:29 fenrir kernel: ivtv: Decoder revision: 0x02020023
> May 19 08:50:29 fenrir kernel: ivtv: Configuring WinTV PVR 350 card with 9
> streams
> May 19 08:50:29 fenrir kernel: ivtv: Create DMA stream 0 using 256 16384 byte
> buffers 4194304 kbytes total
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 0
> minor 0
> May 19 08:50:29 fenrir kernel: ivtv: Create DMA stream 1
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 1
> minor 32
> May 19 08:50:29 fenrir kernel: ivtv: Create stream 2 using 40 52224 byte
> buffers 2097152 kbytes total
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 2
> minor 224
> May 19 08:50:29 fenrir kernel: ivtv: Create DMA stream 3 using 455 4608 byte
> buffers 2097152 kbytes total
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 3
> minor 24
> May 19 08:50:29 fenrir kernel: ivtv: Create stream 4
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 4
> minor 64
> May 19 08:50:29 fenrir kernel: ivtv: Create DMA stream 5 using 16 65536 byte
> buffers 1048576 kbytes total
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 5
> minor 16
> May 19 08:50:29 fenrir kernel: ivtv: Create stream 6 using 1024 2048 byte
> buffers 262144 kbytes total
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 6
> minor 228
> May 19 08:50:29 fenrir kernel: ivtv: Create stream 7
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 7
> minor 232
> May 19 08:50:29 fenrir kernel: ivtv: Create DMA stream 8
> May 19 08:50:29 fenrir kernel: ivtv: Registered v4l2 device, streamtype 8
> minor 48
> May 19 08:50:29 fenrir kernel: ivtv: Setting Tuner 38
> May 19 08:50:29 fenrir kernel: tuner: type set to 38 (Philips PAL/SECAM multi
> (FM1216ME MK3)) by ivtv i2c driver #0
> May 19 08:50:29 fenrir kernel: saa7115: decoder set input (4)
> May 19 08:50:29 fenrir kernel: saa7115: now setting Composite input
> May 19 08:50:29 fenrir kernel: ivtv: Setting audio matrix to input 3, output 1
> May 19 08:50:29 fenrir kernel: ivtv: Switching standard to PAL.
> May 19 08:50:29 fenrir kernel: ivtv: ivtv_enc_thread: pid = 21825, itv =
> 0xc8a9e060
> May 19 08:50:29 fenrir kernel: ivtv: ivtv_dec_thread: pid = 21826, itv =
> 0xc8a9e060
> May 19 08:50:30 fenrir kernel: saa7115: decoder set norm PAL
> May 19 08:50:30 fenrir kernel: saa7115: set audio: 0x01
> May 19 08:50:30 fenrir kernel: saa7127: Setting Encoder Video Standard
> May 19 08:50:30 fenrir kernel: saa7127: Set PAL Video Mode
> May 19 08:50:30 fenrir kernel: saa7127: Selecting PAL video Standard
> May 19 08:50:30 fenrir kernel: ivtv: Initialized WinTV PVR 350, card #0
> May 19 08:50:30 fenrir kernel: ivtv: ==================== END INIT IVTV
> ====================
diff -urN ivtv-0.2.0-rc3j/ChangeLog ivtv-0.2.0-rc3k/ChangeLog
--- ivtv-0.2.0-rc3j/ChangeLog 2005-04-19 04:46:15.000000000 +0200
+++ ivtv-0.2.0-rc3k/ChangeLog 2005-05-19 07:54:48.173310820 +0200
@@ -1,5 +1,7 @@
IVTV 0.2.0-rc changes:
+#0.2.0-rc3k - backport of tda9887 TV/FM switching
+
#0.2.0-rc3j - backport of pci setting to keep DMA errors from occuring.
#0.2.0-rc3i - added patch for the pvr150/500 cards to work, this is not
diff -urN ivtv-0.2.0-rc3j/driver/ivtv-driver.h
ivtv-0.2.0-rc3k/driver/ivtv-driver.h
--- ivtv-0.2.0-rc3j/driver/ivtv-driver.h 2005-04-19 04:43:53.000000000
+0200
+++ ivtv-0.2.0-rc3k/driver/ivtv-driver.h 2005-05-19 07:55:12.420017251
+0200
@@ -127,7 +127,7 @@
#define IVTV_DRIVER_VERSION_MAJOR 0
#define IVTV_DRIVER_VERSION_MINOR 2
#define IVTV_DRIVER_VERSION_PATCHLEVEL 0
-#define IVTV_DRIVER_VERSION_COMMENT "rc3j"
+#define IVTV_DRIVER_VERSION_COMMENT "rc3k"
#define IVTV_VERSION __stringify(IVTV_DRIVER_VERSION_MAJOR) "."
__stringify(IVTV_DRIVER_VERSION_MINOR) "."
__stringify(IVTV_DRIVER_VERSION_PATCHLEVEL) "-" IVTV_DRIVER_VERSION_COMMENT
#define IVTV_DRIVER_VERSION
KERNEL_VERSION(IVTV_DRIVER_VERSION_MAJOR,IVTV_DRIVER_VERSION_MINOR,IVTV_DRIVER_VERSION_PATCHLEVEL)
diff -urN ivtv-0.2.0-rc3j/driver/ivtv-fileops.c
ivtv-0.2.0-rc3k/driver/ivtv-fileops.c
--- ivtv-0.2.0-rc3j/driver/ivtv-fileops.c 2005-03-18 23:24:14.000000000
+0100
+++ ivtv-0.2.0-rc3k/driver/ivtv-fileops.c 2005-05-19 08:41:28.539383096
+0200
@@ -1183,6 +1183,8 @@
clear_bit(IVTV_F_I_RADIO_USER, &itv->i_flags);
/* Select TV frequency */
ivtv_tuner(itv, VIDIOCSFREQ, &itv->freq_tv);
+ /* Make sure IF demodulator is updated properly, or we'll get
static */
+ if(tda9887 >= 0) ivtv_tda9887(itv, VIDIOC_S_STD, &itv->std);
/* Select correct audio input (i.e. TV tuner or Line in) */
ivtv_audio_set_io(itv);
/* Start automatic sound detection (if supported) */
@@ -1289,6 +1291,8 @@
mute_and_pause(itv);
/* Switch tuner to radio */
ivtv_tuner(itv, AUDC_SET_RADIO, 0);
+ /* Switch IF demodulator to radio */
+ if(tda9887 >= 0) ivtv_tda9887(itv, AUDC_SET_RADIO, 0);
/* Mark that the radio is being used. */
set_bit(IVTV_F_I_RADIO_USER, &itv->i_flags);
/* Select radio frequency */