rpms/kernel/devel linux-2.6-hdpvr-fix.patch, NONE, 1.1 config-generic, 1.252, 1.253 kernel.spec, 1.1388, 1.1389 linux-2.6-v4l-dvb-fixes.patch, 1.2, 1.3 linux-2.6-v4l-dvb-update.patch, 1.3, 1.4

Mauro Carvalho Chehab mchehab at fedoraproject.org
Fri Mar 6 01:45:34 UTC 2009


Author: mchehab

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

Modified Files:
	config-generic kernel.spec linux-2.6-v4l-dvb-fixes.patch 
	linux-2.6-v4l-dvb-update.patch 
Added Files:
	linux-2.6-hdpvr-fix.patch 
Log Message:
Updates to the latest linux-next tree and cleans config-generic vars for V4L/DVB

There were some changes on linux-next fixing a few bugs on Kconfig and on a few
drivers.

Adds a patch to fix a merge conflict with the out-of-tree hdpvr driver.

Also, config-generic were manually specifying the helper drivers. That's bad, since
it will compile some drivers that aren't used at all. Instead, let's enable
VIDEO_HELPER_CHIPS_AUTO and remove the manual settings.

This will disable a few drivers that don't make sense on fedora:

CONFIG_VIDEO_TLV320AIC23B
  Never used by any driver. It was meant for a board that were never produced

CONFIG_VIDEO_OV7670
  Only used on OLPC (autoselected when cafe-ccic driver is selected)

CONFIG_VIDEO_SAA7191
  Only seen on Vino a driver specific for SGI architecture

CONFIG_VIDEO_TVP514X
CONFIG_VIDEO_TCM825X
  Only seen on some embedded devices (OMAP platform)



linux-2.6-hdpvr-fix.patch:

--- NEW FILE linux-2.6-hdpvr-fix.patch ---
diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
index b8f2be8..0e8bd98 100644
--- a/drivers/media/video/v4l2-common.c
+++ b/drivers/media/video/v4l2-common.c
@@ -547,7 +547,6 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
 	case V4L2_CID_CONTRAST:
 	case V4L2_CID_SATURATION:
 	case V4L2_CID_HUE:
-	case V4L2_CID_SHARPNESS:
 		qctrl->flags |= V4L2_CTRL_FLAG_SLIDER;
 		break;
 	}
@@ -585,8 +586,6 @@ int v4l2_ctrl_query_fill_std(struct v4l2_queryctrl *qctrl)
 		return v4l2_ctrl_query_fill(qctrl, 0, 127, 1, 64);
 	case V4L2_CID_HUE:
 		return v4l2_ctrl_query_fill(qctrl, -128, 127, 1, 0);
-	case V4L2_CID_SHARPNESS:
-		return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0);
 
 	/* MPEG controls */
 	case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.252
retrieving revision 1.253
diff -u -r1.252 -r1.253
--- config-generic	4 Mar 2009 20:58:11 -0000	1.252
+++ config-generic	6 Mar 2009 01:45:01 -0000	1.253
@@ -2194,7 +2194,7 @@
 #
 CONFIG_VIDEO_DEV=m
 # CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
 CONFIG_VIDEO_ALLOW_V4L1=y
 CONFIG_VIDEO_V4L1_COMPAT=y
 CONFIG_VIDEO_V4L2=y
@@ -2209,14 +2209,9 @@
 #
 CONFIG_V4L_USB_DRIVERS=y
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
 CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_BT819=m
 CONFIG_VIDEO_BT848=m
 CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
 CONFIG_VIDEO_BWQCAM=m
 # CONFIG_VIDEO_CAFE_CCIC is not set
 CONFIG_VIDEO_CPIA=m
@@ -2224,10 +2219,6 @@
 CONFIG_VIDEO_CPIA_USB=m
 CONFIG_VIDEO_CPIA2=m
 CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_CX2341X=m
 CONFIG_VIDEO_CX23885=m
 CONFIG_VIDEO_CX18=m
 CONFIG_VIDEO_CX88=m
@@ -2242,12 +2233,9 @@
 CONFIG_VIDEO_HEXIUM_ORION=m
 CONFIG_VIDEO_HEXIUM_GEMINI=m
 CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_KS0127=m
 CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_MSP3400=m
 CONFIG_VIDEO_MXB=m
 CONFIG_VIDEO_OVCAMCHIP=m
-CONFIG_VIDEO_OV7670=m
 CONFIG_VIDEO_PVRUSB2_DVB=y
 CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR=y
 CONFIG_VIDEO_PVRUSB2_ONAIR_USB2=y
@@ -2255,33 +2243,12 @@
 CONFIG_VIDEO_SAA5246A=m
 CONFIG_VIDEO_SAA5249=m
 CONFIG_VIDEO_SAA6588=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA7111=m
-CONFIG_VIDEO_SAA7114=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_SAA7127=m
 CONFIG_VIDEO_SAA7134=m
 CONFIG_VIDEO_SAA7134_ALSA=m
 CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_SAA7191=m
 CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_TCM825X=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TDA9875=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
 CONFIG_VIDEO_USBVISION=m
