333 lines
12 KiB
Diff
333 lines
12 KiB
Diff
From c6c14330717f9850b4b4c054b81424b9979cd07d Mon Sep 17 00:00:00 2001
|
||
From: Jean-Francois Moine <moinejf@free.fr>
|
||
Date: Tue, 14 Dec 2010 16:15:37 -0300
|
||
Subject: [media] gspca - sonixj: Add a flag in the driver_info table
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
From: Jean-Francois Moine <moinejf@free.fr>
|
||
|
||
commit c6c14330717f9850b4b4c054b81424b9979cd07d upstream.
|
||
|
||
Signed-off-by: Jean-François Moine <moinejf@free.fr>
|
||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||
|
||
---
|
||
drivers/media/video/gspca/sonixj.c | 10 ++++++++--
|
||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||
|
||
Index: linux-2.6.35.y/drivers/media/video/gspca/sonixj.c
|
||
===================================================================
|
||
--- linux-2.6.35.y.orig/drivers/media/video/gspca/sonixj.c
|
||
+++ linux-2.6.35.y/drivers/media/video/gspca/sonixj.c
|
||
@@ -57,6 +57,7 @@ struct sd {
|
||
u8 jpegqual; /* webcam quality */
|
||
|
||
u8 reg18;
|
||
+ u8 flags;
|
||
|
||
s8 ag_cnt;
|
||
#define AG_CNT_START 13
|
||
@@ -1777,7 +1778,8 @@ static int sd_config(struct gspca_dev *g
|
||
struct cam *cam;
|
||
|
||
sd->bridge = id->driver_info >> 16;
|
||
- sd->sensor = id->driver_info;
|
||
+ sd->sensor = id->driver_info >> 8;
|
||
+ sd->flags = id->driver_info;
|
||
|
||
cam = &gspca_dev->cam;
|
||
if (sd->sensor == SENSOR_ADCM1700) {
|
||
@@ -3001,7 +3003,11 @@ static const struct sd_desc sd_desc = {
|
||
/* -- module initialisation -- */
|
||
#define BS(bridge, sensor) \
|
||
.driver_info = (BRIDGE_ ## bridge << 16) \
|
||
- | SENSOR_ ## sensor
|
||
+ | (SENSOR_ ## sensor << 8)
|
||
+#define BSF(bridge, sensor, flags) \
|
||
+ .driver_info = (BRIDGE_ ## bridge << 16) \
|
||
+ | (SENSOR_ ## sensor << 8) \
|
||
+ | (flags)
|
||
static const __devinitdata struct usb_device_id device_table[] = {
|
||
#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
|
||
{USB_DEVICE(0x0458, 0x7025), BS(SN9C120, MI0360)},
|
||
From b2272a49e7df37732d73988f00468ce31e1ebc92 Mon Sep 17 00:00:00 2001
|
||
From: Jean-Francois Moine <moinejf@free.fr>
|
||
Date: Tue, 14 Dec 2010 16:16:16 -0300
|
||
Subject: [media] gspca - sonixj: Set the flag for some devices
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
From: Jean-Francois Moine <moinejf@free.fr>
|
||
|
||
commit b2272a49e7df37732d73988f00468ce31e1ebc92 upstream.
|
||
|
||
The flag PDN_INV indicates that the sensor pin S_PWR_DN has not the same
|
||
value as other webcams with the same sensor. For now, only two webcams have
|
||
been so detected: the Microsoft's VX1000 and VX3000.
|
||
|
||
Signed-off-by: Jean-François Moine <moinejf@free.fr>
|
||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||
|
||
---
|
||
drivers/media/video/gspca/sonixj.c | 7 +++++--
|
||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||
|
||
Index: linux-2.6.35.y/drivers/media/video/gspca/sonixj.c
|
||
===================================================================
|
||
--- linux-2.6.35.y.orig/drivers/media/video/gspca/sonixj.c
|
||
+++ linux-2.6.35.y/drivers/media/video/gspca/sonixj.c
|
||
@@ -88,6 +88,9 @@ enum {
|
||
u8 jpeg_hdr[JPEG_HDR_SZ];
|
||
};
|
||
|
||
+/* device flags */
|
||
+#define PDN_INV 1 /* inverse pin S_PWR_DN / sn_xxx tables */
|
||
+
|
||
/* V4L2 controls supported by the driver */
|
||
static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val);
|
||
static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val);
|
||
@@ -3004,8 +3007,8 @@ static const __devinitdata struct usb_de
|
||
{USB_DEVICE(0x0458, 0x7025), BS(SN9C120, MI0360)},
|
||
{USB_DEVICE(0x0458, 0x702e), BS(SN9C120, OV7660)},
|
||
#endif
|
||
- {USB_DEVICE(0x045e, 0x00f5), BS(SN9C105, OV7660)},
|
||
- {USB_DEVICE(0x045e, 0x00f7), BS(SN9C105, OV7660)},
|
||
+ {USB_DEVICE(0x045e, 0x00f5), BSF(SN9C105, OV7660, PDN_INV)},
|
||
+ {USB_DEVICE(0x045e, 0x00f7), BSF(SN9C105, OV7660, PDN_INV)},
|
||
{USB_DEVICE(0x0471, 0x0327), BS(SN9C105, MI0360)},
|
||
{USB_DEVICE(0x0471, 0x0328), BS(SN9C105, MI0360)},
|
||
{USB_DEVICE(0x0471, 0x0330), BS(SN9C105, MI0360)},
|
||
From 615661f3948a066fd22a36fe8ea0c528b75ee373 Mon Sep 17 00:00:00 2001
|
||
From: Marcin Slusarz <marcin.slusarz@gmail.com>
|
||
Date: Sun, 22 Aug 2010 20:54:08 +0200
|
||
Subject: drm/nv50: initialize ramht_refs list for faked 0 channel
|
||
|
||
From: Marcin Slusarz <marcin.slusarz@gmail.com>
|
||
|
||
commit 615661f3948a066fd22a36fe8ea0c528b75ee373 upstream.
|
||
|
||
We need it for PFIFO_INTR_CACHE_ERROR interrupt handling,
|
||
because nouveau_fifo_swmthd looks for matching gpuobj in
|
||
ramht_refs list.
|
||
It fixes kernel panic in nouveau_gpuobj_ref_find.
|
||
|
||
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
|
||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||
|
||
---
|
||
drivers/gpu/drm/nouveau/nv50_instmem.c | 2 ++
|
||
1 file changed, 2 insertions(+)
|
||
|
||
--- a/drivers/gpu/drm/nouveau/nv50_instmem.c
|
||
+++ b/drivers/gpu/drm/nouveau/nv50_instmem.c
|
||
@@ -141,6 +141,8 @@ nv50_instmem_init(struct drm_device *dev
|
||
chan->file_priv = (struct drm_file *)-2;
|
||
dev_priv->fifos[0] = dev_priv->fifos[127] = chan;
|
||
|
||
+ INIT_LIST_HEAD(&chan->ramht_refs);
|
||
+
|
||
/* Channel's PRAMIN object + heap */
|
||
ret = nouveau_gpuobj_new_fake(dev, 0, c_offset, c_size, 0,
|
||
NULL, &chan->ramin);
|
||
|
||
commit 6f1b1e1384b23cfab30c2bc02a8f94927274c10d
|
||
Author: Geert Uytterhoeven <geert@linux-m68k.org>
|
||
Date: Sun Jan 16 10:09:13 2011 -0300
|
||
|
||
radio-aimslab.c needs #include <linux/delay.h>
|
||
|
||
commit 2400982a2e8a8e4e95f0a0e1517bbe63cc88038f upstream.
|
||
|
||
Commit e3c92215198cb6aa00ad38db2780faa6b72e0a3f ("[media] radio-aimslab.c: Fix
|
||
gcc 4.5+ bug") removed the include, but introduced new callers of msleep():
|
||
|
||
| drivers/media/radio/radio-aimslab.c: In function ‘rt_decvol’:
|
||
| drivers/media/radio/radio-aimslab.c:76: error: implicit declaration of function ‘msleep’
|
||
|
||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||
Cc: dann frazier <dannf@debian.org>
|
||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||
|
||
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c
|
||
index 1944814..a91642c 100644
|
||
--- a/drivers/media/radio/radio-aimslab.c
|
||
+++ b/drivers/media/radio/radio-aimslab.c
|
||
@@ -31,6 +31,7 @@
|
||
#include <linux/module.h> /* Modules */
|
||
#include <linux/init.h> /* Initdata */
|
||
#include <linux/ioport.h> /* request_region */
|
||
+#include <linux/delay.h> /* msleep */
|
||
#include <linux/videodev2.h> /* kernel radio structs */
|
||
#include <linux/version.h> /* for KERNEL_VERSION MACRO */
|
||
#include <linux/io.h> /* outb, outb_p */
|
||
|
||
commit 9c198dad83c19a05a11b5a195242f3e8dcbe55f4
|
||
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Date: Thu Jan 6 08:16:04 2011 -0200
|
||
|
||
radio-aimslab.c: Fix gcc 4.5+ bug
|
||
|
||
commit e3c92215198cb6aa00ad38db2780faa6b72e0a3f upstream.
|
||
|
||
gcc 4.5+ doesn't properly evaluate some inlined expressions.
|
||
A previous patch were proposed by Andrew Morton using noinline.
|
||
However, the entire inlined function is bogus, so let's just
|
||
remove it and be happy.
|
||
|
||
Reported-by: Andrew Morton <akpm@linux-foundation.org>
|
||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||
|
||
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c
|
||
index 5bf4985..1944814 100644
|
||
--- a/drivers/media/radio/radio-aimslab.c
|
||
+++ b/drivers/media/radio/radio-aimslab.c
|
||
@@ -31,7 +31,6 @@
|
||
#include <linux/module.h> /* Modules */
|
||
#include <linux/init.h> /* Initdata */
|
||
#include <linux/ioport.h> /* request_region */
|
||
-#include <linux/delay.h> /* udelay */
|
||
#include <linux/videodev2.h> /* kernel radio structs */
|
||
#include <linux/version.h> /* for KERNEL_VERSION MACRO */
|
||
#include <linux/io.h> /* outb, outb_p */
|
||
@@ -71,27 +70,17 @@ static struct rtrack rtrack_card;
|
||
|
||
/* local things */
|
||
|
||
-static void sleep_delay(long n)
|
||
-{
|
||
- /* Sleep nicely for 'n' uS */
|
||
- int d = n / msecs_to_jiffies(1000);
|
||
- if (!d)
|
||
- udelay(n);
|
||
- else
|
||
- msleep(jiffies_to_msecs(d));
|
||
-}
|
||
-
|
||
static void rt_decvol(struct rtrack *rt)
|
||
{
|
||
outb(0x58, rt->io); /* volume down + sigstr + on */
|
||
- sleep_delay(100000);
|
||
+ msleep(100);
|
||
outb(0xd8, rt->io); /* volume steady + sigstr + on */
|
||
}
|
||
|
||
static void rt_incvol(struct rtrack *rt)
|
||
{
|
||
outb(0x98, rt->io); /* volume up + sigstr + on */
|
||
- sleep_delay(100000);
|
||
+ msleep(100);
|
||
outb(0xd8, rt->io); /* volume steady + sigstr + on */
|
||
}
|
||
|
||
@@ -120,7 +109,7 @@ static int rt_setvol(struct rtrack *rt, int vol)
|
||
|
||
if (vol == 0) { /* volume = 0 means mute the card */
|
||
outb(0x48, rt->io); /* volume down but still "on" */
|
||
- sleep_delay(2000000); /* make sure it's totally down */
|
||
+ msleep(2000); /* make sure it's totally down */
|
||
outb(0xd0, rt->io); /* volume steady, off */
|
||
rt->curvol = 0; /* track the volume state! */
|
||
mutex_unlock(&rt->lock);
|
||
@@ -155,7 +144,7 @@ static void send_0_byte(struct rtrack *rt)
|
||
outb_p(128+64+16+8+ 1, rt->io); /* on + wr-enable + data low */
|
||
outb_p(128+64+16+8+2+1, rt->io); /* clock */
|
||
}
|
||
- sleep_delay(1000);
|
||
+ msleep(1);
|
||
}
|
||
|
||
static void send_1_byte(struct rtrack *rt)
|
||
@@ -169,7 +158,7 @@ static void send_1_byte(struct rtrack *rt)
|
||
outb_p(128+64+16+8+4+2+1, rt->io); /* clock */
|
||
}
|
||
|
||
- sleep_delay(1000);
|
||
+ msleep(1);
|
||
}
|
||
|
||
static int rt_setfreq(struct rtrack *rt, unsigned long freq)
|
||
@@ -427,7 +416,7 @@ static int __init rtrack_init(void)
|
||
|
||
/* this ensures that the volume is all the way down */
|
||
outb(0x48, rt->io); /* volume down but still "on" */
|
||
- sleep_delay(2000000); /* make sure it's totally down */
|
||
+ msleep(2000); /* make sure it's totally down */
|
||
outb(0xc0, rt->io); /* steady volume, mute card */
|
||
|
||
return 0;
|
||
|
||
commit 515884e98dc4f1c99387000d420394c3bc47c0d7
|
||
Author: Dan Carpenter <error27@gmail.com>
|
||
Date: Fri Jan 7 16:41:54 2011 -0300
|
||
|
||
av7110: check for negative array offset
|
||
|
||
commit cb26a24ee9706473f31d34cc259f4dcf45cd0644 upstream.
|
||
|
||
info->num comes from the user. It's type int. If the user passes
|
||
in a negative value that would cause memory corruption.
|
||
|
||
Signed-off-by: Dan Carpenter <error27@gmail.com>
|
||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||
|
||
diff --git a/drivers/media/dvb/ttpci/av7110_ca.c b/drivers/media/dvb/ttpci/av7110_ca.c
|
||
index 4eba35a..c38dd67 100644
|
||
--- a/drivers/media/dvb/ttpci/av7110_ca.c
|
||
+++ b/drivers/media/dvb/ttpci/av7110_ca.c
|
||
@@ -277,7 +277,7 @@ static int dvb_ca_ioctl(struct file *file, unsigned int cmd, void *parg)
|
||
{
|
||
ca_slot_info_t *info=(ca_slot_info_t *)parg;
|
||
|
||
- if (info->num > 1)
|
||
+ if (info->num < 0 || info->num > 1)
|
||
return -EINVAL;
|
||
av7110->ci_slot[info->num].num = info->num;
|
||
av7110->ci_slot[info->num].type = FW_CI_LL_SUPPORT(av7110->arm_app) ?
|
||
|
||
commit 9e5ad61f8d81da0b58535ac2cf60d36e26ca567a
|
||
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Date: Mon Oct 25 17:51:15 2010 -0300
|
||
|
||
em28xx: Fix audio input for Terratec Grabby
|
||
|
||
commit a3fa904ec79b94f0db7faed010ff94d42f7d1d47 upstream.
|
||
|
||
The audio input line was wrong. Fix it.
|
||
|
||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||
Signed-off-by: Andi Kleen <ak@linux.intel.com>
|
||
|
||
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
|
||
index 3a4fd85..2fa5bb4 100644
|
||
--- a/drivers/media/video/em28xx/em28xx-cards.c
|
||
+++ b/drivers/media/video/em28xx/em28xx-cards.c
|
||
@@ -1605,11 +1605,11 @@ struct em28xx_board em28xx_boards[] = {
|
||
.input = { {
|
||
.type = EM28XX_VMUX_COMPOSITE1,
|
||
.vmux = SAA7115_COMPOSITE0,
|
||
- .amux = EM28XX_AMUX_VIDEO2,
|
||
+ .amux = EM28XX_AMUX_LINE_IN,
|
||
}, {
|
||
.type = EM28XX_VMUX_SVIDEO,
|
||
.vmux = SAA7115_SVIDEO3,
|
||
- .amux = EM28XX_AMUX_VIDEO2,
|
||
+ .amux = EM28XX_AMUX_LINE_IN,
|
||
} },
|
||
},
|
||
[EM2860_BOARD_TERRATEC_AV350] = {
|