Thanks for the fast answer, after applying the patch (some hunks failed) and adding subid 0x001e, I get the following messages: --- Jan 7 02:54:09 shooters kernel: ACPI: PCI Interrupt 0000:00:0e.0[A] -> GSI 17 (level, low) -> IRQ 20 Jan 7 02:54:09 shooters kernel: saa7146: found saa7146 @ mem f8d84000 (revision 1, irq 20) (0x1894,0x001e). Jan 7 02:54:09 shooters kernel: DVB: registering new adapter (KNC TV STAR DVB-S). Jan 7 02:54:09 shooters kernel: adapter failed MAC signature check Jan 7 02:54:09 shooters kernel: encoded MAC from EEPROM was ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff Jan 7 02:54:10 shooters kernel: budget-av: ci interface initialised. Jan 7 02:54:10 shooters kernel: KNC1-1: MAC addr = 00:09:d6:80:04:89 Jan 7 02:54:11 shooters kernel: budget-av: A frontend driver was not found for device 1131/7146 subsystem 1894/001e --- stv0299_attach returns NULL after id got set to 0: --- /* check if the demod is there */ stv0299_writeregI(state, 0x02, 0x34); /* standby off */ msleep(200); id = stv0299_readreg(state, 0x00); /* register 0x00 contains 0xa1 for STV0299 and STV0299B */ /* register 0x00 might contain 0x80 when returning from standby */ printk("id=%d\n", id); if (id != 0xa1 && id != 0x80) goto error; --- patch used: Index: linux/drivers/media/dvb/frontends/dvb-pll.c =================================================================== RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/frontends/dvb-pll.c,v retrieving revision 1.13 diff -c -r1.13 dvb-pll.c *** linux/drivers/media/dvb/frontends/dvb-pll.c 27 Oct 2005 04:11:59 -0000 1.13 --- linux/drivers/media/dvb/frontends/dvb-pll.c 7 Jan 2006 02:27:13 -0000 *************** *** 344,349 **** --- 344,366 ---- }; EXPORT_SYMBOL(dvb_pll_tbmv30111in); + /* + * Philips SD1878 Tuner. + */ + struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = { + .name = "Philips SD1878", + .min = 950000, + .max = 2150000, + .count = 4, + .entries = { + { 1250000, 499, 500, 0xc4, 0x00}, + { 1550000, 499, 500, 0xc4, 0x40}, + { 2050000, 499, 500, 0xc4, 0x80}, + { 2150000, 499, 500, 0xc4, 0xc0}, + }, + }; + EXPORT_SYMBOL(dvb_pll_philips_sd1878_tda8261); + /* ----------------------------------------------------------- */ /* code */ Index: linux/drivers/media/dvb/frontends/dvb-pll.h =================================================================== RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/frontends/dvb-pll.h,v retrieving revision 1.13 diff -c -r1.13 dvb-pll.h *** linux/drivers/media/dvb/frontends/dvb-pll.h 23 Oct 2005 04:55:31 -0000 1.13 --- linux/drivers/media/dvb/frontends/dvb-pll.h 7 Jan 2006 02:27:13 -0000 *************** *** 40,45 **** --- 40,47 ---- extern struct dvb_pll_desc dvb_pll_tdhu2; extern struct dvb_pll_desc dvb_pll_tbmv30111in; + extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261; + int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, u32 freq, int bandwidth); Index: linux/drivers/media/dvb/frontends/stv0299.c =================================================================== RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/frontends/stv0299.c,v retrieving revision 1.75 diff -c -r1.75 stv0299.c *** linux/drivers/media/dvb/frontends/stv0299.c 23 Nov 2005 20:43:17 -0000 1.75 --- linux/drivers/media/dvb/frontends/stv0299.c 7 Jan 2006 02:27:13 -0000 *************** *** 135,141 **** { struct stv0299_state* state = fe->demodulator_priv; ! return stv0299_writeregI(state, 0x05, 0xb5); /* enable i2c repeater on stv0299 */ } static int stv0299_set_FEC (struct stv0299_state* state, fe_code_rate_t fec) --- 135,141 ---- { struct stv0299_state* state = fe->demodulator_priv; ! return stv0299_writeregI(state, 0x05, 0xb5); /* enable i2c repeater on stv0299 */ } static int stv0299_set_FEC (struct stv0299_state* state, fe_code_rate_t fec) *************** *** 661,666 **** --- 661,667 ---- /* register 0x00 contains 0xa1 for STV0299 and STV0299B */ /* register 0x00 might contain 0x80 when returning from standby */ + printk("id=%d\n", id); if (id != 0xa1 && id != 0x80) goto error; /* create dvb_frontend */ Index: linux/drivers/media/dvb/ttpci/budget-av.c =================================================================== RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/ttpci/budget-av.c,v retrieving revision 1.58 diff -c -r1.58 budget-av.c *** linux/drivers/media/dvb/ttpci/budget-av.c 23 Nov 2005 21:06:12 -0000 1.58 --- linux/drivers/media/dvb/ttpci/budget-av.c 7 Jan 2006 02:27:13 -0000 *************** *** 37,42 **** --- 37,43 ---- #include "stv0299.h" #include "tda10021.h" #include "tda1004x.h" + #include "dvb-pll.h" #include <media/saa7146_vv.h> #include <linux/module.h> #include <linux/errno.h> *************** *** 864,871 **** .request_firmware = philips_tu1216_request_firmware, }; ! static u8 read_pwm(struct budget_av *budget_av) { --- 865,981 ---- .request_firmware = philips_tu1216_request_firmware, }; + static u8 philips_sd1878_inittab[] = { + 0x01, 0x15, + 0x02, 0x30, + 0x03, 0x00, + 0x04, 0x7d, + 0x05, 0x35, + 0x06, 0x40, + 0x07, 0x00, + 0x08, 0x43, + 0x09, 0x02, + 0x0C, 0x51, + 0x0D, 0x82, + 0x0E, 0x23, + 0x10, 0x3f, + 0x11, 0x84, + 0x12, 0xb9, + 0x15, 0xc9, + 0x16, 0x19, + 0x17, 0x8c, + 0x18, 0x59, + 0x19, 0xf8, + 0x1a, 0xfe, + 0x1c, 0x7f, + 0x1d, 0x00, + 0x1e, 0x00, + 0x1f, 0x50, + 0x20, 0x00, + 0x21, 0x00, + 0x22, 0x00, + 0x23, 0x00, + 0x28, 0x00, + 0x29, 0x28, + 0x2a, 0x14, + 0x2b, 0x0f, + 0x2c, 0x09, + 0x2d, 0x09, + 0x31, 0x1f, + 0x32, 0x19, + 0x33, 0xfc, + 0x34, 0x93, + 0xff, 0xff + }; ! static int philips_sd1878_tda8261_pll_set(struct dvb_frontend *fe, ! struct i2c_adapter *i2c, ! struct dvb_frontend_parameters *params) ! { ! u8 buf[4]; ! int rc; ! struct i2c_msg tuner_msg = {.addr=0x60,.flags=0,.buf=buf,.len=sizeof(buf)}; ! ! if((params->frequency < 950000) || (params->frequency > 2150000)) ! return -EINVAL; ! ! rc=dvb_pll_configure(&dvb_pll_philips_sd1878_tda8261, buf, ! params->frequency, 0); ! if(rc < 0) return rc; ! ! if(i2c_transfer(i2c, &tuner_msg, 1) != 1) ! return -EIO; ! ! return 0; ! } ! ! static int philips_sd1878_ci_set_symbol_rate(struct dvb_frontend *fe, ! u32 srate, u32 ratio) ! { ! u8 aclk = 0; ! u8 bclk = 0; ! u8 m1; ! ! aclk = 0xb5; ! if (srate < 2000000) ! bclk = 0x86; ! else if (srate < 5000000) ! bclk = 0x89; ! else if (srate < 15000000) ! bclk = 0x8f; ! else if (srate < 45000000) ! bclk = 0x95; ! ! m1 = 0x14; ! if (srate < 4000000) ! m1 = 0x10; ! ! stv0299_writereg(fe, 0x0e, 0x23); ! stv0299_writereg(fe, 0x0f, 0x94); ! stv0299_writereg(fe, 0x10, 0x39); ! stv0299_writereg(fe, 0x13, aclk); ! stv0299_writereg(fe, 0x14, bclk); ! stv0299_writereg(fe, 0x15, 0xc9); ! stv0299_writereg(fe, 0x1f, (ratio >> 16) & 0xff); ! stv0299_writereg(fe, 0x20, (ratio >> 8) & 0xff); ! stv0299_writereg(fe, 0x21, (ratio) & 0xf0); ! stv0299_writereg(fe, 0x0f, 0x80 | m1); ! ! return 0; ! } ! ! static struct stv0299_config philips_sd1878_config = { ! .demod_address = 0x68, ! .inittab = philips_sd1878_inittab, ! .mclk = 88000000UL, ! .invert = 0, ! .skip_reinit = 0, ! .lock_output = STV0229_LOCKOUTPUT_1, ! .volt13_op0_op1 = STV0299_VOLT13_OP0, ! .min_delay_ms = 100, ! .set_symbol_rate = philips_sd1878_ci_set_symbol_rate, ! .pll_set = philips_sd1878_tda8261_pll_set, ! }; static u8 read_pwm(struct budget_av *budget_av) { *************** *** 886,892 **** --- 996,1006 ---- #define SUBID_DVBS_KNC1_PLUS 0x0011 #define SUBID_DVBS_TYPHOON 0x4f56 #define SUBID_DVBS_CINERGY1200 0x1154 + #define SUBID_DVBS_CYNERGY1200N 0x1155 + #define SUBID_DVBS_TV_STAR 0x0014 + #define SUBID_DVBS_TV_STAR_CI 0x0016 + #define SUBID_DVBS_EASYWATCH 0x001e #define SUBID_DVBC_KNC1 0x0020 #define SUBID_DVBC_KNC1_PLUS 0x0021 #define SUBID_DVBC_CINERGY1200 0x1156 *************** *** 912,917 **** --- 1026,1039 ---- switch (saa->pci->subsystem_device) { + case SUBID_DVBS_TV_STAR: + case SUBID_DVBS_TV_STAR_CI: + case SUBID_DVBS_CYNERGY1200N: + case SUBID_DVBS_EASYWATCH: + fe = stv0299_attach(&philips_sd1878_config, + &budget_av->budget.i2c_adap); + break; + case SUBID_DVBS_KNC1: if (saa->pci->subsystem_vendor == 0x1894) { fe = stv0299_attach(&cinergy_1200s_1894_0010_config, *************** *** 1166,1175 **** --- 1288,1299 ---- 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(kncxs, "KNC TV STAR DVB-S", BUDGET_TVSTAR); 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(cin1200sn, "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); *************** *** 1178,1188 **** --- 1302,1316 ---- MAKE_EXTENSION_PCI(knc1s, 0x1131, 0x0010), MAKE_EXTENSION_PCI(knc1s, 0x1894, 0x0010), MAKE_EXTENSION_PCI(knc1sp, 0x1131, 0x0011), + MAKE_EXTENSION_PCI(kncxs, 0x1894, 0x0014), + MAKE_EXTENSION_PCI(kncxs, 0x1894, 0x0016), + MAKE_EXTENSION_PCI(kncxs, 0x1894, 0x001e), 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(cin1200sn, 0x153b, 0x1155), MAKE_EXTENSION_PCI(cin1200c, 0x153b, 0x1156), MAKE_EXTENSION_PCI(cin1200t, 0x153b, 0x1157), { Index: linux/drivers/media/dvb/ttpci/budget.h =================================================================== RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/ttpci/budget.h,v retrieving revision 1.24 diff -c -r1.24 budget.h *** linux/drivers/media/dvb/ttpci/budget.h 3 Apr 2005 19:45:02 -0000 1.24 --- linux/drivers/media/dvb/ttpci/budget.h 7 Jan 2006 02:27:13 -0000 *************** *** 95,100 **** --- 95,101 ---- #define BUDGET_KNC1SP 11 #define BUDGET_KNC1CP 12 #define BUDGET_KNC1TP 13 + #define BUDGET_TVSTAR 14 #define BUDGET_VIDEO_PORTA 0 #define BUDGET_VIDEO_PORTB 1 > Hi, > > the card seems to be the same card of the knc1 TvStar. I think it should > work if you try the patch i have sent the january 3rd: > http://linuxtv.org/pipermail/linux-dvb/2006-January/007295.html > and with your subid. > > regards, > > -- > R?gis Pr?v?t