-CONFIG_VIDEO_VPX3220=m
 CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
 CONFIG_VIDEO_ZORAN=m
 CONFIG_VIDEO_ZORAN_AVS6EYES=m
 CONFIG_VIDEO_ZORAN_BUZ=m
@@ -2291,8 +2258,6 @@
 CONFIG_VIDEO_ZORAN_LML33R10=m
 CONFIG_VIDEO_ZORAN_ZR36060=m
 CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_M52790=m
-CONFIG_VIDEO_VP27SMPX=m
 CONFIG_TUNER_3036=m
 # CONFIG_TUNER_TEA5761 is not set
 
@@ -2429,7 +2394,6 @@
 CONFIG_VIDEO_PVRUSB2_29XXX=y
 CONFIG_VIDEO_PVRUSB2_SYSFS=y
 # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_IR_I2C=m
 
 #
 # Graphics support
@@ -3925,7 +3889,6 @@
 CONFIG_LIBFC=m
 CONFIG_FCOE=m
 # CONFIG_SCSI_LPFC_DEBUG_FS is not set
-CONFIG_VIDEO_TVP514X=m
 
 CONFIG_DVB_DYNAMIC_MINORS=y
 CONFIG_DVB_LGDT3304=m


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1388
retrieving revision 1.1389
diff -u -r1.1388 -r1.1389
--- kernel.spec	6 Mar 2009 00:58:02 -0000	1.1388
+++ kernel.spec	6 Mar 2009 01:45:03 -0000	1.1389
@@ -638,7 +638,6 @@
 Patch682: linux-2.6-ipw2x00-age-scan-results-on-resume.patch
 
 Patch1515: linux-2.6.29-lirc.patch
-Patch1520: linux-2.6-hdpvr.patch
 
 # Fix the return code CD accesses when the CDROM drive door is closed
 # but the drive isn't yet ready.
@@ -671,7 +670,12 @@
 # silence the ACPI blacklist code
 Patch2802: linux-2.6-silence-acpi-blacklist.patch
 
+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
 
@@ -1175,6 +1179,8 @@
 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.
@@ -1800,6 +1806,9 @@
 # and build.
 
 %changelog
+* Wed Mar 06 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
+- drivers/media: Some fixes and a cleanup on F11 v4l/dvb config.generic
+
 * Fri Mar 06 2009 Matthew Garrett <mjg at redhat.com>
 - linux-2.6-input-fix-toshiba-hotkeys.patch: Avoid polling for hotkey events
   on Toshibas

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.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-v4l-dvb-fixes.patch	28 Feb 2009 15:35:26 -0000	1.2
+++ linux-2.6-v4l-dvb-fixes.patch	6 Mar 2009 01:45:03 -0000	1.3
@@ -1,20 +1,42 @@
-diff -upr drivers/media/video/v4l2-common.c /home/v4l/tokernel/wrk/linux-2.6/drivers/media/video/v4l2-common.c
---- a/drivers/media/video/v4l2-common.c	2009-02-27 22:44:26.000000000 -0300
-+++ b/drivers/media/video/v4l2-common.c	2009-01-06 22:29:51.000000000 -0200
-@@ -547,7 +547,6 @@ int v4l2_ctrl_query_fill(struct v4l2_que
- 	case V4L2_CID_CONTRAST:
- 	case V4L2_CID_SATURATION:
- 	case V4L2_CID_HUE:
--	case V4L2_CID_SHARPNESS:
- 		qctrl->flags |= V4L2_CTRL_FLAG_SLIDER;
- 		break;
+diff --git a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c b/drivers/media/video/gspca/m5602/m5602_s5k4aa.c
+index e564a61..48892b5 100644
+--- a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c
++++ b/drivers/media/video/gspca/m5602/m5602_s5k4aa.c
+@@ -102,7 +102,11 @@ int s5k4aa_probe(struct sd *sd)
  	}
-@@ -586,8 +585,6 @@ int v4l2_ctrl_query_fill_std(struct v4l2
- 		return v4l2_ctrl_query_fill(qctrl, 0, 127, 1, 64);
- 	case V4L2_CID_HUE:
- 		return v4l2_ctrl_query_fill(qctrl, -128, 127, 1, 0);
--	case V4L2_CID_SHARPNESS:
--		return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0);
  
