projects/linux·commit 13a3cec8

Merge branch 'media_fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6

13a3cec8 · Linus Torvalds <[email protected]> · 2011-01-21 16:50:31 -08:00

* 'media_fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (101 commits)
  [media] staging/lirc: fix mem leaks and ptr err usage
  [media] hdpvr: reduce latency of i2c read/write w/recycled buffer
  [media] hdpvr: enable IR part
  [media] rc/mceusb: timeout should be in ns, not us
  [media] v4l2-device: fix 'use-after-freed' oops
  [media] v4l2-dev: don't memset video_device.dev
  [media] zoran: use video_device_alloc instead of kmalloc
  [media] w9966: zero device state after a detach
  [media] v4l: Fix a use-before-set in the control framework
  [media] v4l: Include linux/videodev2.h in media/v4l2-ctrls.h
  [media] DocBook/v4l: update V4L2 revision and update copyright years
  [media] DocBook/v4l: fix validation error in dev-rds.xml
  [media] v4l2-ctrls: queryctrl shouldn't attempt to replace V4L2_CID_PRIVATE_BASE IDs
  [media] v4l2-ctrls: fix missing 'read-only' check
  [media] pvrusb2: Provide more information about IR units to lirc_zilog and ir-kbd-i2c
  [media] ir-kbd-i2c: Add back defaults setting for Zilog Z8's at addr 0x71
  [media] lirc_zilog: Update TODO.lirc_zilog
  [media] lirc_zilog: Add Andy Walls to copyright notice and authors list
  [media] lirc_zilog: Remove useless struct i2c_driver.command function
  [media] lirc_zilog: Remove unneeded tests for existence of the IR Tx function
  ...
Commit
13a3cec8443290b082af2a5254562aca247fe591
Parents
973c9f4f · 88914bdf

Merge commit. Changes below are compared with the first parent: 973c9f4f.

Changes

133 files changed · +2442 −2661

