On Saturday, January 01, 2011 22:25:04 Devin Heitmueller wrote:
> Hi Hans,
> 
> Thanks for the feedback.
> 
> On Sat, Jan 1, 2011 at 4:18 PM, Hans Verkuil <[email protected]> wrote:
> >> This basically means that a video tuner will bail out, which sounds
> >> good because the rest of the function supposedly assumes a radio
> >> device.  However, as a result the has_signal() call (which returns
> >> signal strength) will never be executed for video tuners.  You
> >> wouldn't notice this if a video decoder subdev is responsible for
> >> showing signal strength, but if you're expecting the tuner to provide
> >> the info, the call will never happen.
> >
> > I am not aware of any tuner that does that. I think that for video this
> > is always done by a video decoder. That said, it isn't pretty, but a lot
> > of this is legacy code and I wouldn't want to change it.
> 
> The Xceive tuners have their analog demodulator onboard, so they make
> available a 0-100% signal strength.
> 
> > After digging some more I think that check_mode is a poor function. There 
> > are
> > two things that check_mode does: checking if the tuner support radio and/or 
> > tv
> > mode (that's fine), and if it is in standby: not so fine. That should be a
> > separate function since filling in frequency ranges can be done regardless 
> > of
> > the standby state.
> 
> Yeah, I didn't realize myself that is what check_mode was doing until
> I had this problem.
> 
> I'll see if I can cook up a patch which returns the appropriate data
> even when in standby, while trying to minimize the risk of introducing
> a regression.

Since you are working with tuner-core and xceive I wonder if you could also
make a patch to remove T_DIGITAL_TV in enum tuner_mode. T_DIGITAL_TV (and it's
public API counterpart V4L2_TUNER_DIGITAL_TV) are not used (and never were used
since digital tuning is handled through dvb).

We can't remove V4L2_TUNER_DIGITAL_TV (although we can mark it as deprecated in
videodev2.h), but T_DIGITAL_TV should definitely be removed.

The only tuner driver that uses T_DIGITAL_TV is tuner-xc2028.c, but on closer
analysis it turns out that it uses enum tuner_mode as an internal mode. So this
mode is never set outside the driver. Instead it should have used an internal
xceive_mode enum.

Everywhere else T_DIGITAL_TV can be removed.

For some reason I'm in an early spring-cleaning mode (winter-cleaning mode?)
these days :-) Getting rid of old obsolete stuff is always nice.

Regards,

        Hans

-- 
Hans Verkuil - video4linux developer - sponsored by Cisco
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to