On Sat, Feb 01, 2003 at 03:46:25AM +0100, Gunther Mayer wrote: > Michael Pearce wrote: > > Hi, I just bought a PCTV Pro today after > > ... > > great picture and sound (using 0.7.102), but radio doesn't work > > at all. > > With this patch radio works perfectly here (PAL card tested, NTSC card should work too). > > Note1: > There is currrently a race condition left. > When you don't get these two lines: > kernel: bttv tuner received pinnacle id 2 > kernel: bttv tda9887 received pinnacle id 2 > report this fact (and workaround by "rmmod bttv; insmod bttv"). > > Note2: > Patch is against http://bytesex.org/snapshot/ > Hopefully Gerd will make 104 soon. There have been so many patches here now. Does this patch contian all the recent patches? > > Regards, Gunther > > > diff -Nur bttv7-20030131.orig/driver/tda9887.c bttv7-20030131-mt2032_radio/driver/tda9887.c > --- bttv7-20030131.orig/driver/tda9887.c Tue Jan 28 21:29:07 2003 > +++ bttv7-20030131-mt2032_radio/driver/tda9887.c Sat Feb 1 03:27:04 2003 > @@ -419,6 +419,7 @@ > { > int *i = arg; > > + printk("bttv tda9887 received pinnacle id %d\n",*i); > t->pinnacle_id = *i; > tda9887_miro(t); > break; > diff -Nur bttv7-20030131.orig/driver/tuner.c bttv7-20030131-mt2032_radio/driver/tuner.c > --- bttv7-20030131.orig/driver/tuner.c Fri Jan 31 16:02:37 2003 > +++ bttv7-20030131-mt2032_radio/driver/tuner.c Sat Feb 1 03:27:17 2003 > @@ -54,6 +54,7 @@ > unsigned int radio; > unsigned int mode; /* current norm for multi-norm tuners */ > unsigned int xogc; // only for MT2032 > + unsigned int pinnacle_id; // only for Pinnacle PCTVpro/MT2032 radio mode > }; > > static struct i2c_driver driver; > @@ -733,8 +734,14 @@ > static void mt2032_set_radio_freq(struct i2c_client *c,int freq) > { > int if2; > + struct tuner *t = (struct tuner*)c->data; > + > + //if2=10700*1000; // 10.7MHz FM intermediate frequency > > - if2=10700*1000; // 10.7MHz FM intermediate frequency > + if(t->pinnacle_id == 3) // TDA9887 will generate 10.7 MHz IF lastly. > + if2=41300*1000; // radio must first go through NTSC SAW filter > + else > + if2=33300*1000; // ... through PAL SAW filter > > // per Manual for FM tuning: first if center freq. 1085 MHz > mt2032_set_if_freq(c,freq* 1000*1000/16, 1085*1000*1000,if2,if2,if2); > @@ -889,7 +896,17 @@ > case AUDC_SET_RADIO: > t->radio = 1; > break; > - > + > + > + case AUDC_CONFIG_PINNACLE: > + { > + int *i = arg; > + printk("bttv tuner received pinnacle id %d\n",*i); > + > + t->pinnacle_id = *i; > + break; > + } > + > /* --- v4l ioctls --- */ > /* take care: bttv does userspace copying, we'll get a > kernel pointer here... */