- 	/* MPEG controls */
- 	case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
+ 	/* Test some registers, but we don't know their exact meaning yet */
+-	if (m5602_read_sensor(sd, 0x00, prod_id, sizeof(prod_id)))
++	if (m5602_read_sensor(sd, 0x00, prod_id, 2))
++		return -ENODEV;
++	if (m5602_read_sensor(sd, 0x02, prod_id+2, 2))
++		return -ENODEV;
++	if (m5602_read_sensor(sd, 0x04, prod_id+4, 2))
+ 		return -ENODEV;
+ 
+ 	if (memcmp(prod_id, expected_prod_id, sizeof(prod_id)))
+diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c
+index 5aeccb3..076ed5b 100644
+--- a/drivers/media/video/tvaudio.c
++++ b/drivers/media/video/tvaudio.c
+@@ -54,7 +54,7 @@ MODULE_LICENSE("GPL");
+ /* ---------------------------------------------------------------------- */
+ /* our structs                                                            */
+ 
+-#define MAXREGS 64
++#define MAXREGS 256
+ 
+ struct CHIPSTATE;
+ typedef int  (*getvalue)(int);
+diff --git a/drivers/media/video/zoran/Kconfig b/drivers/media/video/zoran/Kconfig
+index 4ea5fa7..8666e19 100644
+--- a/drivers/media/video/zoran/Kconfig
++++ b/drivers/media/video/zoran/Kconfig
+@@ -68,6 +68,7 @@ config VIDEO_ZORAN_AVS6EYES
+ 	tristate "AverMedia 6 Eyes support (EXPERIMENTAL)"
+ 	depends on VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_V4L1
+ 	select VIDEO_BT856 if VIDEO_HELPER_CHIPS_AUTO
++	select VIDEO_BT866 if VIDEO_HELPER_CHIPS_AUTO
+ 	select VIDEO_KS0127 if VIDEO_HELPER_CHIPS_AUTO
+ 	help
+ 	  Support for the AverMedia 6 Eyes video surveillance card.

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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-v4l-dvb-update.patch	4 Mar 2009 20:58:11 -0000	1.3
+++ linux-2.6-v4l-dvb-update.patch	6 Mar 2009 01:45:03 -0000	1.4
@@ -462,10 +462,10 @@
 +
 +#endif
 diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
-index 7c35787..78a9395 100644
+index 72da416..3bdf199 100644
 --- a/arch/sh/boards/board-ap325rxa.c
 +++ b/arch/sh/boards/board-ap325rxa.c
-@@ -344,7 +344,8 @@ static struct ov772x_camera_info ov7725_info = {
+@@ -298,7 +298,8 @@ static struct platform_device camera_device = {
  
  static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
  	.flags = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH |
@@ -4853,7 +4853,7 @@
  			}
  
 diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
-index 635d30a..80744f4 100644
+index 635d30a..8877215 100644
 --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
 +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
 @@ -262,7 +262,12 @@ static int stk7700P2_frontend_attach(struct dvb_usb_adapter *adap)
@@ -4951,7 +4951,7 @@
  				{ NULL },
  			},
 +			{   "Yuan PD378S",
-+				{ &dib0700_usb_id_table[44], NULL },
++				{ &dib0700_usb_id_table[45], NULL },
 +				{ NULL },
 +			},
  		},
@@ -32660,10 +32660,33 @@
  	return hwptr_done;
  }
 diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
-index 3b3ca3f..f7c8177 100644
+index 3b3ca3f..650ccfd 100644
 --- a/drivers/media/video/em28xx/em28xx-cards.c
 +++ b/drivers/media/video/em28xx/em28xx-cards.c
-@@ -183,6 +183,25 @@ struct em28xx_board em28xx_boards[] = {
+@@ -122,6 +122,22 @@ static struct em28xx_reg_seq default_tuner_gpio[] = {
+ 	{  -1,			-1,		-1,		-1},
+ };
+ 
++/* Mute/unmute */
++static struct em28xx_reg_seq compro_unmute_tv_gpio[] = {
++	{EM28XX_R08_GPIO,	5,		7,		10},
++	{  -1,			-1,		-1,		-1},
++};
++
++static struct em28xx_reg_seq compro_unmute_svid_gpio[] = {
++	{EM28XX_R08_GPIO,	4,		7,		10},
++	{  -1,			-1,		-1,		-1},
++};
++
++static struct em28xx_reg_seq compro_mute_gpio[] = {
++	{EM28XX_R08_GPIO,	6,		7,		10},
++	{  -1,			-1,		-1,		-1},
++};
++
+ /*
+  *  Board definitions
+  */
+@@ -183,6 +199,25 @@ struct em28xx_board em28xx_boards[] = {
  			.amux     = EM28XX_AMUX_LINE_IN,
  		} },
  	},
