From: Hans Verkuil Date: Fri, 31 May 2013 09:21:03 +0000 (-0300) Subject: [media] radio-sf16fmi: clamp frequency X-Git-Tag: firefly_0821_release~176^2~3573^2~1720 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=96bb42b8ab3d4f15b5e98a65c6d8decf36f3f930;p=firefly-linux-kernel-4.4.55.git [media] radio-sf16fmi: clamp frequency Signed-off-by: Hans Verkuil Cc: Ondrej Zary Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radio-sf16fmi.c index 80beda7781bc..9cd0338a3d2b 100644 --- a/drivers/media/radio/radio-sf16fmi.c +++ b/drivers/media/radio/radio-sf16fmi.c @@ -55,8 +55,8 @@ static struct fmi fmi_card; static struct pnp_dev *dev; bool pnp_attached; -#define RSF16_MINFREQ (87 * 16000) -#define RSF16_MAXFREQ (108 * 16000) +#define RSF16_MINFREQ (87U * 16000) +#define RSF16_MAXFREQ (108U * 16000) #define FMI_BIT_TUN_CE (1 << 0) #define FMI_BIT_TUN_CLK (1 << 1) @@ -155,15 +155,14 @@ static int vidioc_s_frequency(struct file *file, void *priv, const struct v4l2_frequency *f) { struct fmi *fmi = video_drvdata(file); + unsigned freq = f->frequency; if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO) return -EINVAL; - if (f->frequency < RSF16_MINFREQ || - f->frequency > RSF16_MAXFREQ) - return -EINVAL; + clamp(freq, RSF16_MINFREQ, RSF16_MAXFREQ); /* rounding in steps of 800 to match the freq that will be used */ - lm7000_set_freq((f->frequency / 800) * 800, fmi, fmi_set_pins); + lm7000_set_freq((freq / 800) * 800, fmi, fmi_set_pins); return 0; }