rpms/kernel/devel config-generic, 1.264, 1.265 kernel.spec, 1.1469, 1.1470 linux-2.6-v4l-dvb-experimental.patch, 1.4, 1.5 linux-2.6-v4l-dvb-fixes.patch, 1.8, 1.9 linux-2.6-v4l-dvb-update.patch, 1.12, 1.13
Mauro Carvalho Chehab
mchehab at fedoraproject.org
Thu Mar 26 08:26:31 UTC 2009
Author: mchehab
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15887
Modified Files:
config-generic kernel.spec
linux-2.6-v4l-dvb-experimental.patch
linux-2.6-v4l-dvb-fixes.patch linux-2.6-v4l-dvb-update.patch
Log Message:
This patch moves all stuff that will be sent soon upstream into
linux-2.6-v4l-dvb-fixes.patch. With this, it would be easier to solve
upstream merge conflict.
Also, adds two new drivers:
- gspca sq905c sub driver;
- a driver for Intel ce6230/ce6231 dvb chipset.
Those are the linux-next changesets that are added on this patch. Most
of those are the driver conversion to the v4l2 subdev model.
V4L/DVB (10982): cx231xx: fix compile warning
V4L/DVB (10989): cx25840: cx23885 detection was broken
V4L/DVB (11038): Fix the issue with audio module & correction of Names
V4L/DVB (11128): cx231xx: convert the calls to subdev format
V4L/DVB (11129): cx231xx: Use generic names for each device block
V4L/DVB (11130): cx231xx: fix an inverted logic at vidioc_streamoff
V4L/DVB (11131): cx231xx: avoid trying to access unfilled dev struct
V4L/DVB (11132): cx231xx: usb probe cleanups
V4L/DVB (11133): cx231xx: don't print pcb config debug messages by default
V4L/DVB (11134): cx231xx: dmesg cleanup
V4L/DVB (11135): cx231xx: use usb_make_path() for bus_info
V4L/DVB (11154): pvrusb2: Split i2c module handling from i2c adapter
V4L/DVB (11155): pvrusb2: Set up v4l2_device instance
V4L/DVB (11156): pvrusb2: Changes to further isolate old i2c layer
V4L/DVB (11157): pvrusb2: whitespace trivial tweaks
V4L/DVB (11158): pvrusb2: New device attribute mechanism to specify sub-devices
V4L/DVB (11159): pvrusb2: Providing means to stop tracking an old i2c module
V4L/DVB (11160): pvrusb2: whitespace tweaks
V4L/DVB (11161): pvrusb2: Set i2c autoprobing to be off by default
V4L/DVB (11162): pvrusb2: Tie up loose ends with v4l2-subdev setup
V4L/DVB (11163): pvrusb2: Lay foundation for triggering sub-device updates
V4L/DVB (11164): pvrusb2: Tie-in sub-device log requests
V4L/DVB (11165): pvrusb2: Tie in debug register access to sub-devices
V4L/DVB (11166): pvrusb2: Implement status fetching from sub-devices
V4L/DVB (11167): pvrusb2: Tie in various v4l2 operations into the sub-device mechanism
V4L/DVB (11168): pvrusb2: Define value for a null sub-device ID
V4L/DVB (11169): pvrusb2: Note who our video decoder sub-device is, and set it up
V4L/DVB (11170): pvrusb2: Clean-up / placeholders inserted for additional development
V4L/DVB (11171): pvrusb2: Tie in sub-device decoder start/stop
V4L/DVB (11172): pvrusb2: Cause overall initialization to fail if sub-driver(s) fail
V4L/DVB (11173): pvrusb2: Fix backwards function header comments
V4L/DVB (11174): pvrusb2: Implement reporting of connected sub-devices
V4L/DVB (11175): pvrusb2: Implement sub-device specific update framework
V4L/DVB (11176): pvrusb2: Tie in wm8775 sub-device handling
V4L/DVB (11177): pvrusb2: Tie in saa7115 sub-device handling
V4L/DVB (11178): pvrusb2: Make audio sample rate update into a sub-device broadcast
V4L/DVB (11179): pvrusb2: make sub-device specific update function names uniform
V4L/DVB (11180): pvrusb2: Tie in msp3400 sub-device support
V4L/DVB (11181): pvrusb2: Fix silly 80 column issue
V4L/DVB (11182): pvrusb2: Tie in cx25840 sub-device support
V4L/DVB (11183): pvrusb2: Implement more sub-device loading trace and improve error handling
V4L/DVB (11184): pvrusb2: Define default i2c address for wm8775 sub-device
V4L/DVB (11185): pvrusb2: Fix uninitialized counter
V4L/DVB (11186): pvrusb2: Fix bugs involved in listing of sub-devices
V4L/DVB (11187): pvrusb2: Allow sub-devices to insert correctly
V4L/DVB (11188): pvrusb2: Sub-device update must happen BEFORE state dirty bits are cleared
V4L/DVB (11189): pvrusb2: Deal with space-after-comma coding style idiocy
V4L/DVB (11190): pvrusb2: Broadcast tuner type change to sub-devices
V4L/DVB (11191): pvrusb2: Define default I2C address for cx25840 sub-device
V4L/DVB (11192): pvrusb2: Implement trace print for stream on / off action
V4L/DVB (11193): pvrusb2: Correct some trace print inaccuracies
V4L/DVB (11194): pvrusb2: Implement mechanism to force a full sub-device update
V4L/DVB (11195): pvrusb2: Issue required core init broadcast to all sub-devices
V4L/DVB (11196): pvrusb2: Define default I2C addresses for msp3400 and saa7115 sub-devices
V4L/DVB (11197): pvrusb2: Fix incorrectly named sub-device ID
V4L/DVB (11198): pvrusb2: Define default I2C address for CS53L32A sub-device
V4L/DVB (11199): pvrusb2: Convert all device definitions to use new sub-device declarations
V4L/DVB (11200): pvrusb2: Make a bunch of dvb config structures const (trivial)
V4L/DVB (11201): pvrusb2: Fix space-after-comma idiocy
V4L/DVB (11202): pvrusb2: Fix slightly mis-leading header in debug interface output
V4L/DVB (11203): pvrusb2: Implement better reporting on attached sub-devices
V4L/DVB (11204): pvrusb2: Remove old i2c layer; we use v4l2-subdev now
V4L/DVB (11205): pvrusb2: Remove ancient IVTV specific ioctl functions
V4L/DVB (11206): pvrusb2: Add sub-device for demod
V4L/DVB (11207): pvrusb2: Add composite and s-video input support for OnAir devices
V4L/DVB (11208): pvrusb2: Use v4l2_device_disconnect()
V4L/DVB (11209): gspca - vc032x: New sensor mi1320_soc and webcam 15b8:6001 added.
V4L/DVB (11211): gspca - vc032x: Simplify the i2c write function.
V4L/DVB (11212): gspca - vc032x: Use YVYU format for sensor mi1320_soc.
V4L/DVB (11213): gspca - sq905c: New subdriver.
V4L/DVB (11215): zl10353: add support for Intel CE6230 and Intel CE6231
V4L/DVB (11216): Add driver for Intel CE6230 DVB-T USB2.0
Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.264
retrieving revision 1.265
diff -u -r1.264 -r1.265
--- config-generic 26 Mar 2009 02:11:38 -0000 1.264
+++ config-generic 26 Mar 2009 08:25:58 -0000 1.265
@@ -2350,6 +2350,7 @@
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_TUNER=m
+CONFIG_DVB_USB_CE6230=m
# CONFIG_VIDEO_TUNER_CUSTOMISE is not set
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_PVRUSB2=m
@@ -2739,6 +2740,7 @@
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_ZC3XX=m
CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
CONFIG_USB_IBMCAM=m
CONFIG_USB_KONICAWC=m
CONFIG_USB_OV511=m
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1469
retrieving revision 1.1470
diff -u -r1.1469 -r1.1470
--- kernel.spec 26 Mar 2009 02:11:38 -0000 1.1469
+++ kernel.spec 26 Mar 2009 08:25:58 -0000 1.1470
@@ -1817,6 +1817,12 @@
# and build.
%changelog
+* Thu Mar 26 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
+- Move all 2.6.30 stuff into linux-2.6-v4l-dvb-fixes.patch, in
+ preparation for upstream pull;
+- Added two new drivers: gspca sq905c and DVB Intel ce6230
+- Updated to the latest v4l-dvb drivers.
+
* Wed Mar 25 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
- remove duplicated Cinergy T2 entry at config-generic
linux-2.6-v4l-dvb-experimental.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.4 -r 1.5 linux-2.6-v4l-dvb-experimental.patch
Index: linux-2.6-v4l-dvb-experimental.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-v4l-dvb-experimental.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux-2.6-v4l-dvb-experimental.patch 19 Mar 2009 01:55:33 -0000 1.4
+++ linux-2.6-v4l-dvb-experimental.patch 26 Mar 2009 08:25:58 -0000 1.5
@@ -1,16 +1,28 @@
-Mauro Carvalho Chehab (6):
+Hans Verkuil (2):
+ V4L/DVB (10982): cx231xx: fix compile warning
+ V4L/DVB (10989): cx25840: cx23885 detection was broken
+
+Mauro Carvalho Chehab (11):
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
+ V4L/DVB (11130): cx231xx: fix an inverted logic at vidioc_streamoff
+ V4L/DVB (11131): cx231xx: avoid trying to access unfilled dev struct
+ V4L/DVB (11132): cx231xx: usb probe cleanups
+ V4L/DVB (11133): cx231xx: don't print pcb config debug messages by default
+ V4L/DVB (11134): cx231xx: dmesg cleanup
+ V4L/DVB (11135): cx231xx: use usb_make_path() for bus_info
Merge branch 'next' of ../pending into Fedora
-Sri Deevi (4):
+Sri Deevi (7):
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
+ V4L/DVB (10958): cx231xx: some additional CodingStyle and minor fixes
+ V4L/DVB (11038): Fix the issue with audio module & correction of Names
+ V4L/DVB (11128): cx231xx: convert the calls to subdev format
+ V4L/DVB (11129): cx231xx: Use generic names for each device block
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 3f85b9e..114bf04 100644
@@ -39,18 +51,19 @@
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
+index 0000000..7a6700f
--- /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
++ 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
++ select VIDEO_CX231XX_ALSA
+
+ ---help---
+ This is a video4linux driver for Conexant 231xx USB based TV cards.
@@ -59,36 +72,37 @@
+ module will be called cx231xx
+
+config VIDEO_CX231XX_ALSA
-+ tristate "Conexant Cx231xx ALSA audio module"
-+ depends on VIDEO_CX231XX && SND
-+ select SND_PCM
++ 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.
++ ---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
++ 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.
++ 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
+index 0000000..755dd0c
--- /dev/null
+++ b/drivers/media/video/cx231xx/Makefile
-@@ -0,0 +1,12 @@
+@@ -0,0 +1,14 @@
+cx231xx-objs := cx231xx-video.o cx231xx-i2c.o cx231xx-cards.o cx231xx-core.o \
+ cx231xx-avcore.o cx231xx-pcb-cfg.o cx231xx-vbi.o
+
++cx231xx-alsa-objs := cx231xx-audio.o
++
+obj-$(CONFIG_VIDEO_CX231XX) += cx231xx.o
-+obj-$(CONFIG_VIDEO_CX231XX_ALSA) += cx231xx-audio.o
++obj-$(CONFIG_VIDEO_CX231XX_ALSA) += cx231xx-alsa.o
+obj-$(CONFIG_VIDEO_CX231XX_DVB) += cx231xx-dvb.o
+
+EXTRA_CFLAGS += -Idrivers/media/video
@@ -98,7 +112,7 @@
+
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
+index 0000000..9ab0628
--- /dev/null
+++ b/drivers/media/video/cx231xx/cx231xx-audio.c
@@ -0,0 +1,585 @@
@@ -621,7 +635,7 @@
+ bEndpointAddress);
+
+ adev->num_alt = uif->num_altsetting;
-+ cx231xx_info(": EndPoint Addr 0x%x, Alternate settings: %i\n",
++ cx231xx_info("EndPoint Addr 0x%x, Alternate settings: %i\n",
+ adev->end_point_addr, adev->num_alt);
+ adev->alt_max_pkt_size = kmalloc(32 * adev->num_alt, GFP_KERNEL);
+
@@ -689,10 +703,10 @@
+module_exit(cx231xx_alsa_unregister);
diff --git a/drivers/media/video/cx231xx/cx231xx-avcore.c b/drivers/media/video/cx231xx/cx231xx-avcore.c
new file mode 100644
-index 0000000..226299d
+index 0000000..1be3881
--- /dev/null
+++ b/drivers/media/video/cx231xx/cx231xx-avcore.c
-@@ -0,0 +1,2780 @@
+@@ -0,0 +1,2581 @@
+/*
+ cx231xx_avcore.c - driver for Conexant Cx23100/101/102
+ USB video capture devices
@@ -735,54 +749,77 @@
+#include "cx231xx.h"
+
+/******************************************************************************
-+ * C O L I B R I - B L O C K C O N T R O L functions *
++ -: BLOCK ARRANGEMENT :-
++ I2S block ----------------------|
++ [I2S audio] |
++ |
++ Analog Front End --> Direct IF -|-> Cx25840 --> Audio
++ [video & audio] | [Audio]
++ |
++ |-> Cx25840 --> Video
++ [Video]
++
++*******************************************************************************/
++
++/******************************************************************************
++ * A F E - B L O C K C O N T R O L functions *
++ * [ANALOG FRONT END] *
+ ******************************************************************************/
-+int cx231xx_colibri_init_super_block(struct cx231xx *dev, u32 ref_count)
++static int afe_write_byte(struct cx231xx *dev, u16 saddr, u8 data)
++{
++ return cx231xx_write_i2c_data(dev, AFE_DEVICE_ADDRESS,
++ saddr, 2, data, 1);
++}
++
++static int afe_read_byte(struct cx231xx *dev, u16 saddr, u8 *data)
++{
++ int status;
++ u32 temp = 0;
++
++ status = cx231xx_read_i2c_data(dev, AFE_DEVICE_ADDRESS,
++ saddr, 2, &temp, 1);
++ *data = (u8) temp;
++ return status;
++}
++
++int cx231xx_afe_init_super_block(struct cx231xx *dev, u32 ref_count)
+{
+ int status = 0;
+ u8 temp = 0;
-+ u32 colibri_power_status = 0;
[...3315 lines suppressed...]
+ return 0;
@@ -12853,7 +12587,7 @@
+ return -EINVAL;
+
+ mutex_lock(&dev->lock);
-+ cx231xx_i2c_call_clients(&dev->i2c_bus[1], VIDIOC_S_TUNER, t);
++ call_all(dev, tuner, s_tuner, t);
+ mutex_unlock(&dev->lock);
+
+ return 0;
@@ -12959,8 +12693,7 @@
+
+ /* cx231xx_start_radio(dev); */
+
-+ cx231xx_i2c_call_clients(&dev->i2c_bus[1], AUDC_SET_RADIO,
-+ NULL);
++ call_all(dev, tuner, s_radio);
+ }
+
+ dev->users++;
@@ -13083,8 +12816,7 @@
+ }
+
+ /* Save some power by putting tuner to sleep */
-+ cx231xx_i2c_call_clients(&dev->i2c_bus[1], TUNER_SET_STANDBY,
-+ NULL);
++ call_all(dev, core, s_standby, 0);
+
+ /* do this before setting alternate! */
+ cx231xx_uninit_isoc(dev);
@@ -13298,7 +13030,7 @@
+
+ *vfd = *template;
+ vfd->minor = -1;
-+ vfd->parent = &dev->udev->dev;
++ vfd->v4l2_dev = &dev->v4l2_dev;
+ vfd->release = video_device_release;
+ vfd->debug = video_debug;
+
@@ -13311,8 +13043,6 @@
+{
+ int ret;
+
-+ cx231xx_info("%s()\n", __func__);
-+
+ cx231xx_info("%s: v4l2 driver version %d.%d.%d\n",
+ dev->name,
+ (CX231XX_VERSION_CODE >> 16) & 0xff,
@@ -13400,10 +13130,10 @@
+}
diff --git a/drivers/media/video/cx231xx/cx231xx.h b/drivers/media/video/cx231xx/cx231xx.h
new file mode 100644
-index 0000000..7c2a162
+index 0000000..aa4a23e
--- /dev/null
+++ b/drivers/media/video/cx231xx/cx231xx.h
-@@ -0,0 +1,766 @@
+@@ -0,0 +1,779 @@
+/*
+ cx231xx.h - driver for Conexant Cx23100/101/102 USB video capture devices
+
@@ -13429,11 +13159,15 @@
+#define _CX231XX_H
+
+#include <linux/videodev2.h>
-+#include <media/videobuf-vmalloc.h>
-+
++#include <linux/types.h>
++#include <linux/ioctl.h>
+#include <linux/i2c.h>
+#include <linux/i2c-algo-bit.h>
+#include <linux/mutex.h>
++
++
++#include <media/videobuf-vmalloc.h>
++#include <media/v4l2-device.h>
+#include <media/ir-kbd-i2c.h>
+#if defined(CONFIG_VIDEO_CX231XX_DVB) || \
+ defined(CONFIG_VIDEO_CX231XX_DVB_MODULE)
@@ -13448,9 +13182,9 @@
+#define PWR_SLEEP_INTERVAL 5
+
+/* I2C addresses for control block in Cx231xx */
-+#define Colibri_DEVICE_ADDRESS 0x60
-+#define Flatrion_DEVICE_ADDRESS 0x98
-+#define HAMMERHEAD_I2C_ADDRESS 0x88
++#define AFE_DEVICE_ADDRESS 0x60
++#define I2S_BLK_DEVICE_ADDRESS 0x98
++#define VID_BLK_I2C_ADDRESS 0x88
+#define DIF_USE_BASEBAND 0xFFFFFFFF
+
+/* Boards supported by driver */
@@ -13853,6 +13587,10 @@
+
+ struct cx231xx_fmt *format;
+
++ struct v4l2_device v4l2_dev;
++ struct v4l2_subdev *sd_cx25840;
++ struct v4l2_subdev *sd_tuner;
++
+ struct cx231xx_IR *ir;
+
+ struct list_head devlist;
@@ -13938,9 +13676,9 @@
+ /* Power Modes */
+ int power_mode;
+
-+ /* colibri parameters */
-+ enum AFE_MODE colibri_mode;
-+ u32 colibri_ref_count;
++ /* afe parameters */
++ enum AFE_MODE afe_mode;
++ u32 afe_ref_count;
+
+ /* video related parameters */
+ u32 video_input;
@@ -13950,6 +13688,13 @@
+
+};
+
++#define cx25840_call(cx231xx, o, f, args...) \
++ v4l2_subdev_call(cx231xx->sd_cx25840, o, f, ##args)
++#define tuner_call(cx231xx, o, f, args...) \
++ v4l2_subdev_call(cx231xx->sd_tuner, o, f, ##args)
++#define call_all(dev, o, f, args...) \
++ v4l2_device_call_until_err(&dev->v4l2_dev, 0, o, f, ##args)
++
+struct cx231xx_ops {
+ struct list_head next;
+ char *name;
@@ -13963,8 +13708,6 @@
+int cx231xx_reset_analog_tuner(struct cx231xx *dev);
+
+/* Provided by cx231xx-i2c.c */
-+void cx231xx_i2c_call_clients(struct cx231xx_i2c *bus, unsigned int cmd,
-+ void *arg);
+void cx231xx_do_i2c_scan(struct cx231xx *dev, struct i2c_client *c);
+int cx231xx_i2c_register(struct cx231xx_i2c *bus);
+int cx231xx_i2c_unregister(struct cx231xx_i2c *bus);
@@ -13981,21 +13724,21 @@
+ u16 saddr, u32 mask, u32 value);
+u32 cx231xx_set_field(u32 field_mask, u32 data);
+
-+/* Colibri related functions */
-+int cx231xx_colibri_init_super_block(struct cx231xx *dev, u32 ref_count);
-+int cx231xx_colibri_init_channels(struct cx231xx *dev);
-+int cx231xx_colibri_setup_AFE_for_baseband(struct cx231xx *dev);
-+int cx231xx_colibri_set_input_mux(struct cx231xx *dev, u32 input_mux);
-+int cx231xx_colibri_set_mode(struct cx231xx *dev, enum AFE_MODE mode);
-+int cx231xx_colibri_update_power_control(struct cx231xx *dev,
++/* afe related functions */
++int cx231xx_afe_init_super_block(struct cx231xx *dev, u32 ref_count);
++int cx231xx_afe_init_channels(struct cx231xx *dev);
++int cx231xx_afe_setup_AFE_for_baseband(struct cx231xx *dev);
++int cx231xx_afe_set_input_mux(struct cx231xx *dev, u32 input_mux);
++int cx231xx_afe_set_mode(struct cx231xx *dev, enum AFE_MODE mode);
++int cx231xx_afe_update_power_control(struct cx231xx *dev,
+ enum AV_MODE avmode);
-+int cx231xx_colibri_adjust_ref_count(struct cx231xx *dev, u32 video_input);
++int cx231xx_afe_adjust_ref_count(struct cx231xx *dev, u32 video_input);
+
-+/* flatiron related functions */
-+int cx231xx_flatiron_initialize(struct cx231xx *dev);
-+int cx231xx_flatiron_update_power_control(struct cx231xx *dev,
++/* i2s block related functions */
++int cx231xx_i2s_blk_initialize(struct cx231xx *dev);
++int cx231xx_i2s_blk_update_power_control(struct cx231xx *dev,
+ enum AV_MODE avmode);
-+int cx231xx_flatiron_set_audio_input(struct cx231xx *dev, u8 audio_input);
++int cx231xx_i2s_blk_set_audio_input(struct cx231xx *dev, u8 audio_input);
+
+/* DIF related functions */
+int cx231xx_dif_configure_C2HH_for_low_IF(struct cx231xx *dev, u32 mode,
@@ -14310,7 +14053,7 @@
static int get_volume(struct i2c_client *client)
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
-index 4a5d5ef..40c9559 100644
+index 4a5d5ef..4c3135f 100644
--- a/drivers/media/video/cx25840/cx25840-core.c
+++ b/drivers/media/video/cx25840/cx25840-core.c
@@ -348,6 +348,77 @@ static void cx23885_initialize(struct i2c_client *client)
@@ -14539,15 +14282,9 @@
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) {
+@@ -1481,6 +1571,8 @@ static int cx25840_probe(struct i2c_client *client,
id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
-- } else if (device_id == 0x1313) {
-+ } */ 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);
linux-2.6-v4l-dvb-fixes.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.8 -r 1.9 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.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- linux-2.6-v4l-dvb-fixes.patch 24 Mar 2009 01:01:16 -0000 1.8
+++ linux-2.6-v4l-dvb-fixes.patch 26 Mar 2009 08:25:59 -0000 1.9
@@ -1,16 +1,105431 @@
-Devin Heitmueller (1):
+Abylay Ospan (5):
+ V4L/DVB (10796): Add init code for NetUP Dual DVB-S2 CI card
+ V4L/DVB (10797): Add EEPROM code for NetUP Dual DVB-S2 CI card.
+ V4L/DVB (10798): Add CIMax(R) SP2 Common Interface code for NetUP Dual DVB-S2 CI card
+ V4L/DVB (11056): Bug fix in NetUP: restore high address lines in CI
+ V4L/DVB (11057): Fix CiMax stability in Netup Dual DVB-S2 CI
+
+Adam Baker (2):
+ V4L/DVB (10639): gspca - sq905: New subdriver.
+ V4L/DVB (10829): Support alternate resolutions for sq905
+
+Alan McIvor (1):
+ V4L/DVB (11124): Add support for ProVideo PV-183 to bttv
+
+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.
+ V4L/DVB (10336): gspca - all subdrivers: Return ret instead of -1 in sd_mod_init.
+ V4L/DVB (10455): radio-mr800: codingstyle cleanups
+ V4L/DVB (10456): radio-mr800: place dev_err instead of dev_warn
+ V4L/DVB (10457): radio-mr800: add more dev_err messages in probe
+ V4L/DVB (10458): radio-mr800: move radio start and stop in one function
+ V4L/DVB (10459): radio-mr800: fix amradio_set_freq
+ V4L/DVB (10460): radio-mr800: add stereo support
+ V4L/DVB (10461): radio-mr800: add few lost mutex locks
+ V4L/DVB (10462): radio-mr800: increase version and add comments
+ V4L/DVB (10463): radio-mr800: fix checking of retval after usb_bulk_msg
+ 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 (43):
+ V4L/DVB (10274): cx18: Fix a PLL divisor update for the I2S master clock
+ V4L/DVB (10275): cx18: Additional debug to display outgoing mailbox parameters
+ V4L/DVB (10276): cx18, cx2341x, ivtv: Add AC-3 audio encoding control to cx18
+ V4L/DVB (10277): cx18, cx2341x: Fix bugs in cx18 AC3 control and comply with V4L2 spec
+ V4L/DVB (10278): cx18: Fix bad audio in first analog capture.
+ V4L/DVB (10279): cx18: Print driver version number when logging status
+ V4L/DVB (10280): cx18: Rename structure members: dev to pci_dev and v4l2dev to video_dev
+ V4L/DVB (10281): cx18: Conversion to new V4L2 framework: use v4l2_device object
+ V4L/DVB (10283): cx18: Call request_module() with proper argument types.
+ V4L/DVB (10284): cx18: Add initial entry for a Leadtek DVR3100 H hybrid card
+ V4L/DVB (10433): cx18: Defer A/V core initialization until a valid cx18_av_cmd arrives
+ V4L/DVB (10434): cx18: Smarter verification of CX18_AUDIO_ENABLE register writes
+ V4L/DVB (10435): cx18: Normalize APU after second APU firmware load
+ V4L/DVB (10436): cx18: Fix coding style of a switch statement per checkpatch.pl
+ V4L/DVB (10437): cx18: Remove an unused spinlock
+ V4L/DVB (10439): cx18: Clean-up and enable sliced VBI handling
+ V4L/DVB (10440): cx18: Fix presentation timestamp (PTS) for VBI buffers
+ V4L/DVB (10441): cx18: Fix VBI ioctl() handling and Raw/Sliced VBI state management
+ V4L/DVB (10442): cx18: Fixes for enforcing when Encoder Raw VBI params can be set
+ V4L/DVB (10443): cx18: Use correct line counts per field in firmware API call
+ V4L/DVB (10444): cx18: Fix sliced VBI PTS and fix artifacts in last raw line of field
+ V4L/DVB (10445): cx18: Process Raw VBI on a whole frame basis; fix VBI buffer size
+ V4L/DVB (10446): cx18: Finally get sliced VBI working - for 525 line 60 Hz systems at least
+ V4L/DVB (10755): cx18: Convert the integrated A/V decoder core interface to a v4l2_subdev
+ V4L/DVB (10756): cx18: Slim down instance handling, build names from v4l2_device.name
+ V4L/DVB (10757): cx18, v4l2-chip-ident: Finish conversion of AV decoder core to v4l2_subdev
+ V4L/DVB (10758): cx18: Convert I2C devices to v4l2_subdevices
+ V4L/DVB (10759): cx18: Convert GPIO connected functions to act as v4l2_subdevices
+ V4L/DVB (10760): cx18: Fix a memory leak of buffers used for sliced VBI insertion
+ V4L/DVB (10761): cx18: Change log lines for internal subdevs and fix tveeprom reads
+ V4L/DVB (10762): cx18: Get rid of unused variables related to video output
+ V4L/DVB (10763): cx18: Increment version number due to significant changes for v4l2_subdevs
+ V4L/DVB (10764): cx18: Disable AC3 controls as the firmware doesn't support AC3
+ V4L/DVB (10850): cx18: Use strlcpy() instead of strncpy() for temp eeprom i2c_client setup
+ V4L/DVB (10851): cx18: Fix a video scaling check problem introduced by sliced VBI changes
+ V4L/DVB (10852): cx18: Include cx18-audio.h in cx18-audio.c to eliminate s-parse warning
+ V4L/DVB (10853): cx18: Fix s-parse warnings and a logic error about extracting the VBI PTS
+ V4L/DVB (10854): cx18: Correct comments about vertical and horizontal blanking timings
+ V4L/DVB (10855): cx18: Fix VPS service register codes
+ V4L/DVB (10856): cx18: Add interlock so sliced VBI insertion only happens for an MPEG PS
+ V4L/DVB (11042): v4l2-api: Add definitions for V4L2_MPEG_STREAM_VBI_FMT_IVTV payloads
+ V4L/DVB (11091): cx18, ivtv: Ensure endianess for linemasks in VBI embedded in MPEG stream
+ V4L/DVB (11092): cx18: Optimize processing of VBI buffers from the capture unit
+
+Antoine Jacquet (1):
+ V4L/DVB (10263): zr364xx: add support for Aiptek DV T300
+
+Antonio Ospite (2):
+ V4L/DVB (10344): gspca - ov534: Disable the Hercules webcams.
+ V4L/DVB (10676): mt9m111: Call icl->reset() on mt9m111_reset().
+
+Antti Palosaari (4):
+ V4L/DVB (10286): af9015: add new USB ID for KWorld DVB-T 395U
+ V4L/DVB (10329): af9015: remove dual_mode module param
+ V4L/DVB (11215): zl10353: add support for Intel CE6230 and Intel CE6231
+ V4L/DVB (11216): Add driver for Intel CE6230 DVB-T USB2.0
+
+Arne Luehrs (1):
+ V4L/DVB (10319): dib0700: enable IR receiver in Nova TD usb stick (52009)
+
+Bruno Christo (1):
+ V4L/DVB (10827): Add support for GeoVision GV-800(S)
+
+Devin Heitmueller (36):
+ V4L/DVB (10320): dib0700: fix i2c error message to make data type clear
+ V4L/DVB (10321): dib0700: Report dib0700_i2c_enumeration failures
+ V4L/DVB (11059): xc5000: fix bug for hybrid xc5000 devices with IF other than 5380
+ V4L/DVB (11060): au8522: rename the au8522.c source file
+ V4L/DVB (11061): au8522: move shared state and common functions into a separate header files
+ V4L/DVB (11062): au8522: fix register read/write high bits
+ V4L/DVB (11063): au8522: power down the digital demod when not in use
+ V4L/DVB (11064): au8522: make use of hybrid framework so analog/digital demod can share state
+ V4L/DVB (11065): au8522: add support for analog side of demodulator
+ V4L/DVB (11066): au0828: add support for analog functionality in bridge
+ V4L/DVB (11067): au0828: workaround a bug in the au0828 i2c handling
+ V4L/DVB (11068): au0828: add analog profile for the HVR-850
+ V4L/DVB (11069): au8522: add mutex protecting use of hybrid state
+ V4L/DVB (11070): au0828: Rework the way the analog video binding occurs
+ V4L/DVB (11071): tveeprom: add the xc5000 tuner to the tveeprom definition
+ V4L/DVB (11072): au0828: advertise only NTSC-M (as opposed to all NTSC standards)
+ V4L/DVB (11073): au0828: disable VBI code since it doesn't yet work
+ V4L/DVB (11074): au0828: fix i2c enumeration bug
+ V4L/DVB (11075): au0828: make register debug lines easier to read
+ V4L/DVB (11076): au0828: make g_chip_ident call work properly
+ V4L/DVB (11077): au0828: properly handle missing analog USB endpoint
+ V4L/DVB (11078): au0828: properly handle non-existent analog inputs
+ V4L/DVB (11079): au0828: fix panic on disconnect if analog initialization failed
+ V4L/DVB (11080): au0828: Convert to use v4l2_device/subdev framework
+ V4L/DVB (11081): au0828: make sure v4l2_device name is unique
+ V4L/DVB (11082): au0828: remove memset calls in v4l2 routines.
+ V4L/DVB (11083): au0828: remove some unneeded braces
+ V4L/DVB (11084): au0828: add entry for undefined input type
+ V4L/DVB (11085): au0828/au8522: Codingstyle fixes
+ V4L/DVB (11086): au0828: rename macro for currently non-function VBI support
+ V4L/DVB (11088): au0828: finish videodev/subdev conversion
+ V4L/DVB (11089): au8522: finish conversion to v4l2_device/subdev
+ V4L/DVB (11139): em28xx: add remote control definition for HVR-900 (both versions)
+ V4L/DVB (11140): usbvision: fix oops on ARM platform when allocating transfer buffers
V4L/DVB (11141): em28xx: fix oops on ARM platform when allocating transfer buffers
+ V4L/DVB (11142): au0828: fix oops on ARM platform when allocating transfer buffers
-diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
-index 94fb1b6..f3c18ed 100644
---- a/drivers/media/video/em28xx/em28xx-core.c
-+++ b/drivers/media/video/em28xx/em28xx-core.c
-@@ -963,7 +963,7 @@ int em28xx_init_isoc(struct em28xx *dev, int max_packets,
- em28xx_irq_callback, dma_q, 1);
+Douglas Kosovic (1):
+ V4L/DVB (10299): bttv: Add support for IVCE-8784 support for V4L2 bttv driver
+
+Douglas Schilling Landgraf (12):
+ V4L/DVB (10323): em28xx: Add entry for GADMEI TVR200
+ V4L/DVB (10326): em28xx: Cleanup: fix bad whitespacing
+ V4L/DVB (10327): em28xx: Add check before call em28xx_isoc_audio_deinit()
+ V4L/DVB (10517): em28xx: remove bad check (changeset a31c595188af)
+ V4L/DVB (10520): em28xx-audio: Add spinlock for trigger
+ V4L/DVB (10521): em28xx-audio: Add lock for users
+ V4L/DVB (10523): em28xx-audio: Add macros EM28XX_START_AUDIO / EM28XX_STOP_AUDIO
+ V4L/DVB (10524): em28xx: Add DVC 101 model to Pinnacle Dazzle description
+ V4L/DVB (10556): em28xx-cards: Add Pinnacle Dazzle Video Creator Plus DVC107 description
+ V4L/DVB (10739): em28xx-cards: remove incorrect entry
+ V4L/DVB (10740): em28xx-cards: Add SIIG AVTuner-PVR board
+ V4L/DVB (10741): em28xx: Add Kaiser Baas Video to DVD maker support
+
+Erik Andren (3):
+ V4L/DVB (10334): gspca - stv06xx: Rework control description.
+ V4L/DVB (10341): gspca - stv06xx: Plug a memory leak in the pb0100 sensor driver.
+ V4L/DVB (10342): gspca - stv06xx: Add ctrl caching to the vv6410.
+
+Erik S. Beiser (1):
+ V4L/DVB (10826): cx88: Add IR support to pcHDTV HD3000 & HD5500
+
+Guennadi Liakhovetski (9):
+ V4L/DVB (10665): soc-camera: add data signal polarity flags to drivers
+ V4L/DVB (10672): sh_mobile_ceu_camera: include NV* formats into the format list only once.
+ V4L/DVB (10673): mt9t031: fix gain and hflip controls, register update, and scaling
+ 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
+ V4L/DVB (11024): soc-camera: separate S_FMT and S_CROP operations
+ V4L/DVB (11025): soc-camera: configure drivers with a default format on open
+ V4L/DVB (11026): sh-mobile-ceu-camera: set field to the value, configured at open()
+ V4L/DVB (11027): soc-camera: configure drivers with a default format at probe time
+
+Hans Verkuil (142):
+ 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.
+ V4L/DVB (10247): saa7134: convert to the new v4l2 framework.
+ V4L/DVB (10249): v4l2-common: added v4l2_i2c_tuner_addrs()
+ V4L/DVB (10251): cx25840: add comments explaining what the init() does.
+ V4L/DVB (10252): v4l2 doc: explain why v4l2_device_unregister_subdev() has to be called.
+ V4L/DVB (10271): saa7146: convert to video_ioctl2.
+ V4L/DVB (10272): av7110: test type field in VIDIOC_G_SLICED_VBI_CAP
+ V4L/DVB (10291): em28xx: fix VIDIOC_G_CTRL when there is no msp34xx device.
+ V4L/DVB (10313): saa7146: fix VIDIOC_ENUMSTD.
[...105052 lines suppressed...]
+- return 0;
+- case VIDIOCSFREQ:
+- if(copy_from_user(&tea->freq, arg, sizeof(tea->freq)))
+- return -EFAULT;
+- snd_tea575x_set_freq(tea);
+- return 0;
+- case VIDIOCGAUDIO:
+- {
+- struct video_audio v;
+- memset(&v, 0, sizeof(v));
+- strcpy(v.name, "Radio");
+- if(copy_to_user(arg,&v, sizeof(v)))
+- return -EFAULT;
++ }
++ return -EINVAL;
++}
++
++static int vidioc_g_ctrl(struct file *file, void *priv,
++ struct v4l2_control *ctrl)
++{
++ struct snd_tea575x *tea = video_drvdata(file);
++
++ switch (ctrl->id) {
++ case V4L2_CID_AUDIO_MUTE:
++ if (tea->ops->mute) {
++ ctrl->value = tea->mute;
+ return 0;
+ }
+- case VIDIOCSAUDIO:
+- {
+- struct video_audio v;
+- if(copy_from_user(&v, arg, sizeof(v)))
+- return -EFAULT;
+- if (tea->ops->mute)
+- tea->ops->mute(tea,
+- (v.flags &
+- VIDEO_AUDIO_MUTE) ? 1 : 0);
+- if(v.audio)
+- return -EINVAL;
++ }
++ return -EINVAL;
++}
++
++static int vidioc_s_ctrl(struct file *file, void *priv,
++ struct v4l2_control *ctrl)
++{
++ struct snd_tea575x *tea = video_drvdata(file);
++
++ switch (ctrl->id) {
++ case V4L2_CID_AUDIO_MUTE:
++ if (tea->ops->mute) {
++ tea->ops->mute(tea, ctrl->value);
++ tea->mute = 1;
+ return 0;
+ }
+- default:
+- return -ENOIOCTLCMD;
+ }
++ return -EINVAL;
++}
++
++static int vidioc_g_input(struct file *filp, void *priv, unsigned int *i)
++{
++ *i = 0;
++ return 0;
+ }
+
+-static void snd_tea575x_release(struct video_device *vfd)
++static int vidioc_s_input(struct file *filp, void *priv, unsigned int i)
+ {
++ if (i != 0)
++ return -EINVAL;
++ return 0;
+ }
+
+ static int snd_tea575x_exclusive_open(struct file *file)
+@@ -189,50 +260,91 @@ static int snd_tea575x_exclusive_release(struct file *file)
+ return 0;
+ }
+
++static const struct v4l2_file_operations tea575x_fops = {
++ .owner = THIS_MODULE,
++ .open = snd_tea575x_exclusive_open,
++ .release = snd_tea575x_exclusive_release,
++ .ioctl = video_ioctl2,
++};
++
++static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {
++ .vidioc_querycap = vidioc_querycap,
++ .vidioc_g_tuner = vidioc_g_tuner,
++ .vidioc_s_tuner = vidioc_s_tuner,
++ .vidioc_g_audio = vidioc_g_audio,
++ .vidioc_s_audio = vidioc_s_audio,
++ .vidioc_g_input = vidioc_g_input,
++ .vidioc_s_input = vidioc_s_input,
++ .vidioc_g_frequency = vidioc_g_frequency,
++ .vidioc_s_frequency = vidioc_s_frequency,
++ .vidioc_queryctrl = vidioc_queryctrl,
++ .vidioc_g_ctrl = vidioc_g_ctrl,
++ .vidioc_s_ctrl = vidioc_s_ctrl,
++};
++
++static struct video_device tea575x_radio = {
++ .name = "tea575x-tuner",
++ .fops = &tea575x_fops,
++ .ioctl_ops = &tea575x_ioctl_ops,
++ .release = video_device_release,
++};
++
+ /*
+ * initialize all the tea575x chips
+ */
+ void snd_tea575x_init(struct snd_tea575x *tea)
+ {
++ int retval;
+ unsigned int val;
++ struct video_device *tea575x_radio_inst;
+
+ val = tea->ops->read(tea);
+ if (val == 0x1ffffff || val == 0) {
+- snd_printk(KERN_ERR "Cannot find TEA575x chip\n");
++ snd_printk(KERN_ERR
++ "tea575x-tuner: Cannot find TEA575x chip\n");
+ return;
+ }
+
+- memset(&tea->vd, 0, sizeof(tea->vd));
+- strcpy(tea->vd.name, tea->tea5759 ? "TEA5759 radio" : "TEA5757 radio");
+- tea->vd.release = snd_tea575x_release;
+- video_set_drvdata(&tea->vd, tea);
+- tea->vd.fops = &tea->fops;
+ tea->in_use = 0;
+- tea->fops.owner = tea->card->module;
+- tea->fops.open = snd_tea575x_exclusive_open;
+- tea->fops.release = snd_tea575x_exclusive_release;
+- tea->fops.ioctl = snd_tea575x_ioctl;
+- if (video_register_device(&tea->vd, VFL_TYPE_RADIO, tea->dev_nr - 1) < 0) {
+- snd_printk(KERN_ERR "unable to register tea575x tuner\n");
++ tea->val = TEA575X_BIT_BAND_FM | TEA575X_BIT_SEARCH_10_40;
++ tea->freq = 90500 * 16; /* 90.5Mhz default */
++
++ tea575x_radio_inst = video_device_alloc();
++ if (tea575x_radio_inst == NULL) {
++ printk(KERN_ERR "tea575x-tuner: not enough memory\n");
+ return;
+ }
+- tea->vd_registered = 1;
+
+- tea->val = TEA575X_BIT_BAND_FM | TEA575X_BIT_SEARCH_10_40;
+- tea->freq = 90500 * 16; /* 90.5Mhz default */
++ memcpy(tea575x_radio_inst, &tea575x_radio, sizeof(tea575x_radio));
++
++ strcpy(tea575x_radio.name, tea->tea5759 ?
++ "TEA5759 radio" : "TEA5757 radio");
++
++ video_set_drvdata(tea575x_radio_inst, tea);
++
++ retval = video_register_device(tea575x_radio_inst,
++ VFL_TYPE_RADIO, radio_nr);
++ if (retval) {
++ printk(KERN_ERR "tea575x-tuner: can't register video device!\n");
++ kfree(tea575x_radio_inst);
++ return;
++ }
+
+ snd_tea575x_set_freq(tea);
+
+ /* mute on init */
+- if (tea->ops->mute)
++ if (tea->ops->mute) {
+ tea->ops->mute(tea, 1);
++ tea->mute = 1;
++ }
++ tea->vd = tea575x_radio_inst;
+ }
+
+ void snd_tea575x_exit(struct snd_tea575x *tea)
+ {
+- if (tea->vd_registered) {
+- video_unregister_device(&tea->vd);
+- tea->vd_registered = 0;
++ if (tea->vd) {
++ video_unregister_device(tea->vd);
++ tea->vd = NULL;
+ }
+ }
+
+diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
+index 82b9bdd..6cc18bf 100644
+--- a/sound/pci/Kconfig
++++ b/sound/pci/Kconfig
+@@ -487,7 +487,7 @@ config SND_FM801
+ config SND_FM801_TEA575X_BOOL
+ bool "ForteMedia FM801 + TEA5757 tuner"
+ depends on SND_FM801
+- depends on VIDEO_V4L1=y || VIDEO_V4L1=SND_FM801
++ depends on VIDEO_V4L2=y || VIDEO_V4L2=SND_FM801
+ help
+ Say Y here to include support for soundcards based on the ForteMedia
+ FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media
linux-2.6-v4l-dvb-update.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.12 -r 1.13 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- linux-2.6-v4l-dvb-update.patch 24 Mar 2009 01:01:16 -0000 1.12
+++ linux-2.6-v4l-dvb-update.patch 26 Mar 2009 08:25:59 -0000 1.13
@@ -1,100031 +0,0 @@
-Abylay Ospan (5):
- V4L/DVB (10796): Add init code for NetUP Dual DVB-S2 CI card
- V4L/DVB (10797): Add EEPROM code for NetUP Dual DVB-S2 CI card.
- V4L/DVB (10798): Add CIMax(R) SP2 Common Interface code for NetUP Dual DVB-S2 CI card
- V4L/DVB (11056): Bug fix in NetUP: restore high address lines in CI
- V4L/DVB (11057): Fix CiMax stability in Netup Dual DVB-S2 CI
-
-Adam Baker (2):
- V4L/DVB (10639): gspca - sq905: New subdriver.
- V4L/DVB (10829): Support alternate resolutions for sq905
-
-Alan McIvor (1):
- V4L/DVB (11124): Add support for ProVideo PV-183 to bttv
-
-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.
- V4L/DVB (10336): gspca - all subdrivers: Return ret instead of -1 in sd_mod_init.
- V4L/DVB (10455): radio-mr800: codingstyle cleanups
- V4L/DVB (10456): radio-mr800: place dev_err instead of dev_warn
- V4L/DVB (10457): radio-mr800: add more dev_err messages in probe
- V4L/DVB (10458): radio-mr800: move radio start and stop in one function
- V4L/DVB (10459): radio-mr800: fix amradio_set_freq
- V4L/DVB (10460): radio-mr800: add stereo support
- V4L/DVB (10461): radio-mr800: add few lost mutex locks
- V4L/DVB (10462): radio-mr800: increase version and add comments
- V4L/DVB (10463): radio-mr800: fix checking of retval after usb_bulk_msg
- 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 (43):
- V4L/DVB (10274): cx18: Fix a PLL divisor update for the I2S master clock
- V4L/DVB (10275): cx18: Additional debug to display outgoing mailbox parameters
- V4L/DVB (10276): cx18, cx2341x, ivtv: Add AC-3 audio encoding control to cx18
- V4L/DVB (10277): cx18, cx2341x: Fix bugs in cx18 AC3 control and comply with V4L2 spec
- V4L/DVB (10278): cx18: Fix bad audio in first analog capture.
- V4L/DVB (10279): cx18: Print driver version number when logging status
- V4L/DVB (10280): cx18: Rename structure members: dev to pci_dev and v4l2dev to video_dev
- V4L/DVB (10281): cx18: Conversion to new V4L2 framework: use v4l2_device object
- V4L/DVB (10283): cx18: Call request_module() with proper argument types.
- V4L/DVB (10284): cx18: Add initial entry for a Leadtek DVR3100 H hybrid card
- V4L/DVB (10433): cx18: Defer A/V core initialization until a valid cx18_av_cmd arrives
- V4L/DVB (10434): cx18: Smarter verification of CX18_AUDIO_ENABLE register writes
- V4L/DVB (10435): cx18: Normalize APU after second APU firmware load
- V4L/DVB (10436): cx18: Fix coding style of a switch statement per checkpatch.pl
- V4L/DVB (10437): cx18: Remove an unused spinlock
- V4L/DVB (10439): cx18: Clean-up and enable sliced VBI handling
- V4L/DVB (10440): cx18: Fix presentation timestamp (PTS) for VBI buffers
- V4L/DVB (10441): cx18: Fix VBI ioctl() handling and Raw/Sliced VBI state management
- V4L/DVB (10442): cx18: Fixes for enforcing when Encoder Raw VBI params can be set
- V4L/DVB (10443): cx18: Use correct line counts per field in firmware API call
- V4L/DVB (10444): cx18: Fix sliced VBI PTS and fix artifacts in last raw line of field
- V4L/DVB (10445): cx18: Process Raw VBI on a whole frame basis; fix VBI buffer size
- V4L/DVB (10446): cx18: Finally get sliced VBI working - for 525 line 60 Hz systems at least
- V4L/DVB (10755): cx18: Convert the integrated A/V decoder core interface to a v4l2_subdev
- V4L/DVB (10756): cx18: Slim down instance handling, build names from v4l2_device.name
- V4L/DVB (10757): cx18, v4l2-chip-ident: Finish conversion of AV decoder core to v4l2_subdev
- V4L/DVB (10758): cx18: Convert I2C devices to v4l2_subdevices
- V4L/DVB (10759): cx18: Convert GPIO connected functions to act as v4l2_subdevices
- V4L/DVB (10760): cx18: Fix a memory leak of buffers used for sliced VBI insertion
- V4L/DVB (10761): cx18: Change log lines for internal subdevs and fix tveeprom reads
- V4L/DVB (10762): cx18: Get rid of unused variables related to video output
- V4L/DVB (10763): cx18: Increment version number due to significant changes for v4l2_subdevs
- V4L/DVB (10764): cx18: Disable AC3 controls as the firmware doesn't support AC3
- V4L/DVB (10850): cx18: Use strlcpy() instead of strncpy() for temp eeprom i2c_client setup
- V4L/DVB (10851): cx18: Fix a video scaling check problem introduced by sliced VBI changes
- V4L/DVB (10852): cx18: Include cx18-audio.h in cx18-audio.c to eliminate s-parse warning
- V4L/DVB (10853): cx18: Fix s-parse warnings and a logic error about extracting the VBI PTS
- V4L/DVB (10854): cx18: Correct comments about vertical and horizontal blanking timings
- V4L/DVB (10855): cx18: Fix VPS service register codes
- V4L/DVB (10856): cx18: Add interlock so sliced VBI insertion only happens for an MPEG PS
- V4L/DVB (11042): v4l2-api: Add definitions for V4L2_MPEG_STREAM_VBI_FMT_IVTV payloads
- V4L/DVB (11091): cx18, ivtv: Ensure endianess for linemasks in VBI embedded in MPEG stream
- V4L/DVB (11092): cx18: Optimize processing of VBI buffers from the capture unit
-
-Antoine Jacquet (1):
- V4L/DVB (10263): zr364xx: add support for Aiptek DV T300
-
-Antonio Ospite (2):
- V4L/DVB (10344): gspca - ov534: Disable the Hercules webcams.
- V4L/DVB (10676): mt9m111: Call icl->reset() on mt9m111_reset().
-
-Antti Palosaari (2):
- V4L/DVB (10286): af9015: add new USB ID for KWorld DVB-T 395U
- V4L/DVB (10329): af9015: remove dual_mode module param
-
-Arne Luehrs (1):
- V4L/DVB (10319): dib0700: enable IR receiver in Nova TD usb stick (52009)
-
-Bruno Christo (1):
- V4L/DVB (10827): Add support for GeoVision GV-800(S)
-
-Devin Heitmueller (35):
- V4L/DVB (10320): dib0700: fix i2c error message to make data type clear
- V4L/DVB (10321): dib0700: Report dib0700_i2c_enumeration failures
- V4L/DVB (11059): xc5000: fix bug for hybrid xc5000 devices with IF other than 5380
- V4L/DVB (11060): au8522: rename the au8522.c source file
- V4L/DVB (11061): au8522: move shared state and common functions into a separate header files
- V4L/DVB (11062): au8522: fix register read/write high bits
- V4L/DVB (11063): au8522: power down the digital demod when not in use
- V4L/DVB (11064): au8522: make use of hybrid framework so analog/digital demod can share state
- V4L/DVB (11065): au8522: add support for analog side of demodulator
- V4L/DVB (11066): au0828: add support for analog functionality in bridge
- V4L/DVB (11067): au0828: workaround a bug in the au0828 i2c handling
- V4L/DVB (11068): au0828: add analog profile for the HVR-850
- V4L/DVB (11069): au8522: add mutex protecting use of hybrid state
- V4L/DVB (11070): au0828: Rework the way the analog video binding occurs
- V4L/DVB (11071): tveeprom: add the xc5000 tuner to the tveeprom definition
- V4L/DVB (11072): au0828: advertise only NTSC-M (as opposed to all NTSC standards)
- V4L/DVB (11073): au0828: disable VBI code since it doesn't yet work
- V4L/DVB (11074): au0828: fix i2c enumeration bug
- V4L/DVB (11075): au0828: make register debug lines easier to read
- V4L/DVB (11076): au0828: make g_chip_ident call work properly
- V4L/DVB (11077): au0828: properly handle missing analog USB endpoint
- V4L/DVB (11078): au0828: properly handle non-existent analog inputs
- V4L/DVB (11079): au0828: fix panic on disconnect if analog initialization failed
- V4L/DVB (11080): au0828: Convert to use v4l2_device/subdev framework
- V4L/DVB (11081): au0828: make sure v4l2_device name is unique
- V4L/DVB (11082): au0828: remove memset calls in v4l2 routines.
- V4L/DVB (11083): au0828: remove some unneeded braces
- V4L/DVB (11084): au0828: add entry for undefined input type
- V4L/DVB (11085): au0828/au8522: Codingstyle fixes
- V4L/DVB (11086): au0828: rename macro for currently non-function VBI support
- V4L/DVB (11088): au0828: finish videodev/subdev conversion
- V4L/DVB (11089): au8522: finish conversion to v4l2_device/subdev
- V4L/DVB (11139): em28xx: add remote control definition for HVR-900 (both versions)
- V4L/DVB (11140): usbvision: fix oops on ARM platform when allocating transfer buffers
- V4L/DVB (11142): au0828: fix oops on ARM platform when allocating transfer buffers
-
-Douglas Kosovic (1):
- V4L/DVB (10299): bttv: Add support for IVCE-8784 support for V4L2 bttv driver
-
-Douglas Schilling Landgraf (12):
- V4L/DVB (10323): em28xx: Add entry for GADMEI TVR200
- V4L/DVB (10326): em28xx: Cleanup: fix bad whitespacing
- V4L/DVB (10327): em28xx: Add check before call em28xx_isoc_audio_deinit()
- V4L/DVB (10517): em28xx: remove bad check (changeset a31c595188af)
- V4L/DVB (10520): em28xx-audio: Add spinlock for trigger
- V4L/DVB (10521): em28xx-audio: Add lock for users
- V4L/DVB (10523): em28xx-audio: Add macros EM28XX_START_AUDIO / EM28XX_STOP_AUDIO
- V4L/DVB (10524): em28xx: Add DVC 101 model to Pinnacle Dazzle description
- V4L/DVB (10556): em28xx-cards: Add Pinnacle Dazzle Video Creator Plus DVC107 description
- V4L/DVB (10739): em28xx-cards: remove incorrect entry
- V4L/DVB (10740): em28xx-cards: Add SIIG AVTuner-PVR board
- V4L/DVB (10741): em28xx: Add Kaiser Baas Video to DVD maker support
-
-Erik Andren (3):
- V4L/DVB (10334): gspca - stv06xx: Rework control description.
- V4L/DVB (10341): gspca - stv06xx: Plug a memory leak in the pb0100 sensor driver.
- V4L/DVB (10342): gspca - stv06xx: Add ctrl caching to the vv6410.
-
-Erik S. Beiser (1):
- V4L/DVB (10826): cx88: Add IR support to pcHDTV HD3000 & HD5500
-
-Guennadi Liakhovetski (9):
- V4L/DVB (10665): soc-camera: add data signal polarity flags to drivers
- V4L/DVB (10672): sh_mobile_ceu_camera: include NV* formats into the format list only once.
- V4L/DVB (10673): mt9t031: fix gain and hflip controls, register update, and scaling
- 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
- V4L/DVB (11024): soc-camera: separate S_FMT and S_CROP operations
- V4L/DVB (11025): soc-camera: configure drivers with a default format on open
- V4L/DVB (11026): sh-mobile-ceu-camera: set field to the value, configured at open()
- V4L/DVB (11027): soc-camera: configure drivers with a default format at probe time
-
-Hans Verkuil (142):
- 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.
- V4L/DVB (10247): saa7134: convert to the new v4l2 framework.
- V4L/DVB (10249): v4l2-common: added v4l2_i2c_tuner_addrs()
- V4L/DVB (10251): cx25840: add comments explaining what the init() does.
- V4L/DVB (10252): v4l2 doc: explain why v4l2_device_unregister_subdev() has to be called.
- V4L/DVB (10271): saa7146: convert to video_ioctl2.
- V4L/DVB (10272): av7110: test type field in VIDIOC_G_SLICED_VBI_CAP
- V4L/DVB (10291): em28xx: fix VIDIOC_G_CTRL when there is no msp34xx device.
- V4L/DVB (10313): saa7146: fix VIDIOC_ENUMSTD.
- V4L/DVB (10406): gspca: fix compiler warning
- V4L/DVB (10408): v4l2: fix incorrect hue range check
- V4L/DVB (10409): v4l: remove unused I2C_DRIVERIDs.
- V4L/DVB (10486): ivtv/cx18: fix g_fmt and try_fmt for raw video
- V4L/DVB (10487): doc: update hm12 documentation.
- V4L/DVB (10488): ivtv: cleanup naming conventions
- V4L/DVB (10489): doc: use consistent naming conventions for vdev and v4l2_dev.
- V4L/DVB (10490): v4l2: prefill ident and revision from v4l2_dbg_chip_ident.
- V4L/DVB (10496): saa7146: implement v4l2_device support.
- V4L/DVB (10497): saa7146: i2c adapdata now points to v4l2_device.
[...99640 lines suppressed...]
-- return 0;
-- case VIDIOCSFREQ:
-- if(copy_from_user(&tea->freq, arg, sizeof(tea->freq)))
-- return -EFAULT;
-- snd_tea575x_set_freq(tea);
-- return 0;
-- case VIDIOCGAUDIO:
-- {
-- struct video_audio v;
-- memset(&v, 0, sizeof(v));
-- strcpy(v.name, "Radio");
-- if(copy_to_user(arg,&v, sizeof(v)))
-- return -EFAULT;
-+ }
-+ return -EINVAL;
-+}
-+
-+static int vidioc_g_ctrl(struct file *file, void *priv,
-+ struct v4l2_control *ctrl)
-+{
-+ struct snd_tea575x *tea = video_drvdata(file);
-+
-+ switch (ctrl->id) {
-+ case V4L2_CID_AUDIO_MUTE:
-+ if (tea->ops->mute) {
-+ ctrl->value = tea->mute;
- return 0;
- }
-- case VIDIOCSAUDIO:
-- {
-- struct video_audio v;
-- if(copy_from_user(&v, arg, sizeof(v)))
-- return -EFAULT;
-- if (tea->ops->mute)
-- tea->ops->mute(tea,
-- (v.flags &
-- VIDEO_AUDIO_MUTE) ? 1 : 0);
-- if(v.audio)
-- return -EINVAL;
-+ }
-+ return -EINVAL;
-+}
-+
-+static int vidioc_s_ctrl(struct file *file, void *priv,
-+ struct v4l2_control *ctrl)
-+{
-+ struct snd_tea575x *tea = video_drvdata(file);
-+
-+ switch (ctrl->id) {
-+ case V4L2_CID_AUDIO_MUTE:
-+ if (tea->ops->mute) {
-+ tea->ops->mute(tea, ctrl->value);
-+ tea->mute = 1;
- return 0;
- }
-- default:
-- return -ENOIOCTLCMD;
- }
-+ return -EINVAL;
-+}
-+
-+static int vidioc_g_input(struct file *filp, void *priv, unsigned int *i)
-+{
-+ *i = 0;
-+ return 0;
- }
-
--static void snd_tea575x_release(struct video_device *vfd)
-+static int vidioc_s_input(struct file *filp, void *priv, unsigned int i)
- {
-+ if (i != 0)
-+ return -EINVAL;
-+ return 0;
- }
-
- static int snd_tea575x_exclusive_open(struct file *file)
-@@ -189,50 +260,91 @@ static int snd_tea575x_exclusive_release(struct file *file)
- return 0;
- }
-
-+static const struct v4l2_file_operations tea575x_fops = {
-+ .owner = THIS_MODULE,
-+ .open = snd_tea575x_exclusive_open,
-+ .release = snd_tea575x_exclusive_release,
-+ .ioctl = video_ioctl2,
-+};
-+
-+static const struct v4l2_ioctl_ops tea575x_ioctl_ops = {
-+ .vidioc_querycap = vidioc_querycap,
-+ .vidioc_g_tuner = vidioc_g_tuner,
-+ .vidioc_s_tuner = vidioc_s_tuner,
-+ .vidioc_g_audio = vidioc_g_audio,
-+ .vidioc_s_audio = vidioc_s_audio,
-+ .vidioc_g_input = vidioc_g_input,
-+ .vidioc_s_input = vidioc_s_input,
-+ .vidioc_g_frequency = vidioc_g_frequency,
-+ .vidioc_s_frequency = vidioc_s_frequency,
-+ .vidioc_queryctrl = vidioc_queryctrl,
-+ .vidioc_g_ctrl = vidioc_g_ctrl,
-+ .vidioc_s_ctrl = vidioc_s_ctrl,
-+};
-+
-+static struct video_device tea575x_radio = {
-+ .name = "tea575x-tuner",
-+ .fops = &tea575x_fops,
-+ .ioctl_ops = &tea575x_ioctl_ops,
-+ .release = video_device_release,
-+};
-+
- /*
- * initialize all the tea575x chips
- */
- void snd_tea575x_init(struct snd_tea575x *tea)
- {
-+ int retval;
- unsigned int val;
-+ struct video_device *tea575x_radio_inst;
-
- val = tea->ops->read(tea);
- if (val == 0x1ffffff || val == 0) {
-- snd_printk(KERN_ERR "Cannot find TEA575x chip\n");
-+ snd_printk(KERN_ERR
-+ "tea575x-tuner: Cannot find TEA575x chip\n");
- return;
- }
-
-- memset(&tea->vd, 0, sizeof(tea->vd));
-- strcpy(tea->vd.name, tea->tea5759 ? "TEA5759 radio" : "TEA5757 radio");
-- tea->vd.release = snd_tea575x_release;
-- video_set_drvdata(&tea->vd, tea);
-- tea->vd.fops = &tea->fops;
- tea->in_use = 0;
-- tea->fops.owner = tea->card->module;
-- tea->fops.open = snd_tea575x_exclusive_open;
-- tea->fops.release = snd_tea575x_exclusive_release;
-- tea->fops.ioctl = snd_tea575x_ioctl;
-- if (video_register_device(&tea->vd, VFL_TYPE_RADIO, tea->dev_nr - 1) < 0) {
-- snd_printk(KERN_ERR "unable to register tea575x tuner\n");
-+ tea->val = TEA575X_BIT_BAND_FM | TEA575X_BIT_SEARCH_10_40;
-+ tea->freq = 90500 * 16; /* 90.5Mhz default */
-+
-+ tea575x_radio_inst = video_device_alloc();
-+ if (tea575x_radio_inst == NULL) {
-+ printk(KERN_ERR "tea575x-tuner: not enough memory\n");
- return;
- }
-- tea->vd_registered = 1;
-
-- tea->val = TEA575X_BIT_BAND_FM | TEA575X_BIT_SEARCH_10_40;
-- tea->freq = 90500 * 16; /* 90.5Mhz default */
-+ memcpy(tea575x_radio_inst, &tea575x_radio, sizeof(tea575x_radio));
-+
-+ strcpy(tea575x_radio.name, tea->tea5759 ?
-+ "TEA5759 radio" : "TEA5757 radio");
-+
-+ video_set_drvdata(tea575x_radio_inst, tea);
-+
-+ retval = video_register_device(tea575x_radio_inst,
-+ VFL_TYPE_RADIO, radio_nr);
-+ if (retval) {
-+ printk(KERN_ERR "tea575x-tuner: can't register video device!\n");
-+ kfree(tea575x_radio_inst);
-+ return;
-+ }
-
- snd_tea575x_set_freq(tea);
-
- /* mute on init */
-- if (tea->ops->mute)
-+ if (tea->ops->mute) {
- tea->ops->mute(tea, 1);
-+ tea->mute = 1;
-+ }
-+ tea->vd = tea575x_radio_inst;
- }
-
- void snd_tea575x_exit(struct snd_tea575x *tea)
- {
-- if (tea->vd_registered) {
-- video_unregister_device(&tea->vd);
-- tea->vd_registered = 0;
-+ if (tea->vd) {
-+ video_unregister_device(tea->vd);
-+ tea->vd = NULL;
- }
- }
-
-diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
-index 82b9bdd..6cc18bf 100644
---- a/sound/pci/Kconfig
-+++ b/sound/pci/Kconfig
-@@ -487,7 +487,7 @@ config SND_FM801
- config SND_FM801_TEA575X_BOOL
- bool "ForteMedia FM801 + TEA5757 tuner"
- depends on SND_FM801
-- depends on VIDEO_V4L1=y || VIDEO_V4L1=SND_FM801
-+ depends on VIDEO_V4L2=y || VIDEO_V4L2=SND_FM801
- help
- Say Y here to include support for soundcards based on the ForteMedia
- FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media
More information about the fedora-extras-commits
mailing list