FileStatusAddDelContent
Documentation/DocBook/dvb/dvbapi.xmlmodified+1−1View file
Documentation/DocBook/media.tmplmodified+2−2View file
Documentation/DocBook/v4l/dev-rds.xmlmodified+4−2View file
Documentation/DocBook/v4l/v4l2.xmlmodified+2−1View file
Documentation/video4linux/v4l2-controls.txtmodified+12−0View file
drivers/media/common/saa7146_core.cmodified+1−1View file
drivers/media/common/saa7146_fops.cmodified+2−6View file
drivers/media/common/saa7146_vbi.cmodified+1−1View file
drivers/media/common/saa7146_video.cmodified+1−19View file
drivers/media/common/tuners/tda8290.cmodified+74−56View file
drivers/media/dvb/dvb-usb/dib0700_core.cmodified+3−3View file
drivers/media/dvb/firewire/firedtv-rc.cmodified+6−3View file
drivers/media/dvb/frontends/af9013.cmodified+2−2View file
drivers/media/dvb/frontends/ix2505v.cmodified+1−1View file
drivers/media/dvb/frontends/mb86a20s.cmodified+30−6View file
drivers/media/dvb/ttpci/av7110_ca.cmodified+1−1View file
drivers/media/radio/Kconfigmodified+0−14View file
drivers/media/radio/Makefilemodified+0−1View file
drivers/media/radio/radio-aimslab.cmodified+1−0View file
drivers/media/radio/radio-gemtek-pci.cdeleted+0−478View before deletion
drivers/media/radio/radio-maxiradio.cmodified+2−2View file
drivers/media/radio/radio-wl1273.cmodified+1−1View file
drivers/media/radio/si470x/radio-si470x-common.cmodified+2−7View file
drivers/media/rc/ene_ir.cmodified+14−9View file
drivers/media/rc/ene_ir.hmodified+0−2View file
drivers/media/rc/imon.cmodified+26−34View file
drivers/media/rc/ir-raw.cmodified+1−1View file
drivers/media/rc/keymaps/rc-dib0700-nec.cmodified+26−26View file
drivers/media/rc/mceusb.cmodified+1−2View file
drivers/media/video/Kconfigmodified+0−9View file
drivers/media/video/Makefilemodified+0−1View file
drivers/media/video/adv7175.cmodified+11−0View file
drivers/media/video/bt8xx/bttv-cards.cmodified+0−39View file
drivers/media/video/bt8xx/bttv.hmodified+0−1View file
drivers/media/video/cafe_ccic.cmodified+8−3View file
drivers/media/video/cpia2/cpia2.hmodified+1−1View file
drivers/media/video/cpia2/cpia2_core.cmodified+15−50View file
drivers/media/video/cpia2/cpia2_v4l.cmodified+34−70View file
drivers/media/video/cx18/cx18-driver.cmodified+2−22View file
drivers/media/video/cx18/cx18-driver.hmodified+0−3View file
drivers/media/video/cx18/cx18-streams.hmodified+1−2View file
drivers/media/video/cx231xx/cx231xx-dvb.cmodified+2−3View file
drivers/media/video/cx25840/cx25840-core.cmodified+6−16View file
drivers/media/video/davinci/vpif.cmodified+177−0View file
drivers/media/video/davinci/vpif.hmodified+10−8View file
drivers/media/video/davinci/vpif_capture.cmodified+349−102View file
drivers/media/video/davinci/vpif_capture.hmodified+2−0View file
drivers/media/video/davinci/vpif_display.cmodified+367−107View file
drivers/media/video/davinci/vpif_display.hmodified+2−0View file
drivers/media/video/em28xx/em28xx-cards.cmodified+11−8View file
drivers/media/video/et61x251/et61x251.hmodified+0−24View file
drivers/media/video/gspca/benq.cmodified+1−1View file
drivers/media/video/gspca/conex.cmodified+2−2View file
drivers/media/video/gspca/cpia1.cmodified+1−1View file
drivers/media/video/gspca/etoms.cmodified+2−2View file
drivers/media/video/gspca/finepix.cmodified+1−1View file
drivers/media/video/gspca/gl860/gl860.cmodified+1−1View file
drivers/media/video/gspca/gspca.cmodified+95−115View file
drivers/media/video/gspca/gspca.hmodified+0−2View file
drivers/media/video/gspca/jeilinj.cmodified+1−1View file
drivers/media/video/gspca/jpeg.hmodified+2−2View file
drivers/media/video/gspca/konica.cmodified+1−1View file
drivers/media/video/gspca/m5602/m5602_core.cmodified+1−1View file
drivers/media/video/gspca/mars.cmodified+1−1View file
drivers/media/video/gspca/mr97310a.cmodified+1−1View file
drivers/media/video/gspca/ov519.cmodified+3−5View file
drivers/media/video/gspca/ov534.cmodified+20−9View file
drivers/media/video/gspca/ov534_9.cmodified+1−1View file
drivers/media/video/gspca/pac207.cmodified+1−1View file
drivers/media/video/gspca/pac7302.cmodified+2−2View file
drivers/media/video/gspca/pac7311.cmodified+2−2View file
drivers/media/video/gspca/sn9c2028.cmodified+1−1View file
drivers/media/video/gspca/sn9c20x.cmodified+1−1View file
drivers/media/video/gspca/sonixb.cmodified+157−113View file
drivers/media/video/gspca/sonixj.cmodified+78−77View file
drivers/media/video/gspca/spca1528.cmodified+1−1View file
drivers/media/video/gspca/spca500.cmodified+1−1View file
drivers/media/video/gspca/spca501.cmodified+1−1View file
drivers/media/video/gspca/spca505.cmodified+1−1View file
drivers/media/video/gspca/spca508.cmodified+1−1View file
drivers/media/video/gspca/spca561.cmodified+1−1View file
drivers/media/video/gspca/sq905.cmodified+1−1View file
drivers/media/video/gspca/sq905c.cmodified+1−1View file
drivers/media/video/gspca/sq930x.cmodified+1−1View file
drivers/media/video/gspca/stk014.cmodified+1−1View file
drivers/media/video/gspca/stv0680.cmodified+1−1View file
drivers/media/video/gspca/stv06xx/stv06xx.cmodified+1−1View file
drivers/media/video/gspca/sunplus.cmodified+1−1View file
drivers/media/video/gspca/t613.cmodified+1−1View file
drivers/media/video/gspca/tv8532.cmodified+1−1View file
drivers/media/video/gspca/vc032x.cmodified+1−1View file
drivers/media/video/gspca/xirlink_cit.cmodified+1−1View file
drivers/media/video/gspca/zc3xx.cmodified+1−1View file
drivers/media/video/hdpvr/Makefilemodified+1−3View file
drivers/media/video/hdpvr/hdpvr-core.cmodified+4−6View file
drivers/media/video/hdpvr/hdpvr-i2c.cmodified+67−76View file
drivers/media/video/hdpvr/hdpvr-video.cmodified+2−5View file
drivers/media/video/hdpvr/hdpvr.hmodified+4−1View file
drivers/media/video/ir-kbd-i2c.cmodified+10−2View file
drivers/media/video/ivtv/ivtv-i2c.cmodified+7−2View file
drivers/media/video/mt9v011.cmodified+34−20View file
drivers/media/video/mt9v011.hdeleted+0−36View before deletion
drivers/media/video/ov7670.cmodified+32−42View file
drivers/media/video/pvrusb2/pvrusb2-hdw-internal.hmodified+2−0View file
drivers/media/video/pvrusb2/pvrusb2-i2c-core.cmodified+43−19View file
drivers/media/video/saa7134/saa7134-cards.cmodified+12−39View file
drivers/media/video/saa7134/saa7134-dvb.cmodified+36−44View file
drivers/media/video/sn9c102/sn9c102_devtable.hmodified+32−42View file
drivers/media/video/sr030pc30.cmodified+0−10View file
drivers/media/video/tda9875.cdeleted+0−411View before deletion
drivers/media/video/tlg2300/pd-video.cmodified+7−6View file
drivers/media/video/v4l2-common.cmodified+2−17View file
drivers/media/video/v4l2-ctrls.cmodified+22−12View file
drivers/media/video/v4l2-dev.cmodified+4−5View file
drivers/media/video/v4l2-device.cmodified+14−2View file
drivers/media/video/v4l2-ioctl.cmodified+12−8View file
drivers/media/video/w9966.cmodified+1−0View file
drivers/media/video/zoran/zoran_card.cmodified+1−1View file
drivers/staging/lirc/TODO.lirc_zilogmodified+30−6View file
drivers/staging/lirc/lirc_imon.cmodified+1−0View file
drivers/staging/lirc/lirc_it87.cmodified+1−0View file
drivers/staging/lirc/lirc_parallel.cmodified+14−5View file
drivers/staging/lirc/lirc_sasem.cmodified+1−0View file
drivers/staging/lirc/lirc_serial.cmodified+2−1View file
drivers/staging/lirc/lirc_sir.cmodified+1−0View file
drivers/staging/lirc/lirc_zilog.cmodified+353−297View file
drivers/staging/tm6000/tm6000-video.cmodified+36−10View file
include/media/mt9v011.hadded+17−0View file
include/media/rc-core.hmodified+3−0View file
include/media/saa7146.hmodified+1−1View file
include/media/v4l2-common.hmodified+1−12View file
include/media/v4l2-ctrls.hmodified+5−2View file
include/media/v4l2-subdev.hmodified+18−5View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/DocBook/dvb/dvbapi.xml

