Re: bttv - Radio sound quirks bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Gerd Knorr wrote:
> 
> David Balazic <david.balazic@xxxxxxxxx> writes:
> 
> > > > They try to set the tuner to 400 MHz, but that is illegal for radio
> > > > and is flaged as such deeper in the code.
> > >
> > > the tuner is switched to radio mode afterwards.
> >
> > Except if it is already in radio mode, then it prints the error message.
> > Can't the driver check if the tuner is already in radio mode and then
> > not execute this line ?
> 
> switch to tv mode first maybe?  Or move that hack into tuner.c ...

So you are saying the the following change is very hard to do ? 

static int radio_open(struct video_device *dev, int flags)
{
        struct bttv *btv = (struct bttv *)(dev-1);
        unsigned long v;

        down(&btv->lock);
        if (btv->user)
                goto busy_unlock;
        btv->user++;

        btv->radio = 1;

	if ( ! HW_ALREADY_IN_RADIO_MODE )  <--- the change
        {
            v = 400*16;  //                           
            bttv_call_i2c_clients(btv,VIDIOCSFREQ,&v);
            bttv_call_i2c_clients(btv,AUDC_SET_RADIO,&btv->tuner_type);
        }
        bt848_muxsel(btv,0);
        up(&btv->lock);

        return 0;   

 busy_unlock:
        up(&btv->lock);
        return -EBUSY;
}


If the hw is in TV mode when this is called, the two i2c calls are necessary,
but if it is in radio mode , then :
 - VIDIOCSFREQ causes a "illegal freq" kernel message, otherwise harmless
 - AUDC_SET_RADIO , causes a short "blip" in the sound, if it is already playing
   ( like after running the "radio" application and exiting it with 'x' ( = exit
   and leave radio playing ) )


-- 
David Balazic
--------------
"Be excellent to each other." - Bill S. Preston, Esq., & "Ted" Theodore Logan
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -




[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux