rpms/kernel/devel linux-2.6-v4l-dvb-experimental.patch, NONE, 1.1 config-generic, 1.256, 1.257 kernel.spec, 1.1428, 1.1429 linux-2.6-v4l-dvb-fixes.patch, 1.4, 1.5 linux-2.6-v4l-dvb-update.patch, 1.6, 1.7

Mauro Carvalho Chehab mchehab at fedoraproject.org
Fri Mar 13 14:50:05 UTC 2009


Author: mchehab

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv31945

Modified Files:
	config-generic kernel.spec linux-2.6-v4l-dvb-fixes.patch 
	linux-2.6-v4l-dvb-update.patch 
Added Files:
	linux-2.6-v4l-dvb-experimental.patch 
Log Message:
Updates from linux-next DVB tree. This series includes one fix for some DVB
boards based on zr10353 demod, a new experimental driver (cx231xx), 
a new ATSC frontend driver (LGDT3305) and several other improvements
and linux-next fixes. 

The experimental drivers will now be added on a different patch.

Full list of applied patches: 

V4L/DVB (10908): videobuf-core: also needs a minimal subset of V4L1 header
V4L/DVB (10909): tvmixer: remove last remaining references to this deleted module.
V4L/DVB (10910): videodev2.h: remove deprecated VIDIOC_G_CHIP_IDENT_OLD
V4L/DVB (10912): vivi: fix compile warning.
V4L/DVB (10914): v4l2: fix compile warnings when printing u64 value.
V4L/DVB (10919): tlv320aic23b: use v4l2-i2c-drv.h instead of drv-legacy.h
V4L/DVB (10920): v4l2-ioctl: fix partial-copy code.
V4L/DVB (10921): msp3400: remove obsolete V4L1 code
V4L/DVB (10923): saa7134: fix typo in product name
V4L/DVB (10924): saa7134: enable serial transport streaming interface
V4L/DVB (10925): add support for LG Electronics LGDT3305 ATSC/QAM-B Demodulator
V4L/DVB (10926): saa7134: enable digital tv support for Hauppauge WinTV-HVR1120
V4L/DVB (10927): dib0700: add support for Hauppauge ATSC MiniCard
V4L/DVB (10930): zoran: Unify buffer descriptors
V4L/DVB (10931): zoran: Drop the lock_norm module parameter
V4L/DVB (10932): zoran: Don't frighten users with failed buffer allocation
V4L/DVB (10933): zoran: Pass zoran_fh pointers instead of file pointers
V4L/DVB (10934): zoran: replace functions names in strings with __func__
V4L/DVB (10938): em28xx: Prevent general protection fault on rmmod
V4L/DVB (10939): ir-kbd-i2c: Prevent general protection fault on rmmod
V4L/DVB (10940): saa6588: Prevent general protection fault on rmmod
V4L/DVB (10943): cx88: Prevent general protection fault on rmmod
V4L/DVB (10944): Conceptronic CTVFMI2 PCI Id
V4L/DVB (10945): pwc : fix LED and power setup for first open
V4L/DVB (10946): radio-rtrack2: fix double mutex_unlock
V4L/DVB (10947): Auto-load videodev module when device opened.
V4L/DVB (10948): flexcop-pci: Print a message in case the new stream watchdog detects a problem
V4L/DVB (10949): Add support for Terratec Cinergy HT PCI MKII
V4L/DVB (10950): xc5000: prepare it to be used by cx231xx module
V4L/DVB (10951): xc5000: Fix CodingStyle errors introduced by the last patch
V4L/DVB (10959): radio: remove uaccess include
V4L/DVB (10960): omap24xxcam: don't set vfl_type.
V4L/DVB (10961): radio-terratec: remove linux/delay.h which hadn't been used.
V4L/DVB (10962): fired-avc: fix printk formatting warning.
V4L/DVB (10965): ivtv: bump version
V4L/DVB (10968): lgdt3305: add email address to MODULE_AUTHOR
V4L/DVB (10969): lgdt3305: add missing space in comment
V4L/DVB (10970): lgdt3305: add MODULE_VERSION
V4L/DVB (10972): zl10353: i2c_gate_ctrl bug fix



linux-2.6-v4l-dvb-experimental.patch:

--- NEW FILE linux-2.6-v4l-dvb-experimental.patch ---
Mauro Carvalho Chehab (6):
      V4L/DVB (10953): cx25840: Fix CodingStyle errors introduced by the last patch
      V4L/DVB (10955): cx231xx: CodingStyle automatic fixes with Lindent
      V4L/DVB (10956): cx231xx: First series of manual CodingStyle fixes
      V4L/DVB (10957a): cx231xx: Fix compilation breakage
      V4L/DVB (10958a): cx231xx: Whitespace and Kconfig fixes
      Merge branch 'next' of ../pending

Sri Deevi (4):
      V4L/DVB (10952): cx25840: prepare it to be used by cx231xx module
      V4L/DVB (10954): Add cx231xx USB driver
      V4L/DVB (10957): cx231xx: Fix CodingStyle
      V4L/DVB (10958): Some additional CodingStyle and minor fixes

diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 534a022..27f6397 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -805,6 +805,8 @@ source "drivers/media/video/pvrusb2/Kconfig"
 
 source "drivers/media/video/em28xx/Kconfig"
 
+source "drivers/media/video/cx231xx/Kconfig"
+
 source "drivers/media/video/usbvision/Kconfig"
 
 source "drivers/media/video/usbvideo/Kconfig"
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index 08a0675..99b448e 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -67,6 +67,7 @@ obj-$(CONFIG_VIDEO_MEYE) += meye.o
 obj-$(CONFIG_VIDEO_SAA7134) += saa7134/
 obj-$(CONFIG_VIDEO_CX88) += cx88/
 obj-$(CONFIG_VIDEO_EM28XX) += em28xx/