View file
diff --git a/Documentation/DocBook/dvb/dvbapi.xml b/Documentation/DocBook/dvb/dvbapi.xml
index e3a97fd..ad8678d 100644
--- a/Documentation/DocBook/dvb/dvbapi.xml
+++ b/Documentation/DocBook/dvb/dvbapi.xml
@@ -28,7 +28,7 @@
<holder>Convergence GmbH</holder>
</copyright>
<copyright>
- <year>2009-2010</year>
+ <year>2009-2011</year>
<holder>Mauro Carvalho Chehab</holder>
</copyright>

Documentation/DocBook/media.tmpl

View file
diff --git a/Documentation/DocBook/media.tmpl b/Documentation/DocBook/media.tmpl
index f11048d..a99088a 100644
--- a/Documentation/DocBook/media.tmpl
+++ b/Documentation/DocBook/media.tmpl
@@ -28,7 +28,7 @@
<title>LINUX MEDIA INFRASTRUCTURE API</title>
<copyright>
- <year>2009-2010</year>
+ <year>2009-2011</year>
<holder>LinuxTV Developers</holder>
</copyright>
@@ -86,7 +86,7 @@ Foundation. A copy of the license is included in the chapter entitled
</author>
</authorgroup>
<copyright>
- <year>2009-2010</year>
+ <year>2009-2011</year>
<holder>Mauro Carvalho Chehab</holder>
</copyright>

Documentation/DocBook/v4l/dev-rds.xml

View file
diff --git a/Documentation/DocBook/v4l/dev-rds.xml b/Documentation/DocBook/v4l/dev-rds.xml
index 360d273..2427f54 100644
--- a/Documentation/DocBook/v4l/dev-rds.xml
+++ b/Documentation/DocBook/v4l/dev-rds.xml
@@ -75,6 +75,7 @@ as follows:</para>
</section>
<section>
+ <title>RDS datastructures</title>
<table frame="none" pgwide="1" id="v4l2-rds-data">
<title>struct
<structname>v4l2_rds_data</structname></title>
@@ -129,10 +130,11 @@ as follows:</para>
<table frame="none" pgwide="1" id="v4l2-rds-block-codes">
<title>Block defines</title>
- <tgroup cols="3">
+ <tgroup cols="4">
<colspec colname="c1" colwidth="1*" />
<colspec colname="c2" colwidth="1*" />
- <colspec colname="c3" colwidth="5*" />
+ <colspec colname="c3" colwidth="1*" />
+ <colspec colname="c4" colwidth="5*" />
<tbody valign="top">
<row>
<entry>V4L2_RDS_BLOCK_MSK</entry>

Documentation/DocBook/v4l/v4l2.xml

View file
diff --git a/Documentation/DocBook/v4l/v4l2.xml b/Documentation/DocBook/v4l/v4l2.xml
index 839e93e..9288af9 100644
--- a/Documentation/DocBook/v4l/v4l2.xml
+++ b/Documentation/DocBook/v4l/v4l2.xml
@@ -100,6 +100,7 @@ Remote Controller chapter.</contrib>
<year>2008</year>
<year>2009</year>
<year>2010</year>
+ <year>2011</year>
<holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin
Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab</holder>
</copyright>
@@ -381,7 +382,7 @@ and discussions on the V4L mailing list.</revremark>
</partinfo>
<title>Video for Linux Two API Specification</title>
- <subtitle>Revision 2.6.33</subtitle>
+ <subtitle>Revision 2.6.38</subtitle>
<chapter id="common">
&sub-common;

Documentation/video4linux/v4l2-controls.txt

