Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB (7471): SkyStar2: preparing support for the rev2.8

Support is prepared, but the CX24113-driver .c-file is missing. After sorting out the NDA problems, the file will be there immediatly.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

authored by

Patrick Boettcher and committed by
Mauro Carvalho Chehab
c9dd82c2 11d3f323

+102
+2
drivers/media/dvb/b2c2/Kconfig
··· 10 10 select DVB_BCM3510 if !DVB_FE_CUSTOMISE 11 11 select DVB_LGDT330X if !DVB_FE_CUSTOMISE 12 12 select TUNER_SIMPLE if !DVB_FE_CUSTOMISE 13 + select DVB_ISL6421 if !DVB_FE_CUSTOMISE 14 + select DVB_CX24123 if !DVB_FE_CUSTOMISE 13 15 help 14 16 Support for the digital TV receiver chip made by B2C2 Inc. included in 15 17 Technisats PCI cards and USB boxes.
+48
drivers/media/dvb/b2c2/flexcop-fe-tuner.c
··· 19 19 #include "dvb-pll.h" 20 20 #include "tuner-simple.h" 21 21 22 + #include "cx24123.h" 23 + #include "cx24113.h" 24 + 25 + #include "isl6421.h" 26 + 22 27 /* lnb control */ 23 28 24 29 static int flexcop_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ··· 481 476 // .pll_set = alps_tdee4_stv0297_pll_set, 482 477 }; 483 478 479 + 480 + static struct cx24123_config skystar2_rev2_8_cx24123_config = { 481 + .demod_address = 0x55, 482 + .dont_use_pll = 1, 483 + .agc_callback = cx24113_agc_callback, 484 + }; 485 + 486 + static const struct cx24113_config skystar2_rev2_8_cx24113_config = { 487 + .i2c_addr = 0x54, 488 + .xtal_khz = 10111, 489 + }; 490 + 484 491 /* try to figure out the frontend, each card/box can have on of the following list */ 485 492 int flexcop_frontend_init(struct flexcop_device *fc) 486 493 { 487 494 struct dvb_frontend_ops *ops; 488 495 struct i2c_adapter *i2c = &fc->fc_i2c_adap[0].i2c_adap; 496 + struct i2c_adapter *i2c_tuner; 497 + 498 + /* try the sky v2.8 (cx24123, isl6421) */ 499 + fc->fe = dvb_attach(cx24123_attach, 500 + &skystar2_rev2_8_cx24123_config, i2c); 501 + if (fc->fe != NULL) { 502 + i2c_tuner = cx24123_get_tuner_i2c_adapter(fc->fe); 503 + if (i2c_tuner != NULL) { 504 + if (dvb_attach(cx24113_attach, fc->fe, 505 + &skystar2_rev2_8_cx24113_config, 506 + i2c_tuner) == NULL) 507 + err("CX24113 could NOT be attached"); 508 + else 509 + info("CX24113 successfully attached"); 510 + } 511 + 512 + fc->dev_type = FC_SKY_REV28; 513 + 514 + fc->fc_i2c_adap[2].no_base_addr = 1; 515 + if (dvb_attach(isl6421_attach, fc->fe, 516 + &fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0) == NULL) 517 + err("ISL6421 could NOT be attached"); 518 + else 519 + info("ISL6421 successfully attached"); 520 + 521 + /* TODO on i2c_adap[1] addr 0x11 (EEPROM) there seems to be an 522 + * IR-receiver (PIC16F818) - but the card has no input for 523 + * that ??? */ 524 + 525 + goto fe_found; 526 + } 489 527 490 528 /* try the sky v2.6 (stv0299/Samsung tbmu24112(sl1935)) */ 491 529 fc->fe = dvb_attach(stv0299_attach, &samsung_tbmu24112_config, i2c);
+2
drivers/media/dvb/b2c2/flexcop-misc.c
··· 52 52 "Sky2PC/SkyStar 2 DVB-S (old version)", 53 53 "Cable2PC/CableStar 2 DVB-C", 54 54 "Air2PC/AirStar 2 ATSC 3rd generation (HD5000)", 55 + "Sky2PC/SkyStar 2 DVB-S rev 2.7a/u", 56 + "Sky2PC/SkyStar 2 DVB-S rev 2.8", 55 57 }; 56 58 57 59 static const char *flexcop_bus_names[] = {
+2
drivers/media/dvb/b2c2/flexcop-reg.h
··· 25 25 FC_SKY_OLD, 26 26 FC_CABLE, 27 27 FC_AIR_ATSC3, 28 + FC_SKY_REV27, 29 + FC_SKY_REV28, 28 30 } flexcop_device_type_t; 29 31 30 32 typedef enum {
+48
drivers/media/dvb/frontends/cx24113.h
··· 1 + /* 2 + * Driver for Conexant CX24113/CX24128 Tuner (Satelite) 3 + * 4 + * Copyright (C) 2007-8 Patrick Boettcher <pb@linuxtv.org> 5 + * 6 + * This program is free software; you can redistribute it and/or modify 7 + * it under the terms of the GNU General Public License as published by 8 + * the Free Software Foundation; either version 2 of the License, or 9 + * (at your option) any later version. 10 + * 11 + * This program is distributed in the hope that it will be useful, 12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 + * 15 + * GNU General Public License for more details. 16 + * 17 + * You should have received a copy of the GNU General Public License 18 + * along with this program; if not, write to the Free Software 19 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.= 20 + */ 21 + 22 + #ifndef CX24113_H 23 + #define CX24113_H 24 + 25 + struct dvb_frontend; 26 + 27 + struct cx24113_config { 28 + u8 i2c_addr; /* 0x14 or 0x54 */ 29 + 30 + u32 xtal_khz; 31 + }; 32 + 33 + /* TODO: #if defined(CONFIG_DVB_TUNER_CX24113) || \ 34 + * (defined(CONFIG_DVB_TUNER_CX24113_MODULE) && defined(MODULE)) */ 35 + 36 + static inline struct dvb_frontend *cx24113_attach(struct dvb_frontend *fe, 37 + const struct cx24113_config *config, struct i2c_adapter *i2c) 38 + { 39 + printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 40 + return NULL; 41 + } 42 + 43 + static inline void cx24113_agc_callback(struct dvb_frontend *fe) 44 + { 45 + printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 46 + } 47 + 48 + #endif /* CX24113_H */