Patch for all tuners Beholder series 40x, 50x, 60x, M6, Columbus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



	

Made support all tuners Beholder. Almost-not yet only support hardware MPEG decoders in a series of M6.



Patch for all tuners Beholder series 40x, 50x, 60x, M6, and Columbus



http://www.igk.ru/linux/files/v4l/v4l2-beholder-0.1.patch

--

Igor Kuznetsov "IgK"

Email: igk72@xxxxxxxxx igk@xxxxxx

ICQ: 6651879
diff -urp v4l-dvb/linux/drivers/media/video/ir-kbd-i2c.c v4l-dvb.beholder/linux/drivers/media/video/ir-kbd-i2c.c
--- v4l-dvb/linux/drivers/media/video/ir-kbd-i2c.c	2007-08-23 01:01:28.000000000 +0400
+++ v4l-dvb.beholder/linux/drivers/media/video/ir-kbd-i2c.c	2007-09-04 15:14:53.000000000 +0400
@@ -383,6 +383,7 @@ static int ir_attach(struct i2c_adapter 
 	case 0x7a:
 	case 0x47:
 	case 0x71:
+	case 0x2d:
 		if (adap->id == I2C_HW_B_CX2388x) {
 			/* Handled by cx88-input */
 			name        = "CX2388x remote";
@@ -493,7 +494,7 @@ static int ir_probe(struct i2c_adapter *
 	*/
 
 	static const int probe_bttv[] = { 0x1a, 0x18, 0x4b, 0x64, 0x30, -1};
-	static const int probe_saa7134[] = { 0x7a, 0x47, 0x71, -1 };
+	static const int probe_saa7134[] = { 0x7a, 0x47, 0x71, 0x2d, -1 };
 	static const int probe_em28XX[] = { 0x30, 0x47, -1 };
 	static const int probe_cx88[] = { 0x18, 0x71, -1 };
 	const int *probe = NULL;
diff -urp v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134-cards.c
--- v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c	2007-08-23 01:01:29.000000000 +0400
+++ v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134-cards.c	2007-09-05 01:21:46.000000000 +0400
@@ -2177,6 +2177,190 @@ struct saa7134_board saa7134_boards[] = 
 			.gpio = 0x01,
 		},
 	},
+	[SAA7134_BOARD_BEHOLD_401] = {
+		.name           = "Beholder BeholdTV 401",
+		.audio_clock    = 0x00187de7,
+		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
+		.radio_type     = UNSET,
+		.tuner_addr	= ADDR_UNSET,
+		.radio_addr	= ADDR_UNSET,
+		.inputs         = {{
+			.name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+		},{
+			.name = name_comp1,
+			.vmux = 1,
+			.amux = LINE1,
+		},{
+			.name = name_tv,
+			.vmux = 3,
+			.amux = LINE2,
+			.tv   = 1,
+		}},
+		.mute = {
+			.name = name_mute,
+			.amux = LINE1,
+		},
+	},
+	[SAA7134_BOARD_BEHOLD_403] = {
+		.name           = "Beholder BeholdTV 403",
+		.audio_clock    = 0x00187de7,
+		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
+		.radio_type     = UNSET,
+		.tuner_addr	= ADDR_UNSET,
+		.radio_addr	= ADDR_UNSET,
+		.inputs         = {{
+			.name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+		},{
+			.name   = name_comp1,
+			.vmux   = 1,
+			.amux   = LINE1,
+		},{
+			.name = name_tv,
+			.vmux = 3,
+			.amux = LINE2,
+			.tv   = 1,
+		}},
+	},
+	[SAA7134_BOARD_BEHOLD_403FM] = {
+		.name           = "Beholder BeholdTV 403 FM",
+		.audio_clock    = 0x00187de7,
+		.tuner_type     = TUNER_PHILIPS_FQ1216ME,
+		.radio_type     = UNSET,
+		.tuner_addr	= ADDR_UNSET,
+		.radio_addr	= ADDR_UNSET,
+		.inputs         = {{
+			.name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+		},{
+			.name   = name_comp1,
+			.vmux   = 1,
+			.amux   = LINE1,
+		},{
+			.name = name_tv,
+			.vmux = 3,
+			.amux = LINE2,
+			.tv   = 1,
+		}},
+		.radio = {
+			.name = name_radio,
+			.amux = LINE2,
+		},
+	},
+	[SAA7134_BOARD_BEHOLD_405] = {
+	/* <http://tuner.beholder.ru>, Sergey <skiv@xxxxxxx> */
+		.name           = "Beholder BeholdTV 405",
+		.audio_clock    = 0x00187de7,
+		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+		.radio_type     = UNSET,
+		.tuner_addr     = ADDR_UNSET,
+		.radio_addr     = ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.inputs         = {{
+			.name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+		},{
+		    .name = name_comp1,
+		    .vmux = 3,
+		    .amux = LINE1,
+		},{
+		    .name = name_tv,
+		    .vmux = 3,
+		    .amux = LINE2,
+		    .tv   = 1,
+		}},
+	},
+	[SAA7134_BOARD_BEHOLD_405FM] = {
+	/* <http://tuner.beholder.ru>, Sergey <skiv@xxxxxxx> */
+		.name           = "Beholder BeholdTV 405 FM",
+		.audio_clock    = 0x00187de7,
+		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+		.radio_type     = UNSET,
+		.tuner_addr     = ADDR_UNSET,
+		.radio_addr     = ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.inputs         = {{
+			.name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+		},{
+		    .name = name_comp1,
+		    .vmux = 3,
+		    .amux = LINE1,
+		},{
+		    .name = name_tv,
+		    .vmux = 3,
+		    .amux = LINE2,
+		    .tv   = 1,
+		}},
+		.radio = {
+		    .name = name_radio,
+		    .amux = LINE2,
+		},
+	},
+	[SAA7134_BOARD_BEHOLD_407FM] = {
+	/* <http://tuner.beholder.ru> */
+	/*, Evgeny <jekpol@xxxxxxxxx> */
+		.name 		= "Beholder BeholdTV 407 FM",
+		.audio_clock 	= 0x00187de7,
+		.tuner_type 	= TUNER_PHILIPS_FM1216ME_MK3,
+		.radio_type 	= UNSET,
+		.tuner_addr 	= ADDR_UNSET,
+		.radio_addr 	= ADDR_UNSET,
+		.tda9887_conf 	= TDA9887_PRESENT,
+		.gpiomask = 0xc0c000,
+		.inputs = {{
+			.name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+			.gpio = 0xc0c000,
+		},{
+		    .name = name_comp1,
+		    .vmux = 1,
+		    .amux = LINE1,
+		    .gpio = 0xc0c000,
+		},{
+		    .name = name_tv,
+		    .vmux = 3,
+		    .amux = TV,
+		    .tv = 1,
+		    .gpio = 0xc0c000,
+		}},
+		.radio = {
+		    .name = name_radio,
+		    .amux = LINE2,
+		    .gpio = 0xc0c000,
+		},
+	},
+	[SAA7134_BOARD_BEHOLD_409] = {
+		/* <http://tuner.beholder.ru>, Sergey <skiv@xxxxxxx> */
+		.name           = "Beholder BeholdTV 409",
+		.audio_clock    = 0x00187de7,
+		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+		.radio_type     = UNSET,
+		.tuner_addr     = ADDR_UNSET,
+		.radio_addr     = ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.inputs         = {{
+			  .name = name_tv,
+			  .vmux = 3,
+			  .amux = TV,
+			  .tv   = 1,
+		},{
+			  .name = name_comp1,
+			  .vmux = 1,
+			  .amux = LINE1,
+		},{
+			  .name = name_svideo,
+			  .vmux = 8,
+			  .amux = LINE1,
+		}},
+	},
 	[SAA7134_BOARD_BEHOLD_409FM] = {
 		/* <http://tuner.beholder.ru>, Sergey <skiv@xxxxxxx> */
 		.name           = "Beholder BeholdTV 409 FM",
@@ -2205,6 +2389,155 @@ struct saa7134_board saa7134_boards[] = 
 			  .amux = LINE2,
 		},
 	},
