Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55f51efd authored by Johannes Stezenbach's avatar Johannes Stezenbach Committed by Linus Torvalds
Browse files

[PATCH] dvb: flexcop: add BCM3510 ATSC frontend support for Air2PC card



Added support for the Broadcom BCM3510 ATSC (8VSB/16VSB & ITU J83 AnnexB FEC
QAM64/256) demodulator used in the first generation of Air2PC ATSC
PCI-cards/USB-boxes made by B2C2.

Signed-off-by: default avatarPatrick Boettcher <pb@linuxtv.org>
Signed-off-by: default avatarJohannes Stezenbach <js@linuxtv.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent cc89c229
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ config DVB_B2C2_FLEXCOP
	select DVB_MT312
	select DVB_NXT2002
	select DVB_STV0297
	select DVB_BCM3510
	help
	  Support for the digital TV receiver chip made by B2C2 Inc. included in
	  Technisats PCI cards and USB boxes.
+18 −8
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
#include "stv0299.h"
#include "mt352.h"
#include "nxt2002.h"
#include "bcm3510.h"
#include "stv0297.h"
#include "mt312.h"

@@ -285,13 +286,12 @@ static int samsung_tdtc9251dh0_pll_set(struct dvb_frontend* fe, struct dvb_front
}

static struct mt352_config samsung_tdtc9251dh0_config = {

	.demod_address = 0x0f,
	.demod_init    = samsung_tdtc9251dh0_demod_init,
	.pll_set       = samsung_tdtc9251dh0_pll_set,
};

static int nxt2002_request_firmware(struct dvb_frontend* fe, const struct firmware **fw, char* name)
static int flexcop_fe_request_firmware(struct dvb_frontend* fe, const struct firmware **fw, char* name)
{
	struct flexcop_device *fc = fe->dvb->priv;
	return request_firmware(fw, name, fc->dev);
@@ -299,7 +299,12 @@ static int nxt2002_request_firmware(struct dvb_frontend* fe, const struct firmwa

static struct nxt2002_config samsung_tbmv_config = {
	.demod_address    = 0x0a,
	.request_firmware = nxt2002_request_firmware,
	.request_firmware = flexcop_fe_request_firmware,
};

static struct bcm3510_config air2pc_atsc_first_gen_config = {
	.demod_address    = 0x0f,
	.request_firmware = flexcop_fe_request_firmware,
};

static int skystar23_samsung_tbdu18132_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params)
@@ -354,11 +359,16 @@ int flexcop_frontend_init(struct flexcop_device *fc)
		fc->dev_type          = FC_AIR_DVB;
		info("found the mt352 at i2c address: 0x%02x",samsung_tdtc9251dh0_config.demod_address);
	} else
	/* try the air atsc (nxt2002) */
	/* try the air atsc 2nd generation (nxt2002) */
	if ((fc->fe = nxt2002_attach(&samsung_tbmv_config, &fc->i2c_adap)) != NULL) {
		fc->dev_type          = FC_AIR_ATSC;
		fc->dev_type          = FC_AIR_ATSC2;
		info("found the nxt2002 at i2c address: 0x%02x",samsung_tbmv_config.demod_address);
	} else
	/* try the air atsc 1nd generation (bcm3510)/panasonic ct10s */
	if ((fc->fe = bcm3510_attach(&air2pc_atsc_first_gen_config, &fc->i2c_adap)) != NULL) {
		fc->dev_type          = FC_AIR_ATSC1;
		info("found the bcm3510 at i2c address: 0x%02x",air2pc_atsc_first_gen_config.demod_address);
	} else
	/* try the cable dvb (stv0297) */
	if ((fc->fe = stv0297_attach(&alps_tdee4_stv0297_config, &fc->i2c_adap, 0xf8)) != NULL) {
		fc->dev_type                        = FC_CABLE;
+6 −5
Original line number Diff line number Diff line
@@ -45,11 +45,12 @@ const char *flexcop_revision_names[] = {

const char *flexcop_device_names[] = {
	"Unkown device",
	"AirStar 2 DVB-T",
	"AirStar 2 ATSC",
	"SkyStar 2 DVB-S",
	"SkyStar 2 DVB-S (old version)",
	"CableStar 2 DVB-C",
	"Air2PC/AirStar 2 DVB-T",
	"Air2PC/AirStar 2 ATSC 1st generation",
	"Air2PC/AirStar 2 ATSC 2nd generation",
	"Sky2PC/SkyStar 2 DVB-S",
	"Sky2PC/SkyStar 2 DVB-S (old version)",
	"Cable2PC/CableStar 2 DVB-C",
};

const char *flexcop_bus_names[] = {
+2 −1
Original line number Diff line number Diff line
@@ -21,7 +21,8 @@ extern const char *flexcop_revision_names[];
typedef enum {
	FC_UNK = 0,
	FC_AIR_DVB,
	FC_AIR_ATSC,
	FC_AIR_ATSC1,
	FC_AIR_ATSC2,
	FC_SKY,
	FC_SKY_OLD,
	FC_CABLE,
+8 −0
Original line number Diff line number Diff line
@@ -173,4 +173,12 @@ config DVB_OR51132
	  An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
	  to support this frontend.

config DVB_BCM3510
	tristate "Broadcom BCM3510"
	depends on DVB_CORE
	select FW_LOADER
	help
	  An ATSC 8VSB/16VSB and QAM64/256 tuner module. Say Y when you want to
	  support this frontend.

endmenu
Loading