summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/Kconfig2
-rw-r--r--linux/drivers/media/video/bt8xx/bttv-driver.c1
-rw-r--r--linux/drivers/media/video/cx88/cx88-mpeg.c6
-rw-r--r--linux/drivers/media/video/meye.c10
-rw-r--r--linux/drivers/media/video/tuner-xc2028.c3
5 files changed, 17 insertions, 5 deletions
diff --git a/linux/drivers/media/Kconfig b/linux/drivers/media/Kconfig
index 6ea1a01d0..a86504587 100644
--- a/linux/drivers/media/Kconfig
+++ b/linux/drivers/media/Kconfig
@@ -102,7 +102,7 @@ if VIDEO_TUNER_CUSTOMIZE
config TUNER_XC2028
tristate "XCeive xc2028/xc3028 tuners"
- depends on I2C
+ depends on I2C && FW_LOADER
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for the xc2028/xc3028 tuners.
diff --git a/linux/drivers/media/video/bt8xx/bttv-driver.c b/linux/drivers/media/video/bt8xx/bttv-driver.c
index 063bbcc58..0a9e01627 100644
--- a/linux/drivers/media/video/bt8xx/bttv-driver.c
+++ b/linux/drivers/media/video/bt8xx/bttv-driver.c
@@ -2801,6 +2801,7 @@ static int bttv_overlay(struct file *file, void *f, unsigned int on)
if (on) {
fh->ov.tvnorm = btv->tvnorm;
new = videobuf_pci_alloc(sizeof(*new));
+ new->crop = btv->crop[!!fh->do_crop].rect;
bttv_overlay_risc(btv, &fh->ov, fh->ovfmt, new);
} else {
new = NULL;
diff --git a/linux/drivers/media/video/cx88/cx88-mpeg.c b/linux/drivers/media/video/cx88/cx88-mpeg.c
index 399c3f1fc..1f641273c 100644
--- a/linux/drivers/media/video/cx88/cx88-mpeg.c
+++ b/linux/drivers/media/video/cx88/cx88-mpeg.c
@@ -673,8 +673,8 @@ static int cx8802_request_acquire(struct cx8802_driver *drv)
if (drv->advise_acquire)
{
- core->active_ref++;
mutex_lock(&drv->core->lock);
+ core->active_ref++;
if (core->active_type_id == CX88_BOARD_NONE) {
core->active_type_id = drv->type_id;
drv->advise_acquire(drv);
@@ -692,14 +692,14 @@ static int cx8802_request_release(struct cx8802_driver *drv)
{
struct cx88_core *core = drv->core;
+ mutex_lock(&drv->core->lock);
if (drv->advise_release && --core->active_ref == 0)
{
- mutex_lock(&drv->core->lock);
drv->advise_release(drv);
core->active_type_id = CX88_BOARD_NONE;
- mutex_unlock(&drv->core->lock);
mpeg_dbg(1,"%s() Post release GPIO=%x\n", __FUNCTION__, cx_read(MO_GP0_IO));
}
+ mutex_unlock(&drv->core->lock);
return 0;
}
diff --git a/linux/drivers/media/video/meye.c b/linux/drivers/media/video/meye.c
index 5e00e1fe3..1613ffb54 100644
--- a/linux/drivers/media/video/meye.c
+++ b/linux/drivers/media/video/meye.c
@@ -1244,6 +1244,7 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
c->default_value = 48;
c->flags = 0;
break;
+ case V4L2_CID_MEYE_SHARPNESS:
case V4L2_CID_SHARPNESS:
c->type = V4L2_CTRL_TYPE_INTEGER;
strcpy(c->name, "Sharpness");
@@ -1251,7 +1252,12 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
c->maximum = 63;
c->step = 1;
c->default_value = 32;
- c->flags = 0;
+
+ /* Continue to report legacy private SHARPNESS ctrl but
+ * say it is disabled in preference to ctrl in the spec
+ */
+ c->flags = (c->id == V4L2_CID_SHARPNESS) ? 0 :
+ V4L2_CTRL_FLAG_DISABLED;
break;
case V4L2_CID_PICTURE:
c->type = V4L2_CTRL_TYPE_INTEGER;
@@ -1317,6 +1323,7 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
meye.params.agc = c->value;
break;
case V4L2_CID_SHARPNESS:
+ case V4L2_CID_MEYE_SHARPNESS:
sony_pic_camera_command(
SONY_PIC_COMMAND_SETCAMERASHARPNESS, c->value);
meye.params.sharpness = c->value;
@@ -1361,6 +1368,7 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
c->value = meye.params.agc;
break;
case V4L2_CID_SHARPNESS:
+ case V4L2_CID_MEYE_SHARPNESS:
c->value = meye.params.sharpness;
break;
case V4L2_CID_PICTURE:
diff --git a/linux/drivers/media/video/tuner-xc2028.c b/linux/drivers/media/video/tuner-xc2028.c
index 95cc51bb7..89bba71d9 100644
--- a/linux/drivers/media/video/tuner-xc2028.c
+++ b/linux/drivers/media/video/tuner-xc2028.c
@@ -767,6 +767,9 @@ skip_std_specific:
goto check_device;
}
+ if (new_fw.type & FM)
+ goto check_device;
+
/* Load SCODE firmware, if exists */
tuner_dbg("Trying to load scode %d\n", new_fw.scode_nr);