summaryrefslogtreecommitdiff
path: root/drivers/media/video/pvrusb2/pvrusb2-hdw.c
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2006-12-27 23:28:54 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-02-21 13:34:33 -0200
commit5549f54f46c2375761f42cd2741364316e3b2a13 (patch)
treebd4d19a7ba79824c4eb0d9c4f27c07b5a4acf82c /drivers/media/video/pvrusb2/pvrusb2-hdw.c
parent2083230084cee50580ee730cd26669704f7939b9 (diff)
V4L/DVB (5050): Pvrusb2: Newer frequency range checking
Implement new method for doing integer range checking, so that we can more intelligently range-check radio and tv ranges at once. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/pvrusb2/pvrusb2-hdw.c')
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index fe290f2f4e14..04e746932217 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -381,6 +381,15 @@ static int ctrl_vres_min_get(struct pvr2_ctrl *cptr,int *vp)
return 0;
}
+static int ctrl_freq_check(struct pvr2_ctrl *cptr,int v)
+{
+ if (cptr->hdw->input_val == PVR2_CVAL_INPUT_RADIO) {
+ return ((v >= RADIO_MIN_FREQ) && (v <= RADIO_MAX_FREQ));
+ } else {
+ return ((v >= TV_MIN_FREQ) && (v <= TV_MAX_FREQ));
+ }
+}
+
static int ctrl_freq_max_get(struct pvr2_ctrl *cptr, int *vp)
{
/* Actual maximum depends on radio/tv mode */
@@ -788,6 +797,7 @@ static const struct pvr2_ctl_info control_defs[] = {
DEFINT(TV_MIN_FREQ,TV_MAX_FREQ),
/* Hook in check for input value (tv/radio) and adjust
max/min values accordingly */
+ .check_value = ctrl_freq_check,
.get_max_value = ctrl_freq_max_get,
.get_min_value = ctrl_freq_min_get,
},{