V4L/DVB (5035): Pvrusb2: Enable radio mode round #2
authorPantelis Koukousoulas <pakt223@freemail.gr>
Thu, 28 Dec 2006 02:06:04 +0000 (23:06 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 21 Feb 2007 15:34:22 +0000 (13:34 -0200)
commit25d8527a441760c333c41ec7197ba0750780b371
tree9c0904bf4c220e2fbcb821cf200c366af8b70cce
parent275b2e283b139bee19e7de5929d01484b8e3ee51
V4L/DVB (5035): Pvrusb2: Enable radio mode round #2

This is the logic that:
  a) Ensures /sys/class/pvrusb2/sn-*/ctl_frequency/{max,min}_val are
     "automagically" reset to sane values on each mode change.

  b) Allows tuning to a radio frequency by something like:
     echo `perl -e "print int(94.9*16000 + 0.5)"` \
       > /sys/class/pvrusb2/sn-*/ctl_input/cur_val

The trick was to take advantage of the already existing .get_{min,max}_value
function pointers in pvr2_ctrl, to "dynamically override" the hardcoded values
for min/max frequency at runtime.

For a moment I thought to dispose of the hardcoded MIN/MAX_FREQ and use the
hirange/lowrange fields of the v4l2_tuner struct instead, but then I see that
tuner-core.c kinda hardcodes these as well, so I decided to not bother.

Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/pvrusb2/pvrusb2-hdw.c
drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c