rpms/kernel/devel kernel.spec, 1.1432, 1.1433 linux-2.6-v4l-dvb-experimental.patch, 1.1, 1.2 linux-2.6-v4l-dvb-fixes.patch, 1.5, 1.6 linux-2.6-v4l-dvb-update.patch, 1.7, 1.8 linux-2.6-hdpvr-fix.patch, 1.1, NONE

Mauro Carvalho Chehab mchehab at fedoraproject.org
Sat Mar 14 02:15:48 UTC 2009


Author: mchehab

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

Modified Files:
	kernel.spec linux-2.6-v4l-dvb-experimental.patch 
	linux-2.6-v4l-dvb-fixes.patch linux-2.6-v4l-dvb-update.patch 
Removed Files:
	linux-2.6-hdpvr-fix.patch 
Log Message:
More v4l-dvb linux-next updates. Also, better handled hdpvr conflicts.

There are a few more fixes added, plus some new improvements and fixes for linux-next.

Those are the applied patches:

V4L/DVB (10974): Use Diseqc 3/3 mode to send data
V4L/DVB (10975): Bug: Use signed types, Offsets and range can be negative
V4L/DVB (10976): Bug fix: For legacy applications stv0899 performs search only first time after insmod.
V4L/DVB (10977): STB6100 init fix, the call to stb6100_set_bandwidth needs an argument
V4L/DVB (10978): Report tuning algorith correctly
V4L/DVB (10980): doc: improve the v4l2-framework documentation.
V4L/DVB (10983): v4l2-common: add missing i2c_unregister_device.
V4L/DVB (10984): lgdt3305: avoid OOPS in error path of lgdt3305_attach
V4L/DVB (10986): mr97310a: don't discard frame headers on stream output
V4L/DVB (10987): cx23885: fix crash on non-netup cards
V4L/DVB (10988): v4l2-dev: use parent field if the v4l2_device has no parent set.
V4L/DVB (11021): v4l2-device: add a notify callback.
V4L/DVB (11022): zoran/bt819: use new notify functionality.
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
V4L/DVB (11028): ov772x: use soft sleep mode in stop_capture
V4L/DVB (11029): video: use videobuf_waiton() in sh_mobile_ceu free_buffer()
V4L/DVB (11030): soc-camera: add board hook to specify the buswidth for camera sensors
V4L/DVB (11031): pcm990 baseboard: add camera bus width switch setting
V4L/DVB (11032): mt9m001: allow setting of bus width from board code
V4L/DVB (11033): mt9v022: allow setting of bus width from board code
V4L/DVB (11034): soc-camera: remove now unused gpio member of struct soc_camera_link
V4L/DVB (11035): mt9t031 bugfix




Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1432
retrieving revision 1.1433
diff -u -r1.1432 -r1.1433
--- kernel.spec	13 Mar 2009 21:42:34 -0000	1.1432
+++ kernel.spec	14 Mar 2009 02:15:13 -0000	1.1433
@@ -675,10 +675,6 @@
 
 Patch2897: linux-2.6-hdpvr.patch
 
-# Updates/Fixes on V4L/DVB to the latest development tree
-# hdpvr is patching a function that were removed on linux-next
-Patch2898: linux-2.6-hdpvr-fix.patch
-
 Patch2899: linux-2.6-v4l-dvb-fixes.patch
 Patch2900: linux-2.6-v4l-dvb-update.patch
 Patch2901: linux-2.6-v4l-dvb-experimental.patch
@@ -1194,8 +1190,6 @@
 ApplyPatch linux-2.6.29-lirc.patch
 # http://hg.jannau.net/hdpvr/
 ApplyPatch linux-2.6-hdpvr.patch
-# Revert a change on v4l2-common on a function that will be removed by V4L/DVB patches
-ApplyPatch linux-2.6-hdpvr-fix.patch
 
 # Fix the return code CD accesses when the CDROM drive door is closed
 # but the drive isn't yet ready.
@@ -1820,6 +1814,9 @@
 # and build.
 
 %changelog
+* Fri Mar 13 2009 Mauro Carvalho Chehab <mchehab at redhat.com
+- v4l-dvb patches: better conflict solving with hdpvr, more fixes and updates
+
 * Fri Mar 13 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-0.252.rc8
 - Quiet down an ext4 warning message.
 

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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-v4l-dvb-experimental.patch	13 Mar 2009 14:49:31 -0000	1.1
+++ linux-2.6-v4l-dvb-experimental.patch	14 Mar 2009 02:15:14 -0000	1.2
@@ -4,7 +4,7 @@
       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