+obj-$(CONFIG_VIDEO_CX231XX) += cx231xx/
 obj-$(CONFIG_VIDEO_USBVISION) += usbvision/
 obj-$(CONFIG_VIDEO_TVP5150) += tvp5150.o
 obj-$(CONFIG_VIDEO_TVP514X) += tvp514x.o
diff --git a/drivers/media/video/cx231xx/Kconfig b/drivers/media/video/cx231xx/Kconfig
new file mode 100644
index 0000000..aba05d3
--- /dev/null
+++ b/drivers/media/video/cx231xx/Kconfig
@@ -0,0 +1,35 @@
+config VIDEO_CX231XX
+	tristate "Conexant cx231xx USB video capture support"
+	depends on VIDEO_DEV && I2C && INPUT
+	select VIDEO_TUNER
+	select VIDEO_TVEEPROM
+	select VIDEO_IR
+	select VIDEOBUF_VMALLOC
+	select VIDEO_CX25840
+
+       ---help---
+	 This is a video4linux driver for Conexant 231xx USB based TV cards.
+
+	 To compile this driver as a module, choose M here: the
+	 module will be called cx231xx
+
+config VIDEO_CX231XX_ALSA
+	tristate "Conexant Cx231xx ALSA audio module"
+	depends on VIDEO_CX231XX && SND
+	select SND_PCM
+
+	---help---
+	  This is an ALSA driver for Cx231xx USB based TV cards.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called cx231xx-alsa
+
+config VIDEO_CX231XX_DVB
+	tristate "DVB/ATSC Support for Cx231xx based TV cards"
+	depends on VIDEO_CX231XX && DVB_CORE
+	select VIDEOBUF_DVB
+	select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE
+
+	---help---
+	  This adds support for DVB cards based on the
+	  Conexant cx231xx chips.
diff --git a/drivers/media/video/cx231xx/Makefile b/drivers/media/video/cx231xx/Makefile
new file mode 100644
index 0000000..1dad936
--- /dev/null
+++ b/drivers/media/video/cx231xx/Makefile
@@ -0,0 +1,12 @@
+cx231xx-objs     := cx231xx-video.o cx231xx-i2c.o cx231xx-cards.o cx231xx-core.o \
+		    cx231xx-avcore.o cx231xx-pcb-cfg.o cx231xx-vbi.o
+
+obj-$(CONFIG_VIDEO_CX231XX) += cx231xx.o
+obj-$(CONFIG_VIDEO_CX231XX_ALSA) += cx231xx-audio.o
+obj-$(CONFIG_VIDEO_CX231XX_DVB) += cx231xx-dvb.o
+
+EXTRA_CFLAGS += -Idrivers/media/video
+EXTRA_CFLAGS += -Idrivers/media/common/tuners
+EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
+EXTRA_CFLAGS += -Idrivers/media/dvb/frontends
+
diff --git a/drivers/media/video/cx231xx/cx231xx-audio.c b/drivers/media/video/cx231xx/cx231xx-audio.c
new file mode 100644
index 0000000..0027b90
--- /dev/null
+++ b/drivers/media/video/cx231xx/cx231xx-audio.c
@@ -0,0 +1,585 @@
+/*
+ *  Conexant Cx231xx audio extension
+ *
+ *  Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
+ *       Based on em28xx driver
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/usb.h>
+#include <linux/init.h>
+#include <linux/sound.h>
+#include <linux/spinlock.h>
+#include <linux/soundcard.h>
+#include <linux/slab.h>
+#include <linux/vmalloc.h>
+#include <linux/proc_fs.h>
+#include <linux/module.h>
+#include <sound/core.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/info.h>
+#include <sound/initval.h>
+#include <sound/control.h>
+#include <media/v4l2-common.h>
+#include "cx231xx.h"
+
+static int debug;
+module_param(debug, int, 0644);
+MODULE_PARM_DESC(debug, "activates debug info");
+
+#define dprintk(fmt, arg...) do {					\
+		if (debug)						\
+			printk(KERN_INFO "cx231xx-audio %s: " fmt,	\
+				__func__, ##arg); 			\
+	} while (0)
+
+static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
+
+static int cx231xx_isoc_audio_deinit(struct cx231xx *dev)
+{
+	int i;
+
+	dprintk("Stopping isoc\n");
+
+	for (i = 0; i < CX231XX_AUDIO_BUFS; i++) {
+		if (dev->adev.urb[i]) {
+			if (!irqs_disabled())
+				usb_kill_urb(dev->adev.urb[i]);
+			else
+				usb_unlink_urb(dev->adev.urb[i]);
+
+			usb_free_urb(dev->adev.urb[i]);
+			dev->adev.urb[i] = NULL;
+
+			kfree(dev->adev.transfer_buffer[i]);
+			dev->adev.transfer_buffer[i] = NULL;
+		}
+	}
+
+	return 0;
+}
+
+static void cx231xx_audio_isocirq(struct urb *urb)
+{
+	struct cx231xx *dev = urb->context;
+	int i;
+	unsigned int oldptr;
+	int period_elapsed = 0;
+	int status;
+	unsigned char *cp;
+	unsigned int stride;
+	struct snd_pcm_substream *substream;
+	struct snd_pcm_runtime *runtime;
+
+	switch (urb->status) {
+	case 0:		/* success */
+	case -ETIMEDOUT:	/* NAK */
+		break;
+	case -ECONNRESET:	/* kill */
+	case -ENOENT:
[...14228 lines suppressed...]
-
-		v4l_dbg(1, cx25840_debug, client, "hblank %i, hactive %i, "
-			"vblank %i, vactive %i, vblank656 %i, src_dec %i, "
-			"burst 0x%02x, luma_lpf %i, uv_lpf %i, comb 0x%02x, "
-			"sc 0x%06x\n",
-			hblank, hactive, vblank, vactive, vblank656,
-			src_decimation, burst, luma_lpf, uv_lpf, comb, sc);
+			"PLL regs = int: %u, frac: %u, post: %u\n",
+			pll_int, pll_frac, pll_post);
+
+		if (pll_post) {
+			int fin, fsc;
+			int pll = (28636363L * ((((u64)pll_int) << 25L) + pll_frac)) >> 25L;
+
+			pll /= pll_post;
+			v4l_dbg(1, cx25840_debug, client, "PLL = %d.%06d MHz\n",
+					pll / 1000000, pll % 1000000);
+			v4l_dbg(1, cx25840_debug, client, "PLL/8 = %d.%06d MHz\n",
+					pll / 8000000, (pll / 8) % 1000000);
+
+			fin = ((u64)src_decimation * pll) >> 12;
+			v4l_dbg(1, cx25840_debug, client,
+					"ADC Sampling freq = %d.%06d MHz\n",
+					fin / 1000000, fin % 1000000);
+
+			fsc = (((u64)sc) * pll) >> 24L;
+			v4l_dbg(1, cx25840_debug, client,
+					"Chroma sub-carrier freq = %d.%06d MHz\n",
+					fsc / 1000000, fsc % 1000000);
+
+			v4l_dbg(1, cx25840_debug, client, "hblank %i, hactive %i, "
+				"vblank %i, vactive %i, vblank656 %i, src_dec %i, "
+				"burst 0x%02x, luma_lpf %i, uv_lpf %i, comb 0x%02x, "
+				"sc 0x%06x\n",
+				hblank, hactive, vblank, vactive, vblank656,
+				src_decimation, burst, luma_lpf, uv_lpf, comb, sc);
+		}
 	}
 
 	/* Sets horizontal blanking delay and active lines */
