On Tuesday, November 16, 2010 14:18:10 manjunatha_halli@xxxxxx wrote: > From: Manjunatha Halli <manjunatha_halli@xxxxxx> > > This module interfaces V4L2 subsystem and FM common > module. It registers itself with V4L2 as Radio module. > > Signed-off-by: Manjunatha Halli <manjunatha_halli@xxxxxx> > --- > drivers/staging/ti-st/fmdrv_v4l2.c | 757 ++++++++++++++++++++++++++++++++++++ > drivers/staging/ti-st/fmdrv_v4l2.h | 32 ++ > 2 files changed, 789 insertions(+), 0 deletions(-) > create mode 100644 drivers/staging/ti-st/fmdrv_v4l2.c > create mode 100644 drivers/staging/ti-st/fmdrv_v4l2.h > > diff --git a/drivers/staging/ti-st/fmdrv_v4l2.c b/drivers/staging/ti-st/fmdrv_v4l2.c > new file mode 100644 > index 0000000..687d10f > --- /dev/null > +++ b/drivers/staging/ti-st/fmdrv_v4l2.c > @@ -0,0 +1,757 @@ > +/* > + * FM Driver for Connectivity chip of Texas Instruments. > + * This file provides interfaces to V4L2 subsystem. > + * > + * This module registers with V4L2 subsystem as Radio > + * data system interface (/dev/radio). During the registration, > + * it will expose two set of function pointers. > + * > + * 1) File operation related API (open, close, read, write, poll...etc). > + * 2) Set of V4L2 IOCTL complaint API. > + * > + * Copyright (C) 2010 Texas Instruments > + * Author: Raja Mani <raja_mani@xxxxxx> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + * > + */ > + > +#include "fmdrv.h" > +#include "fmdrv_v4l2.h" > +#include "fmdrv_common.h" > +#include "fmdrv_rx.h" > +#include "fmdrv_tx.h" > + > +static struct video_device *gradio_dev; > +static unsigned char radio_disconnected; > + > +/* Query control */ > +static struct v4l2_queryctrl fmdrv_v4l2_queryctrl[] = { > + { > + .id = V4L2_CID_AUDIO_VOLUME, > + .type = V4L2_CTRL_TYPE_INTEGER, > + .name = "Volume", > + .minimum = FM_RX_VOLUME_MIN, > + .maximum = FM_RX_VOLUME_MAX, > + .step = 1, > + .default_value = FM_DEFAULT_RX_VOLUME, > + }, > + { > + .id = V4L2_CID_AUDIO_BALANCE, > + .flags = V4L2_CTRL_FLAG_DISABLED, > + }, > + { > + .id = V4L2_CID_AUDIO_BASS, > + .flags = V4L2_CTRL_FLAG_DISABLED, > + }, > + { > + .id = V4L2_CID_AUDIO_TREBLE, > + .flags = V4L2_CTRL_FLAG_DISABLED, > + }, > + { > + .id = V4L2_CID_AUDIO_MUTE, > + .type = V4L2_CTRL_TYPE_BOOLEAN, > + .name = "Mute", > + .minimum = 0, > + .maximum = 2, > + .step = 1, > + .default_value = FM_MUTE_OFF, > + }, > + { > + .id = V4L2_CID_AUDIO_LOUDNESS, > + .flags = V4L2_CTRL_FLAG_DISABLED, > + }, > +}; Please use the control framework. See Documentation/video4linux/v4l2-controls.txt. It's much easier to use and should be used for new drivers. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by Cisco -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html