@@ -32689,7 +32712,7 @@
  	[EM2820_BOARD_TERRATEC_CINERGY_250] = {
  		.name         = "Terratec Cinergy 250 USB",
  		.tuner_type   = TUNER_LG_PAL_NEW_TAPC,
-@@ -225,7 +244,7 @@ struct em28xx_board em28xx_boards[] = {
+@@ -225,7 +260,7 @@ struct em28xx_board em28xx_boards[] = {
  		.name         = "Hauppauge WinTV USB 2",
  		.tuner_type   = TUNER_PHILIPS_FM1236_MK3,
  		.tda9887_conf = TDA9887_PRESENT |
@@ -32698,7 +32721,7 @@
  				TDA9887_PORT2_ACTIVE,
  		.decoder      = EM28XX_TVP5150,
  		.has_msp34xx  = 1,
-@@ -350,26 +369,6 @@ struct em28xx_board em28xx_boards[] = {
+@@ -350,26 +385,6 @@ struct em28xx_board em28xx_boards[] = {
  			.amux     = EM28XX_AMUX_VIDEO,
  		} },
  	},
@@ -32725,7 +32748,7 @@
  	[EM2821_BOARD_SUPERCOMP_USB_2] = {
  		.name         = "Supercomp USB 2.0 TV",
  		.valid        = EM28XX_BOARD_NOT_VALIDATED,
-@@ -498,7 +497,7 @@ struct em28xx_board em28xx_boards[] = {
+@@ -498,7 +513,7 @@ struct em28xx_board em28xx_boards[] = {
  	},
  	[EM2861_BOARD_YAKUMO_MOVIE_MIXER] = {
  		.name          = "Yakumo MovieMixer",
@@ -32734,7 +32757,7 @@
  		.decoder       = EM28XX_TVP5150,
  		.input         = { {
  			.type     = EM28XX_VMUX_TELEVISION,
-@@ -842,11 +841,11 @@ struct em28xx_board em28xx_boards[] = {
+@@ -842,11 +857,11 @@ struct em28xx_board em28xx_boards[] = {
  		} },
  	},
  	[EM2800_BOARD_GRABBEEX_USB2800] = {
@@ -32751,7 +32774,7 @@
  			.type     = EM28XX_VMUX_COMPOSITE1,
  			.vmux     = SAA7115_COMPOSITE0,
  			.amux     = EM28XX_AMUX_LINE_IN,
-@@ -897,7 +896,7 @@ struct em28xx_board em28xx_boards[] = {
+@@ -897,7 +912,7 @@ struct em28xx_board em28xx_boards[] = {
  		} },
  	},
  	[EM2820_BOARD_PINNACLE_DVC_90] = {
@@ -32760,7 +32783,7 @@
  		.tuner_type   = TUNER_ABSENT, /* capture only board */
  		.decoder      = EM28XX_SAA711X,
  		.input        = { {
-@@ -952,7 +951,7 @@ struct em28xx_board em28xx_boards[] = {
+@@ -952,7 +967,7 @@ struct em28xx_board em28xx_boards[] = {
  		} },
  	},
  	[EM2820_BOARD_PROLINK_PLAYTV_USB2] = {
@@ -32769,7 +32792,7 @@
  		.has_snapshot_button = 1,
  		.tda9887_conf = TDA9887_PRESENT,
  		.tuner_type   = TUNER_YMEC_TVF_5533MF,
-@@ -1198,7 +1197,9 @@ struct em28xx_board em28xx_boards[] = {
+@@ -1198,7 +1213,9 @@ struct em28xx_board em28xx_boards[] = {
  		.has_dvb      = 1,
  		.dvb_gpio     = kworld_330u_digital,
  		.xclk             = EM28XX_XCLK_FREQUENCY_12MHZ,
@@ -32780,18 +32803,24 @@
  		.input        = { {
  			.type     = EM28XX_VMUX_TELEVISION,
  			.vmux     = TVP5150_COMPOSITE0,
-@@ -1223,6 +1224,7 @@ struct em28xx_board em28xx_boards[] = {
+@@ -1223,21 +1240,88 @@ struct em28xx_board em28xx_boards[] = {
  		.tuner_type   = TUNER_LG_PAL_NEW_TAPC,
  		.tda9887_conf = TDA9887_PRESENT,
  		.decoder      = EM28XX_TVP5150,
 +		.adecoder     = EM28XX_TVAUDIO,
++		.mute_gpio    = compro_mute_gpio,
  		.input        = { {
  			.type     = EM28XX_VMUX_TELEVISION,
  			.vmux     = TVP5150_COMPOSITE0,
-@@ -1233,11 +1235,74 @@ struct em28xx_board em28xx_boards[] = {
- 			.amux     = EM28XX_AMUX_LINE_IN,
- 		} },
- 	},
++			.amux     = EM28XX_AMUX_VIDEO,
++			.gpio     = compro_unmute_tv_gpio,
++		}, {
++			.type     = EM28XX_VMUX_SVIDEO,
++			.vmux     = TVP5150_SVIDEO,
++			.amux     = EM28XX_AMUX_LINE_IN,
++			.gpio     = compro_unmute_svid_gpio,
++		} },
++	},
 +	[EM2860_BOARD_KAIOMY_TVNPC_U2] = {
 +		.name	      = "Kaiomy TVnPC U2",
 +		.vchannels    = 3,
@@ -32809,12 +32838,12 @@
 +		}, {
 +			.type     = EM28XX_VMUX_COMPOSITE1,
 +			.vmux     = TVP5150_COMPOSITE1,
-+			.amux     = EM28XX_AMUX_LINE_IN,
-+		}, {
-+			.type     = EM28XX_VMUX_SVIDEO,
-+			.vmux     = TVP5150_SVIDEO,
-+			.amux     = EM28XX_AMUX_LINE_IN,
-+		} },
+ 			.amux     = EM28XX_AMUX_LINE_IN,
+ 		}, {
+ 			.type     = EM28XX_VMUX_SVIDEO,
+ 			.vmux     = TVP5150_SVIDEO,
+ 			.amux     = EM28XX_AMUX_LINE_IN,
+ 		} },
 +		.radio		= {
 +			.type     = EM28XX_RADIO,
 +			.amux     = EM28XX_AMUX_LINE_IN,
@@ -32854,7 +32883,7 @@
 +			.vmux     = TVP5150_SVIDEO,
 +			.amux     = EM28XX_AMUX_VIDEO,
 +		} },
-+	},
+ 	},
  };
  const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
  
@@ -32864,7 +32893,7 @@
  	{ USB_DEVICE(0xeb1a, 0x2750),
  			.driver_info = EM2750_BOARD_UNKNOWN },
  	{ USB_DEVICE(0xeb1a, 0x2751),
-@@ -1260,6 +1325,8 @@ struct usb_device_id em28xx_id_table [] = {
+@@ -1260,6 +1344,8 @@ struct usb_device_id em28xx_id_table [] = {
  			.driver_info = EM2820_BOARD_UNKNOWN },
  	{ USB_DEVICE(0xeb1a, 0xe300),
  			.driver_info = EM2861_BOARD_KWORLD_PVRTV_300U },
@@ -32873,7 +32902,7 @@
  	{ USB_DEVICE(0xeb1a, 0xe305),
  			.driver_info = EM2880_BOARD_KWORLD_DVB_305U },
  	{ USB_DEVICE(0xeb1a, 0xe310),
-@@ -1278,6 +1345,8 @@ struct usb_device_id em28xx_id_table [] = {
+@@ -1278,6 +1364,8 @@ struct usb_device_id em28xx_id_table [] = {
  			.driver_info = EM2800_BOARD_GRABBEEX_USB2800 },
  	{ USB_DEVICE(0xeb1a, 0xe357),
  			.driver_info = EM2870_BOARD_KWORLD_355U },
@@ -32882,7 +32911,7 @@
  	{ USB_DEVICE(0x0ccd, 0x0036),
  			.driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 },
  	{ USB_DEVICE(0x0ccd, 0x004c),
-@@ -1330,6 +1399,8 @@ struct usb_device_id em28xx_id_table [] = {
+@@ -1330,6 +1418,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 },
@@ -32891,7 +32920,7 @@
  	{ },
  };
  MODULE_DEVICE_TABLE(usb, em28xx_id_table);
-@@ -1337,7 +1408,7 @@ MODULE_DEVICE_TABLE(usb, em28xx_id_table);
+@@ -1337,7 +1427,7 @@ MODULE_DEVICE_TABLE(usb, em28xx_id_table);
  /*
   * EEPROM hash table for devices with generic USB IDs
   */
@@ -32900,7 +32929,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 +1420,7 @@ static struct em28xx_hash_table em28xx_i2c_hash[] = {
+@@ -1349,6 +1439,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},
@@ -32908,7 +32937,7 @@
  };
  
  int em28xx_tuner_callback(void *ptr, int component, int command, int arg)
-@@ -1368,7 +1440,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)
  }
  EXPORT_SYMBOL_GPL(em28xx_tuner_callback);
  
@@ -32917,7 +32946,7 @@
  {
  	memcpy(&dev->board, &em28xx_boards[dev->model], sizeof(dev->board));
  
-@@ -1504,6 +1576,34 @@ void em28xx_pre_card_setup(struct em28xx *dev)
+@@ -1504,6 +1595,34 @@ void em28xx_pre_card_setup(struct em28xx *dev)
  		/* enables audio for that devices */
  		em28xx_write_reg(dev, EM28XX_R08_GPIO, 0xfd);
  		break;
@@ -32952,7 +32981,7 @@
  	}
  
  	em28xx_gpio_set(dev, dev->board.tuner_gpio);
-@@ -1610,7 +1710,7 @@ static int em28xx_hint_board(struct em28xx *dev)
+@@ -1610,7 +1729,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 "
@@ -32961,7 +32990,7 @@
  			em28xx_errdev("Board detected as %s\n",
  				      em28xx_boards[dev->model].name);
  
-@@ -1642,7 +1742,7 @@ static int em28xx_hint_board(struct em28xx *dev)
+@@ -1642,7 +1761,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 "
@@ -32970,7 +32999,7 @@
  			em28xx_errdev("Board detected as %s\n",
  				      em28xx_boards[dev->model].name);
  
-@@ -1655,7 +1755,7 @@ static int em28xx_hint_board(struct em28xx *dev)
+@@ -1655,7 +1774,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");
@@ -32979,7 +33008,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 +1900,8 @@ void em28xx_card_setup(struct em28xx *dev)
+@@ -1800,6 +1919,8 @@ void em28xx_card_setup(struct em28xx *dev)
  		request_module("tvp5150");
  	if (dev->board.tuner_type != TUNER_ABSENT)
  		request_module("tuner");
@@ -32989,7 +33018,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..eee8d01 100644
+index 94fb1b6..c896d24 100644
 --- a/drivers/media/video/em28xx/em28xx-core.c
 +++ b/drivers/media/video/em28xx/em28xx-core.c
 @@ -33,8 +33,8 @@
@@ -33032,7 +33061,19 @@
  			"OUT: %02x %02x %02x %02x %02x %02x %02x %02x >>>",
  			pipe,
  			USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
-@@ -424,7 +424,7 @@ int em28xx_audio_analog_set(struct em28xx *dev)
+@@ -378,6 +378,11 @@ static int em28xx_set_audio_source(struct em28xx *dev)
+ 		}
+ 	}
+ 
++	if (dev->board.mute_gpio && dev->mute)
++		em28xx_gpio_set(dev, dev->board.mute_gpio);
++	else
++		em28xx_gpio_set(dev, INPUT(dev->ctl_input)->gpio);
++
+ 	ret = em28xx_write_reg_bits(dev, EM28XX_R0E_AUDIOSRC, input, 0xc0);
+ 	if (ret < 0)
+ 		return ret;
+@@ -424,7 +429,7 @@ int em28xx_audio_analog_set(struct em28xx *dev)
  
  	xclk = dev->board.xclk & 0x7f;
  	if (!dev->mute)
@@ -33041,7 +33082,7 @@
  
  	ret = em28xx_write_reg(dev, EM28XX_R0F_XCLK, xclk);
  	if (ret < 0)
-@@ -462,7 +462,8 @@ int em28xx_audio_analog_set(struct em28xx *dev)
+@@ -462,7 +467,8 @@ int em28xx_audio_analog_set(struct em28xx *dev)
  		if (dev->ctl_aoutput & EM28XX_AOUT_PCM_IN) {
  			int sel = ac97_return_record_select(dev->ctl_aoutput);
  
@@ -33051,7 +33092,7 @@
  			sel |= (sel << 8);
  
  			em28xx_write_ac97(dev, AC97_RECORD_SELECT, sel);
-@@ -698,7 +699,7 @@ static int em28xx_scaler_set(struct em28xx *dev, u16 h, u16 v)
+@@ -698,7 +704,7 @@ static int em28xx_scaler_set(struct em28xx *dev, u16 h, u16 v)
  		em28xx_write_regs(dev, EM28XX_R32_VSCALELOW, (char *)buf, 2);
  		/* it seems that both H and V scalers must be active
  		   to work correctly */
@@ -33060,7 +33101,7 @@
  	}
  	return em28xx_write_reg_bits(dev, EM28XX_R26_COMPR, mode, 0x30);
  }
-@@ -827,6 +828,19 @@ static void em28xx_irq_callback(struct urb *urb)
+@@ -827,6 +833,19 @@ static void em28xx_irq_callback(struct urb *urb)
  	struct em28xx *dev = container_of(dma_q, struct em28xx, vidq);
  	int rc, i;
  
@@ -33080,7 +33121,7 @@
  	/* Copy data from URB */
  	spin_lock(&dev->slock);
  	rc = dev->isoc_ctl.isoc_copy(dev, urb);
-@@ -945,7 +959,7 @@ int em28xx_init_isoc(struct em28xx *dev, int max_packets,
+@@ -945,7 +964,7 @@ int em28xx_init_isoc(struct em28xx *dev, int max_packets,
  			em28xx_err("unable to allocate %i bytes for transfer"
  					" buffer %i%s\n",
  					sb_size, i,
@@ -33090,7 +33131,7 @@
  			return -ENOMEM;
  		}
 diff --git a/drivers/media/video/em28xx/em28xx-i2c.c b/drivers/media/video/em28xx/em28xx-i2c.c
-index d69f0ef..2dab43d 100644
+index d69f0ef..02c12fe 100644
 --- a/drivers/media/video/em28xx/em28xx-i2c.c
 +++ b/drivers/media/video/em28xx/em28xx-i2c.c
 @@ -402,10 +402,12 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len)
@@ -33108,8 +33149,34 @@
  		break;
  	}
  
+@@ -508,12 +510,17 @@ static int attach_inform(struct i2c_client *client)
+ 		dprintk1(1, "attach_inform: tvp5150 detected.\n");
+ 		break;
+ 
++	case 0xb0:
++		dprintk1(1, "attach_inform: tda9874 detected\n");
++		break;
++
+ 	default:
+ 		if (!dev->tuner_addr)
+ 			dev->tuner_addr = client->addr;
+ 
+ 		dprintk1(1, "attach inform: detected I2C address %x\n",
+ 				client->addr << 1);
++		dprintk1(1, "driver id %d\n", client->driver->id);
+ 
+ 	}
+ 
+@@ -552,6 +559,7 @@ static char *i2c_devs[128] = {
+ 	[0x80 >> 1] = "msp34xx",
+ 	[0x88 >> 1] = "msp34xx",
+ 	[0xa0 >> 1] = "eeprom",
++	[0xb0 >> 1] = "tda9874",
+ 	[0xb8 >> 1] = "tvp5150a",
+ 	[0xba >> 1] = "tvp5150a",
+ 	[0xc0 >> 1] = "tuner (analog)",
 diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
-index 8e61b2c..efd6415 100644
+index 8e61b2c..575472f 100644
 --- a/drivers/media/video/em28xx/em28xx-video.c
 +++ b/drivers/media/video/em28xx/em28xx-video.c
 @@ -186,7 +186,8 @@ static void em28xx_copy_video(struct em28xx *dev,
@@ -33163,7 +33230,21 @@
  	struct em28xx_fh       *fh   = vq->priv_data;
  	struct em28xx          *dev  = (struct em28xx *)fh->dev;
  
-@@ -557,7 +563,7 @@ static int res_get(struct em28xx_fh *fh)
+@@ -534,6 +540,13 @@ static void video_mux(struct em28xx *dev, int index)
+ 			&route);
+ 	}
+ 
++	if (dev->board.adecoder != EM28XX_NOADECODER) {
++		route.input = dev->ctl_ainput;
++		route.output = dev->ctl_aoutput;
++		em28xx_i2c_call_clients(dev, VIDIOC_INT_S_AUDIO_ROUTING,
++			&route);
++	}
++
+ 	em28xx_audio_analog_set(dev);
+ }
+ 
+@@ -557,7 +570,7 @@ static int res_get(struct em28xx_fh *fh)
  
  static int res_check(struct em28xx_fh *fh)
  {
@@ -33172,7 +33253,7 @@
  }
  
  static void res_free(struct em28xx_fh *fh)
-@@ -791,7 +797,7 @@ out:
+@@ -791,7 +804,7 @@ out:
  	return rc;
  }
  