@@ -599,7 +672,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
 	 * configuration in reg (for the cx23885) so we have no
 	 * need to attempt to flip bits for earlier av decoders.
 	 */
-	if (!state->is_cx23885) {
+	if (!state->is_cx23885 && !state->is_cx231xx) {
 		switch (aud_input) {
 		case CX25840_AUDIO_SERIAL:
 			/* do nothing, use serial audio input */
@@ -622,7 +695,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
 	/* Set INPUT_MODE to Composite (0) or S-Video (1) */
 	cx25840_and_or(client, 0x401, ~0x6, is_composite ? 0 : 0x02);
 
-	if (!state->is_cx23885) {
+	if (!state->is_cx23885 && !state->is_cx231xx) {
 		/* Set CH_SEL_ADC2 to 1 if input comes from CH3 */
 		cx25840_and_or(client, 0x102, ~0x2, (reg & 0x80) == 0 ? 2 : 0);
 		/* Set DUAL_MODE_ADC2 to 1 if input comes from both CH2&CH3 */
@@ -662,6 +735,19 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
 		 */
 		cx25840_write(client, 0x918, 0xa0);
 		cx25840_write(client, 0x919, 0x01);
+	} else if (state->is_cx231xx) {
+		/* Audio channel 1 src : Parallel 1 */
+		cx25840_write(client, 0x124, 0x03);
+
+		/* I2S_IN_CTL: I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1 */
+		cx25840_write(client, 0x914, 0xa0);
+
+		/* I2S_OUT_CTL:
+		 * I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1
+		 * I2S_OUT_MASTER_MODE = Master
+		 */
+		cx25840_write(client, 0x918, 0xa0);
+		cx25840_write(client, 0x919, 0x01);
 	}
 
 	return 0;
@@ -1123,6 +1209,8 @@ static int cx25840_init(struct v4l2_subdev *sd, u32 val)
 			cx25836_initialize(client);
 		else if (state->is_cx23885)
 			cx23885_initialize(client);
+		else if (state->is_cx231xx)
+			cx231xx_initialize(client);
 		else
 			cx25840_initialize(client);
 	}
@@ -1178,7 +1266,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
 	v4l_dbg(1, cx25840_debug, client, "%s output\n",
 			enable ? "enable" : "disable");
 	if (enable) {
-		if (state->is_cx23885) {
+		if (state->is_cx23885 || state->is_cx231xx) {
 			u8 v = (cx25840_read(client, 0x421) | 0x0b);
 			cx25840_write(client, 0x421, v);
 		} else {
@@ -1188,7 +1276,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
 					state->is_cx25836 ? 0x04 : 0x07);
 		}
 	} else {
-		if (state->is_cx23885) {
+		if (state->is_cx23885 || state->is_cx231xx) {
 			u8 v = cx25840_read(client, 0x421) & ~(0x0b);
 			cx25840_write(client, 0x421, v);
 		} else {
@@ -1369,6 +1457,8 @@ static int cx25840_reset(struct v4l2_subdev *sd, u32 val)
 		cx25836_initialize(client);
 	else if (state->is_cx23885)
 		cx23885_initialize(client);
+	else if (state->is_cx231xx)
+		cx231xx_initialize(client);
 	else
 		cx25840_initialize(client);
 	return 0;
@@ -1477,10 +1567,12 @@ static int cx25840_probe(struct i2c_client *client,
 	}
 	else if ((device_id & 0xff00) == 0x8400) {
 		id = V4L2_IDENT_CX25840 + ((device_id >> 4) & 0xf);
-	} else if (device_id == 0x0000) {
+	} /* else if (device_id == 0x0000) {
 		id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
-	} else if (device_id == 0x1313) {
+	} */ else if (device_id == 0x1313) {
 		id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
+	} else if ((device_id & 0xfff0) == 0x5A30) {
+		id = V4L2_IDENT_CX25840 + ((device_id >> 4) & 0xf);
 	}
 	else {
 		v4l_dbg(1, cx25840_debug, client, "cx25840 not found\n");
@@ -1503,6 +1595,7 @@ static int cx25840_probe(struct i2c_client *client,
 	state->c = client;
 	state->is_cx25836 = ((device_id & 0xff00) == 0x8300);
 	state->is_cx23885 = (device_id == 0x0000) || (device_id == 0x1313);
+	state->is_cx231xx = (device_id == 0x5a3e);
 	state->vid_input = CX25840_COMPOSITE7;
 	state->aud_input = CX25840_AUDIO8;
 	state->audclk_freq = 48000;
diff --git a/drivers/media/video/cx25840/cx25840-core.h b/drivers/media/video/cx25840/cx25840-core.h
index be05582..93941be 100644
--- a/drivers/media/video/cx25840/cx25840-core.h
+++ b/drivers/media/video/cx25840/cx25840-core.h
@@ -50,6 +50,7 @@ struct cx25840_state {
 	u32 rev;
 	int is_cx25836;
 	int is_cx23885;
+	int is_cx231xx;
 	int is_initialized;
 	wait_queue_head_t fw_wait;    /* wake up when the fw load is finished */
 	struct work_struct fw_work;   /* work entry for fw load */
diff --git a/drivers/media/video/cx25840/cx25840-firmware.c b/drivers/media/video/cx25840/cx25840-firmware.c
index 0b2dceb..0df53b0 100644
--- a/drivers/media/video/cx25840/cx25840-firmware.c
+++ b/drivers/media/video/cx25840/cx25840-firmware.c
@@ -25,6 +25,7 @@
 
 #define FWFILE "v4l-cx25840.fw"
 #define FWFILE_CX23885 "v4l-cx23885-avcore-01.fw"
+#define FWFILE_CX231XX "v4l-cx231xx-avcore-01.fw"
 
 /*
  * Mike Isely <isely at pobox.com> - The FWSEND parameter controls the
@@ -96,9 +97,17 @@ int cx25840_loadfw(struct i2c_client *client)
 	u8 buffer[FWSEND];
 	const u8 *ptr;
 	int size, retval;
+	int MAX_BUF_SIZE = FWSEND;
 
 	if (state->is_cx23885)
 		firmware = FWFILE_CX23885;
+	else if (state->is_cx231xx)
+		firmware = FWFILE_CX231XX;
+
+	if ((state->is_cx231xx) && MAX_BUF_SIZE > 16) {
+		v4l_err(client, " Firmware download size changed to 16 bytes max length\n");
+		MAX_BUF_SIZE = 16;  /* cx231xx cannot accept more than 16 bytes at a time */
+	}
 
 	if (request_firmware(&fw, firmware, FWDEV(client)) != 0) {
 		v4l_err(client, "unable to open firmware %s\n", firmware);
@@ -113,7 +122,7 @@ int cx25840_loadfw(struct i2c_client *client)
 	size = fw->size;
 	ptr = fw->data;
 	while (size > 0) {
-		int len = min(FWSEND - 2, size);
+		int len = min(MAX_BUF_SIZE - 2, size);
 
 		memcpy(buffer + 2, ptr, len);
 
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
index 1ffc23b..51c7106 100644
--- a/include/linux/i2c-id.h
+++ b/include/linux/i2c-id.h
@@ -87,6 +87,7 @@
 #define I2C_HW_B_CX23885	0x010022 /* conexant 23885 based tv cards (bus1) */
 #define I2C_HW_B_AU0828		0x010023 /* auvitek au0828 usb bridge */
 #define I2C_HW_B_HDPVR		0x010024 /* Hauppauge HD PVR */
+#define I2C_HW_B_CX231XX    0x010024 /* Conexant CX231XX USB based cards */
 
 /* --- SGI adapters							*/
 #define I2C_HW_SGI_VINO		0x160000


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.256
retrieving revision 1.257
diff -u -r1.256 -r1.257
--- config-generic	12 Mar 2009 03:23:02 -0000	1.256
+++ config-generic	13 Mar 2009 14:49:31 -0000	1.257
@@ -2230,6 +2230,9 @@
 CONFIG_VIDEO_EM28XX=m
 CONFIG_VIDEO_EM28XX_ALSA=m
 CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
 CONFIG_VIDEO_HEXIUM_ORION=m
 CONFIG_VIDEO_HEXIUM_GEMINI=m
 CONFIG_VIDEO_IVTV=m


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1428
retrieving revision 1.1429
diff -u -r1.1428 -r1.1429
--- kernel.spec	13 Mar 2009 07:41:59 -0000	1.1428
+++ kernel.spec	13 Mar 2009 14:49:31 -0000	1.1429
@@ -679,6 +679,7 @@
 
 Patch2899: linux-2.6-v4l-dvb-fixes.patch
 Patch2900: linux-2.6-v4l-dvb-update.patch
+Patch2901: linux-2.6-v4l-dvb-experimental.patch
 
 # ext4 fixes
 Patch2910: linux-2.6-ext4-extent-header-check-fix.patch
@@ -1219,9 +1220,10 @@
 # silence the ACPI blacklist code
 ApplyPatch linux-2.6-silence-acpi-blacklist.patch
 
-# V4L/DVB updates/fixes
+# V4L/DVB updates/fixes/experimental drivers
 ApplyPatch linux-2.6-v4l-dvb-fixes.patch
 ApplyPatch linux-2.6-v4l-dvb-update.patch
+ApplyPatch linux-2.6-v4l-dvb-experimental.patch
 
 # revert 8b249b6856f16f09b0e5b79ce5f4d435e439b9d6
 ApplyPatch revert-fix-modules_install-via-nfs.patch
@@ -1811,6 +1813,9 @@
 # and build.
 
 %changelog
+* Fri Mar 13 2009 Mauro Carvalho Chehab <mchehab at redhat.com
+- v4l-dvb patches: Add experimental cx231xx, plus more fixes and updates
+
 * Fri Mar 13 2009 Ben Skeggs <bskeggs at redhat.com>
 - drm-nouveau.patch: support needed for multiple xservers
 

linux-2.6-v4l-dvb-fixes.patch:

Index: linux-2.6-v4l-dvb-fixes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-v4l-dvb-fixes.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux-2.6-v4l-dvb-fixes.patch	10 Mar 2009 15:12:17 -0000	1.4
+++ linux-2.6-v4l-dvb-fixes.patch	13 Mar 2009 14:49:31 -0000	1.5
@@ -1,3 +1,6 @@
+Antti Palosaari (1):
+      V4L/DVB (10972): zl10353: i2c_gate_ctrl bug fix
+
 Gregory Lardiere (1):
       V4L/DVB (10789): m5602-s5k4aa: Split up the initial sensor probe in chunks.
 
@@ -7,6 +10,33 @@
 Vitaly Wool (1):
       V4L/DVB (10832): tvaudio: Avoid breakage with tda9874a
 
+diff --git a/drivers/media/dvb/frontends/zl10353.c b/drivers/media/dvb/frontends/zl10353.c
+index 170720b..b150ed3 100644
+--- a/drivers/media/dvb/frontends/zl10353.c
++++ b/drivers/media/dvb/frontends/zl10353.c
+@@ -590,7 +590,7 @@ static int zl10353_i2c_gate_ctrl(struct dvb_frontend* fe, int enable)
+ 	struct zl10353_state *state = fe->demodulator_priv;
+ 	u8 val = 0x0a;
+ 
+-	if (state->config.no_tuner) {
++	if (state->config.disable_i2c_gate_ctrl) {
+ 		/* No tuner attached to the internal I2C bus */
+ 		/* If set enable I2C bridge, the main I2C bus stopped hardly */
+ 		return 0;
+diff --git a/drivers/media/dvb/frontends/zl10353.h b/drivers/media/dvb/frontends/zl10353.h
+index fdbb88f..2287bac 100644
+--- a/drivers/media/dvb/frontends/zl10353.h
++++ b/drivers/media/dvb/frontends/zl10353.h
+@@ -38,6 +38,9 @@ struct zl10353_config
+ 
+ 	/* set if parallel ts output is required */
+ 	int parallel_ts;
++
++	/* set if i2c_gate_ctrl disable is required */
++	u8 disable_i2c_gate_ctrl:1;
+ };
+ 
+ #if defined(CONFIG_DVB_ZL10353) || (defined(CONFIG_DVB_ZL10353_MODULE) && defined(MODULE))
 diff --git a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c b/drivers/media/video/gspca/m5602/m5602_s5k4aa.c
 index e564a61..48892b5 100644
 --- a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c
@@ -24,6 +54,18 @@
  		return -ENODEV;
  
  	if (memcmp(prod_id, expected_prod_id, sizeof(prod_id)))
+diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
+index 0776ecf..b5370b3 100644
+--- a/drivers/media/video/saa7134/saa7134-dvb.c
++++ b/drivers/media/video/saa7134/saa7134-dvb.c
+@@ -860,6 +860,7 @@ static struct zl10353_config behold_h6_config = {
+ 	.demod_address = 0x1e>>1,
+ 	.no_tuner      = 1,
+ 	.parallel_ts   = 1,
++	.disable_i2c_gate_ctrl = 1,
+ };
+ 
+ /* ==================================================================
 diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c
 index 5aeccb3..076ed5b 100644
 --- a/drivers/media/video/tvaudio.c

linux-2.6-v4l-dvb-update.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.6 -r 1.7 linux-2.6-v4l-dvb-update.patch
Index: linux-2.6-v4l-dvb-update.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-v4l-dvb-update.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- linux-2.6-v4l-dvb-update.patch	10 Mar 2009 15:12:17 -0000	1.6
+++ linux-2.6-v4l-dvb-update.patch	13 Mar 2009 14:49:31 -0000	1.7
@@ -7,7 +7,7 @@
       V4L/DVB (10639): gspca - sq905: New subdriver.
       V4L/DVB (10829): Support alternate resolutions for sq905
 
-Alexey Klimov (16):
+Alexey Klimov (18):
       V4L/DVB (10316): v4l/dvb: use usb_make_path in usb-radio drivers
       V4L/DVB (10324): em28xx: Correct mailing list
       V4L/DVB (10335): gspca - all subdrivers: Fix CodingStyle in sd_mod_init function.
@@ -24,6 +24,8 @@
       V4L/DVB (10464): radio-si470x: use usb_make_path in usb-radio drivers
       V4L/DVB (10465): dsbr100: Add few lost mutex locks.
       V4L/DVB (10522): em28xx-audio: replace printk with em28xx_errdev
+      V4L/DVB (10946): radio-rtrack2: fix double mutex_unlock
+      V4L/DVB (10961): radio-terratec: remove linux/delay.h which hadn't been used.
 
 Andy Walls (40):
       V4L/DVB (10274): cx18: Fix a PLL divisor update for the I2S master clock
@@ -120,7 +122,7 @@
       V4L/DVB (10674): soc-camera: camera host driver for i.MX3x SoCs
       V4L/DVB (10675): soc-camera: extend soc_camera_bus_param_compatible with more tests
 
-Hans Verkuil (107):
+Hans Verkuil (118):
       V4L/DVB (10231): v4l2-subdev: add v4l2_ext_controls support
       V4L/DVB (10244): v4l2: replace a few snprintfs with strlcpy
       V4L/DVB (10246): saa6752hs: convert to v4l2_subdev.
@@ -228,6 +230,17 @@
       V4L/DVB (10892): radio-typhoon: convert to v4l2_device.
       V4L/DVB (10893): radio-zoltrix: convert to v4l2_device.
       V4L/DVB (10894): ISA radio drivers: improve kernel log message
+      V4L/DVB (10909): tvmixer: remove last remaining references to this deleted module.
+      V4L/DVB (10910): videodev2.h: remove deprecated VIDIOC_G_CHIP_IDENT_OLD
+      V4L/DVB (10912): vivi: fix compile warning.
+      V4L/DVB (10914): v4l2: fix compile warnings when printing u64 value.
+      V4L/DVB (10919): tlv320aic23b: use v4l2-i2c-drv.h instead of drv-legacy.h
+      V4L/DVB (10920): v4l2-ioctl: fix partial-copy code.
+      V4L/DVB (10921): msp3400: remove obsolete V4L1 code
+      V4L/DVB (10959): radio: remove uaccess include
+      V4L/DVB (10960): omap24xxcam: don't set vfl_type.
+      V4L/DVB (10962): fired-avc: fix printk formatting warning.
+      V4L/DVB (10965): ivtv: bump version
 
 Hans Werner (1):
       V4L/DVB (10392): lnbp21: documentation about the system register
@@ -256,8 +269,14 @@
 Jan Engelhardt (1):
       V4L/DVB (10391): dvb: constify VFTs
 
-Jean Delvare (1):
+Jean Delvare (7):
       V4L/DVB (10867): vino: fold i2c-algo-sgi code into vino.
+      V4L/DVB (10931): zoran: Drop the lock_norm module parameter
+      V4L/DVB (10932): zoran: Don't frighten users with failed buffer allocation
+      V4L/DVB (10938): em28xx: Prevent general protection fault on rmmod
+      V4L/DVB (10939): ir-kbd-i2c: Prevent general protection fault on rmmod
+      V4L/DVB (10940): saa6588: Prevent general protection fault on rmmod
+      V4L/DVB (10943): cx88: Prevent general protection fault on rmmod
 
 Jean-Francois Moine (58):
       V4L/DVB (10332): gspca - main: Version change.
@@ -358,12 +377,16 @@
 Magnus Damm (1):
       V4L/DVB (10304): buf-dma-contig: fix USERPTR free handling
 
-Matthias Schwarzott (3):
+Martin Fuzzey (1):
+      V4L/DVB (10945): pwc : fix LED and power setup for first open
+
+Matthias Schwarzott (4):
       V4L/DVB (10662): remove redundant memset after kzalloc
       V4L/DVB (10822): Add support for Zarlink ZL10036 DVB-S tuner.
       V4L/DVB (10823): saa7134: add DVB support for Avermedia A700 cards
+      V4L/DVB (10948): flexcop-pci: Print a message in case the new stream watchdog detects a problem
 
-Mauro Carvalho Chehab (36):
+Mauro Carvalho Chehab (38):
       V4L/DVB (10211): vivi: Implements 4 inputs on vivi
       V4L/DVB (10298): remove err macro from few usb devices
       V4L/DVB (10305): videobuf-vmalloc: Fix: videobuf memory were never freed
@@ -399,9 +422,11 @@
       V4L/DVB (10897): Fix Kbuild MEDIA_TUNER_CUSTOMIZE dependencies
       V4L/DVB (10870a): remove all references for video_decoder.h
       V4L/DVB (10907): avoid loading the entire videodev.h header on V4L2 drivers
+      V4L/DVB (10951): xc5000: Fix CodingStyle errors introduced by the last patch
+      V4L/DVB (10908): videobuf-core: also needs a minimal subset of V4L1 header
       Merge branch 'next' of ../devel
 
-Michael Krufky (26):
+Michael Krufky (34):
       V4L/DVB (10415): dib0700: add data debug to dib0700_i2c_xfer_new
       V4L/DVB (10416): tveeprom: update to include Hauppauge tuners 151-155
       V4L/DVB (10417): sms1xxx: add missing usb id 2040:2011
@@ -428,6 +453,14 @@
       V4L/DVB (10903): cleanup linewraps in dib3000mc.h
       V4L/DVB (10904): remove dib0070_ctrl_agc_filter from dib0070.h
       V4L/DVB (10905): dib0700: enable DVB_FE_CUSTOMISE for dibcom frontends
+      V4L/DVB (10923): saa7134: fix typo in product name
+      V4L/DVB (10924): saa7134: enable serial transport streaming interface
+      V4L/DVB (10925): add support for LG Electronics LGDT3305 ATSC/QAM-B Demodulator
+      V4L/DVB (10926): saa7134: enable digital tv support for Hauppauge WinTV-HVR1120
+      V4L/DVB (10927): dib0700: add support for Hauppauge ATSC MiniCard
+      V4L/DVB (10968): lgdt3305: add email address to MODULE_AUTHOR
+      V4L/DVB (10969): lgdt3305: add missing space in comment
+      V4L/DVB (10970): lgdt3305: add MODULE_VERSION
 
 Mike Isely (7):
       V4L/DVB (10236): pvrusb2: Stop advertising VBI capability - it isn't there
@@ -467,17 +500,29 @@
       V4L/DVB (10518): em28xx: Fix for em28xx memory leak and function rename
       V4L/DVB (10519): em28xx: Fix for em28xx audio startup
 
+Robert Millan (1):
+      V4L/DVB (10944): Conceptronic CTVFMI2 PCI Id
+
 Roel Kluin (3):
       V4L/DVB (10629): tvp514x: try_count reaches 0, not -1
       V4L/DVB: calibration still successful at 10
       V4L/DVB (10657): [PATCH] V4L: missing parentheses?
 
+Scott James Remnant (1):
+      V4L/DVB (10947): Auto-load videodev module when device opened.
+
 Sebastian Andrzej Siewior (1):
       V4L/DVB (10655): tvp514x: make the module aware of rich people
 
 Sergio Aguirre (1):
       V4L/DVB (10575): V4L2: Add COLORFX user control
 
+Sri Deevi (1):
+      V4L/DVB (10950): xc5000: prepare it to be used by cx231xx module
+
+Stephan Wienczny (1):
+      V4L/DVB (10949): Add support for Terratec Cinergy HT PCI MKII
+
 Thierry MERLE (5):
       V4L/DVB (10306): usbvision: use usb_make_path to report bus info
       V4L/DVB (10307): em28xx: use usb_make_path to report bus info
@@ -496,7 +541,7 @@
       V4L/DVB (10531): Code rearrangements in preparation for other report types
       V4L/DVB (10534): Output HW/SW version from scratchpad
 
-Trent Piepho (25):
+Trent Piepho (28):
       V4L/DVB (10558): bttv: norm value should be unsigned
       V4L/DVB (10559): bttv: Fix TDA9880 norm setting code
       V4L/DVB (10560): bttv: make tuner card info more consistent
@@ -522,6 +567,9 @@
       V4L/DVB (10819): gspca: Don't need to zero ioctl parameter fields
       V4L/DVB (10820): meye: Don't need to zero ioctl parameter fields
       V4L/DVB (10848): zoran: Change first argument to zoran_v4l2_buffer_status
+      V4L/DVB (10930): zoran: Unify buffer descriptors
+      V4L/DVB (10933): zoran: Pass zoran_fh pointers instead of file pointers
+      V4L/DVB (10934): zoran: replace functions names in strings with __func__
 
 Uri Shkolnik (2):
       V4L/DVB (10748): sms1xxx: restore smsusb_driver.name to smsusb
@@ -568,9 +616,18 @@
  'f'	00-1F	linux/ext2_fs.h
  'h'	00-7F				Charon filesystem
 diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv
-index 0d93fa1..1da2c62 100644
+index 0d93fa1..e177504 100644
 --- a/Documentation/video4linux/CARDLIST.bttv
 +++ b/Documentation/video4linux/CARDLIST.bttv
+@@ -135,7 +135,7 @@
+ 134 -> Adlink RTV24
+ 135 -> DViCO FusionHDTV 5 Lite                             [18ac:d500]
+ 136 -> Acorp Y878F                                         [9511:1540]
+-137 -> Conceptronic CTVFMi v2
++137 -> Conceptronic CTVFMi v2                              [036e:109e]
+ 138 -> Prolink Pixelview PV-BT878P+ (Rev.2E)
+ 139 -> Prolink PixelView PlayTV MPEG2 PV-M4900
+ 140 -> Osprey 440                                          [0070:ff07]
 @@ -154,3 +154,6 @@
  153 -> PHYTEC VD-012 (bt878)
  154 -> PHYTEC VD-012-X1 (bt878)
@@ -590,6 +647,15 @@
 + 15 -> TeVii S470                                          [d470:9022]
 + 16 -> DVBWorld DVB-S2 2005                                [0001:2005]
 + 17 -> NetUP Dual DVB-S2 CI                                [1b55:2a2c]
+diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
+index 0d08f1e..71e9db0 100644
+--- a/Documentation/video4linux/CARDLIST.cx88
++++ b/Documentation/video4linux/CARDLIST.cx88
+@@ -77,3 +77,4 @@
+  76 -> SATTRADE ST4200 DVB-S/S2                            [b200:4200]
+  77 -> TBS 8910 DVB-S                                      [8910:8888]
+  78 -> Prof 6200 DVB-S                                     [b022:3022]
++ 79 -> Terratec Cinergy HT PCI MKII                        [153b:1177]
 diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
 index 75bded8..78d0a6e 100644
[...11971 lines suppressed...]
+ 				if (size == 0)
+ 					break;
+-				if (le32_to_cpu(fh->jpg_buffers.buffer[i].
++				if (le32_to_cpu(fh->buffers.buffer[i].jpg.
+ 				    frag_tab[2 * j + 1]) & 1)
+ 					break;	/* was last fragment */
  			}
+-			fh->jpg_buffers.buffer[i].map = map;
++			fh->buffers.buffer[i].map = map;
+ 			if (size == 0)
+ 				break;
+ 
+ 		}
+-	jpg_mmap_unlock_and_return:
+-		mutex_unlock(&zr->resource_lock);
+-
+-		break;
+-
+-	case ZORAN_MAP_MODE_RAW:
+-
+-		mutex_lock(&zr->resource_lock);
+-
+-		/* Map the V4L buffers */
+-		if (!fh->v4l_buffers.allocated) {
+-			dprintk(1,
+-				KERN_ERR
+-				"%s: zoran_mmap(V4L) - buffers not yet allocated\n",
+-				ZR_DEVNAME(zr));
+-			res = -ENOMEM;
+-			goto v4l_mmap_unlock_and_return;
+-		}
+-
+-		first = offset / fh->v4l_buffers.buffer_size;
+-		last = first - 1 + size / fh->v4l_buffers.buffer_size;
+-		if (offset % fh->v4l_buffers.buffer_size != 0 ||
+-		    size % fh->v4l_buffers.buffer_size != 0 || first < 0 ||
+-		    last < 0 || first >= fh->v4l_buffers.num_buffers ||
+-		    last >= fh->v4l_buffers.buffer_size) {
+-			dprintk(1,
+-				KERN_ERR
+-				"%s: mmap(V4L) - offset=%lu or size=%lu invalid for bufsize=%d and numbufs=%d\n",
+-				ZR_DEVNAME(zr), offset, size,
+-				fh->v4l_buffers.buffer_size,
+-				fh->v4l_buffers.num_buffers);
+-			res = -EINVAL;
+-			goto v4l_mmap_unlock_and_return;
+-		}
+-		for (i = first; i <= last; i++) {
+-			if (fh->v4l_buffers.buffer[i].map) {
+-				dprintk(1,
+-					KERN_ERR
+-					"%s: mmap(V4L) - buffer %d already mapped\n",
+-					ZR_DEVNAME(zr), i);
+-				res = -EBUSY;
+-				goto v4l_mmap_unlock_and_return;
+-			}
+-		}
+-
+-		/* map these buffers (v4l_buffers[i]) */
+-		map = kmalloc(sizeof(struct zoran_mapping), GFP_KERNEL);
+-		if (!map) {
+-			res = -ENOMEM;
+-			goto v4l_mmap_unlock_and_return;
+-		}
+-		map->file = file;
+-		map->count = 1;
+-
+-		vma->vm_ops = &zoran_vm_ops;
+-		vma->vm_flags |= VM_DONTEXPAND;
+-		vma->vm_private_data = map;
+-
+-		for (i = first; i <= last; i++) {
+-			todo = size;
+-			if (todo > fh->v4l_buffers.buffer_size)
+-				todo = fh->v4l_buffers.buffer_size;
+-			page = fh->v4l_buffers.buffer[i].fbuffer_phys;
+-			if (remap_pfn_range(vma, start, page >> PAGE_SHIFT,
+-							todo, PAGE_SHARED)) {
+-				dprintk(1,
+-					KERN_ERR
+-					"%s: zoran_mmap(V4L)i - remap_pfn_range failed\n",
+-					ZR_DEVNAME(zr));
+-				res = -EAGAIN;
+-				goto v4l_mmap_unlock_and_return;
+-			}
+-			size -= todo;
+-			start += todo;
+-			fh->v4l_buffers.buffer[i].map = map;
+-			if (size == 0)
+-				break;
+-		}
+-	v4l_mmap_unlock_and_return:
+-		mutex_unlock(&zr->resource_lock);
+-
+-		break;
+-
+-	default:
+-		dprintk(1,
+-			KERN_ERR
+-			"%s: zoran_mmap() - internal error - unknown map mode %d\n",
+-			ZR_DEVNAME(zr), fh->map_mode);
+-		break;
+ 	}
  
-@@ -4582,11 +3530,56 @@ zoran_mmap (struct file           *file,
++mmap_unlock_and_return:
++	mutex_unlock(&zr->resource_lock);
++
  	return 0;
  }
  
@@ -80713,7 +84645,7 @@
  	.read = zoran_read,
  	.write = zoran_write,
  	.mmap = zoran_mmap,
-@@ -4596,7 +3589,9 @@ static const struct v4l2_file_operations zoran_fops = {
+@@ -4596,7 +3397,9 @@ static const struct v4l2_file_operations zoran_fops = {
  struct video_device zoran_template __devinitdata = {
  	.name = ZORAN_NAME,
  	.fops = &zoran_fops,
@@ -80935,7 +84867,7 @@
  #endif /* __LINUX_VIDEODEV_H */
  
 diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
-index 5571dbe..11b8b3e 100644
+index 5571dbe..78ba075 100644
 --- a/include/linux/videodev2.h
 +++ b/include/linux/videodev2.h
 @@ -344,6 +344,7 @@ struct v4l2_pix_format {
@@ -80971,6 +84903,30 @@
  
  /*  MPEG-class control IDs defined by V4L2 */
  #define V4L2_CID_MPEG_BASE 			(V4L2_CTRL_CLASS_MPEG | 0x900)
+@@ -1403,14 +1412,6 @@ struct v4l2_dbg_chip_ident {
+ 	__u32 revision;    /* chip revision, chip specific */
+ } __attribute__ ((packed));
+ 
+-/* VIDIOC_G_CHIP_IDENT_OLD: Deprecated, do not use */
+-struct v4l2_chip_ident_old {
+-	__u32 match_type;  /* Match type */
+-	__u32 match_chip;  /* Match this chip, meaning determined by match_type */
+-	__u32 ident;       /* chip identifier as specified in <media/v4l2-chip-ident.h> */
+-	__u32 revision;    /* chip revision, chip specific */
+-};
+-
+ /*
+  *	I O C T L   C O D E S   F O R   V I D E O   D E V I C E S
+  *
+@@ -1488,8 +1489,6 @@ struct v4l2_chip_ident_old {
+ /* Experimental, meant for debugging, testing and internal use.
+    Never use this ioctl in applications! */
+ #define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident)
+-/* This is deprecated and will go away in 2.6.30 */
+-#define VIDIOC_G_CHIP_IDENT_OLD _IOWR('V', 81, struct v4l2_chip_ident_old)
+ #endif
+ 
+ #define VIDIOC_S_HW_FREQ_SEEK	 _IOW('V', 82, struct v4l2_hw_freq_seek)
 diff --git a/include/media/cx2341x.h b/include/media/cx2341x.h
 index 9ec4d58..9ebe855 100644
 --- a/include/media/cx2341x.h
@@ -81048,6 +85004,20 @@
  #endif
  
  /*
+diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h
+index 00fa57e..07963d7 100644
+--- a/include/media/ir-kbd-i2c.h
++++ b/include/media/ir-kbd-i2c.h
+@@ -14,8 +14,7 @@ struct IR_i2c {
+ 	/* Used to avoid fast repeating */
+ 	unsigned char          old;
+ 
+-	struct work_struct     work;
+-	struct timer_list      timer;
++	struct delayed_work    work;
+ 	char                   phys[32];
+ 	int                    (*get_key)(struct IR_i2c*, u32*, u32*);
+ };
 diff --git a/include/media/ov772x.h b/include/media/ov772x.h
 index e391d55..57db48d 100644
 --- a/include/media/ov772x.h
@@ -81495,6 +85465,18 @@
  	sd->name[0] = '\0';
  	sd->grp_id = 0;
  	sd->priv = NULL;
+diff --git a/include/media/videobuf-core.h b/include/media/videobuf-core.h
+index 874f134..1c5946c 100644
+--- a/include/media/videobuf-core.h
++++ b/include/media/videobuf-core.h
+@@ -18,6 +18,7 @@
+ 
+ #include <linux/poll.h>
+ #ifdef CONFIG_VIDEO_V4L1_COMPAT
++#define __MIN_V4L1
+ #include <linux/videodev.h>
+ #endif
+ #include <linux/videodev2.h>
 diff --git a/include/sound/tea575x-tuner.h b/include/sound/tea575x-tuner.h
 index 426899e..5718a02 100644
 --- a/include/sound/tea575x-tuner.h




More information about the fedora-extras-commits mailing list