rpms/kernel/devel config-generic, 1.260, 1.261 kernel.spec, 1.1461, 1.1462 linux-2.6-v4l-dvb-fixes.patch, 1.7, 1.8 linux-2.6-v4l-dvb-update.patch, 1.11, 1.12

Mauro Carvalho Chehab mchehab at fedoraproject.org
Tue Mar 24 01:01:48 UTC 2009


Author: mchehab

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

Modified Files:
	config-generic kernel.spec linux-2.6-v4l-dvb-fixes.patch 
	linux-2.6-v4l-dvb-update.patch 
Log Message:
Adds drivers/media patches:

V4L/DVB (11125): fix mispelled Hauppauge in HD PVR and PVR USB2 driver comments
V4L/DVB (11127): Kconfig: replace all occurrences of CUSTOMIZE to CUSTOMISE
V4L/DVB (11136): get_dvb_firmware: Add download code for cx18 firmwares
V4L/DVB (11137): get_dvb_firmware: add cx23885 firmwares
V4L/DVB (11138): get_dvb_firmware: add support for downloading the cx2584x firmware for pvrusb2
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
V4L/DVB (11143): gspca - t613: Bad sensor detection.
V4L/DVB (11144): gspca - t613: Don't re-read the ID registers at probe time.
V4L/DVB (11145): gspca - t613: Greater delay after om6802 reset.
V4L/DVB (11146): gspca - vc032x: Change the probe sequence.
V4L/DVB (11152): hdpvr: Fix build with Config_I2C not set

While here, fixes also some wrong items for drivers/media at config-generic




Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.260
retrieving revision 1.261
diff -u -r1.260 -r1.261
--- config-generic	19 Mar 2009 16:29:11 -0000	1.260
+++ config-generic	24 Mar 2009 01:01:16 -0000	1.261
@@ -2243,8 +2243,6 @@
 CONFIG_VIDEO_MXB=m
 CONFIG_VIDEO_OVCAMCHIP=m
 CONFIG_VIDEO_PVRUSB2_DVB=y
-CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR=y
-CONFIG_VIDEO_PVRUSB2_ONAIR_USB2=y
 CONFIG_VIDEO_HDPVR=m
 CONFIG_VIDEO_SAA5246A=m
 CONFIG_VIDEO_SAA5249=m
@@ -2264,8 +2262,6 @@
 CONFIG_VIDEO_ZORAN_LML33R10=m
 CONFIG_VIDEO_ZORAN_ZR36060=m
 CONFIG_VIDEO_FB_IVTV=m
-CONFIG_TUNER_3036=m
-# CONFIG_TUNER_TEA5761 is not set
 
 CONFIG_USB_VIDEO_CLASS=m
 CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
@@ -2278,14 +2274,13 @@
 CONFIG_RADIO_MAESTRO=m
 
 CONFIG_MEDIA_ATTACH=y
-# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 
 #
 # Digital Video Broadcasting Devices
 #
 CONFIG_DVB_CAPTURE_DRIVERS=y
 CONFIG_DVB_CORE=m
-CONFIG_DVB_CORE_ATTACH=y
 
 # CONFIG_DVB_FE_CUSTOMISE is not set
 
@@ -2310,7 +2305,6 @@
 #
 CONFIG_DVB_AV7110=m
 CONFIG_DVB_AV7110_OSD=y
-# CONFIG_DVB_AV7110_FIRMWARE is not set
 CONFIG_DVB_BUDGET=m
 CONFIG_DVB_BUDGET_CI=m
 CONFIG_DVB_BUDGET_AV=m
@@ -2324,17 +2318,11 @@
 #
 # Supported FlexCopII (B2C2) Adapters
 #
-CONFIG_DVB_CINERGYT2=m
+CONFIG_DVB_USB_CINERGY_T2=m
 CONFIG_DVB_B2C2_FLEXCOP=m
 CONFIG_DVB_B2C2_FLEXCOP_PCI=m
 CONFIG_DVB_B2C2_FLEXCOP_USB=m
 # CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-CONFIG_DVB_CINERGYT2_TUNING=y
-CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32
-CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
-CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
-CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
-CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100
 CONFIG_DVB_USB=m
 # CONFIG_DVB_USB_DEBUG is not set
 CONFIG_DVB_USB_A800=m
@@ -2358,13 +2346,10 @@
 CONFIG_DVB_USB_VP702X=m
 CONFIG_DVB_USB_VP7045=m
 
-CONFIG_DVB_TUNER_MT2131
-CONFIG_DVB_TUNER_QT1010=m
-
 CONFIG_VIDEO_SAA7146=m
 CONFIG_VIDEO_SAA7146_VV=m
 CONFIG_VIDEO_TUNER=m
-# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set
+# CONFIG_VIDEO_TUNER_CUSTOMISE is not set
 CONFIG_VIDEO_BTCX=m
 CONFIG_VIDEO_PVRUSB2=m
 CONFIG_VIDEO_PVRUSB2_24XXX=y


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1461
retrieving revision 1.1462
diff -u -r1.1461 -r1.1462
--- kernel.spec	23 Mar 2009 20:58:38 -0000	1.1461
+++ kernel.spec	24 Mar 2009 01:01:16 -0000	1.1462
@@ -1820,6 +1820,11 @@
 # and build.
 
 %changelog
+* Mon Mar 23 2009 Mauro Carvalho Chehab <mchehab at rehat.com>
+- Some fixes on drivers/media
+- Removed inexistent drivers/media items from config-generic
+- Cinergy T2 option were renamed. Use the current syntax
+
 * Mon Mar 23 2009 Matthew Garrett <mjg at redhat.com>
 - linux-2.6-sony-laptop-rfkill.patch
    Update to support hotkeys and rfkill switch

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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- linux-2.6-v4l-dvb-fixes.patch	15 Mar 2009 16:57:35 -0000	1.7
+++ linux-2.6-v4l-dvb-fixes.patch	24 Mar 2009 01:01:16 -0000	1.8
@@ -0,0 +1,16 @@
+Devin Heitmueller (1):
+      V4L/DVB (11141): em28xx: 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);
+ 
+ 		urb->number_of_packets = max_packets;
+-		urb->transfer_flags = URB_ISO_ASAP;
++		urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
+ 
+ 		k = 0;
+ 		for (j = 0; j < max_packets; j++) {

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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- linux-2.6-v4l-dvb-update.patch	20 Mar 2009 07:36:33 -0000	1.11
+++ linux-2.6-v4l-dvb-update.patch	24 Mar 2009 01:01:16 -0000	1.12
@@ -94,7 +94,7 @@
 Bruno Christo (1):
       V4L/DVB (10827): Add support for GeoVision GV-800(S)
 
-Devin Heitmueller (32):
+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
@@ -127,6 +127,9 @@
       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
@@ -337,10 +340,12 @@
 Jan Engelhardt (1):
       V4L/DVB (10391): dvb: constify VFTs
 
-Janne Grunau (3):
+Janne Grunau (5):
       V4L/DVB (11095): adds V4L2_CID_SHARPNESS to v4l2_ctrl_query_fill()
       V4L/DVB (11096): V4L2 Driver for the Hauppauge HD PVR usb capture device
       V4L/DVB (11097): use video_ioctl2 as ioctl handler directly
+      V4L/DVB (11125): fix mispelled Hauppauge in HD PVR and PVR USB2 driver comments
+      V4L/DVB (11152): hdpvr: Fix build with Config_I2C not set
 
 Jean Delvare (8):
       V4L/DVB (10867): vino: fold i2c-algo-sgi code into vino.
@@ -352,7 +357,7 @@
       V4L/DVB (10943): cx88: Prevent general protection fault on rmmod
       V4L/DVB (11111a): MAINTAINERS: Drop references to deprecated video4linux list
 
-Jean-Francois Moine (64):
+Jean-Francois Moine (68):
       V4L/DVB (10332): gspca - main: Version change.
       V4L/DVB (10333): gspca - main and many subdrivers: Remove the epaddr variable.
       V4L/DVB (10337): gspca - common: Simplify the debug macros.
@@ -417,6 +422,10 @@
       V4L/DVB (11104): gspca - ov534: Bad frame pointer after adding the last packet
       V4L/DVB (11105): gspca - ov534: Adjust the packet scan function
       V4L/DVB (11106): gspca - ov534: New sensor ov965x and re-enable the webcam 06f8:3003
+      V4L/DVB (11143): gspca - t613: Bad sensor detection.
+      V4L/DVB (11144): gspca - t613: Don't re-read the ID registers at probe time.
+      V4L/DVB (11145): gspca - t613: Greater delay after om6802 reset.
+      V4L/DVB (11146): gspca - vc032x: Change the probe sequence.
 
 Jochen Friedrich (2):
       V4L/DVB (10452): Add Freescale MC44S803 tuner driver
@@ -468,7 +477,7 @@
       V4L/DVB (10823): saa7134: add DVB support for Avermedia A700 cards
       V4L/DVB (10948): flexcop-pci: Print a message in case the new stream watchdog detects a problem
 
-Mauro Carvalho Chehab (42):
+Mauro Carvalho Chehab (46):
       V4L/DVB (10211): vivi: Implements 4 inputs on vivi
       V4L/DVB (10298): remove err macro from few usb devices
       V4L/DVB (10305): videobuf-vmalloc: Fix: videobuf memory were never freed
@@ -510,6 +519,10 @@
       V4L/DVB (11109): au0828: Fix compilation when VIDEO_ADV_DEBUG = n
       V4L/DVB (11110): au8522/au0828: Fix Kconfig dependencies
       V4L/DVB (11111): dvb_dummy_fe: Fix compilation breakage
+      V4L/DVB (11127): Kconfig: replace all occurrences of CUSTOMIZE to CUSTOMISE
+      V4L/DVB (11136): get_dvb_firmware: Add download code for cx18 firmwares
+      V4L/DVB (11137): get_dvb_firmware: add cx23885 firmwares
+      V4L/DVB (11138): get_dvb_firmware: add support for downloading the cx2584x firmware for pvrusb2
       Merge branch 'next' of ../devel into Fedora
 
 Michael Krufky (35):
@@ -682,7 +695,7 @@
       V4L/DVB (10824): Add "Sony PlayTV" to dibcom driver
 
 diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware
-index f2e908d..72455b6 100644
+index f2e908d..2f21ecd 100644
 --- a/Documentation/dvb/get_dvb_firmware
 +++ b/Documentation/dvb/get_dvb_firmware
 @@ -25,7 +25,7 @@ use IO::Handle;
@@ -690,11 +703,22 @@
  		"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
  		"or51211", "or51132_qam", "or51132_vsb", "bluebird",
 -		"opera1");
