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