@@ -33181,7 +33262,7 @@
  {
  	struct em28xx_fh   *fh  = priv;
  	struct em28xx      *dev = fh->dev;
-@@ -1008,8 +1014,13 @@ static int vidioc_g_ctrl(struct file *file, void *priv,
+@@ -1008,8 +1021,13 @@ static int vidioc_g_ctrl(struct file *file, void *priv,
  
  	if (dev->board.has_msp34xx)
  		em28xx_i2c_call_clients(dev, VIDIOC_G_CTRL, ctrl);
@@ -33196,7 +33277,7 @@
  
  	mutex_unlock(&dev->lock);
  	return rc;
-@@ -1345,7 +1356,7 @@ static int vidioc_querycap(struct file *file, void  *priv,
+@@ -1345,7 +1363,7 @@ static int vidioc_querycap(struct file *file, void  *priv,
  
  	strlcpy(cap->driver, "em28xx", sizeof(cap->driver));
  	strlcpy(cap->card, em28xx_boards[dev->model].name, sizeof(cap->card));
@@ -33205,7 +33286,7 @@
  
  	cap->version = EM28XX_VERSION_CODE;
  
-@@ -1431,7 +1442,7 @@ static int vidioc_reqbufs(struct file *file, void *priv,
+@@ -1431,7 +1449,7 @@ static int vidioc_reqbufs(struct file *file, void *priv,
  	if (rc < 0)
  		return rc;
  
@@ -33214,7 +33295,7 @@
  }
  
  static int vidioc_querybuf(struct file *file, void *priv,
-@@ -1445,7 +1456,7 @@ static int vidioc_querybuf(struct file *file, void *priv,
+@@ -1445,7 +1463,7 @@ static int vidioc_querybuf(struct file *file, void *priv,
  	if (rc < 0)
  		return rc;
  
@@ -33223,7 +33304,7 @@
  }
  
  static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *b)
-@@ -1458,7 +1469,7 @@ static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *b)
+@@ -1458,7 +1476,7 @@ static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *b)
  	if (rc < 0)
  		return rc;
  
@@ -33232,7 +33313,7 @@
  }
  
  static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b)
-@@ -1471,8 +1482,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b)
+@@ -1471,8 +1489,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b)
  	if (rc < 0)
  		return rc;
  
@@ -33242,7 +33323,7 @@
  }
  
  #ifdef CONFIG_VIDEO_V4L1_COMPAT
