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