[linux-dvb] Treiber für KNC One DVB-T Plus

Alexander Riedel alexander-riedel at t-online.de
Sun Mar 13 22:29:23 CET 2005


Hallo alle zusammen!
Sorry daß ich auf Deutsch schreibe...

Ich habe vor etwa 1 Monat mir eine KNC One Plus DVB-T gekauft.
Die Karte ging nicht mit dem aktuellem Treiber.
Die Karte hat PCI ID 0x0031.

Dank Robert Schlabbach habe ich die Lösung für mich gefunden.

Wie ich sehe (CVS) der Patch ist irgendwo untergegangen. ;-)

Ich habe den Patch gleich für andere KNC One Karten auch geändert. (PCI
IDs 0x0010 0x0011 0x0021 0x0031).
Ich vermute dass die gleich gesteuert werden, weil die von einem
Hersteller sind.

Hier ist noch mal der Patch.

P.S. Mein VDR läuft schon mit dieser Karte schon seit einem Monat. Und
ich bin glücklich.

--
Alexander Riedel

-------------- next part --------------
diff -Nur linux-2.6.10.orig/drivers/media/dvb/ttpci/budget-av.c linux-2.6.10.my/drivers/media/dvb/ttpci/budget-av.c
--- linux-2.6.10.orig/drivers/media/dvb/ttpci/budget-av.c	2004-12-24 22:35:24.000000000 +0100
+++ linux-2.6.10.my/drivers/media/dvb/ttpci/budget-av.c	2005-02-10 11:15:34.402482232 +0100
@@ -694,7 +694,10 @@
 static void frontend_init(struct budget_av *budget_av)
 {
 	switch (budget_av->budget.dev->pci->subsystem_device) {
+	case 0x0011:		// KNC1 DVB-S Plus budget with AV IN (stv0299/Philips SU1278(tsa5059))
+		saa7146_write(budget_av->budget.dev, GPIO_CTRL, 0x50000000); // Enable / PowerON Frontend
 	case 0x4f56:		// Typhoon/KNC1 DVB-S budget (stv0299/Philips SU1278(tsa5059))
+	case 0x0010:		// KNC1 DVB-S budget (stv0299/Philips SU1278(tsa5059))
 		budget_av->budget.dvb_frontend =
 			stv0299_attach(&typhoon_config, &budget_av->budget.i2c_adap);
 		if (budget_av->budget.dvb_frontend != NULL) {
@@ -702,6 +705,8 @@
 		}
 		break;
 
+	case 0x0021:		// KNC1 DVB-C Plus budget with AV IN (tda10021/Philips CU1216(tua6034))
+		saa7146_write(budget_av->budget.dev, GPIO_CTRL, 0x50000000); // Enable / PowerON Frontend
 	case 0x0020:		// KNC1 DVB-C budget (tda10021/Philips CU1216(tua6034))
 		budget_av->budget.dvb_frontend =
 			tda10021_attach(&philips_cu1216_config,
@@ -711,6 +716,8 @@
 		}
 		break;
 
+	case 0x0031:		// KNC1 DVB-T Plus budget with AV IN (tda10046/Philips TU1216(tda6651tt))
+		saa7146_write(budget_av->budget.dev, GPIO_CTRL, 0x50000000); // Enable / PowerON Frontend
 	case 0x0030:		// KNC1 DVB-T budget (tda10046/Philips TU1216(tda6651tt))
 		budget_av->budget.dvb_frontend =
 			tda10046_attach(&philips_tu1216_config, &budget_av->budget.i2c_adap);
@@ -958,14 +965,21 @@
 MAKE_BUDGET_INFO(knc1s, "KNC1 DVB-S", BUDGET_KNC1S);
 MAKE_BUDGET_INFO(knc1c, "KNC1 DVB-C", BUDGET_KNC1C);
 MAKE_BUDGET_INFO(knc1t, "KNC1 DVB-T", BUDGET_KNC1T);
+MAKE_BUDGET_INFO(knc1sp, "KNC1 DVB-S Plus", BUDGET_KNC1SP);
+MAKE_BUDGET_INFO(knc1cp, "KNC1 DVB-C Plus", BUDGET_KNC1CP);
+MAKE_BUDGET_INFO(knc1tp, "KNC1 DVB-T Plus", BUDGET_KNC1TP);
 MAKE_BUDGET_INFO(cin1200s, "TerraTec Cinergy 1200 DVB-S", BUDGET_CIN1200S);
 MAKE_BUDGET_INFO(cin1200c, "Terratec Cinergy 1200 DVB-C", BUDGET_CIN1200C);
 MAKE_BUDGET_INFO(cin1200t, "Terratec Cinergy 1200 DVB-T", BUDGET_CIN1200T);
 
 static struct pci_device_id pci_tbl [] = {
 	MAKE_EXTENSION_PCI(knc1s, 0x1131, 0x4f56),
+	MAKE_EXTENSION_PCI(knc1s, 0x1131, 0x0010),
+	MAKE_EXTENSION_PCI(knc1sp, 0x1131, 0x0011),
 	MAKE_EXTENSION_PCI(knc1c, 0x1894, 0x0020),
+	MAKE_EXTENSION_PCI(knc1cp, 0x1894, 0x0021),
 	MAKE_EXTENSION_PCI(knc1t, 0x1894, 0x0030),
+	MAKE_EXTENSION_PCI(knc1tp, 0x1894, 0x0031),
 	MAKE_EXTENSION_PCI(cin1200s, 0x153b, 0x1154),
 	MAKE_EXTENSION_PCI(cin1200c, 0x153b, 0x1156),
 	MAKE_EXTENSION_PCI(cin1200t, 0x153b, 0x1157),
diff -Nur linux-2.6.10.orig/drivers/media/dvb/ttpci/budget-core.c linux-2.6.10.my/drivers/media/dvb/ttpci/budget-core.c
--- linux-2.6.10.orig/drivers/media/dvb/ttpci/budget-core.c	2004-12-24 22:34:30.000000000 +0100
+++ linux-2.6.10.my/drivers/media/dvb/ttpci/budget-core.c	2005-02-09 00:30:27.000000000 +0100
@@ -395,7 +395,7 @@
 
 	saa7146_write(dev, PCI_BT_V1, 0x001c0000);
 	/* upload all */
-        saa7146_write(dev, GPIO_CTRL, 0x000000);
+	saa7146_write(dev, GPIO_CTRL, 0x000000);
 
 	tasklet_init (&budget->vpe_tasklet, vpeirq, (unsigned long) budget);
 
diff -Nur linux-2.6.10.orig/drivers/media/dvb/ttpci/budget.h linux-2.6.10.my/drivers/media/dvb/ttpci/budget.h
--- linux-2.6.10.orig/drivers/media/dvb/ttpci/budget.h	2004-12-24 22:35:00.000000000 +0100
+++ linux-2.6.10.my/drivers/media/dvb/ttpci/budget.h	2005-02-09 00:21:03.000000000 +0100
@@ -94,6 +94,9 @@
 #define BUDGET_KNC1S		   8
 #define BUDGET_KNC1C		   9
 #define BUDGET_KNC1T		   10
+#define BUDGET_KNC1SP		   11
+#define BUDGET_KNC1CP		   12
+#define BUDGET_KNC1TP		   13
 
 #define BUDGET_VIDEO_PORTA         0
 #define BUDGET_VIDEO_PORTB         1



More information about the linux-dvb mailing list