-@@ -1496,7 +1506,7 @@ static int radio_querycap(struct file *file, void  *priv,
+@@ -1496,7 +1513,7 @@ static int radio_querycap(struct file *file, void  *priv,
  
  	strlcpy(cap->driver, "em28xx", sizeof(cap->driver));
  	strlcpy(cap->card, em28xx_boards[dev->model].name, sizeof(cap->card));
@@ -33251,7 +33332,7 @@
  
  	cap->version = EM28XX_VERSION_CODE;
  	cap->capabilities = V4L2_CAP_TUNER;
-@@ -1781,7 +1791,7 @@ em28xx_v4l2_read(struct file *filp, char __user *buf, size_t count,
+@@ -1781,7 +1798,7 @@ em28xx_v4l2_read(struct file *filp, char __user *buf, size_t count,
   * em28xx_v4l2_poll()
   * will allocate buffers when called for the first time
   */
@@ -33260,7 +33341,7 @@
  {
  	struct em28xx_fh *fh = filp->private_data;
  	struct em28xx *dev = fh->dev;
-@@ -1934,8 +1944,8 @@ static struct video_device em28xx_radio_template = {
+@@ -1934,8 +1951,8 @@ static struct video_device em28xx_radio_template = {
  
  
  static struct video_device *em28xx_vdev_init(struct em28xx *dev,
@@ -33271,7 +33352,7 @@
  {
  	struct video_device *vfd;
  
-@@ -1984,8 +1994,9 @@ int em28xx_register_analog_devices(struct em28xx *dev)
+@@ -1984,8 +2001,9 @@ int em28xx_register_analog_devices(struct em28xx *dev)
  	/* enable vbi capturing */
  
  /*	em28xx_write_reg(dev, EM28XX_R0E_AUDIOSRC, 0xc0); audio register */
@@ -33283,7 +33364,7 @@
  	em28xx_write_reg(dev, EM28XX_R11_VINCTRL, 0x51);
  
  	em28xx_set_outfmt(dev);
-@@ -2020,7 +2031,8 @@ int em28xx_register_analog_devices(struct em28xx *dev)
+@@ -2020,7 +2038,8 @@ int em28xx_register_analog_devices(struct em28xx *dev)
  	}
  
  	if (em28xx_boards[dev->model].radio.type == EM28XX_RADIO) {
@@ -33294,7 +33375,7 @@
  			em28xx_errdev("cannot allocate video_device.\n");
  			return -ENODEV;
 diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
-index dd2cd36..57a4084 100644
+index dd2cd36..a33a58d 100644
 --- a/drivers/media/video/em28xx/em28xx.h
 +++ b/drivers/media/video/em28xx/em28xx.h
 @@ -70,7 +70,6 @@
@@ -33349,7 +33430,15 @@
  struct em28xx_board {
  	char *name;
  	int vchannels;
-@@ -373,6 +386,7 @@ struct em28xx_board {
+@@ -361,6 +374,7 @@ struct em28xx_board {
+ 	struct em28xx_reg_seq *dvb_gpio;
+ 	struct em28xx_reg_seq *suspend_gpio;
+ 	struct em28xx_reg_seq *tuner_gpio;
++	struct em28xx_reg_seq *mute_gpio;
+ 
+ 	unsigned int is_em2800:1;
+ 	unsigned int has_msp34xx:1;
+@@ -373,6 +387,7 @@ struct em28xx_board {
  	unsigned char xclk, i2c_speed;
  
  	enum em28xx_decoder decoder;
@@ -33357,7 +33446,7 @@
  
  	struct em28xx_input       input[MAX_EM28XX_INPUT];
  	struct em28xx_input	  radio;
-@@ -420,7 +434,7 @@ struct em28xx_audio {
+@@ -420,7 +435,7 @@ struct em28xx_audio {
  	unsigned int hwptr_done_capture;
  	struct snd_card            *sndcard;
  
@@ -33366,7 +33455,7 @@
  	enum em28xx_stream_state capture_stream;
  	spinlock_t slock;
  };
-@@ -523,7 +537,8 @@ struct em28xx {
+@@ -523,7 +538,8 @@ struct em28xx {
  	int num_alt;		/* Number of alternative settings */
  	unsigned int *alt_max_pkt_size;	/* array of wMaxPacketSize */
  	struct urb *urb[EM28XX_NUM_BUFS];	/* urb for isoc transfers */
@@ -56213,7 +56302,7 @@
  	.probe = tlv320aic23b_probe,
  	.remove = tlv320aic23b_remove,
 diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c
-index 5aeccb3..6f03d95 100644
+index 076ed5b..e8ab285 100644
 --- a/drivers/media/video/tvaudio.c
 +++ b/drivers/media/video/tvaudio.c
 @@ -26,7 +26,7 @@
@@ -57577,7 +57666,7 @@
  				| USB_DEVICE_ID_MATCH_INT_INFO,
  	  .idVendor		= 0x174f,
 diff --git a/drivers/media/video/uvc/uvc_status.c b/drivers/media/video/uvc/uvc_status.c
-index c1e4ae2..b20d0b9 100644
+index c705f24..21d8712 100644
 --- a/drivers/media/video/uvc/uvc_status.c
 +++ b/drivers/media/video/uvc/uvc_status.c
 @@ -24,26 +24,19 @@
@@ -57610,7 +57699,7 @@
 +	usb_to_input_id(dev->udev, &input->id);
  	input->dev.parent = &dev->intf->dev;
  
- 	set_bit(EV_KEY, input->evbit);
+ 	__set_bit(EV_KEY, input->evbit);
 @@ -57,7 +50,6 @@ static int uvc_input_init(struct uvc_device *dev)
  
  error:
@@ -60419,7 +60508,7 @@
  /*****************************************************************************/
  
 diff --git a/drivers/media/video/zoran/Kconfig b/drivers/media/video/zoran/Kconfig
-index 4ea5fa7..925fb51 100644
+index 8666e19..fd4120e 100644
 --- a/drivers/media/video/zoran/Kconfig
 +++ b/drivers/media/video/zoran/Kconfig
 @@ -1,6 +1,6 @@
@@ -60455,8 +60544,8 @@
 -	depends on VIDEO_ZORAN_ZR36060 && EXPERIMENTAL && VIDEO_V4L1
 +	depends on VIDEO_ZORAN_ZR36060 && EXPERIMENTAL
  	select VIDEO_BT856 if VIDEO_HELPER_CHIPS_AUTO
+ 	select VIDEO_BT866 if VIDEO_HELPER_CHIPS_AUTO
  	select VIDEO_KS0127 if VIDEO_HELPER_CHIPS_AUTO
- 	help
 diff --git a/drivers/media/video/zoran/videocodec.h b/drivers/media/video/zoran/videocodec.h
 index 97a3bbe..5c27b25 100644
 --- a/drivers/media/video/zoran/videocodec.h
@@ -66443,10 +66532,10 @@
  };
  
 diff --git a/include/linux/Kbuild b/include/linux/Kbuild
-index b97cdc5..e6bfd4d 100644
+index 106c3ba..d97133d 100644
 --- a/include/linux/Kbuild
 +++ b/include/linux/Kbuild
-@@ -157,7 +157,6 @@ header-y += un.h
+@@ -158,7 +158,6 @@ header-y += un.h
  header-y += utime.h
  header-y += veth.h
  header-y += video_decoder.h




More information about the fedora-extras-commits mailing list