summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/pvrusb2
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2006-12-27 20:23:22 -0600
committerMike Isely <isely@pobox.com>2006-12-27 20:23:22 -0600
commitb74377a68f1b23d52cbe42b2576a31afd3ef875f (patch)
tree7b6288412b2a69682e2f7ffb9671ecb1a1703333 /linux/drivers/media/video/pvrusb2
parent77e758267d723a03a29b9bb5fd3a4c8456af6e62 (diff)
downloadmediapointer-dvb-s2-b74377a68f1b23d52cbe42b2576a31afd3ef875f.tar.gz
mediapointer-dvb-s2-b74377a68f1b23d52cbe42b2576a31afd3ef875f.tar.bz2
pvrusb2: Fix tuning calculation when in radio mode
From: Mike Isely <isely@pobox.com> Frequency units in V4L2 are apparently different when in radio mode compared to tv mode. Why? Who knows. This change adapts the driver appropriately - so that internally we always only deal in Hz and don't have to muck with craziness like this. Signed-off-by: Mike Isely <isely@pobox.com>
Diffstat (limited to 'linux/drivers/media/video/pvrusb2')
-rw-r--r--linux/drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c b/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c
index c0920835d..c885a9c25 100644
--- a/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c
+++ b/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c
@@ -146,10 +146,15 @@ static void set_frequency(struct pvr2_hdw *hdw)
fv = hdw->freqVal;
pvr2_trace(PVR2_TRACE_CHIPS,"i2c v4l2 set_freq(%lu)",fv);
memset(&freq,0,sizeof(freq));
- freq.frequency = fv / 62500;
+ if (hdw->input_val == PVR2_CVAL_INPUT_RADIO) {
+ // ((fv * 1000) / 62500)
+ freq.frequency = (fv * 2) / 125;
+ freq.type = V4L2_TUNER_RADIO;
+ } else {
+ freq.frequency = fv / 62500;
+ freq.type = V4L2_TUNER_ANALOG_TV;
+ }
freq.tuner = 0;
- freq.type = (hdw->input_val == PVR2_CVAL_INPUT_RADIO) ?
- V4L2_TUNER_RADIO : V4L2_TUNER_ANALOG_TV;
pvr2_i2c_core_cmd(hdw,VIDIOC_S_FREQUENCY,&freq);
}