-+		"opera1", "cx231xx");
++		"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2" );
  
  # Check args
  syntax() if (scalar(@ARGV) != 1);
-@@ -345,6 +345,19 @@ sub or51211 {
+@@ -37,8 +37,8 @@ for ($i=0; $i < scalar(@components); $i++) {
+ 	$outfile = eval($cid);
+ 	die $@ if $@;
+ 	print STDERR <<EOF;
+-Firmware $outfile extracted successfully.
+-Now copy it to either /usr/lib/hotplug/firmware or /lib/firmware
++Firmware(s) $outfile extracted successfully.
++Now copy it(they) to either /usr/lib/hotplug/firmware or /lib/firmware
+ (depending on configuration of firmware hotplug).
+ EOF
+ 	exit(0);
+@@ -345,6 +345,85 @@ sub or51211 {
      $fwfile;
  }
  
@@ -711,6 +735,72 @@
 +    $fwfile;
 +}
 +
++sub cx18 {
++    my $url = "http://linuxtv.org/downloads/firmware/";
++
++    my %files = (
++	'v4l-cx23418-apu.fw' => '588f081b562f5c653a3db1ad8f65939a',
++	'v4l-cx23418-cpu.fw' => 'b6c7ed64bc44b1a6e0840adaeac39d79',
++	'v4l-cx23418-dig.fw' => '95bc688d3e7599fd5800161e9971cc55',
++    );
++
++    checkstandard();
++
++    my $allfiles;
++    foreach my $fwfile (keys %files) {
++	wgetfile($fwfile, "$url/$fwfile");
++	verify($fwfile, $files{$fwfile});
++	$allfiles .= " $fwfile";
++    }
++
++    $allfiles =~ s/^\s//;
++
++    $allfiles;
++}
++
++sub cx23885 {
++    my $url = "http://linuxtv.org/downloads/firmware/";
++
++    my %files = (
++	'v4l-cx23885-avcore-01.fw' => 'a9f8f5d901a7fb42f552e1ee6384f3bb',
++	'v4l-cx23885-enc.fw'       => 'a9f8f5d901a7fb42f552e1ee6384f3bb',
++    );
++
++    checkstandard();
++
++    my $allfiles;
++    foreach my $fwfile (keys %files) {
++	wgetfile($fwfile, "$url/$fwfile");
++	verify($fwfile, $files{$fwfile});
++	$allfiles .= " $fwfile";
++    }
++
++    $allfiles =~ s/^\s//;
++
++    $allfiles;
++}
++
++sub pvrusb2 {
++    my $url = "http://linuxtv.org/downloads/firmware/";
++
++    my %files = (
++	'v4l-cx25840.fw'           => 'dadb79e9904fc8af96e8111d9cb59320',
++    );
++
++    checkstandard();
++
++    my $allfiles;
++    foreach my $fwfile (keys %files) {
++	wgetfile($fwfile, "$url/$fwfile");
++	verify($fwfile, $files{$fwfile});
++	$allfiles .= " $fwfile";
++    }
++
++    $allfiles =~ s/^\s//;
++
++    $allfiles;
++}
++
  sub or51132_qam {
      my $fwfile = "dvb-fe-or51132-qam.fw";
      my $url = "http://linuxtv.org/downloads/firmware/$fwfile";
@@ -3320,23 +3410,67 @@
  /*********************************************************************************/
  /* buffer handling functions                                                  */
 diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
-index 6f92bea..724e687 100644
+index 6f92bea..52c3f65 100644
 --- a/drivers/media/common/tuners/Kconfig
 +++ b/drivers/media/common/tuners/Kconfig
-@@ -29,6 +29,7 @@ config MEDIA_TUNER
- 	select MEDIA_TUNER_TEA5767 if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_TDA9887 if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMIZE
- 
- menuconfig MEDIA_TUNER_CUSTOMIZE
+@@ -21,16 +21,17 @@ config MEDIA_TUNER
+ 	tristate
+ 	default VIDEO_MEDIA && I2C
+ 	depends on VIDEO_MEDIA && I2C
+-	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_MT20XX if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_TEA5761 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_TEA5767 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_TDA9887 if !MEDIA_TUNER_CUSTOMIZE
+-
+-menuconfig MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_MT20XX if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TEA5761 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TEA5767 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA9887 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
++
++menuconfig MEDIA_TUNER_CUSTOMISE
  	bool "Customize analog and hybrid tuner modules to build"
-@@ -65,14 +66,14 @@ config MEDIA_TUNER_TDA8290
+ 	depends on MEDIA_TUNER
+ 	default n
+@@ -43,13 +44,13 @@ menuconfig MEDIA_TUNER_CUSTOMIZE
+ 
+ 	  If unsure say N.
+ 
+-if MEDIA_TUNER_CUSTOMIZE
++if MEDIA_TUNER_CUSTOMISE
+ 
+ config MEDIA_TUNER_SIMPLE
+ 	tristate "Simple tuner support"
+ 	depends on VIDEO_MEDIA && I2C
+ 	select MEDIA_TUNER_TDA9887
+-	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to include support for various simple tuners.
+ 
+@@ -58,28 +59,28 @@ config MEDIA_TUNER_TDA8290
+ 	depends on VIDEO_MEDIA && I2C
+ 	select MEDIA_TUNER_TDA827X
+ 	select MEDIA_TUNER_TDA18271
+-	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to include support for Philips TDA8290+8275(a) tuner.
+ 
  config MEDIA_TUNER_TDA827X
  	tristate "Philips TDA827X silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.
  
@@ -3344,16 +3478,48 @@
  	tristate "NXP TDA18271 silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A silicon tuner module. Say Y when you want to support this tuner.
  
-@@ -109,28 +110,28 @@ config MEDIA_TUNER_MT20XX
+ config MEDIA_TUNER_TDA9887
+ 	tristate "TDA 9885/6/7 analog IF demodulator"
+ 	depends on VIDEO_MEDIA && I2C
+-	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to include support for Philips TDA9885/6/7
+ 	  analog IF demodulator.
+@@ -88,63 +89,63 @@ config MEDIA_TUNER_TEA5761
+ 	tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
+ 	depends on VIDEO_MEDIA && I2C
+ 	depends on EXPERIMENTAL
+-	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to include support for the Philips TEA5761 radio tuner.
+ 
+ config MEDIA_TUNER_TEA5767
+ 	tristate "TEA 5767 radio tuner"
+ 	depends on VIDEO_MEDIA && I2C
+-	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to include support for the Philips TEA5767 radio tuner.
+ 
+ config MEDIA_TUNER_MT20XX
+ 	tristate "Microtune 2032 / 2050 tuners"
+ 	depends on VIDEO_MEDIA && I2C
+-	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to include support for the MT2032 / MT2050 tuner.
+ 
  config MEDIA_TUNER_MT2060
  	tristate "Microtune MT2060 silicon IF tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A driver for the silicon IF tuner MT2060 from Microtune.
  
@@ -3361,7 +3527,7 @@
  	tristate "Microtune MT2266 silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A driver for the silicon baseband tuner MT2266 from Microtune.
  
@@ -3369,7 +3535,7 @@
  	tristate "Microtune MT2131 silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A driver for the silicon baseband tuner MT2131 from Microtune.
  
@@ -3377,16 +3543,23 @@
  	tristate "Quantek QT1010 silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A driver for the silicon tuner QT1010 from Quantek.
  
-@@ -144,7 +145,7 @@ config MEDIA_TUNER_XC2028
+ config MEDIA_TUNER_XC2028
+ 	tristate "XCeive xc2028/xc3028 tuners"
+ 	depends on VIDEO_MEDIA && I2C
+-	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to include support for the xc2028/xc3028 tuners.
+ 
  config MEDIA_TUNER_XC5000
  	tristate "Xceive XC5000 silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A driver for the silicon tuner XC5000 from Xceive.
  	  This device is only used inside a SiP called togther with a
@@ -3395,7 +3568,7 @@
  	tristate "MaxLinear MSL5005S silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A driver for the silicon tuner MXL5005S from MaxLinear.
  
@@ -3403,18 +3576,19 @@
  	tristate "MaxLinear MxL5007T silicon tuner"
  	depends on VIDEO_MEDIA && I2C
 -	default m if DVB_FE_CUSTOMISE
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
  	help
  	  A driver for the silicon tuner MxL5007T from MaxLinear.
  
+-endif # MEDIA_TUNER_CUSTOMIZE
 +config MEDIA_TUNER_MC44S803
 +	tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
 +	depends on VIDEO_MEDIA && I2C
-+	default m if MEDIA_TUNER_CUSTOMIZE
++	default m if MEDIA_TUNER_CUSTOMISE
 +	help
 +	  Say Y here to support the Freescale MC44S803 based tuners
 +
- endif # MEDIA_TUNER_CUSTOMIZE
++endif # MEDIA_TUNER_CUSTOMISE
 diff --git a/drivers/media/common/tuners/Makefile b/drivers/media/common/tuners/Makefile
 index 4dfbe5b..4132b2b 100644
 --- a/drivers/media/common/tuners/Makefile
@@ -5433,6 +5607,19 @@
  	/* Check if firmware has been loaded. It is possible that another
  	   instance of the driver has loaded the firmware.
  	 */
+diff --git a/drivers/media/dvb/b2c2/Kconfig b/drivers/media/dvb/b2c2/Kconfig
+index a8c6249..9e57814 100644
+--- a/drivers/media/dvb/b2c2/Kconfig
++++ b/drivers/media/dvb/b2c2/Kconfig
+@@ -13,7 +13,7 @@ config DVB_B2C2_FLEXCOP
+ 	select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE
+ 	select DVB_ISL6421 if !DVB_FE_CUSTOMISE
+ 	select DVB_CX24123 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
+ 	select DVB_TUNER_CX24113 if !DVB_FE_CUSTOMISE
+ 	help
+ 	  Support for the digital TV receiver chip made by B2C2 Inc. included in
 diff --git a/drivers/media/dvb/b2c2/flexcop-pci.c b/drivers/media/dvb/b2c2/flexcop-pci.c
 index 76e37fd..84d2252 100644
 --- a/drivers/media/dvb/b2c2/flexcop-pci.c
@@ -5445,6 +5632,19 @@
  
  				spin_lock_irq(&fc->demux.lock);
  				list_for_each_entry(feed, &fc->demux.feed_list,
+diff --git a/drivers/media/dvb/bt8xx/Kconfig b/drivers/media/dvb/bt8xx/Kconfig
+index 27edb0e..8668e63 100644
+--- a/drivers/media/dvb/bt8xx/Kconfig
++++ b/drivers/media/dvb/bt8xx/Kconfig
+@@ -8,7 +8,7 @@ config DVB_BT8XX
+ 	select DVB_OR51211 if !DVB_FE_CUSTOMISE
+ 	select DVB_LGDT330X if !DVB_FE_CUSTOMISE
+ 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Support for PCI cards based on the Bt8xx PCI bridge. Examples are
+ 	  the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards,
 diff --git a/drivers/media/dvb/bt8xx/dst_ca.c b/drivers/media/dvb/bt8xx/dst_ca.c
 index 0258451..6c68f02 100644
 --- a/drivers/media/dvb/bt8xx/dst_ca.c
@@ -5898,9 +6098,36 @@
  	int type;
  	int minor;
 diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig
-index 49f7b20..b899d50 100644
+index 49f7b20..5b0c8cc 100644
 --- a/drivers/media/dvb/dvb-usb/Kconfig
 +++ b/drivers/media/dvb/dvb-usb/Kconfig
+@@ -25,7 +25,7 @@ config DVB_USB_A800
+ 	depends on DVB_USB
+ 	select DVB_DIB3000MC
+ 	select DVB_PLL if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver.
+ 
+@@ -34,7 +34,7 @@ config DVB_USB_DIBUSB_MB
+ 	depends on DVB_USB
+ 	select DVB_PLL if !DVB_FE_CUSTOMISE
+ 	select DVB_DIB3000MB
+-	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by
+ 	  DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator.
+@@ -55,7 +55,7 @@ config DVB_USB_DIBUSB_MC
+ 	tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)"
+ 	depends on DVB_USB
+ 	select DVB_DIB3000MC
+-	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Support for USB2.0 DVB-T receivers based on reference designs made by
+ 	  DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator.
 @@ -69,15 +69,17 @@ config DVB_USB_DIBUSB_MC
  config DVB_USB_DIB0700
  	tristate "DiBcom DiB0700 USB DVB devices (see help for supported devices)"
@@ -5913,36 +6140,115 @@
 +	select DVB_DIB3000MC if !DVB_FE_CUSTOMISE
  	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
 -	select DVB_TUNER_DIB0070
+-	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_MT2266 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
 +	select DVB_LGDT3305 if !DVB_FE_CUSTOMISE
 +	select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE
- 	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_MT2266 if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_MT2266 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMISE
  	help
  	  Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The
  	  USB bridge is also present in devices having the DiB7700 DVB-T-USB
-@@ -96,6 +98,7 @@ config DVB_USB_UMT_010
+@@ -95,7 +97,8 @@ config DVB_USB_UMT_010
+ 	depends on DVB_USB
  	select DVB_PLL if !DVB_FE_CUSTOMISE
  	select DVB_DIB3000MC
- 	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
 +	select DVB_MT352 if !DVB_FE_CUSTOMISE
  	help
  	  Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver.
  
-@@ -108,6 +111,7 @@ config DVB_USB_CXUSB
+@@ -108,10 +111,11 @@ config DVB_USB_CXUSB
  	select DVB_MT352 if !DVB_FE_CUSTOMISE
  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
  	select DVB_DIB7000P if !DVB_FE_CUSTOMISE
 +	select DVB_LGS8GL5 if !DVB_FE_CUSTOMISE
  	select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE
- 	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
-@@ -297,5 +301,6 @@ config DVB_USB_AF9015
- 	select MEDIA_TUNER_QT1010   if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the Conexant USB2.0 hybrid reference design.
+ 	  Currently, only DVB and ATSC modes are supported, analog mode
+@@ -125,8 +129,8 @@ config DVB_USB_M920X
+ 	depends on DVB_USB
+ 	select DVB_MT352 if !DVB_FE_CUSTOMISE
+ 	select DVB_TDA1004X if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver.
+ 	  Currently, only devices with a product id of
+@@ -137,7 +141,7 @@ config DVB_USB_GL861
+ 	tristate "Genesys Logic GL861 USB2.0 support"
+ 	depends on DVB_USB
+ 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0
+ 	  receiver with USB ID 0db0:5581.
+@@ -146,7 +150,7 @@ config DVB_USB_AU6610
+ 	tristate "Alcor Micro AU6610 USB2.0 support"
+ 	depends on DVB_USB
+ 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver.
+ 
+@@ -199,7 +203,7 @@ config DVB_USB_NOVA_T_USB2
+ 	depends on DVB_USB
+ 	select DVB_DIB3000MC
+ 	select DVB_PLL if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver.
+ 
+@@ -235,8 +239,8 @@ config DVB_USB_OPERA1
+ config DVB_USB_AF9005
+ 	tristate "Afatech AF9005 DVB-T USB1.1 support"
+ 	depends on DVB_USB && EXPERIMENTAL
+-	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
+ 	  and the TerraTec Cinergy T USB XE (Rev.1)
+@@ -284,7 +288,7 @@ config DVB_USB_DTV5100
+ 	tristate "AME DTV-5100 USB2.0 DVB-T support"
+ 	depends on DVB_USB
+ 	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE
+ 	help
+ 	  Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver.
+ 
+@@ -293,9 +297,10 @@ config DVB_USB_AF9015
+ 	depends on DVB_USB && EXPERIMENTAL
+ 	select DVB_AF9013
+ 	select DVB_PLL              if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_MT2060   if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_QT1010   if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MT2060   if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_QT1010   if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE
 +	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
  	help
  	  Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver
@@ -22989,6 +23295,19 @@
 +MODULE_DESCRIPTION("Driver for the Siano SMS1XXX USB dongle");
 +MODULE_AUTHOR("Siano Mobile Silicon, INC. (uris at siano-ms.com)");
 +MODULE_LICENSE("GPL");
+diff --git a/drivers/media/dvb/ttpci/Kconfig b/drivers/media/dvb/ttpci/Kconfig
+index ab0bcd2..7729904 100644
+--- a/drivers/media/dvb/ttpci/Kconfig
++++ b/drivers/media/dvb/ttpci/Kconfig
+@@ -108,7 +108,7 @@ config DVB_BUDGET_CI
+ 	select DVB_STB6100 if !DVB_FE_CUSTOMISE
+ 	select DVB_LNBP21 if !DVB_FE_CUSTOMISE
+ 	select DVB_TDA10023 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMISE
+ 	select VIDEO_IR
+ 	help
+ 	  Support for simple SAA7146 based DVB cards
 diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c
 index aa1ff52..4624cee 100644
 --- a/drivers/media/dvb/ttpci/av7110.c
@@ -34068,7 +34387,7 @@
  	.remove = adv7175_remove,
  	.id_table = adv7175_id,
 diff --git a/drivers/media/video/au0828/Kconfig b/drivers/media/video/au0828/Kconfig
-index 018f72b..551f9ba 100644
+index 018f72b..05cdf49 100644
 --- a/drivers/media/video/au0828/Kconfig
 +++ b/drivers/media/video/au0828/Kconfig
 @@ -1,13 +1,13 @@
@@ -34084,9 +34403,9 @@
 -	select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE
 -	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
 +	select DVB_AU8522 if !DVB_FE_CUSTOMISE
-+	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
  	---help---
  	  This is a video4linux driver for Auvitek's USB device.
  
@@ -34572,7 +34891,7 @@
  #define REG_600 0x600
 diff --git a/drivers/media/video/au0828/au0828-video.c b/drivers/media/video/au0828/au0828-video.c
 new file mode 100644
-index 0000000..d3a388a
+index 0000000..f7ad495
 --- /dev/null
 +++ b/drivers/media/video/au0828/au0828-video.c
 @@ -0,0 +1,1712 @@
@@ -34845,7 +35164,7 @@
 +				 au0828_irq_callback, dma_q, 1);
 +
 +		urb->number_of_packets = max_packets;
-+		urb->transfer_flags = URB_ISO_ASAP;
++		urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
 +
 +		k = 0;
 +		for (j = 0; j < max_packets; j++) {
@@ -42972,6 +43291,19 @@
  	.command = cs53l32a_command,
  	.remove = cs53l32a_remove,
  	.probe = cs53l32a_probe,
+diff --git a/drivers/media/video/cx18/Kconfig b/drivers/media/video/cx18/Kconfig
+index 8940b53..e8a50a6 100644
+--- a/drivers/media/video/cx18/Kconfig
++++ b/drivers/media/video/cx18/Kconfig
+@@ -9,7 +9,7 @@ config VIDEO_CX18
+ 	select VIDEO_CX2341X
+ 	select VIDEO_CS5345
+ 	select DVB_S5H1409 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE
+ 	---help---
+ 	  This is a video4linux driver for Conexant cx23418 based
+ 	  PCI combo video recorder devices.
 diff --git a/drivers/media/video/cx18/cx18-audio.c b/drivers/media/video/cx18/cx18-audio.c
 index 57beddf..bb5c516 100644
 --- a/drivers/media/video/cx18/cx18-audio.c
@@ -48745,7 +49077,7 @@
  		p->audio_mute ? " (muted)" : "");
  	if (p->audio_mode == V4L2_MPEG_AUDIO_MODE_JOINT_STEREO)
 diff --git a/drivers/media/video/cx23885/Kconfig b/drivers/media/video/cx23885/Kconfig
-index 00f1e2e..e603ceb 100644
+index 00f1e2e..fd3fc3e 100644
 --- a/drivers/media/video/cx23885/Kconfig
 +++ b/drivers/media/video/cx23885/Kconfig
 @@ -15,12 +15,15 @@ config VIDEO_CX23885
@@ -48753,19 +49085,20 @@
  	select DVB_LGDT330X if !DVB_FE_CUSTOMISE
  	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
 -	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
-+	select DVB_TDA10048 if !DVB_FE_CUSTOMISE
-+	select DVB_LNBP21 if !DVB_FE_CUSTOMISE
-+	select DVB_STV6110 if !DVB_FE_CUSTOMISE
-+	select DVB_STV0900 if !DVB_FE_CUSTOMISE
- 	select MEDIA_TUNER_MT2131 if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_MT2131 if !MEDIA_TUNER_CUSTOMIZE
 -	select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE
 -	select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
 -	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
 -	select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
-+	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
++	select DVB_TDA10048 if !DVB_FE_CUSTOMISE
++	select DVB_LNBP21 if !DVB_FE_CUSTOMISE
++	select DVB_STV6110 if !DVB_FE_CUSTOMISE
++	select DVB_STV0900 if !DVB_FE_CUSTOMISE
++	select MEDIA_TUNER_MT2131 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMISE
  	---help---
  	  This is a video4linux driver for Conexant 23885 based
  	  TV cards.
@@ -50183,6 +50516,19 @@
  	default:
  		return -EINVAL;
  	}
+diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig
+index 2d250a2..4995298 100644
+--- a/drivers/media/video/cx88/Kconfig
++++ b/drivers/media/video/cx88/Kconfig
+@@ -61,7 +61,7 @@ config VIDEO_CX88_DVB
+ 	select DVB_STV0299 if !DVB_FE_CUSTOMISE
+ 	select DVB_STV0288 if !DVB_FE_CUSTOMISE
+ 	select DVB_STB6000 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
+ 	---help---
+ 	  This adds support for DVB/ATSC cards based on the
+ 	  Conexant 2388x chip.
 diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
 index 733ede3..b9def8c 100644
 --- a/drivers/media/video/cx88/cx88-cards.c
@@ -50942,7 +51288,7 @@
  	return hwptr_done;
  }
 diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
-index 3b3ca3f..650ccfd 100644
+index 3b3ca3f..0f48c0f 100644
 --- a/drivers/media/video/em28xx/em28xx-cards.c
 +++ b/drivers/media/video/em28xx/em28xx-cards.c
 @@ -122,6 +122,22 @@ static struct em28xx_reg_seq default_tuner_gpio[] = {
@@ -51039,7 +51385,23 @@
  		.decoder       = EM28XX_TVP5150,
  		.input         = { {
  			.type     = EM28XX_VMUX_TELEVISION,
-@@ -842,11 +857,11 @@ struct em28xx_board em28xx_boards[] = {
+@@ -604,6 +619,7 @@ struct em28xx_board em28xx_boards[] = {
+ 		.mts_firmware = 1,
+ 		.has_dvb      = 1,
+ 		.dvb_gpio     = hauppauge_wintv_hvr_900_digital,
++		.ir_codes     = ir_codes_hauppauge_new,
+ 		.decoder      = EM28XX_TVP5150,
+ 		.input        = { {
+ 			.type     = EM28XX_VMUX_TELEVISION,
+@@ -628,6 +644,7 @@ struct em28xx_board em28xx_boards[] = {
+ 		.tuner_type   = TUNER_XC2028,
+ 		.tuner_gpio   = default_tuner_gpio,
+ 		.mts_firmware = 1,
++		.ir_codes     = ir_codes_hauppauge_new,
+ 		.decoder      = EM28XX_TVP5150,
+ 		.input        = { {
+ 			.type     = EM28XX_VMUX_TELEVISION,
+@@ -842,11 +859,11 @@ struct em28xx_board em28xx_boards[] = {
  		} },
  	},
  	[EM2800_BOARD_GRABBEEX_USB2800] = {
@@ -51056,7 +51418,7 @@
  			.type     = EM28XX_VMUX_COMPOSITE1,
  			.vmux     = SAA7115_COMPOSITE0,
  			.amux     = EM28XX_AMUX_LINE_IN,
-@@ -897,7 +912,7 @@ struct em28xx_board em28xx_boards[] = {
+@@ -897,7 +914,7 @@ struct em28xx_board em28xx_boards[] = {
  		} },
  	},
  	[EM2820_BOARD_PINNACLE_DVC_90] = {
@@ -51065,7 +51427,7 @@
  		.tuner_type   = TUNER_ABSENT, /* capture only board */
  		.decoder      = EM28XX_SAA711X,
  		.input        = { {
-@@ -952,7 +967,7 @@ struct em28xx_board em28xx_boards[] = {
+@@ -952,7 +969,7 @@ struct em28xx_board em28xx_boards[] = {
  		} },
  	},
  	[EM2820_BOARD_PROLINK_PLAYTV_USB2] = {
@@ -51074,7 +51436,7 @@
  		.has_snapshot_button = 1,
  		.tda9887_conf = TDA9887_PRESENT,
  		.tuner_type   = TUNER_YMEC_TVF_5533MF,
-@@ -1198,7 +1213,9 @@ struct em28xx_board em28xx_boards[] = {
+@@ -1198,7 +1215,9 @@ struct em28xx_board em28xx_boards[] = {
  		.has_dvb      = 1,
  		.dvb_gpio     = kworld_330u_digital,
  		.xclk             = EM28XX_XCLK_FREQUENCY_12MHZ,
@@ -51085,7 +51447,7 @@
  		.input        = { {
  			.type     = EM28XX_VMUX_TELEVISION,
  			.vmux     = TVP5150_COMPOSITE0,
-@@ -1223,21 +1240,88 @@ struct em28xx_board em28xx_boards[] = {
+@@ -1223,21 +1242,88 @@ struct em28xx_board em28xx_boards[] = {
  		.tuner_type   = TUNER_LG_PAL_NEW_TAPC,
  		.tda9887_conf = TDA9887_PRESENT,
  		.decoder      = EM28XX_TVP5150,
@@ -51175,7 +51537,7 @@
  	{ USB_DEVICE(0xeb1a, 0x2750),
  			.driver_info = EM2750_BOARD_UNKNOWN },
  	{ USB_DEVICE(0xeb1a, 0x2751),
-@@ -1260,6 +1344,8 @@ struct usb_device_id em28xx_id_table [] = {
+@@ -1260,6 +1346,8 @@ struct usb_device_id em28xx_id_table [] = {
  			.driver_info = EM2820_BOARD_UNKNOWN },
  	{ USB_DEVICE(0xeb1a, 0xe300),
  			.driver_info = EM2861_BOARD_KWORLD_PVRTV_300U },
@@ -51184,7 +51546,7 @@
  	{ USB_DEVICE(0xeb1a, 0xe305),
  			.driver_info = EM2880_BOARD_KWORLD_DVB_305U },
  	{ USB_DEVICE(0xeb1a, 0xe310),
-@@ -1278,6 +1364,8 @@ struct usb_device_id em28xx_id_table [] = {
+@@ -1278,6 +1366,8 @@ struct usb_device_id em28xx_id_table [] = {
  			.driver_info = EM2800_BOARD_GRABBEEX_USB2800 },
  	{ USB_DEVICE(0xeb1a, 0xe357),
  			.driver_info = EM2870_BOARD_KWORLD_355U },
@@ -51193,7 +51555,7 @@
  	{ USB_DEVICE(0x0ccd, 0x0036),
  			.driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 },
  	{ USB_DEVICE(0x0ccd, 0x004c),
-@@ -1330,6 +1418,8 @@ struct usb_device_id em28xx_id_table [] = {
+@@ -1330,6 +1420,8 @@ struct usb_device_id em28xx_id_table [] = {
  			.driver_info = EM2800_BOARD_LEADTEK_WINFAST_USBII },
  	{ USB_DEVICE(0x093b, 0xa005),
  			.driver_info = EM2861_BOARD_PLEXTOR_PX_TV100U },
@@ -51202,7 +51564,7 @@
  	{ },
  };
  MODULE_DEVICE_TABLE(usb, em28xx_id_table);
-@@ -1337,7 +1427,7 @@ MODULE_DEVICE_TABLE(usb, em28xx_id_table);
+@@ -1337,7 +1429,7 @@ MODULE_DEVICE_TABLE(usb, em28xx_id_table);
  /*
   * EEPROM hash table for devices with generic USB IDs
   */
@@ -51211,7 +51573,7 @@
  	/* P/N: SA 60002070465 Tuner: TVF7533-MF */
  	{0x6ce05a8f, EM2820_BOARD_PROLINK_PLAYTV_USB2, TUNER_YMEC_TVF_5533MF},
  	{0x72cc5a8b, EM2820_BOARD_PROLINK_PLAYTV_BOX4_USB2, TUNER_YMEC_TVF_5533MF},
-@@ -1349,6 +1439,7 @@ static struct em28xx_hash_table em28xx_i2c_hash[] = {
+@@ -1349,6 +1441,7 @@ static struct em28xx_hash_table em28xx_i2c_hash[] = {
  	{0xb06a32c3, EM2800_BOARD_TERRATEC_CINERGY_200, TUNER_LG_PAL_NEW_TAPC},
  	{0xf51200e3, EM2800_BOARD_VGEAR_POCKETTV, TUNER_LG_PAL_NEW_TAPC},
  	{0x1ba50080, EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA, TUNER_ABSENT},
@@ -51219,7 +51581,7 @@
  };
  
  int em28xx_tuner_callback(void *ptr, int component, int command, int arg)
-@@ -1368,7 +1459,7 @@ int em28xx_tuner_callback(void *ptr, int component, int command, int arg)
+@@ -1368,7 +1461,7 @@ int em28xx_tuner_callback(void *ptr, int component, int command, int arg)
  }
  EXPORT_SYMBOL_GPL(em28xx_tuner_callback);
  
@@ -51228,7 +51590,7 @@
  {
  	memcpy(&dev->board, &em28xx_boards[dev->model], sizeof(dev->board));
  
-@@ -1504,6 +1595,34 @@ void em28xx_pre_card_setup(struct em28xx *dev)
+@@ -1504,6 +1597,34 @@ void em28xx_pre_card_setup(struct em28xx *dev)
  		/* enables audio for that devices */
  		em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xfd);
  		break;
@@ -51263,7 +51625,7 @@
  	}
  
  	em28xx_gpio_set(dev, dev->board.tuner_gpio);
-@@ -1610,7 +1729,7 @@ static int em28xx_hint_board(struct em28xx *dev)
+@@ -1610,7 +1731,7 @@ static int em28xx_hint_board(struct em28xx *dev)
  			em28xx_errdev("If the board were missdetected, "
  				      "please email this log to:\n");
  			em28xx_errdev("\tV4L Mailing List "
@@ -51272,7 +51634,7 @@
  			em28xx_errdev("Board detected as %s\n",
  				      em28xx_boards[dev->model].name);
  
-@@ -1642,7 +1761,7 @@ static int em28xx_hint_board(struct em28xx *dev)
+@@ -1642,7 +1763,7 @@ static int em28xx_hint_board(struct em28xx *dev)
  			em28xx_errdev("If the board were missdetected, "
  				      "please email this log to:\n");
  			em28xx_errdev("\tV4L Mailing List "
@@ -51281,7 +51643,7 @@
  			em28xx_errdev("Board detected as %s\n",
  				      em28xx_boards[dev->model].name);
  
-@@ -1655,7 +1774,7 @@ static int em28xx_hint_board(struct em28xx *dev)
+@@ -1655,7 +1776,7 @@ static int em28xx_hint_board(struct em28xx *dev)
  	em28xx_errdev("You may try to use card=<n> insmod option to "
  		      "workaround that.\n");
  	em28xx_errdev("Please send an email with this log to:\n");
@@ -51290,7 +51652,7 @@
  	em28xx_errdev("Board eeprom hash is 0x%08lx\n", dev->hash);
  	em28xx_errdev("Board i2c devicelist hash is 0x%08lx\n", dev->i2c_hash);
  
-@@ -1800,6 +1919,8 @@ void em28xx_card_setup(struct em28xx *dev)
+@@ -1800,6 +1921,8 @@ void em28xx_card_setup(struct em28xx *dev)
  		request_module("tvp5150");
  	if (dev->board.tuner_type != TUNER_ABSENT)
  		request_module("tuner");
@@ -51300,7 +51662,7 @@
  
  	em28xx_config_tuner(dev);
 diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
-index 94fb1b6..c896d24 100644
+index f3c18ed..8f1999c 100644
 --- a/drivers/media/video/em28xx/em28xx-core.c
 +++ b/drivers/media/video/em28xx/em28xx-core.c
 @@ -33,8 +33,8 @@
@@ -60184,7 +60546,7 @@
  	return 0;
  }
 diff --git a/drivers/media/video/gspca/t613.c b/drivers/media/video/gspca/t613.c
-index 6ee111a..3539310 100644
+index 6ee111a..f63e37e 100644
 --- a/drivers/media/video/gspca/t613.c
 +++ b/drivers/media/video/gspca/t613.c
 @@ -37,20 +37,21 @@ MODULE_LICENSE("GPL");
@@ -60695,6 +61057,15 @@
  		0xdf, 0x6d,
  		0xdd, 0x18,
  		0x5a, 0xe0,
+@@ -497,7 +495,7 @@ static void om6802_sensor_init(struct gspca_dev *gspca_dev)
+ 	};
+ 
+ 	reg_w_buf(gspca_dev, sensor_reset, sizeof sensor_reset);
+-	msleep(5);
++	msleep(100);
+ 	i = 4;
+ 	while (--i > 0) {
+ 		byte = reg_r(gspca_dev, 0x0060);
 @@ -538,20 +536,20 @@ static int sd_config(struct gspca_dev *gspca_dev,
  	struct cam *cam;
  
@@ -60784,15 +61155,17 @@
  	struct sd *sd = (struct sd *) gspca_dev;
  	int i;
 -	__u8 byte, test_byte;
+-
+-	static const __u8 read_indexs[] =
+-		{ 0x06, 0x07, 0x0a, 0x0b, 0x66, 0x80, 0x81, 0x8e, 0x8f, 0xa5,
+-		  0xa6, 0xa8, 0xbb, 0xbc, 0xc6, 0x00, 0x00 };
+-	static const __u8 n1[] =
 +	u16 sensor_id;
 +	u8 test_byte = 0;
 +	u16 reg80, reg8e;
- 
--	static const __u8 read_indexs[] =
++
 +	static const u8 read_indexs[] =
- 		{ 0x06, 0x07, 0x0a, 0x0b, 0x66, 0x80, 0x81, 0x8e, 0x8f, 0xa5,
--		  0xa6, 0xa8, 0xbb, 0xbc, 0xc6, 0x00, 0x00 };
--	static const __u8 n1[] =
++		{ 0x0a, 0x0b, 0x66, 0x80, 0x81, 0x8e, 0x8f, 0xa5,
 +		  0xa6, 0xa8, 0xbb, 0xbc, 0xc6, 0x00 };
 +	static const u8 n1[] =
  			{0x08, 0x03, 0x09, 0x03, 0x12, 0x04};
@@ -60847,7 +61220,7 @@
 +
 +	sensor_id = (reg_r(gspca_dev, 0x06) << 8)
 +			| reg_r(gspca_dev, 0x07);
-+	switch (sensor_id) {
++	switch (sensor_id & 0xff0f) {
 +	case 0x0801:
 +		PDEBUG(D_PROBE, "sensor tas5130a");
  		sd->sensor = SENSOR_TAS5130A;
@@ -61786,7 +62159,7 @@
  	return 0;
  }
 diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c
-index 0525ea5..ca96cbc 100644
+index 0525ea5..728fff9 100644
 --- a/drivers/media/video/gspca/vc032x.c
 +++ b/drivers/media/video/gspca/vc032x.c
 @@ -149,6 +149,11 @@ static const struct v4l2_pix_format vc0323_mode[] = {
@@ -62317,7 +62690,62 @@
  };
  
  static const __u8 mi1320_gamma[17] = {
-@@ -1814,44 +1927,40 @@ static void reg_w(struct usb_device *dev,
+@@ -1764,26 +1877,42 @@ static const __u8 po1200_initVGA_data[][4] = {
+ };
+ 
+ struct sensor_info {
+-	int sensorId;
+-	__u8 I2cAdd;
+-	__u8 IdAdd;
+-	__u16 VpId;
+-	__u8 m1;
+-	__u8 m2;
+-	__u8 op;
+-	};
++	s8 sensorId;
++	u8 I2cAdd;
++	u8 IdAdd;
++	u16 VpId;
++	u8 m1;
++	u8 m2;
++	u8 op;
++};
+ 
+ static const struct sensor_info sensor_info_data[] = {
+ /*      sensorId,         I2cAdd,	IdAdd,  VpId,  m1,    m2,  op */
+-	{SENSOR_HV7131R,    0x80 | 0x11, 0x00, 0x0209, 0x24, 0x25, 0x01},
+-	{SENSOR_OV7660,     0x80 | 0x21, 0x0a, 0x7660, 0x26, 0x26, 0x05},
++	{-1,		    0x80 | 0x30, 0x0a, 0x0000, 0x25, 0x24, 0x05},
++	{-1,		    0x80 | 0x20, 0x82, 0x0000, 0x24, 0x25, 0x01},
++/* (tested in vc032x_probe_sensor) */
++/*	{-1,		    0x80 | 0x20, 0x83, 0x0000, 0x24, 0x25, 0x01}, */
+ 	{SENSOR_PO3130NC,   0x80 | 0x76, 0x00, 0x3130, 0x24, 0x25, 0x01},
+-	{SENSOR_MI1320,     0x80 | 0xc8, 0x00, 0x148c, 0x64, 0x65, 0x01},
+-	{SENSOR_OV7670,     0x80 | 0x21, 0x0a, 0x7673, 0x66, 0x67, 0x05},
+ 	{SENSOR_MI1310_SOC, 0x80 | 0x5d, 0x00, 0x143a, 0x24, 0x25, 0x01},
+ /* (tested in vc032x_probe_sensor) */
+ /*	{SENSOR_MI0360,	    0x80 | 0x5d, 0x00, 0x8243, 0x24, 0x25, 0x01}, */
++	{SENSOR_HV7131R,    0x80 | 0x11, 0x00, 0x0209, 0x24, 0x25, 0x01},
++	{-1,		    0x80 | 0x21, 0x0a, 0x0000, 0x21, 0x20, 0x05},
++	{-1,		    0x80 | 0x40, 0x00, 0x0000, 0x20, 0x22, 0x05},
++	{SENSOR_OV7660,     0x80 | 0x21, 0x0a, 0x7660, 0x26, 0x26, 0x05},
++/*	{SENSOR_PO3130NC,   0x80 | 0x76, 0x00, 0x0000, 0x24, 0x25, 0x01}, */
++	{-1,		    0x80 | 0x6e, 0x00, 0x0000, 0x24, 0x25, 0x01},
++/*	{SENSOR_MI1310_SOC, 0x80 | 0x5d, 0x00, 0x0000, 0x24, 0x25, 0x01}, */
++/*	{-1,		    0x80 | 0x30, 0x0a, 0x0000, 0x25, 0x24, 0x05}, */
++	{-1,		    0x80 | 0x11, 0x39, 0x0000, 0x24, 0x25, 0x01},
+ 	{SENSOR_PO1200,     0x80 | 0x5c, 0x00, 0x1200, 0x67, 0x67, 0x01},
++	{-1,		    0x80 | 0x2d, 0x00, 0x0000, 0x65, 0x67, 0x01},
++	{-1,		    0x80 | 0x6e, 0x00, 0x0000, 0x24, 0x25, 0x01},
++	{-1,		    0x80 | 0x56, 0x01, 0x0000, 0x64, 0x67, 0x01},
++	{-1,		    0x80 | 0x48, 0x00, 0x0000, 0x64, 0x67, 0x01},
++/*fixme: not in the ms-win probe - may be found before?*/
++	{SENSOR_MI1320,     0x80 | 0x48, 0x00, 0x148c, 0x64, 0x65, 0x01},
++	{SENSOR_OV7670,     0x80 | 0x21, 0x0a, 0x7673, 0x66, 0x67, 0x05},
+ };
+ 
+ /* read 'len' bytes in gspca_dev->usb_buf */
+@@ -1814,51 +1943,49 @@ static void reg_w(struct usb_device *dev,
  			500);
  }
  
@@ -62327,7 +62755,8 @@
 +				u16 address)
  {
  	struct usb_device *dev = gspca_dev->dev;
- 	__u8 ldata, mdata, hdata;
+-	__u8 ldata, mdata, hdata;
++	u8 ldata, mdata, hdata;
  	int retry = 50;
  
 -	*value = 0;
@@ -62348,12 +62777,14 @@
 -	reg_r(gspca_dev, 0xa1, 0xb33b, 1);
 -	while (retry-- && gspca_dev->usb_buf[0]) {
 +	do {
-+		msleep(8);
  		reg_r(gspca_dev, 0xa1, 0xb33b, 1);
 -/*		PDEBUG(D_PROBE, "Read again 0xb33b %d", tmpvalue); */
 -		msleep(1);
 -	}
-+	} while (retry-- && gspca_dev->usb_buf[0]);
++		if (gspca_dev->usb_buf[0] == 0x00)
++			break;
++		msleep(40);
++	} while (--retry >= 0);
 +
  	reg_r(gspca_dev, 0xa1, 0xb33e, 1);
  	ldata = gspca_dev->usb_buf[0];
@@ -62376,16 +62807,44 @@
  }
  
  static int vc032x_probe_sensor(struct gspca_dev *gspca_dev)
-@@ -1872,7 +1981,7 @@ static int vc032x_probe_sensor(struct gspca_dev *gspca_dev)
+ {
+ 	struct usb_device *dev = gspca_dev->dev;
+ 	int i;
+-	__u16 value;
++	u16 value;
+ 	const struct sensor_info *ptsensor_info;
+ 
+ 	reg_r(gspca_dev, 0xa1, 0xbfcf, 1);
+@@ -1872,25 +1999,37 @@ static int vc032x_probe_sensor(struct gspca_dev *gspca_dev)
  		reg_w(dev, 0xa0, 0x0c, 0xb309);
  		reg_w(dev, 0xa0, ptsensor_info->I2cAdd, 0xb335);
  		reg_w(dev, 0xa0, ptsensor_info->op, 0xb301);
 -		read_sensor_register(gspca_dev, ptsensor_info->IdAdd, &value);
+-		if (value == ptsensor_info->VpId)
+-			return ptsensor_info->sensorId;
+-
+-		/* special case for MI0360 */
+-		if (ptsensor_info->sensorId == SENSOR_MI1310_SOC
+-		    && value == 0x8243)
+-			return SENSOR_MI0360;
 +		value = read_sensor_register(gspca_dev, ptsensor_info->IdAdd);
- 		if (value == ptsensor_info->VpId)
- 			return ptsensor_info->sensorId;
- 
-@@ -1884,13 +1993,16 @@ static int vc032x_probe_sensor(struct gspca_dev *gspca_dev)
++		if (value == 0 && ptsensor_info->IdAdd == 0x82)
++			value = read_sensor_register(gspca_dev, 0x83);
++		if (value != 0) {
++			PDEBUG(D_ERR|D_PROBE, "Sensor ID %04x (%d)",
++				value, i);
++			if (value == ptsensor_info->VpId)
++				return ptsensor_info->sensorId;
++
++			switch (value) {
++			case 0x7673:
++				return SENSOR_OV7670;
++			case 0x8243:
++				return SENSOR_MI0360;
++			}
++/*fixme: should return here*/
++		}
+ 	}
  	return -1;
  }
  
@@ -62404,7 +62863,7 @@
  	reg_r(gspca_dev, 0xa1, 0xb33f, 1);
  	reg_w(dev, 0xa0, size, 0xb334);
  	reg_w(dev, 0xa0, reg, 0xb33a);
-@@ -1902,18 +2014,23 @@ static __u8 i2c_write(struct gspca_dev *gspca_dev,
+@@ -1902,18 +2041,23 @@ static __u8 i2c_write(struct gspca_dev *gspca_dev,
  		reg_w(dev, 0xa0, val[0], 0xb336);
  		reg_w(dev, 0xa0, val[1], 0xb337);
  		break;
@@ -62434,7 +62893,7 @@
  }
  
  static void put_tab_to_reg(struct gspca_dev *gspca_dev,
-@@ -1938,7 +2055,7 @@ static void usb_exchange(struct gspca_dev *gspca_dev,
+@@ -1938,7 +2082,7 @@ static void usb_exchange(struct gspca_dev *gspca_dev,
  			return;
  		case 0xcc:			/* normal write */
  			reg_w(dev, 0xa0, data[i][2],
@@ -62443,7 +62902,7 @@
  			break;
  		case 0xaa:			/* i2c op */
  			i2c_write(gspca_dev, data[i][1], &data[i][2], 1);
-@@ -1955,19 +2072,6 @@ static void usb_exchange(struct gspca_dev *gspca_dev,
+@@ -1955,19 +2099,6 @@ static void usb_exchange(struct gspca_dev *gspca_dev,
  	/*not reached*/
  }
  
@@ -62463,7 +62922,7 @@
  
  /* this function is called at probe time */
  static int sd_config(struct gspca_dev *gspca_dev,
-@@ -1979,10 +2083,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
+@@ -1979,10 +2110,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
  	int sensor;
  
  	cam = &gspca_dev->cam;
@@ -62474,7 +62933,7 @@
  	sensor = vc032x_probe_sensor(gspca_dev);
  	switch (sensor) {
  	case -1:
-@@ -2022,7 +2123,10 @@ static int sd_config(struct gspca_dev *gspca_dev,
+@@ -2022,7 +2150,10 @@ static int sd_config(struct gspca_dev *gspca_dev,
  	} else {
  		if (sensor != SENSOR_PO1200) {
  			cam->cam_mode = vc0323_mode;
@@ -62486,7 +62945,7 @@
  		} else {
  			cam->cam_mode = svga_mode;
  			cam->nmodes = ARRAY_SIZE(svga_mode);
-@@ -2061,7 +2165,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
+@@ -2061,7 +2192,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
  	return 0;
  }
  
@@ -62495,7 +62954,7 @@
  static int sd_init(struct gspca_dev *gspca_dev)
  {
  	return 0;
-@@ -2124,6 +2228,7 @@ static void setsharpness(struct gspca_dev *gspca_dev)
+@@ -2124,6 +2255,7 @@ static void setsharpness(struct gspca_dev *gspca_dev)
  static int sd_start(struct gspca_dev *gspca_dev)
  {
  	struct sd *sd = (struct sd *) gspca_dev;
@@ -62503,7 +62962,7 @@
  	const __u8 *GammaT = NULL;
  	const __u8 *MatrixT = NULL;
  	int mode;
-@@ -2141,115 +2246,82 @@ static int sd_start(struct gspca_dev *gspca_dev)
+@@ -2141,115 +2273,82 @@ static int sd_start(struct gspca_dev *gspca_dev)
  	case SENSOR_HV7131R:
  		GammaT = hv7131r_gamma;
  		MatrixT = hv7131r_matrix;
@@ -62661,7 +63120,7 @@
  		/* set the led on 0x0892 0x0896 */
  		if (sd->sensor != SENSOR_PO1200) {
  			reg_w(gspca_dev->dev, 0x89, 0xffff, 0xfdff);
-@@ -2399,7 +2471,8 @@ static int sd_querymenu(struct gspca_dev *gspca_dev,
+@@ -2399,7 +2498,8 @@ static int sd_querymenu(struct gspca_dev *gspca_dev,
  		case 1:		/* V4L2_CID_POWER_LINE_FREQUENCY_50HZ */
  			strcpy((char *) menu->name, "50 Hz");
  			return 0;
@@ -62671,7 +63130,7 @@
  			strcpy((char *) menu->name, "60 Hz");
  			return 0;
  		}
-@@ -2424,6 +2497,7 @@ static const struct sd_desc sd_desc = {
+@@ -2424,6 +2524,7 @@ static const struct sd_desc sd_desc = {
  
  /* -- module initialisation -- */
  static const __devinitdata struct usb_device_id device_table[] = {
@@ -62679,7 +63138,7 @@
  	{USB_DEVICE(0x046d, 0x0892), .driver_info = BRIDGE_VC0321},
  	{USB_DEVICE(0x046d, 0x0896), .driver_info = BRIDGE_VC0321},
  	{USB_DEVICE(0x046d, 0x0897), .driver_info = BRIDGE_VC0321},
-@@ -2460,8 +2534,11 @@ static struct usb_driver sd_driver = {
+@@ -2460,8 +2561,11 @@ static struct usb_driver sd_driver = {
  /* -- module insert / remove -- */
  static int __init sd_mod_init(void)
  {
@@ -64084,11 +64543,13 @@
 +
 diff --git a/drivers/media/video/hdpvr/Makefile b/drivers/media/video/hdpvr/Makefile
 new file mode 100644
-index 0000000..79ad2e1
+index 0000000..e0230fc
 --- /dev/null
 +++ b/drivers/media/video/hdpvr/Makefile
-@@ -0,0 +1,7 @@
-+hdpvr-objs	:= hdpvr-control.o hdpvr-core.o hdpvr-i2c.o hdpvr-video.o
+@@ -0,0 +1,9 @@
++hdpvr-objs	:= hdpvr-control.o hdpvr-core.o hdpvr-video.o
++
++hdpvr-$(CONFIG_I2C) += hdpvr-i2c.o
 +
 +obj-$(CONFIG_VIDEO_HDPVR) += hdpvr.o
 +
@@ -64097,12 +64558,12 @@
 +EXTRA_CFLAGS += $(extra-cflags-y) $(extra-cflags-m)
 diff --git a/drivers/media/video/hdpvr/hdpvr-control.c b/drivers/media/video/hdpvr/hdpvr-control.c
 new file mode 100644
-index 0000000..ecf02c6
+index 0000000..51de74a
 --- /dev/null
 +++ b/drivers/media/video/hdpvr/hdpvr-control.c
 @@ -0,0 +1,201 @@
 +/*
-+ * Hauppage HD PVR USB driver - video 4 linux 2 interface
++ * Hauppauge HD PVR USB driver - video 4 linux 2 interface
 + *
 + * Copyright (C) 2008      Janne Grunau (j at jannau.net)
 + *
@@ -64304,12 +64765,12 @@
 +}
 diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c
 new file mode 100644
-index 0000000..e7300b5
+index 0000000..e96aed4
 --- /dev/null
 +++ b/drivers/media/video/hdpvr/hdpvr-core.c
-@@ -0,0 +1,439 @@
+@@ -0,0 +1,449 @@
 +/*
-+ * Hauppage HD PVR USB driver
++ * Hauppauge HD PVR USB driver
 + *
 + * Copyright (C) 2001-2004 Greg Kroah-Hartman (greg at kroah.com)
 + * Copyright (C) 2008      Janne Grunau (j at jannau.net)
@@ -64658,6 +65119,14 @@
 +		goto error;
 +	}
 +
++#ifdef CONFIG_I2C
++	/* until i2c is working properly */
++	retval = 0; /* hdpvr_register_i2c_adapter(dev); */
++	if (retval < 0) {
++		err("registering i2c adapter failed");
++		goto error;
++	}
++#endif /* CONFIG_I2C */
 +
 +	/* save our data pointer in this interface device */
 +	usb_set_intfdata(interface, dev);
@@ -64699,12 +65168,14 @@
 +	mutex_unlock(&dev->io_mutex);
 +
 +	/* deregister I2C adapter */
++#ifdef CONFIG_I2C
 +	mutex_lock(&dev->i2c_mutex);
 +	if (dev->i2c_adapter)
 +		i2c_del_adapter(dev->i2c_adapter);
 +	kfree(dev->i2c_adapter);
 +	dev->i2c_adapter = NULL;
 +	mutex_unlock(&dev->i2c_mutex);
++#endif /* CONFIG_I2C */
 +
 +	atomic_dec(&dev_nr);
 +
@@ -64749,13 +65220,13 @@
 +MODULE_DESCRIPTION("Hauppauge HD PVR driver");
 diff --git a/drivers/media/video/hdpvr/hdpvr-i2c.c b/drivers/media/video/hdpvr/hdpvr-i2c.c
 new file mode 100644
-index 0000000..35096de
+index 0000000..c4b5d15
 --- /dev/null
 +++ b/drivers/media/video/hdpvr/hdpvr-i2c.c
 @@ -0,0 +1,145 @@
 +
 +/*
-+ * Hauppage HD PVR USB driver
++ * Hauppauge HD PVR USB driver
 + *
 + * Copyright (C) 2008      Janne Grunau (j at jannau.net)
 + *
@@ -64900,12 +65371,12 @@
 +}
 diff --git a/drivers/media/video/hdpvr/hdpvr-video.c b/drivers/media/video/hdpvr/hdpvr-video.c
 new file mode 100644
-index 0000000..6dd11f4
+index 0000000..2359780
 --- /dev/null
 +++ b/drivers/media/video/hdpvr/hdpvr-video.c
 @@ -0,0 +1,1225 @@
 +/*
-+ * Hauppage HD PVR USB driver - video 4 linux 2 interface
++ * Hauppauge HD PVR USB driver - video 4 linux 2 interface
 + *
 + * Copyright (C) 2008      Janne Grunau (j at jannau.net)
 + *
@@ -66131,12 +66602,12 @@
 +}
 diff --git a/drivers/media/video/hdpvr/hdpvr.h b/drivers/media/video/hdpvr/hdpvr.h
 new file mode 100644
-index 0000000..17db74f
+index 0000000..9bc8051
 --- /dev/null
 +++ b/drivers/media/video/hdpvr/hdpvr.h
 @@ -0,0 +1,298 @@
 +/*
-+ * Hauppage HD PVR USB driver
++ * Hauppauge HD PVR USB driver
 + *
 + * Copyright (C) 2008      Janne Grunau (j at jannau.net)
 + *
@@ -73027,22 +73498,22 @@
  	vfd->minor		 = -1;
  	vfd->ioctl_ops		 = &omap24xxcam_ioctl_fops;
 diff --git a/drivers/media/video/ov7670.c b/drivers/media/video/ov7670.c
-index 05c14a2..4c1384e 100644
+index 05c14a2..0e2184e 100644
 --- a/drivers/media/video/ov7670.c
 +++ b/drivers/media/video/ov7670.c
-@@ -12,18 +12,21 @@
+@@ -12,18 +12,22 @@
   */
  #include <linux/init.h>
  #include <linux/module.h>
 -#include <linux/slab.h>
--#include <linux/delay.h>
++#include <linux/i2c.h>
+ #include <linux/delay.h>
 -#include <linux/videodev.h>
 -#include <media/v4l2-common.h>
--#include <media/v4l2-chip-ident.h>
- #include <linux/i2c.h>
 +#include <linux/videodev2.h>
 +#include <media/v4l2-device.h>
-+#include <media/v4l2-chip-ident.h>
+ #include <media/v4l2-chip-ident.h>
+-#include <linux/i2c.h>
 +#include <media/v4l2-i2c-drv.h>
  
  
@@ -73057,7 +73528,7 @@
  /*
   * Basic window sizes.  These probably belong somewhere more globally
   * useful.
-@@ -189,11 +192,16 @@ MODULE_LICENSE("GPL");
+@@ -189,11 +193,16 @@ MODULE_LICENSE("GPL");
   */
  struct ov7670_format_struct;  /* coming later */
  struct ov7670_info {
@@ -73074,7 +73545,7 @@
  
  
  
-@@ -400,24 +408,27 @@ static struct regval_list ov7670_fmt_raw[] = {
+@@ -400,24 +409,27 @@ static struct regval_list ov7670_fmt_raw[] = {
   * Low-level register I/O.
   */
  
@@ -73107,7 +73578,7 @@
  	if (reg == REG_COM7 && (value & COM7_RESET))
  		msleep(2);  /* Wait for reset to run */
  	return ret;
-@@ -427,10 +438,10 @@ static int ov7670_write(struct i2c_client *c, unsigned char reg,
+@@ -427,10 +439,10 @@ static int ov7670_write(struct i2c_client *c, unsigned char reg,
  /*
   * Write a list of register settings; ff/ff stops the process.
   */
@@ -73120,7 +73591,7 @@
  		if (ret < 0)
  			return ret;
  		vals++;
-@@ -442,34 +453,35 @@ static int ov7670_write_array(struct i2c_client *c, struct regval_list *vals)
+@@ -442,34 +454,35 @@ static int ov7670_write_array(struct i2c_client *c, struct regval_list *vals)
  /*
   * Stuff that knows about the sensor.
   */
@@ -73164,7 +73635,7 @@
  	if (ret < 0)
  		return ret;
  	if (v != 0xa2)
-@@ -477,12 +489,12 @@ static int ov7670_detect(struct i2c_client *client)
+@@ -477,12 +490,12 @@ static int ov7670_detect(struct i2c_client *client)
  	/*
  	 * OK, we know we have an OmniVision chip...but which one?
  	 */
@@ -73179,7 +73650,7 @@
  	if (ret < 0)
  		return ret;
  	if (v != 0x73)  /* PID + VER = 0x76 / 0x73 */
-@@ -627,7 +639,7 @@ static struct ov7670_win_size {
+@@ -627,7 +640,7 @@ static struct ov7670_win_size {
  /*
   * Store a set of start/stop values into the camera.
   */
@@ -73188,7 +73659,7 @@
  		int vstart, int vstop)
  {
  	int ret;
-@@ -637,26 +649,26 @@ static int ov7670_set_hw(struct i2c_client *client, int hstart, int hstop,
+@@ -637,26 +650,26 @@ static int ov7670_set_hw(struct i2c_client *client, int hstart, int hstop,
   * hstart are in href[2:0], bottom 3 of hstop in href[5:3].  There is
   * a mystery "edge offset" value in the top two bits of href.
   */
@@ -73224,7 +73695,7 @@
  {
  	struct ov7670_format_struct *ofmt;
  
-@@ -671,7 +683,8 @@ static int ov7670_enum_fmt(struct i2c_client *c, struct v4l2_fmtdesc *fmt)
+@@ -671,7 +684,8 @@ static int ov7670_enum_fmt(struct i2c_client *c, struct v4l2_fmtdesc *fmt)
  }
  
  
@@ -73234,7 +73705,7 @@
  		struct ov7670_format_struct **ret_fmt,
  		struct ov7670_win_size **ret_wsize)
  {
-@@ -715,18 +728,23 @@ static int ov7670_try_fmt(struct i2c_client *c, struct v4l2_format *fmt,
+@@ -715,18 +729,23 @@ static int ov7670_try_fmt(struct i2c_client *c, struct v4l2_format *fmt,
  	return 0;
  }
  
@@ -73262,7 +73733,7 @@
  	if (ret)
  		return ret;
  	/*
-@@ -735,7 +753,7 @@ static int ov7670_s_fmt(struct i2c_client *c, struct v4l2_format *fmt)
+@@ -735,7 +754,7 @@ static int ov7670_s_fmt(struct i2c_client *c, struct v4l2_format *fmt)
  	 * the colors.
  	 */
  	if (fmt->fmt.pix.pixelformat == V4L2_PIX_FMT_RGB565) {
@@ -73271,7 +73742,7 @@
  		if (ret)
  			return ret;
  	}
-@@ -747,20 +765,20 @@ static int ov7670_s_fmt(struct i2c_client *c, struct v4l2_format *fmt)
+@@ -747,20 +766,20 @@ static int ov7670_s_fmt(struct i2c_client *c, struct v4l2_format *fmt)
  	 */
  	com7 = ovfmt->regs[0].value;
  	com7 |= wsize->com7_bit;
@@ -73297,7 +73768,7 @@
  	return ret;
  }
  
-@@ -768,7 +786,7 @@ static int ov7670_s_fmt(struct i2c_client *c, struct v4l2_format *fmt)
+@@ -768,7 +787,7 @@ static int ov7670_s_fmt(struct i2c_client *c, struct v4l2_format *fmt)
   * Implement G/S_PARM.  There is a "high quality" mode we could try
   * to do someday; for now, we just do the frame rate tweak.
   */
@@ -73306,7 +73777,7 @@
  {
  	struct v4l2_captureparm *cp = &parms->parm.capture;
  	unsigned char clkrc;
-@@ -776,7 +794,7 @@ static int ov7670_g_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
+@@ -776,7 +795,7 @@ static int ov7670_g_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
  
  	if (parms->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
  		return -EINVAL;
@@ -73315,7 +73786,7 @@
  	if (ret < 0)
  		return ret;
  	memset(cp, 0, sizeof(struct v4l2_captureparm));
-@@ -788,7 +806,7 @@ static int ov7670_g_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
+@@ -788,7 +807,7 @@ static int ov7670_g_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
  	return 0;
  }
  
@@ -73324,7 +73795,7 @@
  {
  	struct v4l2_captureparm *cp = &parms->parm.capture;
  	struct v4l2_fract *tpf = &cp->timeperframe;
-@@ -802,7 +820,7 @@ static int ov7670_s_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
+@@ -802,7 +821,7 @@ static int ov7670_s_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
  	/*
  	 * CLKRC has a reserved bit, so let's preserve it.
  	 */
@@ -73333,7 +73804,7 @@
  	if (ret < 0)
  		return ret;
  	if (tpf->numerator == 0 || tpf->denominator == 0)
-@@ -816,7 +834,7 @@ static int ov7670_s_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
+@@ -816,7 +835,7 @@ static int ov7670_s_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
  	clkrc = (clkrc & 0x80) | div;
  	tpf->numerator = 1;
  	tpf->denominator = OV7670_FRAME_RATE/div;
@@ -73342,7 +73813,7 @@
  }
  
  
-@@ -829,7 +847,7 @@ static int ov7670_s_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
+@@ -829,7 +848,7 @@ static int ov7670_s_parm(struct i2c_client *c, struct v4l2_streamparm *parms)
  
  
  
@@ -73351,7 +73822,7 @@
  		int matrix[CMATRIX_LEN])
  {
  	int i, ret;
-@@ -839,7 +857,7 @@ static int ov7670_store_cmatrix(struct i2c_client *client,
+@@ -839,7 +858,7 @@ static int ov7670_store_cmatrix(struct i2c_client *client,
  	 * Weird crap seems to exist in the upper part of
  	 * the sign bits register, so let's preserve it.
  	 */
@@ -73360,7 +73831,7 @@
  	signbits &= 0xc0;
  
  	for (i = 0; i < CMATRIX_LEN; i++) {
-@@ -858,9 +876,9 @@ static int ov7670_store_cmatrix(struct i2c_client *client,
+@@ -858,9 +877,9 @@ static int ov7670_store_cmatrix(struct i2c_client *client,
  			else
  				raw = matrix[i] & 0xff;
  		}
@@ -73372,7 +73843,7 @@
  	return ret;
  }
  
-@@ -943,29 +961,29 @@ static void ov7670_calc_cmatrix(struct ov7670_info *info,
+@@ -943,29 +962,29 @@ static void ov7670_calc_cmatrix(struct ov7670_info *info,
  
  
  
@@ -73409,7 +73880,7 @@
  	int matrix[CMATRIX_LEN];
  	int ret;
  
-@@ -973,14 +991,14 @@ static int ov7670_t_hue(struct i2c_client *client, int value)
+@@ -973,14 +992,14 @@ static int ov7670_t_hue(struct i2c_client *client, int value)
  		return -EINVAL;
  	info->hue = value;
  	ov7670_calc_cmatrix(info, matrix);
@@ -73427,7 +73898,7 @@
  
  	*value = info->hue;
  	return 0;
-@@ -994,8 +1012,7 @@ static unsigned char ov7670_sm_to_abs(unsigned char v)
+@@ -994,8 +1013,7 @@ static unsigned char ov7670_sm_to_abs(unsigned char v)
  {
  	if ((v & 0x80) == 0)
  		return v + 128;
@@ -73437,7 +73908,7 @@
  }
  
  
-@@ -1003,369 +1020,275 @@ static unsigned char ov7670_abs_to_sm(unsigned char v)
+@@ -1003,369 +1021,275 @@ static unsigned char ov7670_abs_to_sm(unsigned char v)
  {
  	if (v > 127)
  		return v & 0x7f;
@@ -74767,7 +75238,7 @@
  extern struct ovcamchip_ops ov6x30_ops;
  extern struct ovcamchip_ops ov7x10_ops;
 diff --git a/drivers/media/video/pvrusb2/Kconfig b/drivers/media/video/pvrusb2/Kconfig
-index 854c2a8..17cde17 100644
+index 854c2a8..f9b6001 100644
 --- a/drivers/media/video/pvrusb2/Kconfig
 +++ b/drivers/media/video/pvrusb2/Kconfig
 @@ -40,10 +40,10 @@ config VIDEO_PVRUSB2_DVB
@@ -74776,14 +75247,28 @@
  	select DVB_S5H1411 if !DVB_FE_CUSTOMISE
 -	select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
 -	select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
-+	select DVB_TDA10048 if !DVB_FE_CUSTOMISE
-+	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
 -	select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
-+	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMIZE
++	select DVB_TDA10048 if !DVB_FE_CUSTOMISE
++	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMISE
  	---help---
  
  	  This option enables a DVB interface for the pvrusb2 driver.
+diff --git a/drivers/media/video/pvrusb2/pvrusb2-encoder.c b/drivers/media/video/pvrusb2/pvrusb2-encoder.c
+index 273d2a1..54ac534 100644
+--- a/drivers/media/video/pvrusb2/pvrusb2-encoder.c
++++ b/drivers/media/video/pvrusb2/pvrusb2-encoder.c
+@@ -347,7 +347,7 @@ static int pvr2_encoder_prep_config(struct pvr2_hdw *hdw)
+ 	int encMisc3Arg = 0;
+ 
+ #if 0
+-	/* This inexplicable bit happens in the Hauppage windows
++	/* This inexplicable bit happens in the Hauppauge windows
+ 	   driver (for both 24xxx and 29xxx devices).  However I
+ 	   currently see no difference in behavior with or without
+ 	   this stuff.  Leave this here as a note of its existence,
 diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h b/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
 index de7ee72..d96f0f5 100644
 --- a/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
@@ -78535,23 +79020,25 @@
  	.remove = saa7127_remove,
  	.id_table = saa7127_id,
 diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig
-index fc2164e..e62b299 100644
+index fc2164e..a2089ac 100644
 --- a/drivers/media/video/saa7134/Kconfig
 +++ b/drivers/media/video/saa7134/Kconfig
 @@ -35,8 +35,16 @@ config VIDEO_SAA7134_DVB
  	select DVB_TDA10086 if !DVB_FE_CUSTOMISE
  	select DVB_TDA826X if !DVB_FE_CUSTOMISE
  	select DVB_ISL6421 if !DVB_FE_CUSTOMISE
+-	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
+-	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
 +	select DVB_ISL6405 if !DVB_FE_CUSTOMISE
- 	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
- 	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMISE
 +	select DVB_ZL10036 if !DVB_FE_CUSTOMISE
 +	select DVB_MT312 if !DVB_FE_CUSTOMISE
 +	select DVB_LNBP21 if !DVB_FE_CUSTOMISE
 +	select DVB_ZL10353 if !DVB_FE_CUSTOMISE
 +	select DVB_LGDT3305 if !DVB_FE_CUSTOMISE
-+	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
-+	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMIZE
++	select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMISE
++	select MEDIA_TUNER_TDA8290 if !MEDIA_TUNER_CUSTOMISE
  	---help---
  	  This adds support for DVB cards based on the
  	  Philips saa7134 chip.
@@ -83647,7 +84134,7 @@
  	.probe = upd64083_probe,
  	.remove = upd64083_remove,
 diff --git a/drivers/media/video/usbvision/usbvision-core.c b/drivers/media/video/usbvision/usbvision-core.c
-index 9e4f506..71cb4aa 100644
+index 9e4f506..a0feb1c 100644
 --- a/drivers/media/video/usbvision/usbvision-core.c
 +++ b/drivers/media/video/usbvision/usbvision-core.c
 @@ -36,7 +36,6 @@
@@ -83755,6 +84242,15 @@
  			return -ENOMEM;
  		}
  		usbvision->sbuf[bufIdx].urb = urb;
+@@ -2496,7 +2503,7 @@ int usbvision_init_isoc(struct usb_usbvision *usbvision)
+ 		urb->dev = dev;
+ 		urb->context = usbvision;
+ 		urb->pipe = usb_rcvisocpipe(dev, usbvision->video_endp);
+-		urb->transfer_flags = URB_ISO_ASAP;
++		urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
+ 		urb->interval = 1;
+ 		urb->transfer_buffer = usbvision->sbuf[bufIdx].data;
+ 		urb->complete = usbvision_isocIrq;
 @@ -2516,8 +2523,9 @@ int usbvision_init_isoc(struct usb_usbvision *usbvision)
  			errCode = usb_submit_urb(usbvision->sbuf[bufIdx].urb,
  						 GFP_KERNEL);




More information about the fedora-extras-commits mailing list