View file
diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/video4linux/v4l2-controls.txt
index 8773778..881e7f4 100644
--- a/Documentation/video4linux/v4l2-controls.txt
+++ b/Documentation/video4linux/v4l2-controls.txt
@@ -285,6 +285,9 @@ implement g_volatile_ctrl like this:
The 'new value' union is not used in g_volatile_ctrl. In general controls
that need to implement g_volatile_ctrl are read-only controls.
+Note that if one or more controls in a control cluster are marked as volatile,
+then all the controls in the cluster are seen as volatile.
+
To mark a control as volatile you have to set the is_volatile flag:
ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...);
@@ -462,6 +465,15 @@ pointer to the v4l2_ctrl_ops struct that is used for that cluster.
Obviously, all controls in the cluster array must be initialized to either
a valid control or to NULL.
+In rare cases you might want to know which controls of a cluster actually
+were set explicitly by the user. For this you can check the 'is_new' flag of
+each control. For example, in the case of a volume/mute cluster the 'is_new'
+flag of the mute control would be set if the user called VIDIOC_S_CTRL for
+mute only. If the user would call VIDIOC_S_EXT_CTRLS for both mute and volume
+controls, then the 'is_new' flag would be 1 for both controls.
+
+The 'is_new' flag is always 1 when called from v4l2_ctrl_handler_setup().
+
VIDIOC_LOG_STATUS Support
=========================

drivers/media/common/saa7146_core.c

View file
diff --git a/drivers/media/common/saa7146_core.c b/drivers/media/common/saa7146_core.c
index 982f000..9f47e38 100644
--- a/drivers/media/common/saa7146_core.c
+++ b/drivers/media/common/saa7146_core.c
@@ -452,7 +452,7 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
INFO(("found saa7146 @ mem %p (revision %d, irq %d) (0x%04x,0x%04x).\n", dev->mem, dev->revision, pci->irq, pci->subsystem_vendor, pci->subsystem_device));
dev->ext = ext;
- mutex_init(&dev->lock);
+ mutex_init(&dev->v4l2_lock);
spin_lock_init(&dev->int_slock);
spin_lock_init(&dev->slock);

drivers/media/common/saa7146_fops.c

View file
diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c
index e3fedc6..1bd3dd7 100644
--- a/drivers/media/common/saa7146_fops.c
+++ b/drivers/media/common/saa7146_fops.c
@@ -15,18 +15,15 @@ int saa7146_res_get(struct saa7146_fh *fh, unsigned int bit)
}
/* is it free? */
- mutex_lock(&dev->lock);
if (vv->resources & bit) {
DEB_D(("locked! vv->resources:0x%02x, we want:0x%02x\n",vv->resources,bit));
/* no, someone else uses it */
- mutex_unlock(&dev->lock);
return 0;
}
/* it's free, grab it */
fh->resources |= bit;
vv->resources |= bit;
DEB_D(("res: get 0x%02x, cur:0x%02x\n",bit,vv->resources));
- mutex_unlock(&dev->lock);
return 1;
}
@@ -37,11 +34,9 @@ void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits)
BUG_ON((fh->resources & bits) != bits);
- mutex_lock(&dev->lock);
fh->resources &= ~bits;
vv->resources &= ~bits;
DEB_D(("res: put 0x%02x, cur:0x%02x\n",bits,vv->resources));
- mutex_unlock(&dev->lock);
}
@@ -396,7 +391,7 @@ static const struct v4l2_file_operations video_fops =
.write = fops_write,
.poll = fops_poll,
.mmap = fops_mmap,
- .ioctl = video_ioctl2,
+ .unlocked_ioctl = video_ioctl2,
};
static void vv_callback(struct saa7146_dev *dev, unsigned long status)
@@ -505,6 +500,7 @@ int saa7146_register_device(struct video_device **vid, struct saa7146_dev* dev,
vfd->fops = &video_fops;
vfd->ioctl_ops = &dev->ext_vv_data->ops;
vfd->release = video_device_release;
+ vfd->lock = &dev->v4l2_lock;
vfd->tvnorms = 0;
for (i = 0; i < dev->ext_vv_data->num_stds; i++)
vfd->tvnorms |= dev->ext_vv_data->stds[i].id;

drivers/media/common/saa7146_vbi.c

View file
diff --git a/drivers/media/common/saa7146_vbi.c b/drivers/media/common/saa7146_vbi.c
index 2d4533a..afe8580 100644
--- a/drivers/media/common/saa7146_vbi.c
+++ b/drivers/media/common/saa7146_vbi.c
@@ -412,7 +412,7 @@ static int vbi_open(struct saa7146_dev *dev, struct file *file)
V4L2_BUF_TYPE_VBI_CAPTURE,
V4L2_FIELD_SEQ_TB, // FIXME: does this really work?
sizeof(struct saa7146_buf),
- file, NULL);
+ file, &dev->v4l2_lock);
init_timer(&fh->vbi_read_timeout);
fh->vbi_read_timeout.function = vbi_read_timeout;

drivers/media/common/saa7146_video.c