+	[SAA7134_BOARD_BEHOLD_505FM] = {
+		/* <http://tuner.beholder.ru> */
+		.name           = "Beholder BeholdTV 505 FM/RDS",
+		.audio_clock    = 0x00200000,
+		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+		.radio_type     = UNSET,
+		.tuner_addr     = ADDR_UNSET,
+		.radio_addr     = ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.inputs         = {{
+		        .name = name_tv,
+			.vmux = 3,
+			.amux = LINE2,
+			.tv   = 1,
+		},{
+		        .name = name_comp1,
+			.vmux = 1,
+			.amux = LINE1,
+		},{
+		        .name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+		}},
+                .mute = {
+                        .name = name_mute,
+                        .amux = LINE1,
+                },
+                .radio = {
+			.name = name_radio,
+			.amux = LINE2,
+		},
+	},
+	[SAA7134_BOARD_BEHOLD_507_9FM] = {
+		/* <http://tuner.beholder.ru> */
+		/* Stanislav Lanin */
+		.name           = "Beholder BeholdTV 507 FM/RDS / BeholdTV 509 FM",
+		.audio_clock    = 0x00187de7,
+		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+		.radio_type     = UNSET,
+		.tuner_addr     = ADDR_UNSET,
+		.radio_addr     = ADDR_UNSET,
+		.tda9887_conf   = TDA9887_PRESENT,
+		.inputs         = {{
+		        .name = name_tv,
+			.vmux = 3,
+			.amux = TV,
+			.tv   = 1,
+		},{
+		        .name = name_comp1,
+			.vmux = 1,
+			.amux = LINE1,
+		},{
+		        .name = name_svideo,
+			.vmux = 8,
+			.amux = LINE1,
+		}},
+		        .radio = {
+			.name = name_radio,
+			.amux = LINE2,
+		},
+	},
+	[SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
+		/* <http://tuner.beholder.ru> */
+    		/* Maxim Savenko */
+    		.name           = "Beholder BeholdTV Columbus TVFM",
+		.audio_clock    = 0x00187de7,
+                .tuner_type     = TUNER_ALPS_TSBE5_PAL,
+                .radio_type     = UNSET,
+                .tuner_addr     = ADDR_UNSET,
+                .radio_addr     = ADDR_UNSET,
+                .tda9887_conf   = TDA9887_PRESENT,
+                .inputs         = {{
+                        .name = name_tv,
+                        .vmux = 3,
+                        .amux = TV,
+                        .tv   = 1,
+                },{
+            		.name = name_comp1,
+            		.vmux = 1,
+            		.amux = LINE1,
+                },{
+                        .name = name_svideo,
+                        .vmux = 8,
+                        .amux = LINE1,
+                }},
+                        .radio = {
+                        .name = name_radio,
+                        .amux = LINE2,
+                },
+        },
+         [SAA7134_BOARD_BEHOLD_607_9FM] = {
+ 		/* <http://tuner.beholder.ru>, */
+ 		/* Andrey Melnikoff <temnota@xxxxxx> */
+                 .name           = "Beholder BeholdTV 607 / BeholdTV 609",
+                 .audio_clock    = 0x00187de7,
+                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+                 .radio_type     = UNSET,
+                 .tuner_addr     = ADDR_UNSET,
+                 .radio_addr     = ADDR_UNSET,
+                 .tda9887_conf   = TDA9887_PRESENT,
+                 .inputs         = {{
+             		.name = name_tv,
+             		.vmux = 3,
+             		.amux = TV,
+             		.tv   = 1,
+             	},{
+         		.name = name_comp1,
+         		.vmux = 1,
+         		.amux = LINE1,
+     		},{
+         		.name = name_svideo,
+ 	                .vmux = 8,
+ 	                .amux = LINE1,
+ 	        }},
+     		.radio = {
+         		.name = name_radio,
+         		.amux = LINE2,
+     		},
+ 	},
+         [SAA7134_BOARD_BEHOLD_M6] = {
+ 		/* <http://tuner.beholder.ru>, */
+ 		/* Igor Kuznetsov <igk@xxxxxx>, Andrey Melnikoff <temnota@xxxxxx> */
+                 .name           = "Beholder BeholdTV M6 / BeholdTV M6 Extra",
+                 .audio_clock    = 0x00187de7,
+                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+                 .radio_type     = UNSET,
+                 .tuner_addr     = ADDR_UNSET,
+                 .radio_addr     = ADDR_UNSET,
+                 .tda9887_conf   = TDA9887_PRESENT,
+                 .inputs         = {{
+             		.name = name_tv,
+             		.vmux = 3,
+             		.amux = TV,
+             		.tv   = 1,
+             	},{
+         		.name = name_comp1,
+         		.vmux = 1,
+         		.amux = LINE1,
+     		},{
+         		.name = name_svideo,
+ 	                .vmux = 8,
+ 	                .amux = LINE1,
+ 	        }},
+     		.radio = {
+         		.name = name_radio,
+         		.amux = LINE2,
+     		},
+     		.mpeg  = SAA7134_MPEG_EMPRESS,
+ 	},
 	[SAA7134_BOARD_GOTVIEW_7135] = {
 		/* Mike Baikov <mike@xxxxxxxxxx> */
 		/* Andrey Cvetcov <ays14@xxxxxxxxx> */
@@ -3743,6 +4076,66 @@ struct pci_device_id saa7134_pci_tbl[] =
 		.driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
 	},{
 		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6070,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6071,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6072,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6073,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6090,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6091,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6092,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6093,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_607_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6190,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_M6,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+    		.subvendor    = 0x5ace,
+    		.subdevice    = 0x6193,
+    		.driver_data  = SAA7134_BOARD_BEHOLD_M6,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
 		.subvendor    = PCI_VENDOR_ID_ASUSTEK,
 		.subdevice    = 0x4845,
@@ -3982,6 +4375,12 @@ struct pci_device_id saa7134_pci_tbl[] =
 		.driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
 	},{
 		.vendor       = PCI_VENDOR_ID_PHILIPS,
+    		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+                .subvendor    = 0x0000,
+                .subdevice    = 0x5201,
+                .driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
+        },{
+    		.vendor       = PCI_VENDOR_ID_PHILIPS,
 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
 		.subvendor    = 0x1043,
 		.subdevice    = 0x0210,		/* mini pci NTSC version */
@@ -3995,12 +4394,113 @@ struct pci_device_id saa7134_pci_tbl[] =
 
 	},{
 		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+		.subvendor    = 0x1131,
+		.subdevice    = 0x0000,
+		.driver_data  = SAA7134_BOARD_BEHOLD_401,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x4016,
+		.driver_data  = SAA7134_BOARD_BEHOLD_401,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x1131,
+		.subdevice    = 0x0000,
+		.driver_data  = SAA7134_BOARD_BEHOLD_403FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x4036,
+		.driver_data  = SAA7134_BOARD_BEHOLD_403,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x4037,
+		.driver_data  = SAA7134_BOARD_BEHOLD_403FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x4050,
+		.driver_data  = SAA7134_BOARD_BEHOLD_405,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x4051,
+		.driver_data  = SAA7134_BOARD_BEHOLD_405FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x4070,
+		.driver_data  = SAA7134_BOARD_BEHOLD_407,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x4071,
+		.driver_data  = SAA7134_BOARD_BEHOLD_407FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+		.subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
+		.subdevice    = 0x4090,
+		.driver_data  = SAA7134_BOARD_BEHOLD_409,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
 		.subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
 		.subdevice    = 0x4091,
 		.driver_data  = SAA7134_BOARD_BEHOLD_409FM,
 	},{
 		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x5051,		/* RDS version */
+		.driver_data  = SAA7134_BOARD_BEHOLD_505FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x505B,		/* RDS version, revision */
+		.driver_data  = SAA7134_BOARD_BEHOLD_505FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+		.subvendor    = 0x5ace,
+		.subdevice    = 0x5050,
+		.driver_data  = SAA7134_BOARD_BEHOLD_505FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x5071,		/* RDS version */
+		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+		.subvendor    = 0x0000,
+		.subdevice    = 0x507B,		/* RDS version, revision */
+		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
+	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
+		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+		.subvendor    = 0x5ace,
+		.subdevice    = 0x5070,		/* FM revision */
+		.driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
+	},{
+ 		.device = PCI_DEVICE_ID_PHILIPS_SAA7133,
+		.subvendor = 0x5ace,
+ 		.subdevice = 0x5090,
+ 		.driver_data = SAA7134_BOARD_BEHOLD_507_9FM,
+ 	},{
+		.vendor       = PCI_VENDOR_ID_PHILIPS,
 		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
 		.subvendor    = 0x5456, /* GoTView */
 		.subdevice    = 0x7135,
@@ -4453,7 +4953,17 @@ int saa7134_board_init1(struct saa7134_d
 	case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
 	case SAA7134_BOARD_MANLI_MTV001:
 	case SAA7134_BOARD_MANLI_MTV002:
+	case SAA7134_BOARD_BEHOLD_401:
+	case SAA7134_BOARD_BEHOLD_403:
+	case SAA7134_BOARD_BEHOLD_403FM:
+	case SAA7134_BOARD_BEHOLD_405:
+	case SAA7134_BOARD_BEHOLD_405FM:
+	case SAA7134_BOARD_BEHOLD_407:
+	case SAA7134_BOARD_BEHOLD_407FM:
+	case SAA7134_BOARD_BEHOLD_409:
 	case SAA7134_BOARD_BEHOLD_409FM:
+	case SAA7134_BOARD_BEHOLD_505FM:
+	case SAA7134_BOARD_BEHOLD_507_9FM:
 	case SAA7134_BOARD_AVACSSMARTTV:
 	case SAA7134_BOARD_GOTVIEW_7135:
 	case SAA7134_BOARD_KWORLD_TERMINATOR:
@@ -4506,6 +5016,7 @@ int saa7134_board_init1(struct saa7134_d
 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
 		break;
 	case SAA7134_BOARD_AVERMEDIA_CARDBUS:
+	case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
 		/* power-up tuner chip */
 		saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
 		saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
@@ -4527,6 +5038,8 @@ int saa7134_board_init1(struct saa7134_d
 	case SAA7134_BOARD_PINNACLE_PCTV_310i:
 	case SAA7134_BOARD_UPMOST_PURPLE_TV:
 	case SAA7134_BOARD_HAUPPAUGE_HVR1110:
+	case SAA7134_BOARD_BEHOLD_607_9FM:
+	case SAA7134_BOARD_BEHOLD_M6:
 		dev->has_remote = SAA7134_REMOTE_I2C;
 		break;
 	case SAA7134_BOARD_AVERMEDIA_A169_B:
diff -urp v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134.h
--- v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h	2007-08-23 01:01:29.000000000 +0400
+++ v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134.h	2007-09-04 15:14:53.000000000 +0400
@@ -244,9 +244,23 @@ struct saa7134_format {
 #define SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA 112
 #define SAA7134_BOARD_ECS_TVP3XP_4CB6  113
 #define SAA7134_BOARD_KWORLD_DVBT_210 114
+#define SAA7134_BOARD_BEHOLD_401    141
+#define SAA7134_BOARD_BEHOLD_403    142
+#define SAA7134_BOARD_BEHOLD_403FM  143
+#define SAA7134_BOARD_BEHOLD_405    145
+#define SAA7134_BOARD_BEHOLD_405FM  146
+#define SAA7134_BOARD_BEHOLD_407    147
+#define SAA7134_BOARD_BEHOLD_407FM  148
+#define SAA7134_BOARD_BEHOLD_409    149
+#define SAA7134_BOARD_BEHOLD_505FM     155
+#define SAA7134_BOARD_BEHOLD_507_9FM   157
+#define SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM 158
+
 #define SAA7134_BOARD_SABRENT_TV_PCB05     115
 #define SAA7134_BOARD_10MOONSTVMASTER3     116
 #define SAA7134_BOARD_AVERMEDIA_SUPER_007  117
+#define SAA7134_BOARD_BEHOLD_607_9FM  160
+#define SAA7134_BOARD_BEHOLD_M6       169
 
 #define SAA7134_MAXBOARDS 8
 #define SAA7134_INPUT_MAX 8
Òîëüêî â v4l-dvb.beholder/linux/drivers/media/video/saa7134: saa7134.h.orig
diff -urp v4l-dvb/linux/drivers/media/video/saa7134/saa7134-i2c.c v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134-i2c.c
--- v4l-dvb/linux/drivers/media/video/saa7134/saa7134-i2c.c	2007-08-23 01:01:29.000000000 +0400
+++ v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134-i2c.c	2007-09-04 15:14:53.000000000 +0400
@@ -350,6 +350,7 @@ static int attach_inform(struct i2c_clie
 		case 0x7a:
 		case 0x47:
 		case 0x71:
+		case 0x2d:
 		{
 			struct IR_i2c *ir = i2c_get_clientdata(client);
 			d1printk("%s i2c IR detected (%s).\n",
@@ -456,6 +457,7 @@ static char *i2c_devs[128] = {
 	[ 0xa0 >> 1 ] = "eeprom",
 	[ 0xc0 >> 1 ] = "tuner (analog)",
 	[ 0x86 >> 1 ] = "tda9887",
+	[ 0x5a >> 1 ] = "remote control",
 };
 
 static void do_i2c_scan(char *name, struct i2c_client *c)
diff -urp v4l-dvb/linux/drivers/media/video/saa7134/saa7134-input.c v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134-input.c
--- v4l-dvb/linux/drivers/media/video/saa7134/saa7134-input.c	2007-08-23 01:01:29.000000000 +0400
+++ v4l-dvb.beholder/linux/drivers/media/video/saa7134/saa7134-input.c	2007-09-04 15:14:53.000000000 +0400
@@ -139,6 +139,48 @@ static int get_key_hvr1110(struct IR_i2c
 	return 1;
 }
 
+
+static int get_key_beholdm6xx(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw)
+{
+    	unsigned char data[32];
+    	u32 code = 0;
+        u32 gpio;
+
+    	struct saa7134_dev *dev = ir->c.adapter->algo_data;
+    
+    	/* rising SAA7134_GPIO_GPRESCAN reads the status */
+	saa_clearb(SAA7134_GPIO_GPMODE3,SAA7134_GPIO_GPRESCAN);
+	saa_setb(SAA7134_GPIO_GPMODE3,SAA7134_GPIO_GPRESCAN);
+
+	gpio = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
+
+    	if (0x400000 &~ gpio)
+    	    return 0;       /* No button press */  
+
+        ir->c.addr = 0x5a >> 1;
+                
+    	if (32 != i2c_master_recv(&ir->c, data, 32)) {
+    	    i2cdprintk("read error\n");
+    	    return -EIO;
+    	}
+
+	code = data[8] | data[9] << 8 | data[10] << 16 | data[11] << 24;
+
+	if (!code || ir->ir.keypressed)
+	    return 0;      /* no fake repeating */
+	    
+	if (0 < ir->old && ir->old == ir->ir.ir_key) {
+	    ir->old = 0;
+	    return 0;      /* no fake repeating */
+	}
+	ir->old = ir->ir.ir_key;
+	    	    
+    	*ir_key = data[9];
+    	*ir_raw = code;
+
+        return 1;
+}
+
 void saa7134_input_irq(struct saa7134_dev *dev)
 {
 	struct card_ir *ir = dev->remote;
@@ -271,7 +313,17 @@ int saa7134_input_init1(struct saa7134_d
 		break;
 	case SAA7134_BOARD_MANLI_MTV001:
 	case SAA7134_BOARD_MANLI_MTV002:
+	case SAA7134_BOARD_BEHOLD_401:
+	case SAA7134_BOARD_BEHOLD_403:
+	case SAA7134_BOARD_BEHOLD_403FM:
+	case SAA7134_BOARD_BEHOLD_405:
+	case SAA7134_BOARD_BEHOLD_405FM:
+	case SAA7134_BOARD_BEHOLD_407:
+	case SAA7134_BOARD_BEHOLD_407FM:
+	case SAA7134_BOARD_BEHOLD_409:
 	case SAA7134_BOARD_BEHOLD_409FM:
+	case SAA7134_BOARD_BEHOLD_505FM:
+	case SAA7134_BOARD_BEHOLD_507_9FM:
 		ir_codes     = ir_codes_manli;
 		mask_keycode = 0x001f00;
 		mask_keyup   = 0x004000;
@@ -448,6 +500,12 @@ void saa7134_set_i2c_ir(struct saa7134_d
 		ir->get_key   = get_key_hvr1110;
 		ir->ir_codes  = ir_codes_hauppauge_new;
 		break;
+	case SAA7134_BOARD_BEHOLD_607_9FM:
+	case SAA7134_BOARD_BEHOLD_M6:
+		snprintf(ir->c.name, sizeof(ir->c.name), "BeholdTV");
+		ir->get_key   = get_key_beholdm6xx;
+		ir->ir_codes  = ir_codes_manli;
+		break;
 	default:
 		dprintk("Shouldn't get here: Unknown board %x for I2C IR?\n",dev->board);
 		break;
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux