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>
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index fe290f2..04e7469 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -381,6 +381,15 @@
 	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 @@
 		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,
 	},{