View file
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c
index 0ac5c61..9aafa4e 100644
--- a/drivers/media/common/saa7146_video.c
+++ b/drivers/media/common/saa7146_video.c
@@ -553,8 +553,6 @@ static int vidioc_s_fbuf(struct file *file, void *fh, struct v4l2_framebuffer *f
}
}
- mutex_lock(&dev->lock);
-
/* ok, accept it */
vv->ov_fb = *fb;
vv->ov_fmt = fmt;
@@ -563,8 +561,6 @@ static int vidioc_s_fbuf(struct file *file, void *fh, struct v4l2_framebuffer *f
vv->ov_fb.fmt.bytesperline = vv->ov_fb.fmt.width * fmt->depth / 8;
DEB_D(("setting bytesperline to %d\n", vv->ov_fb.fmt.bytesperline));
}
-
- mutex_unlock(&dev->lock);
return 0;
}
@@ -649,8 +645,6 @@ static int vidioc_s_ctrl(struct file *file, void *fh, struct v4l2_control *c)
return -EINVAL;
}
- mutex_lock(&dev->lock);
-
switch (ctrl->type) {
case V4L2_CTRL_TYPE_BOOLEAN:
case V4L2_CTRL_TYPE_MENU:
@@ -693,7 +687,6 @@ static int vidioc_s_ctrl(struct file *file, void *fh, struct v4l2_control *c)
/* fixme: we can support changing VFLIP and HFLIP here... */
if (IS_CAPTURE_ACTIVE(fh) != 0) {
DEB_D(("V4L2_CID_HFLIP while active capture.\n"));
- mutex_unlock(&dev->lock);
return -EBUSY;
}
vv->hflip = c->value;
@@ -701,16 +694,13 @@ static int vidioc_s_ctrl(struct file *file, void *fh, struct v4l2_control *c)
case V4L2_CID_VFLIP:
if (IS_CAPTURE_ACTIVE(fh) != 0) {
DEB_D(("V4L2_CID_VFLIP while active capture.\n"));
- mutex_unlock(&dev->lock);
return -EBUSY;
}
vv->vflip = c->value;
break;
default:
- mutex_unlock(&dev->lock);
return -EINVAL;
}
- mutex_unlock(&dev->lock);
if (IS_OVERLAY_ACTIVE(fh) != 0) {
saa7146_stop_preview(fh);
@@ -902,22 +892,18 @@ static int vidioc_s_fmt_vid_overlay(struct file *file, void *__fh, struct v4l2_f
err = vidioc_try_fmt_vid_overlay(file, fh, f);
if (0 != err)
return err;
- mutex_lock(&dev->lock);
fh->ov.win = f->fmt.win;
fh->ov.nclips = f->fmt.win.clipcount;
if (fh->ov.nclips > 16)
fh->ov.nclips = 16;
if (copy_from_user(fh->ov.clips, f->fmt.win.clips,
sizeof(struct v4l2_clip) * fh->ov.nclips)) {
- mutex_unlock(&dev->lock);
return -EFAULT;
}
/* fh->ov.fh is used to indicate that we have valid overlay informations, too */
fh->ov.fh = fh;
- mutex_unlock(&dev->lock);
-
/* check if our current overlay is active */
if (IS_OVERLAY_ACTIVE(fh) != 0) {
saa7146_stop_preview(fh);
@@ -976,8 +962,6 @@ static int vidioc_s_std(struct file *file, void *fh, v4l2_std_id *id)
}
}
- mutex_lock(&dev->lock);
-
for (i = 0; i < dev->ext_vv_data->num_stds; i++)
if (*id & dev->ext_vv_data->stds[i].id)
break;
@@ -988,8 +972,6 @@ static int vidioc_s_std(struct file *file, void *fh, v4l2_std_id *id)
found = 1;
}
- mutex_unlock(&dev->lock);
-
if (vv->ov_suspend != NULL) {
saa7146_start_preview(vv->ov_suspend);
vv->ov_suspend = NULL;
@@ -1354,7 +1336,7 @@ static int video_open(struct saa7146_dev *dev, struct file *file)
V4L2_BUF_TYPE_VIDEO_CAPTURE,
V4L2_FIELD_INTERLACED,
sizeof(struct saa7146_buf),
- file, NULL);
+ file, &dev->v4l2_lock);
return 0;
}

drivers/media/common/tuners/tda8290.c