+      Merge branch 'next' of ../pending into Fedora
 
 Sri Deevi (4):
       V4L/DVB (10952): cx25840: prepare it to be used by cx231xx module
@@ -13,10 +13,10 @@
       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
+index 3f85b9e..114bf04 100644
 --- a/drivers/media/video/Kconfig
 +++ b/drivers/media/video/Kconfig
-@@ -805,6 +805,8 @@ source "drivers/media/video/pvrusb2/Kconfig"
+@@ -793,6 +793,8 @@ source "drivers/media/video/hdpvr/Kconfig"
  
  source "drivers/media/video/em28xx/Kconfig"
  
@@ -26,7 +26,7 @@
  
  source "drivers/media/video/usbvideo/Kconfig"
 diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
-index 08a0675..99b448e 100644
+index 02379f5..9e40396 100644
 --- a/drivers/media/video/Makefile
 +++ b/drivers/media/video/Makefile
 @@ -67,6 +67,7 @@ obj-$(CONFIG_VIDEO_MEYE) += meye.o
@@ -14614,14 +14614,16 @@
  		memcpy(buffer + 2, ptr, len);
  
 diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
-index 1ffc23b..51c7106 100644
+index e77f81b..3e107d5 100644
 --- a/include/linux/i2c-id.h
 +++ b/include/linux/i2c-id.h
-@@ -87,6 +87,7 @@
+@@ -87,7 +87,8 @@
+ #define I2C_HW_B_CX2341X	0x010020 /* Conexant CX2341X MPEG encoder cards */
  #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 */
+-#define I2C_HW_B_HDPVR		0x010024 /* Hauppauge HD PVR */
++#define I2C_HW_B_CX231XX	0x010024 /* Conexant CX231XX USB based cards */
++#define I2C_HW_B_HDPVR		0x010025 /* Hauppauge HD PVR */
  
  /* --- SGI adapters							*/
  #define I2C_HW_SGI_VINO		0x160000

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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- linux-2.6-v4l-dvb-fixes.patch	13 Mar 2009 14:49:31 -0000	1.5
+++ linux-2.6-v4l-dvb-fixes.patch	14 Mar 2009 02:15:14 -0000	1.6
@@ -4,12 +4,194 @@
 Gregory Lardiere (1):
       V4L/DVB (10789): m5602-s5k4aa: Split up the initial sensor probe in chunks.
 
-Mauro Carvalho Chehab (1):
+Hans Werner (1):
+      V4L/DVB (10977): STB6100 init fix, the call to stb6100_set_bandwidth needs an argument
+
+Igor M. Liplianin (1):
+      V4L/DVB (10976): Bug fix: For legacy applications stv0899 performs search only first time after insmod.
+
+Manu Abraham (1):
+      V4L/DVB (10975): Bug: Use signed types, Offsets and range can be negative
+
+Matthias Schwarzzot (1):
+      V4L/DVB (10978): Report tuning algorith correctly
+
+Mauro Carvalho Chehab (2):
       V4L/DVB (10834): zoran: auto-select bt866 for AverMedia 6 Eyes
+      Merge branch 'for_linus' of ../linux-2.6 into Fedora
+
+Sigmund Augdal (1):
+      V4L/DVB (10974): Use Diseqc 3/3 mode to send data
 
 Vitaly Wool (1):
       V4L/DVB (10832): tvaudio: Avoid breakage with tda9874a
 
+diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
+index 29e8f15..fec1d77 100644
+--- a/drivers/media/dvb/bt8xx/dst.c
++++ b/drivers/media/dvb/bt8xx/dst.c
+@@ -1683,7 +1683,7 @@ static int dst_tune_frontend(struct dvb_frontend* fe,
+ 
+ static int dst_get_tuning_algo(struct dvb_frontend *fe)
+ {
+-	return dst_algo;
++	return dst_algo ? DVBFE_ALGO_HW : DVBFE_ALGO_SW;
+ }
+ 
+ static int dst_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *p)
+diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
+index 8434077..8dcb3fb 100644
+--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
++++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
+@@ -1290,9 +1290,6 @@ static int dtv_property_process_set(struct dvb_frontend *fe,
+ 		dprintk("%s() Finalised property cache\n", __func__);
+ 		dtv_property_cache_submit(fe);
+ 
+-		/* Request the search algorithm to search */
+-		fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
+-
+ 		r |= dvb_frontend_ioctl_legacy(inode, file, FE_SET_FRONTEND,
+ 			&fepriv->parameters);
+ 		break;
+@@ -1717,6 +1714,10 @@ static int dvb_frontend_ioctl_legacy(struct inode *inode, struct file *file,
+ 			fepriv->min_delay = (dvb_override_tune_delay * HZ) / 1000;
+ 
+ 		fepriv->state = FESTATE_RETUNE;
++
++		/* Request the search algorithm to search */
++		fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
++
+ 		dvb_frontend_wakeup(fe);
+ 		dvb_frontend_add_event(fe, 0);
+ 		fepriv->status = 0;
+diff --git a/drivers/media/dvb/frontends/stb0899_algo.c b/drivers/media/dvb/frontends/stb0899_algo.c
+index a67d177..2da55ec 100644
+--- a/drivers/media/dvb/frontends/stb0899_algo.c
++++ b/drivers/media/dvb/frontends/stb0899_algo.c
+@@ -156,7 +156,7 @@ static void stb0899_first_subrange(struct stb0899_state *state)
+ 	}
+ 
+ 	if (range > 0)
+-		internal->sub_range = MIN(internal->srch_range, range);
++		internal->sub_range = min(internal->srch_range, range);
+ 	else
+ 		internal->sub_range = 0;
+ 
+@@ -185,7 +185,7 @@ static enum stb0899_status stb0899_check_tmg(struct stb0899_state *state)
+ 	timing = stb0899_read_reg(state, STB0899_RTF);
+ 
+ 	if (lock >= 42) {
+-		if ((lock > 48) && (ABS(timing) >= 110)) {
++		if ((lock > 48) && (abs(timing) >= 110)) {
+ 			internal->status = ANALOGCARRIER;
+ 			dprintk(state->verbose, FE_DEBUG, 1, "-->ANALOG Carrier !");
+ 		} else {
+@@ -222,7 +222,7 @@ static enum stb0899_status stb0899_search_tmg(struct stb0899_state *state)
+ 		index++;
+ 		derot_freq += index * internal->direction * derot_step;	/* next derot zig zag position	*/
+ 
+-		if (ABS(derot_freq) > derot_limit)
++		if (abs(derot_freq) > derot_limit)
+ 			next_loop--;
+ 
+ 		if (next_loop) {
+@@ -298,7 +298,7 @@ static enum stb0899_status stb0899_search_carrier(struct stb0899_state *state)
+ 			last_derot_freq = derot_freq;
+ 			derot_freq += index * internal->direction * internal->derot_step; /* next zig zag derotator position */
+ 
+-			if(ABS(derot_freq) > derot_limit)
++			if(abs(derot_freq) > derot_limit)
+ 				next_loop--;
+ 
+ 			if (next_loop) {
+@@ -400,7 +400,7 @@ static enum stb0899_status stb0899_search_data(struct stb0899_state *state)
+ 		if ((internal->status != CARRIEROK) || (stb0899_check_data(state) != DATAOK)) {
+ 
+ 			derot_freq += index * internal->direction * derot_step;	/* next zig zag derotator position */
+-			if (ABS(derot_freq) > derot_limit)
++			if (abs(derot_freq) > derot_limit)
+ 				next_loop--;
+ 
+ 			if (next_loop) {
+@@ -467,7 +467,7 @@ static void next_sub_range(struct stb0899_state *state)
+ 
+ 	if (internal->sub_dir > 0) {
+ 		old_sub_range = internal->sub_range;
+-		internal->sub_range = MIN((internal->srch_range / 2) -
++		internal->sub_range = min((internal->srch_range / 2) -
+ 					  (internal->tuner_offst + internal->sub_range / 2),
+ 					   internal->sub_range);
+ 
+@@ -771,7 +771,7 @@ static long Log2Int(int number)
+ 	int i;
+ 
+ 	i = 0;
+-	while ((1 << i) <= ABS(number))
++	while ((1 << i) <= abs(number))
+ 		i++;
+ 
+ 	if (number == 0)
+diff --git a/drivers/media/dvb/frontends/stb0899_drv.c b/drivers/media/dvb/frontends/stb0899_drv.c
+index 10613ac..a04c782 100644
+--- a/drivers/media/dvb/frontends/stb0899_drv.c
++++ b/drivers/media/dvb/frontends/stb0899_drv.c
+@@ -794,7 +794,7 @@ static int stb0899_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t
+ 	reg = stb0899_read_reg(state, STB0899_DISCNTRL1);
+ 	old_state = reg;
+ 	/* set to burst mode	*/
+-	STB0899_SETFIELD_VAL(DISEQCMODE, reg, 0x02);
++	STB0899_SETFIELD_VAL(DISEQCMODE, reg, 0x03);
+ 	STB0899_SETFIELD_VAL(DISPRECHARGE, reg, 0x01);
+ 	stb0899_write_reg(state, STB0899_DISCNTRL1, reg);
+ 	switch (burst) {
+diff --git a/drivers/media/dvb/frontends/stb0899_priv.h b/drivers/media/dvb/frontends/stb0899_priv.h
+index 24619e3..82395b9 100644
+--- a/drivers/media/dvb/frontends/stb0899_priv.h
++++ b/drivers/media/dvb/frontends/stb0899_priv.h
+@@ -59,10 +59,6 @@
+ #define MAKEWORD32(a, b, c, d)			(((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
+ #define MAKEWORD16(a, b)			(((a) << 8) | (b))
+ 
+-#define MIN(x, y)				((x) <= (y) ? (x) : (y))
+-#define MAX(x, y)				((x) >= (y) ? (x) : (y))
+-#define ABS(x)					((x) >= 0 ? (x) : -(x))
+-
+ #define LSB(x)					((x & 0xff))
+ #define MSB(y)					((y >> 8) & 0xff)
+ 
+@@ -168,10 +164,10 @@ struct stb0899_internal {
+ 	u32			freq;			/* Demod internal Frequency		*/
+ 	u32			srate;			/* Demod internal Symbol rate		*/
+ 	enum stb0899_fec	fecrate;		/* Demod internal FEC rate		*/
+-	u32			srch_range;		/* Demod internal Search Range		*/
+-	u32			sub_range;		/* Demod current sub range (Hz)		*/
+-	u32			tuner_step;		/* Tuner step (Hz)			*/
+-	u32			tuner_offst;		/* Relative offset to carrier (Hz)	*/
++	s32			srch_range;		/* Demod internal Search Range		*/
++	s32			sub_range;		/* Demod current sub range (Hz)		*/
++	s32			tuner_step;		/* Tuner step (Hz)			*/
++	s32			tuner_offst;		/* Relative offset to carrier (Hz)	*/
+ 	u32			tuner_bw;		/* Current bandwidth of the tuner (Hz)	*/
+ 
+ 	s32			mclk;			/* Masterclock Divider factor (binary)	*/
+diff --git a/drivers/media/dvb/frontends/stb6100.c b/drivers/media/dvb/frontends/stb6100.c
+index ff39275..1ed5a7d 100644
+--- a/drivers/media/dvb/frontends/stb6100.c
++++ b/drivers/media/dvb/frontends/stb6100.c
+@@ -427,11 +427,11 @@ static int stb6100_init(struct dvb_frontend *fe)
+ 	status->refclock	= 27000000;	/* Hz	*/
+ 	status->iqsense		= 1;
+ 	status->bandwidth	= 36000;	/* kHz	*/
+-	state->bandwidth	= status->bandwidth * 1000;	/* MHz	*/
++	state->bandwidth	= status->bandwidth * 1000;	/* Hz	*/
+ 	state->reference	= status->refclock / 1000;	/* kHz	*/
+ 
+ 	/* Set default bandwidth.	*/
+-	return stb6100_set_bandwidth(fe, status->bandwidth);
++	return stb6100_set_bandwidth(fe, state->bandwidth);
+ }
+ 
+ static int stb6100_get_state(struct dvb_frontend *fe,
 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

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

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.7 -r 1.8 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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- linux-2.6-v4l-dvb-update.patch	13 Mar 2009 14:49:31 -0000	1.7
+++ linux-2.6-v4l-dvb-update.patch	14 Mar 2009 02:15:14 -0000	1.8
@@ -115,14 +115,18 @@
 Erik S. Beiser (1):
       V4L/DVB (10826): cx88: Add IR support to pcHDTV HD3000 & HD5500
 
-Guennadi Liakhovetski (5):
+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 (118):
+Hans Verkuil (124):
       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.
@@ -241,6 +245,12 @@
       V4L/DVB (10960): omap24xxcam: don't set vfl_type.
       V4L/DVB (10962): fired-avc: fix printk formatting warning.
       V4L/DVB (10965): ivtv: bump version
+      V4L/DVB (10980): doc: improve the v4l2-framework documentation.
+      V4L/DVB (10983): v4l2-common: add missing i2c_unregister_device.
+      V4L/DVB (10987): cx23885: fix crash on non-netup cards
+      V4L/DVB (10988): v4l2-dev: use parent field if the v4l2_device has no parent set.
+      V4L/DVB (11021): v4l2-device: add a notify callback.
+      V4L/DVB (11022): zoran/bt819: use new notify functionality.
 
 Hans Werner (1):
       V4L/DVB (10392): lnbp21: documentation about the system register
@@ -348,7 +358,7 @@
 Kay Sievers (1):
       V4L/DVB (10395): struct device - replace bus_id with dev_name(), dev_set_name()
 
-Kuninori Morimoto (7):
+Kuninori Morimoto (8):
       V4L/DVB (10616): tw9910: color format check is added on set_fmt
       V4L/DVB (10666): ov772x: move configuration from start_capture() to set_fmt()
       V4L/DVB (10667): ov772x: setting method to register is changed.
@@ -356,6 +366,7 @@
       V4L/DVB (10669): ov772x: Add image flip support
       V4L/DVB (10670): tw9910: bit mask operation fix on tw9910_mask_set.
       V4L/DVB (10671): sh_mobile_ceu: SOCAM flags are not platform dependent
+      V4L/DVB (11028): ov772x: use soft sleep mode in stop_capture
 
 Kyle Guinn (3):
       V4L/DVB (10365): Add Mars-Semi MR97310A format
@@ -374,8 +385,9 @@
 Lierdakil (1):
       V4L/DVB (10388): gspca - pac207: Webcam 093a:2474 added.
 
-Magnus Damm (1):
+Magnus Damm (2):
       V4L/DVB (10304): buf-dma-contig: fix USERPTR free handling
+      V4L/DVB (11029): video: use videobuf_waiton() in sh_mobile_ceu free_buffer()
 
 Martin Fuzzey (1):
       V4L/DVB (10945): pwc : fix LED and power setup for first open
@@ -424,9 +436,9 @@
       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
+      Merge branch 'next' of ../devel into Fedora
 
-Michael Krufky (34):
+Michael Krufky (35):
       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
@@ -461,6 +473,7 @@
       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 (10984): lgdt3305: avoid OOPS in error path of lgdt3305_attach
 
 Mike Isely (7):
       V4L/DVB (10236): pvrusb2: Stop advertising VBI capability - it isn't there
@@ -490,6 +503,9 @@
 Pascal Terjan (1):
       V4L/DVB (10825): Add ids for Yuan PD378S DVB adapter
 
+Philippe Rétornaz (1):
+      V4L/DVB (11035): mt9t031 bugfix
+
 Randy Dunlap (3):
       V4L/DVB (10631): zoran: fix printk format
       V4L/DVB (10830): dm1105: uses ir_* functions, select VIDEO_IR
@@ -508,6 +524,13 @@
       V4L/DVB: calibration still successful at 10
       V4L/DVB (10657): [PATCH] V4L: missing parentheses?
 
+Sascha Hauer (5):
+      V4L/DVB (11030): soc-camera: add board hook to specify the buswidth for camera sensors
+      V4L/DVB (11031): pcm990 baseboard: add camera bus width switch setting
+      V4L/DVB (11032): mt9m001: allow setting of bus width from board code
+      V4L/DVB (11033): mt9v022: allow setting of bus width from board code
+      V4L/DVB (11034): soc-camera: remove now unused gpio member of struct soc_camera_link
+
 Scott James Remnant (1):
       V4L/DVB (10947): Auto-load videodev module when device opened.
 
@@ -523,6 +546,9 @@
 Stephan Wienczny (1):
       V4L/DVB (10949): Add support for Terratec Cinergy HT PCI MKII
 
+Theodore Kilgore (1):
+      V4L/DVB (10986): mr97310a: don't discard frame headers on stream output
+
 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
@@ -829,7 +855,7 @@
  Module Parameters
  =================
 diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt
-index ff12437..accc376 100644
+index ff12437..4207590 100644
 --- a/Documentation/video4linux/v4l2-framework.txt
 +++ b/Documentation/video4linux/v4l2-framework.txt
 @@ -47,7 +47,9 @@ All drivers have the following structure:
@@ -843,7 +869,7 @@
  
  This is a rough schematic of how it all relates:
  
-@@ -82,12 +84,14 @@ You must register the device instance:
+@@ -82,12 +84,20 @@ You must register the device instance:
  	v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev);
  
  Registration will initialize the v4l2_device struct and link dev->driver_data
@@ -858,11 +884,17 @@
  The first 'dev' argument is normally the struct device pointer of a pci_dev,
 -usb_device or platform_device.
 +usb_device or platform_device. It is rare for dev to be NULL, but it happens
-+with ISA devices, for example.
++with ISA devices or when one device creates multiple PCI devices, thus making
++it impossible to associate v4l2_dev with a particular parent.
++
++You can also supply a notify() callback that can be called by sub-devices to
++notify you of events. Whether you need to set this depends on the sub-device.
++Any notifications a sub-device supports must be defined in a header in
++include/media/<subdevice>.h.
  
  You unregister with:
  
-@@ -134,7 +138,7 @@ The recommended approach is as follows:
+@@ -134,7 +144,7 @@ The recommended approach is as follows:
  
  static atomic_t drv_instance = ATOMIC_INIT(0);
  
@@ -871,7 +903,7 @@
  				const struct pci_device_id *pci_id)
  {
  	...
-@@ -218,7 +222,7 @@ to add new ops and categories.
+@@ -218,7 +228,7 @@ to add new ops and categories.
  
  A sub-device driver initializes the v4l2_subdev struct using:
  
@@ -880,7 +912,7 @@
  
  Afterwards you need to initialize subdev->name with a unique name and set the
  module owner. This is done for you if you use the i2c helper functions.
-@@ -226,7 +230,7 @@ module owner. This is done for you if you use the i2c helper functions.
+@@ -226,7 +236,7 @@ module owner. This is done for you if you use the i2c helper functions.
  A device (bridge) driver needs to register the v4l2_subdev with the
  v4l2_device:
  
@@ -889,7 +921,7 @@
  
  This can fail if the subdev module disappeared before it could be registered.
  After this function was called successfully the subdev->dev field points to
-@@ -234,17 +238,17 @@ the v4l2_device.
+@@ -234,17 +244,17 @@ the v4l2_device.
  
  You can unregister a sub-device using:
  
@@ -911,7 +943,7 @@
  
  The macro will to the right NULL pointer checks and returns -ENODEV if subdev
  is NULL, -ENOIOCTLCMD if either subdev->core or subdev->core->g_chip_ident is
-@@ -252,19 +256,19 @@ NULL, or the actual result of the subdev->ops->core->g_chip_ident ops.
+@@ -252,19 +262,19 @@ NULL, or the actual result of the subdev->ops->core->g_chip_ident ops.
  
  It is also possible to call all or a subset of the sub-devices:
  
@@ -934,7 +966,19 @@
  to whatever value it wants (it's 0 by default). This value is owned by the
[...3173 lines suppressed...]
 -		decoder_command(zr, DECODER_SET_NORM, &norm);
-+		decoder_s_routing(zr, &route);
++		decoder_call(zr, video, s_routing, &route);
  
  		/* sleep 1 second */
  		ssleep(1);
@@ -81525,7 +83150,7 @@
 -		decoder_command(zr, DECODER_SET_NORM, &zr->norm);
 -	gstat_unlock_and_return:
 +		route.input = zr->card.input[zr->input].muxsel;
-+		decoder_s_routing(zr, &route);
++		decoder_call(zr, video, s_routing, &route);
 +gstat_unlock_and_return:
  		mutex_unlock(&zr->resource_lock);
  
@@ -84927,6 +86552,45 @@
  #endif
  
  #define VIDIOC_S_HW_FREQ_SEEK	 _IOW('V', 82, struct v4l2_hw_freq_seek)
+diff --git a/include/media/bt819.h b/include/media/bt819.h
+new file mode 100644
+index 0000000..38f666b
+--- /dev/null
++++ b/include/media/bt819.h
+@@ -0,0 +1,33 @@
++/*
++    bt819.h - bt819 notifications
++
++    Copyright (C) 2009 Hans Verkuil (hverkuil at xs4all.nl)
++
++    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.
++*/
++
++#ifndef _BT819_H_
++#define _BT819_H_
++
++#include <linux/ioctl.h>
++
++/* v4l2_device notifications. */
++
++/* Needed to reset the FIFO buffer when changing the input
++   or the video standard. */
++#define BT819_FIFO_RESET_LOW 	_IO('b', 0)
++#define BT819_FIFO_RESET_HIGH 	_IO('b', 1)
++
++#endif
 diff --git a/include/media/cx2341x.h b/include/media/cx2341x.h
 index 9ec4d58..9ebe855 100644
 --- a/include/media/cx2341x.h
@@ -85130,10 +86794,59 @@
  
  #endif /* __ASM_SH_MOBILE_CEU_H__ */
 diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
-index 7440d92..c63a340 100644
+index 7440d92..3701368 100644
 --- a/include/media/soc_camera.h
 +++ b/include/media/soc_camera.h
-@@ -239,15 +239,19 @@ static inline struct v4l2_queryctrl const *soc_camera_find_qctrl(
+@@ -45,6 +45,7 @@ struct soc_camera_device {
+ 	int num_formats;
+ 	struct soc_camera_format_xlate *user_formats;
+ 	int num_user_formats;
++	enum v4l2_field field;		/* Preserve field over close() */
+ 	struct module *owner;
+ 	void *host_priv;		/* Per-device host private data */
+ 	/* soc_camera.c private count. Only accessed with .video_lock held */
+@@ -74,7 +75,8 @@ struct soc_camera_host_ops {
+ 	int (*resume)(struct soc_camera_device *);
+ 	int (*get_formats)(struct soc_camera_device *, int,
+ 			   struct soc_camera_format_xlate *);
+-	int (*set_fmt)(struct soc_camera_device *, __u32, struct v4l2_rect *);
++	int (*set_crop)(struct soc_camera_device *, struct v4l2_rect *);
++	int (*set_fmt)(struct soc_camera_device *, struct v4l2_format *);
+ 	int (*try_fmt)(struct soc_camera_device *, struct v4l2_format *);
+ 	void (*init_videobuf)(struct videobuf_queue *,
+ 			      struct soc_camera_device *);
+@@ -93,13 +95,18 @@ struct soc_camera_host_ops {
+ struct soc_camera_link {
+ 	/* Camera bus id, used to match a camera and a bus */
+ 	int bus_id;
+-	/* GPIO number to switch between 8 and 10 bit modes */
+-	unsigned int gpio;
+ 	/* Per camera SOCAM_SENSOR_* bus flags */
+ 	unsigned long flags;
+ 	/* Optional callbacks to power on or off and reset the sensor */
+ 	int (*power)(struct device *, int);
+ 	int (*reset)(struct device *);
++	/*
++	 * some platforms may support different data widths than the sensors
++	 * native ones due to different data line routing. Let the board code
++	 * overwrite the width flags.
++	 */
++	int (*set_bus_param)(struct soc_camera_link *, unsigned long flags);
++	unsigned long (*query_bus_param)(struct soc_camera_link *);
+ };
+ 
+ static inline struct soc_camera_device *to_soc_camera_dev(struct device *dev)
+@@ -159,7 +166,8 @@ struct soc_camera_ops {
+ 	int (*release)(struct soc_camera_device *);
+ 	int (*start_capture)(struct soc_camera_device *);
+ 	int (*stop_capture)(struct soc_camera_device *);
+-	int (*set_fmt)(struct soc_camera_device *, __u32, struct v4l2_rect *);
++	int (*set_crop)(struct soc_camera_device *, struct v4l2_rect *);
++	int (*set_fmt)(struct soc_camera_device *, struct v4l2_format *);
+ 	int (*try_fmt)(struct soc_camera_device *, struct v4l2_format *);
+ 	unsigned long (*query_bus_param)(struct soc_camera_device *);
+ 	int (*set_bus_param)(struct soc_camera_device *, unsigned long);
+@@ -239,15 +247,19 @@ static inline struct v4l2_queryctrl const *soc_camera_find_qctrl(
  static inline unsigned long soc_camera_bus_param_compatible(
  			unsigned long camera_flags, unsigned long bus_flags)
  {
@@ -85313,7 +87026,7 @@
 +
  #endif /* V4L2_COMMON_H_ */
 diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h
-index 55e41af..5d7146d 100644
+index 55e41af..3d8e96f 100644
 --- a/include/media/v4l2-device.h
 +++ b/include/media/v4l2-device.h
 @@ -33,7 +33,9 @@
@@ -85327,8 +87040,13 @@
  	struct device *dev;
  	/* used to keep track of the registered subdevs */
  	struct list_head subdevs;
-@@ -44,7 +46,9 @@ struct v4l2_device {
+@@ -42,9 +44,14 @@ struct v4l2_device {
+ 	spinlock_t lock;
+ 	/* unique device name, by default the driver name + bus ID */
  	char name[V4L2_DEVICE_NAME_SIZE];
++	/* notify callback called by some sub-devices. */
++	void (*notify)(struct v4l2_subdev *sd,
++			unsigned int notification, void *arg);
  };
  
 -/* Initialize v4l2_dev and make dev->driver_data point to v4l2_dev */
@@ -85338,7 +87056,7 @@
  int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev);
  /* Set v4l2_dev->dev->driver_data to NULL and unregister all sub-devices */
  void v4l2_device_unregister(struct v4l2_device *v4l2_dev);
-@@ -52,23 +56,24 @@ void v4l2_device_unregister(struct v4l2_device *v4l2_dev);
+@@ -52,23 +59,24 @@ void v4l2_device_unregister(struct v4l2_device *v4l2_dev);
  /* Register a subdev with a v4l2 device. While registered the subdev module
     is marked as in-use. An error is returned if the module is no longer
     loaded when you attempt to register it. */
@@ -85368,7 +87086,7 @@
  			if ((cond) && sd->ops->o && sd->ops->o->f) 	\
  				sd->ops->o->f(sd , ##args); 		\
  	} while (0)
-@@ -77,12 +82,12 @@ void v4l2_device_unregister_subdev(struct v4l2_subdev *sd);
+@@ -77,12 +85,12 @@ void v4l2_device_unregister_subdev(struct v4l2_subdev *sd);
     If the callback returns an error other than 0 or -ENOIOCTLCMD, then
     return with that error code. Note that you cannot add or delete a
     subdev while walking the subdevs list. */
@@ -85383,7 +87101,7 @@
  		if ((cond) && sd->ops->o && sd->ops->o->f) 		\
  			err = sd->ops->o->f(sd , ##args); 		\
  		if (err && err != -ENOIOCTLCMD)				\
-@@ -94,16 +99,16 @@ void v4l2_device_unregister_subdev(struct v4l2_subdev *sd);
+@@ -94,16 +102,16 @@ void v4l2_device_unregister_subdev(struct v4l2_subdev *sd);
  /* Call the specified callback for all subdevs matching grp_id (if 0, then
     match them all). Ignore any errors. Note that you cannot add or delete
     a subdev while walking the subdevs list. */
@@ -85425,7 +87143,7 @@
  				    int id, const char *name);
  /* Prints the ioctl in a human-readable format */
 diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
-index 37b09e5..05b6965 100644
+index 37b09e5..1b97a2c 100644
 --- a/include/media/v4l2-subdev.h
 +++ b/include/media/v4l2-subdev.h
 @@ -78,6 +78,9 @@ struct v4l2_subdev_core_ops {
@@ -85465,6 +87183,16 @@
  	sd->name[0] = '\0';
  	sd->grp_id = 0;
  	sd->priv = NULL;
+@@ -186,4 +191,9 @@ static inline void v4l2_subdev_init(struct v4l2_subdev *sd,
+ 	(!(sd) ? -ENODEV : (((sd) && (sd)->ops->o && (sd)->ops->o->f) ?	\
+ 		(sd)->ops->o->f((sd) , ##args) : -ENOIOCTLCMD))
+ 
++/* Send a notification to v4l2_device. */
++#define v4l2_subdev_notify(sd, notification, arg)			   \
++	((!(sd) || !(sd)->v4l2_dev || !(sd)->v4l2_dev->notify) ? -ENODEV : \
++	 (sd)->v4l2_dev->notify((sd), (notification), (arg)))
++
+ #endif
 diff --git a/include/media/videobuf-core.h b/include/media/videobuf-core.h
 index 874f134..1c5946c 100644
 --- a/include/media/videobuf-core.h


--- linux-2.6-hdpvr-fix.patch DELETED ---




More information about the fedora-extras-commits mailing list