diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-30 10:09:14 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-30 10:09:14 -0700 |
commit | b94d10e7f6fce9af7d5054845511a00575c4b4f5 (patch) | |
tree | 8be617e5d9cfc8a1fe232ac2b6454caec7ca466a /drivers/media/radio/dsbr100.c | |
parent | b80e0d271606a0f5b35c85b11f9014ce09cbc415 (diff) | |
parent | fd3a019534e0a9ada11bcc357a8faa9251029cbb (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (707 commits)
V4L/DVB (11316): saa7191: tuner ops wasn't set.
V4L/DVB (11315): cx25840: fix 'unused variable' warning.
V4L/DVB (11314): au8522: remove unused I2C_DRIVERID
V4L/DVB (11313): v4l2-subdev: add enum_framesizes and enum_frameintervals.
V4L/DVB (11312): tuner: remove V4L1 code from this driver.
V4L/DVB (11311): v4l: replace 'ioctl' references in v4l i2c drivers
V4L/DVB (11310): cx18: remove intermediate 'ioctl' step
V4L/DVB (11309): cx25840: cleanup: remove intermediate 'ioctl' step
V4L/DVB (11308): msp3400: use the V4L2 header since no V4L1 code is there
V4L/DVB (11305): cx88: prevent probing rtc and ir devices
V4L/DVB (11304): v4l2: remove v4l2_subdev_command calls where they are no longer needed.
V4L/DVB (11303): tda7432: remove legacy code for old-style i2c API
V4L/DVB (11302): tda9875: remove legacy code for old-style i2c API
V4L/DVB (11301): wm8775: remove legacy code for old-style i2c API
V4L/DVB (11300): cx88: convert to v4l2_subdev.
V4L/DVB (11298): cx25840: remove legacy code for old-style i2c API
V4L/DVB (11297): cx23885: convert to v4l2_subdev.
V4L/DVB (11296): cx23885: bugfix error message if firmware is not found
V4L/DVB (11295): cx23885: convert to v4l2_device.
V4L/DVB (11293): uvcvideo: Add zero fill for VIDIOC_ENUM_FMT
...
Diffstat (limited to 'drivers/media/radio/dsbr100.c')
-rw-r--r-- | drivers/media/radio/dsbr100.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/media/radio/dsbr100.c b/drivers/media/radio/dsbr100.c index 2014ebc4e98..cc54ed4efc4 100644 --- a/drivers/media/radio/dsbr100.c +++ b/drivers/media/radio/dsbr100.c @@ -390,9 +390,11 @@ static void usb_dsbr100_disconnect(struct usb_interface *intf) static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *v) { + struct dsbr100_device *radio = video_drvdata(file); + strlcpy(v->driver, "dsbr100", sizeof(v->driver)); strlcpy(v->card, "D-Link R-100 USB FM Radio", sizeof(v->card)); - sprintf(v->bus_info, "USB"); + usb_make_path(radio->usbdev, v->bus_info, sizeof(v->bus_info)); v->version = RADIO_VERSION; v->capabilities = V4L2_CAP_TUNER; return 0; @@ -450,7 +452,10 @@ static int vidioc_s_frequency(struct file *file, void *priv, if (radio->removed) return -EIO; + mutex_lock(&radio->lock); radio->curfreq = f->frequency; + mutex_unlock(&radio->lock); + retval = dsbr100_setfreq(radio, radio->curfreq); if (retval < 0) dev_warn(&radio->usbdev->dev, "Set frequency failed\n"); @@ -601,7 +606,10 @@ static int usb_dsbr100_close(struct file *file) if (!radio) return -ENODEV; + mutex_lock(&radio->lock); radio->users = 0; + mutex_unlock(&radio->lock); + if (!radio->removed) { retval = dsbr100_stop(radio); if (retval < 0) { |