View file
diff --git a/drivers/media/common/tuners/tda8290.c b/drivers/media/common/tuners/tda8290.c
index c9062ce..bc6a677 100644
--- a/drivers/media/common/tuners/tda8290.c
+++ b/drivers/media/common/tuners/tda8290.c
@@ -95,8 +95,7 @@ static int tda8295_i2c_bridge(struct dvb_frontend *fe, int close)
msleep(20);
} else {
msg = disable;
- tuner_i2c_xfer_send(&priv->i2c_props, msg, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &msg[1], 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props, msg, 1, &msg[1], 1);
buf[2] = msg[1];
buf[2] &= ~0x04;
@@ -233,19 +232,22 @@ static void tda8290_set_params(struct dvb_frontend *fe,
tuner_i2c_xfer_send(&priv->i2c_props, pll_bw_nom, 2);
}
+
tda8290_i2c_bridge(fe, 1);
if (fe->ops.tuner_ops.set_analog_params)
fe->ops.tuner_ops.set_analog_params(fe, params);
for (i = 0; i < 3; i++) {
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_pll_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &pll_stat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_pll_stat, 1, &pll_stat, 1);
if (pll_stat & 0x80) {
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_adc_sat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &adc_sat, 1);
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_agc_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &agc_stat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_adc_sat, 1,
+ &adc_sat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_agc_stat, 1,
+ &agc_stat, 1);
tuner_dbg("tda8290 is locked, AGC: %d\n", agc_stat);
break;
} else {
@@ -259,20 +261,22 @@ static void tda8290_set_params(struct dvb_frontend *fe,
agc_stat, adc_sat, pll_stat & 0x80);
tuner_i2c_xfer_send(&priv->i2c_props, gainset_2, 2);
msleep(100);
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_agc_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &agc_stat, 1);
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_pll_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &pll_stat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_agc_stat, 1, &agc_stat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_pll_stat, 1, &pll_stat, 1);
if ((agc_stat > 115) || !(pll_stat & 0x80)) {
tuner_dbg("adjust gain, step 2. Agc: %d, lock: %d\n",
agc_stat, pll_stat & 0x80);
if (priv->cfg.agcf)
priv->cfg.agcf(fe);
msleep(100);
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_agc_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &agc_stat, 1);
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_pll_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &pll_stat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_agc_stat, 1,
+ &agc_stat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_pll_stat, 1,
+ &pll_stat, 1);
if((agc_stat > 115) || !(pll_stat & 0x80)) {
tuner_dbg("adjust gain, step 3. Agc: %d\n", agc_stat);
tuner_i2c_xfer_send(&priv->i2c_props, adc_head_12, 2);
@@ -284,10 +288,12 @@ static void tda8290_set_params(struct dvb_frontend *fe,
/* l/ l' deadlock? */
if(priv->tda8290_easy_mode & 0x60) {
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_adc_sat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &adc_sat, 1);
- tuner_i2c_xfer_send(&priv->i2c_props, &addr_pll_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &pll_stat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_adc_sat, 1,
+ &adc_sat, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &addr_pll_stat, 1,
+ &pll_stat, 1);
if ((adc_sat > 20) || !(pll_stat & 0x80)) {
tuner_dbg("trying to resolve SECAM L deadlock\n");
tuner_i2c_xfer_send(&priv->i2c_props, agc_rst_on, 2);
@@ -307,8 +313,7 @@ static void tda8295_power(struct dvb_frontend *fe, int enable)
struct tda8290_priv *priv = fe->analog_demod_priv;
unsigned char buf[] = { 0x30, 0x00 }; /* clb_stdbt */
- tuner_i2c_xfer_send(&priv->i2c_props, &buf[0], 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &buf[1], 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props, &buf[0], 1, &buf[1], 1);
if (enable)
buf[1] = 0x01;
@@ -323,8 +328,7 @@ static void tda8295_set_easy_mode(struct dvb_frontend *fe, int enable)
struct tda8290_priv *priv = fe->analog_demod_priv;
unsigned char buf[] = { 0x01, 0x00 };
- tuner_i2c_xfer_send(&priv->i2c_props, &buf[0], 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &buf[1], 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props, &buf[0], 1, &buf[1], 1);
if (enable)
buf[1] = 0x01; /* rising edge sets regs 0x02 - 0x23 */
@@ -353,8 +357,7 @@ static void tda8295_agc1_out(struct dvb_frontend *fe, int enable)
struct tda8290_priv *priv = fe->analog_demod_priv;
unsigned char buf[] = { 0x02, 0x00 }; /* DIV_FUNC */
- tuner_i2c_xfer_send(&priv->i2c_props, &buf[0], 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &buf[1], 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props, &buf[0], 1, &buf[1], 1);
if (enable)
buf[1] &= ~0x40;
@@ -370,10 +373,10 @@ static void tda8295_agc2_out(struct dvb_frontend *fe, int enable)
unsigned char set_gpio_cf[] = { 0x44, 0x00 };
unsigned char set_gpio_val[] = { 0x46, 0x00 };
- tuner_i2c_xfer_send(&priv->i2c_props, &set_gpio_cf[0], 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &set_gpio_cf[1], 1);
- tuner_i2c_xfer_send(&priv->i2c_props, &set_gpio_val[0], 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &set_gpio_val[1], 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &set_gpio_cf[0], 1, &set_gpio_cf[1], 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &set_gpio_val[0], 1, &set_gpio_val[1], 1);
set_gpio_cf[1] &= 0xf0; /* clear GPIO_0 bits 3-0 */
@@ -392,8 +395,7 @@ static int tda8295_has_signal(struct dvb_frontend *fe)
unsigned char hvpll_stat = 0x26;
unsigned char ret;
- tuner_i2c_xfer_send(&priv->i2c_props, &hvpll_stat, 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &ret, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props, &hvpll_stat, 1, &ret, 1);
return (ret & 0x01) ? 65535 : 0;
}
@@ -413,8 +415,8 @@ static void tda8295_set_params(struct dvb_frontend *fe,
tda8295_power(fe, 1);
tda8295_agc1_out(fe, 1);
- tuner_i2c_xfer_send(&priv->i2c_props, &blanking_mode[0], 1);
- tuner_i2c_xfer_recv(&priv->i2c_props, &blanking_mode[1], 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ &blanking_mode[0], 1, &blanking_mode[1], 1);
tda8295_set_video_std(fe);
@@ -447,8 +449,8 @@ static int tda8290_has_signal(struct dvb_frontend *fe)
unsigned char i2c_get_afc[1] = { 0x1B };
unsigned char afc = 0;
- tuner_i2c_xfer_send(&priv->i2c_props, i2c_get_afc, ARRAY_SIZE(i2c_get_afc));
- tuner_i2c_xfer_recv(&priv->i2c_props, &afc, 1);
+ tuner_i2c_xfer_send_recv(&priv->i2c_props,
+ i2c_get_afc, ARRAY_SIZE(i2c_get_afc), &afc, 1);
return (afc & 0x80)? 65535:0;
}
@@ -654,20 +656,26 @@ static int tda829x_find_tuner(struct dvb_frontend *fe)
static int tda8290_probe(struct tuner_i2c_props *i2c_props)
{
#define TDA8290_ID 0x89
- unsigned char tda8290_id[] = { 0x1f, 0x00 };
+ u8 reg = 0x1f, id;
+ struct i2c_msg msg_read[] = {
+ { .addr = 0x4b, .flags = 0, .len = 1, .buf = &reg },
+ { .addr = 0x4b, .flags = I2C_M_RD, .len = 1, .buf = &id },
+ };
/* detect tda8290 */
- tuner_i2c_xfer_send(i2c_props, &tda8290_id[0], 1);
- tuner_i2c_xfer_recv(i2c_props, &tda8290_id[1], 1);
+ if (i2c_transfer(i2c_props->adap, msg_read, 2) != 2) {
+ printk(KERN_WARNING "%s: tda8290 couldn't read register 0x%02x\n",
+ __func__, reg);
+ return -ENODEV;
+ }
- if (tda8290_id[1] == TDA8290_ID) {
+ if (id == TDA8290_ID) {
if (debug)
printk(KERN_DEBUG "%s: tda8290 detected @ %d-%04x\n",
__func__, i2c_adapter_id(i2c_props->adap),
i2c_props->addr);
return 0;
}
-
return -ENODEV;
}
@@ -675,16 +683,23 @@ static int tda8295_probe(struct tuner_i2c_props *i2c_props)
{
#define TDA8295_ID 0x8a
#define TDA8295C2_ID 0x8b
- unsigned char tda8295_id[] = { 0x2f, 0x00 };
+ u8 reg = 0x2f, id;
+ struct i2c_msg msg_read[] = {
+ { .addr = 0x4b, .flags = 0, .len = 1, .buf = &reg },
+ { .addr = 0x4b, .flags = I2C_M_RD, .len = 1, .buf = &id },
+ };
- /* detect tda8295 */
- tuner_i2c_xfer_send(i2c_props, &tda8295_id[0], 1);
- tuner_i2c_xfer_recv(i2c_props, &tda8295_id[1], 1);
+ /* detect tda8290 */
+ if (i2c_transfer(i2c_props->adap, msg_read, 2) != 2) {
+ printk(KERN_WARNING "%s: tda8290 couldn't read register 0x%02x\n",
+ __func__, reg);
+ return -ENODEV;
+ }
- if ((tda8295_id[1] & 0xfe) == TDA8295_ID) {
+ if ((id & 0xfe) == TDA8295_ID) {
if (debug)
printk(KERN_DEBUG "%s: %s detected @ %d-%04x\n",
- __func__, (tda8295_id[1] == TDA8295_ID) ?
+ __func__, (id == TDA8295_ID) ?
"tda8295c1" : "tda8295c2",
i2c_adapter_id(i2c_props->adap),
i2c_props->addr);
@@ -740,9 +755,11 @@ struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe,
sizeof(struct analog_demod_ops));
}
- if ((!(cfg) || (TDA829X_PROBE_TUNER == cfg->probe_tuner)) &&
- (tda829x_find_tuner(fe) < 0))
- goto fail;
+ if (!(cfg) || (TDA829X_PROBE_TUNER == cfg->probe_tuner)) {
+ tda8295_power(fe, 1);
+ if (tda829x_find_tuner(fe) < 0)
+ goto fail;
+ }
switch (priv->ver) {
case TDA8290:
@@ -786,6 +803,8 @@ struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe,
return fe;
fail:
+ memset(&fe->ops.analog_ops, 0, sizeof(struct analog_demod_ops));
+
tda829x_release(fe);
return NULL;
}
@@ -809,8 +828,8 @@ int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr)
int i;
/* rule out tda9887, which would return the same byte repeatedly */
- tuner_i2c_xfer_send(&i2c_props, soft_reset, 1);
- tuner_i2c_xfer_recv(&i2c_props, buf, PROBE_BUFFER_SIZE);
+ tuner_i2c_xfer_send_recv(&i2c_props,
+ soft_reset, 1, buf, PROBE_BUFFER_SIZE);
for (i = 1; i < PROBE_BUFFER_SIZE; i++) {
if (buf[i] != buf[0])
break;
@@ -827,13 +846,12 @@ int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr)
/* fall back to old probing method */
tuner_i2c_xfer_send(&i2c_props, easy_mode_b, 2);
tuner_i2c_xfer_send(&i2c_props, soft_reset, 2);
- tuner_i2c_xfer_send(&i2c_props, &addr_dto_lsb, 1);
- tuner_i2c_xfer_recv(&i2c_props, &data, 1);
+ tuner_i2c_xfer_send_recv(&i2c_props, &addr_dto_lsb, 1, &data, 1);
if (data == 0) {
tuner_i2c_xfer_send(&i2c_props, easy_mode_g, 2);
tuner_i2c_xfer_send(&i2c_props, soft_reset, 2);
- tuner_i2c_xfer_send(&i2c_props, &addr_dto_lsb, 1);
- tuner_i2c_xfer_recv(&i2c_props, &data, 1);
+ tuner_i2c_xfer_send_recv(&i2c_props,
+ &addr_dto_lsb, 1, &data, 1);
if (data == 0x7b) {
return 0;
}

drivers/media/dvb/dvb-usb/dib0700_core.c

View file
diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
index 8ca48f7..98ffb40 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_core.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
@@ -514,8 +514,8 @@ struct dib0700_rc_response {
union {
u16 system16;
struct {
- u8 system;
u8 not_system;
+ u8 system;
};
};
u8 data;
@@ -575,7 +575,7 @@ static void dib0700_rc_urb_completion(struct urb *purb)
if ((poll_reply->system ^ poll_reply->not_system) != 0xff) {
deb_data("NEC extended protocol\n");
/* NEC extended code - 24 bits */
- keycode = poll_reply->system16 << 8 | poll_reply->data;
+ keycode = be16_to_cpu(poll_reply->system16) << 8 | poll_reply->data;
} else {
deb_data("NEC normal protocol\n");

This diff is incomplete. Download the complete patch.

drivers/media/dvb/firewire/firedtv-rc.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/af9013.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/ix2505v.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/frontends/mb86a20s.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/dvb/ttpci/av7110_ca.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/radio-aimslab.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/radio-gemtek-pci.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/media/radio/radio-maxiradio.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/radio-wl1273.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/radio/si470x/radio-si470x-common.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/rc/ene_ir.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/rc/ene_ir.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/rc/imon.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/rc/ir-raw.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/rc/keymaps/rc-dib0700-nec.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/rc/mceusb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/adv7175.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/bt8xx/bttv-cards.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/bt8xx/bttv.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cafe_ccic.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cpia2/cpia2.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cpia2/cpia2_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cpia2/cpia2_v4l.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx18/cx18-driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx18/cx18-driver.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx18/cx18-streams.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx231xx/cx231xx-dvb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/cx25840/cx25840-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/davinci/vpif.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/davinci/vpif.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/davinci/vpif_capture.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/davinci/vpif_capture.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/davinci/vpif_display.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/davinci/vpif_display.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/em28xx/em28xx-cards.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/et61x251/et61x251.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/benq.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/conex.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/cpia1.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/etoms.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/finepix.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/gl860/gl860.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/gspca.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/gspca.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/jeilinj.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/jpeg.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/konica.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/m5602/m5602_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/mars.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/mr97310a.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/ov519.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/ov534.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/ov534_9.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/pac207.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/pac7302.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/pac7311.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sn9c2028.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sn9c20x.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sonixb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sonixj.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/spca1528.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/spca500.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/spca501.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/spca505.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/spca508.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/spca561.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sq905.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sq905c.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sq930x.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/stk014.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/stv0680.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/stv06xx/stv06xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/sunplus.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/t613.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/tv8532.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/vc032x.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/xirlink_cit.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/gspca/zc3xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/hdpvr/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/hdpvr/hdpvr-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/hdpvr/hdpvr-i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/hdpvr/hdpvr-video.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/hdpvr/hdpvr.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/ir-kbd-i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/ivtv/ivtv-i2c.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/mt9v011.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/mt9v011.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/media/video/ov7670.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/pvrusb2/pvrusb2-i2c-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7134/saa7134-cards.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/saa7134/saa7134-dvb.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/sn9c102/sn9c102_devtable.h

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/sr030pc30.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/tda9875.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/media/video/tlg2300/pd-video.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/v4l2-common.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/v4l2-ctrls.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/v4l2-dev.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/v4l2-device.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/v4l2-ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/w9966.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/video/zoran/zoran_card.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/TODO.lirc_zilog

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/lirc_imon.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/lirc_it87.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/lirc_parallel.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/lirc_sasem.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/lirc_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/lirc_sir.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/lirc/lirc_zilog.c

View file

This diff is incomplete. Download the complete patch.

drivers/staging/tm6000/tm6000-video.c

View file

This diff is incomplete. Download the complete patch.

include/media/mt9v011.h

View file

This diff is incomplete. Download the complete patch.

include/media/rc-core.h

View file

This diff is incomplete. Download the complete patch.

include/media/saa7146.h

View file

This diff is incomplete. Download the complete patch.

include/media/v4l2-common.h

View file

This diff is incomplete. Download the complete patch.

include/media/v4l2-ctrls.h

View file

This diff is incomplete. Download the complete patch.

include/media/v4l2-subdev.h

View file

This diff is incomplete. Download the complete patch.