提交 47a9991e 编写于 作者: M Michael Krufky 提交者: Mauro Carvalho Chehab

V4L/DVB (5780): Dvb: Remove static dependencies on dvb-pll

This patch removes all static dependencies on the dvb-pll module.
All exported dvb_pll_desc's have been UNexported, and the caller
will reference the individual dvb_pll_desc by it's index in the
pll_list array.
Signed-off-by: NMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
Signed-off-by: NPatrick Boettcher <pb@linuxtv.org>
Acked-by: NOliver Endriss <o.endriss@gmx.de>
Acked-by: NManu Abraham <manu@linuxtv.org>
Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
上级 6c08d929
config DVB_B2C2_FLEXCOP config DVB_B2C2_FLEXCOP
tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters" tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
depends on DVB_CORE && I2C depends on DVB_CORE && I2C
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_STV0299 if !DVB_FE_CUSTOMISE select DVB_STV0299 if !DVB_FE_CUSTOMISE
select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE
select DVB_MT312 if !DVB_FE_CUSTOMISE select DVB_MT312 if !DVB_FE_CUSTOMISE
......
...@@ -500,13 +500,13 @@ int flexcop_frontend_init(struct flexcop_device *fc) ...@@ -500,13 +500,13 @@ int flexcop_frontend_init(struct flexcop_device *fc)
/* try the air atsc 2nd generation (nxt2002) */ /* try the air atsc 2nd generation (nxt2002) */
if ((fc->fe = dvb_attach(nxt200x_attach, &samsung_tbmv_config, &fc->i2c_adap)) != NULL) { if ((fc->fe = dvb_attach(nxt200x_attach, &samsung_tbmv_config, &fc->i2c_adap)) != NULL) {
fc->dev_type = FC_AIR_ATSC2; fc->dev_type = FC_AIR_ATSC2;
dvb_attach(dvb_pll_attach, fc->fe, 0x61, NULL, &dvb_pll_samsung_tbmv); dvb_attach(dvb_pll_attach, fc->fe, 0x61, NULL, DVB_PLL_SAMSUNG_TBMV);
info("found the nxt2002 at i2c address: 0x%02x",samsung_tbmv_config.demod_address); info("found the nxt2002 at i2c address: 0x%02x",samsung_tbmv_config.demod_address);
} else } else
/* try the air atsc 3nd generation (lgdt3303) */ /* try the air atsc 3nd generation (lgdt3303) */
if ((fc->fe = dvb_attach(lgdt330x_attach, &air2pc_atsc_hd5000_config, &fc->i2c_adap)) != NULL) { if ((fc->fe = dvb_attach(lgdt330x_attach, &air2pc_atsc_hd5000_config, &fc->i2c_adap)) != NULL) {
fc->dev_type = FC_AIR_ATSC3; fc->dev_type = FC_AIR_ATSC3;
dvb_attach(dvb_pll_attach, fc->fe, 0x61, &fc->i2c_adap, &dvb_pll_lg_tdvs_h06xf); dvb_attach(dvb_pll_attach, fc->fe, 0x61, &fc->i2c_adap, DVB_PLL_LG_TDVS_H06XF);
info("found the lgdt3303 at i2c address: 0x%02x",air2pc_atsc_hd5000_config.demod_address); info("found the lgdt3303 at i2c address: 0x%02x",air2pc_atsc_hd5000_config.demod_address);
} else } else
/* try the air atsc 1nd generation (bcm3510)/panasonic ct10s */ /* try the air atsc 1nd generation (bcm3510)/panasonic ct10s */
......
...@@ -7,7 +7,7 @@ config DVB_BT8XX ...@@ -7,7 +7,7 @@ config DVB_BT8XX
select DVB_CX24110 if !DVB_FE_CUSTOMISE select DVB_CX24110 if !DVB_FE_CUSTOMISE
select DVB_OR51211 if !DVB_FE_CUSTOMISE select DVB_OR51211 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X if !DVB_FE_CUSTOMISE select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select FW_LOADER select FW_LOADER
help help
......
...@@ -611,7 +611,7 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type) ...@@ -611,7 +611,7 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
card->fe = dvb_attach(lgdt330x_attach, &tdvs_tua6034_config, card->i2c_adapter); card->fe = dvb_attach(lgdt330x_attach, &tdvs_tua6034_config, card->i2c_adapter);
if (card->fe != NULL) { if (card->fe != NULL) {
dvb_attach(dvb_pll_attach, card->fe, 0x61, dvb_attach(dvb_pll_attach, card->fe, 0x61,
card->i2c_adapter, &dvb_pll_lg_tdvs_h06xf); card->i2c_adapter, DVB_PLL_LG_TDVS_H06XF);
dprintk ("dvb_bt8xx: lgdt330x detected\n"); dprintk ("dvb_bt8xx: lgdt330x detected\n");
} }
break; break;
......
...@@ -2,7 +2,6 @@ config DVB_USB ...@@ -2,7 +2,6 @@ config DVB_USB
tristate "Support for various USB DVB devices" tristate "Support for various USB DVB devices"
depends on DVB_CORE && USB && I2C depends on DVB_CORE && USB && I2C
select FW_LOADER select FW_LOADER
select DVB_PLL
help help
By enabling this you will be able to choose the various supported By enabling this you will be able to choose the various supported
USB1.1 and USB2.0 DVB devices. USB1.1 and USB2.0 DVB devices.
...@@ -27,13 +26,14 @@ config DVB_USB_A800 ...@@ -27,13 +26,14 @@ config DVB_USB_A800
depends on DVB_USB depends on DVB_USB
select DVB_DIB3000MC select DVB_DIB3000MC
select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
select DVB_PLL if !DVB_FE_CUSTOMISE
help help
Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver. Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver.
config DVB_USB_DIBUSB_MB config DVB_USB_DIBUSB_MB
tristate "DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list)" tristate "DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list)"
depends on DVB_USB depends on DVB_USB
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_DIB3000MB select DVB_DIB3000MB
select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
help help
...@@ -89,7 +89,7 @@ config DVB_USB_DIB0700 ...@@ -89,7 +89,7 @@ config DVB_USB_DIB0700
config DVB_USB_UMT_010 config DVB_USB_UMT_010
tristate "HanfTek UMT-010 DVB-T USB2.0 support" tristate "HanfTek UMT-010 DVB-T USB2.0 support"
depends on DVB_USB depends on DVB_USB
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_DIB3000MC select DVB_DIB3000MC
select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
help help
...@@ -98,7 +98,7 @@ config DVB_USB_UMT_010 ...@@ -98,7 +98,7 @@ config DVB_USB_UMT_010
config DVB_USB_CXUSB config DVB_USB_CXUSB
tristate "Conexant USB2.0 hybrid reference design support" tristate "Conexant USB2.0 hybrid reference design support"
depends on DVB_USB depends on DVB_USB
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_CX22702 if !DVB_FE_CUSTOMISE select DVB_CX22702 if !DVB_FE_CUSTOMISE
select DVB_LGDT330X if !DVB_FE_CUSTOMISE select DVB_LGDT330X if !DVB_FE_CUSTOMISE
select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE
...@@ -142,7 +142,7 @@ config DVB_USB_AU6610 ...@@ -142,7 +142,7 @@ config DVB_USB_AU6610
config DVB_USB_DIGITV config DVB_USB_DIGITV
tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support" tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support"
depends on DVB_USB depends on DVB_USB
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_NXT6000 if !DVB_FE_CUSTOMISE select DVB_NXT6000 if !DVB_FE_CUSTOMISE
select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE
help help
...@@ -188,6 +188,7 @@ config DVB_USB_NOVA_T_USB2 ...@@ -188,6 +188,7 @@ config DVB_USB_NOVA_T_USB2
depends on DVB_USB depends on DVB_USB
select DVB_DIB3000MC select DVB_DIB3000MC
select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
select DVB_PLL if !DVB_FE_CUSTOMISE
help help
Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver. Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver.
...@@ -216,6 +217,7 @@ config DVB_USB_OPERA1 ...@@ -216,6 +217,7 @@ config DVB_USB_OPERA1
tristate "Opera1 DVB-S USB2.0 receiver" tristate "Opera1 DVB-S USB2.0 receiver"
depends on DVB_USB depends on DVB_USB
select DVB_STV0299 if !DVB_FE_CUSTOMISE select DVB_STV0299 if !DVB_FE_CUSTOMISE
select DVB_PLL if !DVB_FE_CUSTOMISE
help help
Say Y here to support the Opera DVB-S USB2.0 receiver. Say Y here to support the Opera DVB-S USB2.0 receiver.
......
...@@ -355,34 +355,34 @@ static struct mt352_config cxusb_mt352_config = { ...@@ -355,34 +355,34 @@ static struct mt352_config cxusb_mt352_config = {
static int cxusb_fmd1216me_tuner_attach(struct dvb_usb_adapter *adap) static int cxusb_fmd1216me_tuner_attach(struct dvb_usb_adapter *adap)
{ {
dvb_attach(dvb_pll_attach, adap->fe, 0x61, &adap->dev->i2c_adap, dvb_attach(dvb_pll_attach, adap->fe, 0x61, &adap->dev->i2c_adap,
&dvb_pll_fmd1216me); DVB_PLL_FMD1216ME);
return 0; return 0;
} }
static int cxusb_dee1601_tuner_attach(struct dvb_usb_adapter *adap) static int cxusb_dee1601_tuner_attach(struct dvb_usb_adapter *adap)
{ {
dvb_attach(dvb_pll_attach, adap->fe, 0x61, dvb_attach(dvb_pll_attach, adap->fe, 0x61,
NULL, &dvb_pll_thomson_dtt7579); NULL, DVB_PLL_THOMSON_DTT7579);
return 0; return 0;
} }
static int cxusb_lgz201_tuner_attach(struct dvb_usb_adapter *adap) static int cxusb_lgz201_tuner_attach(struct dvb_usb_adapter *adap)
{ {
dvb_attach(dvb_pll_attach, adap->fe, 0x61, NULL, &dvb_pll_lg_z201); dvb_attach(dvb_pll_attach, adap->fe, 0x61, NULL, DVB_PLL_LG_Z201);
return 0; return 0;
} }
static int cxusb_dtt7579_tuner_attach(struct dvb_usb_adapter *adap) static int cxusb_dtt7579_tuner_attach(struct dvb_usb_adapter *adap)
{ {
dvb_attach(dvb_pll_attach, adap->fe, 0x60, dvb_attach(dvb_pll_attach, adap->fe, 0x60,
NULL, &dvb_pll_thomson_dtt7579); NULL, DVB_PLL_THOMSON_DTT7579);
return 0; return 0;
} }
static int cxusb_lgh064f_tuner_attach(struct dvb_usb_adapter *adap) static int cxusb_lgh064f_tuner_attach(struct dvb_usb_adapter *adap)
{ {
dvb_attach(dvb_pll_attach, adap->fe, 0x61, &adap->dev->i2c_adap, dvb_attach(dvb_pll_attach, adap->fe, 0x61, &adap->dev->i2c_adap,
&dvb_pll_lg_tdvs_h06xf); DVB_PLL_LG_TDVS_H06XF);
return 0; return 0;
} }
......
...@@ -295,7 +295,7 @@ int dibusb_dib3000mc_tuner_attach(struct dvb_usb_adapter *adap) ...@@ -295,7 +295,7 @@ int dibusb_dib3000mc_tuner_attach(struct dvb_usb_adapter *adap)
tun_i2c = dib3000mc_get_tuner_i2c_master(adap->fe, 1); tun_i2c = dib3000mc_get_tuner_i2c_master(adap->fe, 1);
if (dvb_attach(mt2060_attach, adap->fe, tun_i2c, &stk3000p_mt2060_config, if1) == NULL) { if (dvb_attach(mt2060_attach, adap->fe, tun_i2c, &stk3000p_mt2060_config, if1) == NULL) {
/* not found - use panasonic pll parameters */ /* not found - use panasonic pll parameters */
if (dvb_attach(dvb_pll_attach, adap->fe, 0x60, tun_i2c, &dvb_pll_env57h1xd5) == NULL) if (dvb_attach(dvb_pll_attach, adap->fe, 0x60, tun_i2c, DVB_PLL_ENV57H1XD5) == NULL)
return -ENOMEM; return -ENOMEM;
} else { } else {
st->mt2060_present = 1; st->mt2060_present = 1;
......
...@@ -45,7 +45,7 @@ static int dibusb_thomson_tuner_attach(struct dvb_usb_adapter *adap) ...@@ -45,7 +45,7 @@ static int dibusb_thomson_tuner_attach(struct dvb_usb_adapter *adap)
st->tuner_addr = 0x61; st->tuner_addr = 0x61;
dvb_attach(dvb_pll_attach, adap->fe, 0x61, &adap->dev->i2c_adap, dvb_attach(dvb_pll_attach, adap->fe, 0x61, &adap->dev->i2c_adap,
&dvb_pll_tua6010xs); DVB_PLL_TUA6010XS);
return 0; return 0;
} }
...@@ -56,7 +56,7 @@ static int dibusb_panasonic_tuner_attach(struct dvb_usb_adapter *adap) ...@@ -56,7 +56,7 @@ static int dibusb_panasonic_tuner_attach(struct dvb_usb_adapter *adap)
st->tuner_addr = 0x60; st->tuner_addr = 0x60;
dvb_attach(dvb_pll_attach, adap->fe, 0x60, &adap->dev->i2c_adap, dvb_attach(dvb_pll_attach, adap->fe, 0x60, &adap->dev->i2c_adap,
&dvb_pll_tda665x); DVB_PLL_TDA665X);
return 0; return 0;
} }
......
...@@ -148,7 +148,7 @@ static int digitv_tuner_attach(struct dvb_usb_adapter *adap) ...@@ -148,7 +148,7 @@ static int digitv_tuner_attach(struct dvb_usb_adapter *adap)
{ {
struct digitv_state *st = adap->dev->priv; struct digitv_state *st = adap->dev->priv;
if (!dvb_attach(dvb_pll_attach, adap->fe, 0x60, NULL, &dvb_pll_tded4)) if (!dvb_attach(dvb_pll_attach, adap->fe, 0x60, NULL, DVB_PLL_TDED4))
return -ENODEV; return -ENODEV;
if (st->is_nxt6000) if (st->is_nxt6000)
......
...@@ -263,7 +263,7 @@ static int opera1_tuner_attach(struct dvb_usb_adapter *adap) ...@@ -263,7 +263,7 @@ static int opera1_tuner_attach(struct dvb_usb_adapter *adap)
{ {
dvb_attach( dvb_attach(
dvb_pll_attach, adap->fe, 0xc0>>1, dvb_pll_attach, adap->fe, 0xc0>>1,
&adap->dev->i2c_adap, &dvb_pll_opera1 &adap->dev->i2c_adap, DVB_PLL_OPERA1
); );
return 0; return 0;
} }
......
...@@ -65,7 +65,7 @@ static int umt_mt352_frontend_attach(struct dvb_usb_adapter *adap) ...@@ -65,7 +65,7 @@ static int umt_mt352_frontend_attach(struct dvb_usb_adapter *adap)
static int umt_tuner_attach (struct dvb_usb_adapter *adap) static int umt_tuner_attach (struct dvb_usb_adapter *adap)
{ {
dvb_attach(dvb_pll_attach, adap->fe, 0x61, NULL, &dvb_pll_tua6034); dvb_attach(dvb_pll_attach, adap->fe, 0x61, NULL, DVB_PLL_TUA6034);
return 0; return 0;
} }
......
...@@ -24,6 +24,23 @@ ...@@ -24,6 +24,23 @@
#include "dvb-pll.h" #include "dvb-pll.h"
struct dvb_pll_desc {
char *name;
u32 min;
u32 max;
u32 iffreq;
void (*set)(u8 *buf, const struct dvb_frontend_parameters *params);
u8 *initdata;
u8 *sleepdata;
int count;
struct {
u32 limit;
u32 stepsize;
u8 config;
u8 cb;
} entries[12];
};
/* ----------------------------------------------------------- */ /* ----------------------------------------------------------- */
/* descriptions */ /* descriptions */
...@@ -44,7 +61,7 @@ static u8 tua603x_agc103[] = { 2, 0x80|0x40|0x18|0x06|0x01, 0x00|0x50 }; ...@@ -44,7 +61,7 @@ static u8 tua603x_agc103[] = { 2, 0x80|0x40|0x18|0x06|0x01, 0x00|0x50 };
0x20 = AGC Take over point = 112 dBuV */ 0x20 = AGC Take over point = 112 dBuV */
static u8 tua603x_agc112[] = { 2, 0x80|0x40|0x18|0x04|0x01, 0x80|0x20 }; static u8 tua603x_agc112[] = { 2, 0x80|0x40|0x18|0x04|0x01, 0x80|0x20 };
struct dvb_pll_desc dvb_pll_thomson_dtt7579 = { static struct dvb_pll_desc dvb_pll_thomson_dtt7579 = {
.name = "Thomson dtt7579", .name = "Thomson dtt7579",
.min = 177000000, .min = 177000000,
.max = 858000000, .max = 858000000,
...@@ -58,9 +75,8 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7579 = { ...@@ -58,9 +75,8 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7579 = {
{ 999999999, 166667, 0xf4, 0x08 }, { 999999999, 166667, 0xf4, 0x08 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_thomson_dtt7579);
struct dvb_pll_desc dvb_pll_thomson_dtt7610 = { static struct dvb_pll_desc dvb_pll_thomson_dtt7610 = {
.name = "Thomson dtt7610", .name = "Thomson dtt7610",
.min = 44000000, .min = 44000000,
.max = 958000000, .max = 958000000,
...@@ -72,7 +88,6 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7610 = { ...@@ -72,7 +88,6 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7610 = {
{ 999999999, 62500, 0x8e, 0x3c }, { 999999999, 62500, 0x8e, 0x3c },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_thomson_dtt7610);
static void thomson_dtt759x_bw(u8 *buf, static void thomson_dtt759x_bw(u8 *buf,
const struct dvb_frontend_parameters *params) const struct dvb_frontend_parameters *params)
...@@ -81,7 +96,7 @@ static void thomson_dtt759x_bw(u8 *buf, ...@@ -81,7 +96,7 @@ static void thomson_dtt759x_bw(u8 *buf,
buf[3] |= 0x10; buf[3] |= 0x10;
} }
struct dvb_pll_desc dvb_pll_thomson_dtt759x = { static struct dvb_pll_desc dvb_pll_thomson_dtt759x = {
.name = "Thomson dtt759x", .name = "Thomson dtt759x",
.min = 177000000, .min = 177000000,
.max = 896000000, .max = 896000000,
...@@ -97,9 +112,8 @@ struct dvb_pll_desc dvb_pll_thomson_dtt759x = { ...@@ -97,9 +112,8 @@ struct dvb_pll_desc dvb_pll_thomson_dtt759x = {
{ 999999999, 166667, 0xfc, 0x08 }, { 999999999, 166667, 0xfc, 0x08 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_thomson_dtt759x);
struct dvb_pll_desc dvb_pll_lg_z201 = { static struct dvb_pll_desc dvb_pll_lg_z201 = {
.name = "LG z201", .name = "LG z201",
.min = 174000000, .min = 174000000,
.max = 862000000, .max = 862000000,
...@@ -114,9 +128,8 @@ struct dvb_pll_desc dvb_pll_lg_z201 = { ...@@ -114,9 +128,8 @@ struct dvb_pll_desc dvb_pll_lg_z201 = {
{ 999999999, 166667, 0xfc, 0x04 }, { 999999999, 166667, 0xfc, 0x04 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_lg_z201);
struct dvb_pll_desc dvb_pll_microtune_4042 = { static struct dvb_pll_desc dvb_pll_microtune_4042 = {
.name = "Microtune 4042 FI5", .name = "Microtune 4042 FI5",
.min = 57000000, .min = 57000000,
.max = 858000000, .max = 858000000,
...@@ -128,9 +141,8 @@ struct dvb_pll_desc dvb_pll_microtune_4042 = { ...@@ -128,9 +141,8 @@ struct dvb_pll_desc dvb_pll_microtune_4042 = {
{ 999999999, 62500, 0x8e, 0x31 }, { 999999999, 62500, 0x8e, 0x31 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_microtune_4042);
struct dvb_pll_desc dvb_pll_thomson_dtt761x = { static struct dvb_pll_desc dvb_pll_thomson_dtt761x = {
/* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */ /* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
.name = "Thomson dtt761x", .name = "Thomson dtt761x",
.min = 57000000, .min = 57000000,
...@@ -144,9 +156,8 @@ struct dvb_pll_desc dvb_pll_thomson_dtt761x = { ...@@ -144,9 +156,8 @@ struct dvb_pll_desc dvb_pll_thomson_dtt761x = {
{ 999999999, 62500, 0x8e, 0x3c }, { 999999999, 62500, 0x8e, 0x3c },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_thomson_dtt761x);
struct dvb_pll_desc dvb_pll_unknown_1 = { static struct dvb_pll_desc dvb_pll_unknown_1 = {
.name = "unknown 1", /* used by dntv live dvb-t */ .name = "unknown 1", /* used by dntv live dvb-t */
.min = 174000000, .min = 174000000,
.max = 862000000, .max = 862000000,
...@@ -164,12 +175,11 @@ struct dvb_pll_desc dvb_pll_unknown_1 = { ...@@ -164,12 +175,11 @@ struct dvb_pll_desc dvb_pll_unknown_1 = {
{ 999999999, 166667, 0xfc, 0x08 }, { 999999999, 166667, 0xfc, 0x08 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_unknown_1);
/* Infineon TUA6010XS /* Infineon TUA6010XS
* used in Thomson Cable Tuner * used in Thomson Cable Tuner
*/ */
struct dvb_pll_desc dvb_pll_tua6010xs = { static struct dvb_pll_desc dvb_pll_tua6010xs = {
.name = "Infineon TUA6010XS", .name = "Infineon TUA6010XS",
.min = 44250000, .min = 44250000,
.max = 858000000, .max = 858000000,
...@@ -181,10 +191,9 @@ struct dvb_pll_desc dvb_pll_tua6010xs = { ...@@ -181,10 +191,9 @@ struct dvb_pll_desc dvb_pll_tua6010xs = {
{ 999999999, 62500, 0x8e, 0x85 }, { 999999999, 62500, 0x8e, 0x85 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_tua6010xs);
/* Panasonic env57h1xd5 (some Philips PLL ?) */ /* Panasonic env57h1xd5 (some Philips PLL ?) */
struct dvb_pll_desc dvb_pll_env57h1xd5 = { static struct dvb_pll_desc dvb_pll_env57h1xd5 = {
.name = "Panasonic ENV57H1XD5", .name = "Panasonic ENV57H1XD5",
.min = 44250000, .min = 44250000,
.max = 858000000, .max = 858000000,
...@@ -197,7 +206,6 @@ struct dvb_pll_desc dvb_pll_env57h1xd5 = { ...@@ -197,7 +206,6 @@ struct dvb_pll_desc dvb_pll_env57h1xd5 = {
{ 999999999, 166667, 0xc2, 0xa4 }, { 999999999, 166667, 0xc2, 0xa4 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_env57h1xd5);
/* Philips TDA6650/TDA6651 /* Philips TDA6650/TDA6651
* used in Panasonic ENV77H11D5 * used in Panasonic ENV77H11D5
...@@ -208,7 +216,7 @@ static void tda665x_bw(u8 *buf, const struct dvb_frontend_parameters *params) ...@@ -208,7 +216,7 @@ static void tda665x_bw(u8 *buf, const struct dvb_frontend_parameters *params)
buf[3] |= 0x08; buf[3] |= 0x08;
} }
struct dvb_pll_desc dvb_pll_tda665x = { static struct dvb_pll_desc dvb_pll_tda665x = {
.name = "Philips TDA6650/TDA6651", .name = "Philips TDA6650/TDA6651",
.min = 44250000, .min = 44250000,
.max = 858000000, .max = 858000000,
...@@ -231,7 +239,6 @@ struct dvb_pll_desc dvb_pll_tda665x = { ...@@ -231,7 +239,6 @@ struct dvb_pll_desc dvb_pll_tda665x = {
{ 861000000, 166667, 0xca, 0xe4 /* 111 0 0 1 00 */ }, { 861000000, 166667, 0xca, 0xe4 /* 111 0 0 1 00 */ },
} }
}; };
EXPORT_SYMBOL(dvb_pll_tda665x);
/* Infineon TUA6034 /* Infineon TUA6034
* used in LG TDTP E102P * used in LG TDTP E102P
...@@ -242,7 +249,7 @@ static void tua6034_bw(u8 *buf, const struct dvb_frontend_parameters *params) ...@@ -242,7 +249,7 @@ static void tua6034_bw(u8 *buf, const struct dvb_frontend_parameters *params)
buf[3] |= 0x08; buf[3] |= 0x08;
} }
struct dvb_pll_desc dvb_pll_tua6034 = { static struct dvb_pll_desc dvb_pll_tua6034 = {
.name = "Infineon TUA6034", .name = "Infineon TUA6034",
.min = 44250000, .min = 44250000,
.max = 858000000, .max = 858000000,
...@@ -255,12 +262,11 @@ struct dvb_pll_desc dvb_pll_tua6034 = { ...@@ -255,12 +262,11 @@ struct dvb_pll_desc dvb_pll_tua6034 = {
{ 999999999, 62500, 0xce, 0x04 }, { 999999999, 62500, 0xce, 0x04 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_tua6034);
/* Infineon TUA6034 /* Infineon TUA6034
* used in LG TDVS-H061F, LG TDVS-H062F and LG TDVS-H064F * used in LG TDVS-H061F, LG TDVS-H062F and LG TDVS-H064F
*/ */
struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf = { static struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf = {
.name = "LG TDVS-H06xF", .name = "LG TDVS-H06xF",
.min = 54000000, .min = 54000000,
.max = 863000000, .max = 863000000,
...@@ -273,7 +279,6 @@ struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf = { ...@@ -273,7 +279,6 @@ struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf = {
{ 999999999, 62500, 0xce, 0x04 }, { 999999999, 62500, 0xce, 0x04 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_lg_tdvs_h06xf);
/* Philips FMD1216ME /* Philips FMD1216ME
* used in Medion Hybrid PCMCIA card and USB Box * used in Medion Hybrid PCMCIA card and USB Box
...@@ -285,7 +290,7 @@ static void fmd1216me_bw(u8 *buf, const struct dvb_frontend_parameters *params) ...@@ -285,7 +290,7 @@ static void fmd1216me_bw(u8 *buf, const struct dvb_frontend_parameters *params)
buf[3] |= 0x08; buf[3] |= 0x08;
} }
struct dvb_pll_desc dvb_pll_fmd1216me = { static struct dvb_pll_desc dvb_pll_fmd1216me = {
.name = "Philips FMD1216ME", .name = "Philips FMD1216ME",
.min = 50870000, .min = 50870000,
.max = 858000000, .max = 858000000,
...@@ -304,7 +309,6 @@ struct dvb_pll_desc dvb_pll_fmd1216me = { ...@@ -304,7 +309,6 @@ struct dvb_pll_desc dvb_pll_fmd1216me = {
{ 999999999, 166667, 0xfc, 0x44 }, { 999999999, 166667, 0xfc, 0x44 },
} }
}; };
EXPORT_SYMBOL(dvb_pll_fmd1216me);
/* ALPS TDED4 /* ALPS TDED4
* used in Nebula-Cards and USB boxes * used in Nebula-Cards and USB boxes
...@@ -315,7 +319,7 @@ static void tded4_bw(u8 *buf, const struct dvb_frontend_parameters *params) ...@@ -315,7 +319,7 @@ static void tded4_bw(u8 *buf, const struct dvb_frontend_parameters *params)
buf[3] |= 0x04; buf[3] |= 0x04;
} }
struct dvb_pll_desc dvb_pll_tded4 = { static struct dvb_pll_desc dvb_pll_tded4 = {
.name = "ALPS TDED4", .name = "ALPS TDED4",
.min = 47000000, .min = 47000000,
.max = 863000000, .max = 863000000,
...@@ -329,12 +333,11 @@ struct dvb_pll_desc dvb_pll_tded4 = { ...@@ -329,12 +333,11 @@ struct dvb_pll_desc dvb_pll_tded4 = {
{ 999999999, 166667, 0x85, 0x88 }, { 999999999, 166667, 0x85, 0x88 },
} }
}; };
EXPORT_SYMBOL(dvb_pll_tded4);
/* ALPS TDHU2 /* ALPS TDHU2
* used in AverTVHD MCE A180 * used in AverTVHD MCE A180
*/ */
struct dvb_pll_desc dvb_pll_tdhu2 = { static struct dvb_pll_desc dvb_pll_tdhu2 = {
.name = "ALPS TDHU2", .name = "ALPS TDHU2",
.min = 54000000, .min = 54000000,
.max = 864000000, .max = 864000000,
...@@ -347,7 +350,6 @@ struct dvb_pll_desc dvb_pll_tdhu2 = { ...@@ -347,7 +350,6 @@ struct dvb_pll_desc dvb_pll_tdhu2 = {
{ 999999999, 62500, 0x85, 0x88 }, { 999999999, 62500, 0x85, 0x88 },
} }
}; };
EXPORT_SYMBOL(dvb_pll_tdhu2);
/* Philips TUV1236D /* Philips TUV1236D
* used in ATI HDTV Wonder * used in ATI HDTV Wonder
...@@ -365,7 +367,7 @@ static void tuv1236d_rf(u8 *buf, const struct dvb_frontend_parameters *params) ...@@ -365,7 +367,7 @@ static void tuv1236d_rf(u8 *buf, const struct dvb_frontend_parameters *params)
} }
} }
struct dvb_pll_desc dvb_pll_tuv1236d = { static struct dvb_pll_desc dvb_pll_tuv1236d = {
.name = "Philips TUV1236D", .name = "Philips TUV1236D",
.min = 54000000, .min = 54000000,
.max = 864000000, .max = 864000000,
...@@ -378,12 +380,11 @@ struct dvb_pll_desc dvb_pll_tuv1236d = { ...@@ -378,12 +380,11 @@ struct dvb_pll_desc dvb_pll_tuv1236d = {
{ 999999999, 62500, 0xc6, 0x44 }, { 999999999, 62500, 0xc6, 0x44 },
}, },
}; };
EXPORT_SYMBOL(dvb_pll_tuv1236d);
/* Samsung TBMV30111IN / TBMV30712IN1 /* Samsung TBMV30111IN / TBMV30712IN1
* used in Air2PC ATSC - 2nd generation (nxt2002) * used in Air2PC ATSC - 2nd generation (nxt2002)
*/ */
struct dvb_pll_desc dvb_pll_samsung_tbmv = { static struct dvb_pll_desc dvb_pll_samsung_tbmv = {
.name = "Samsung TBMV30111IN / TBMV30712IN1", .name = "Samsung TBMV30111IN / TBMV30712IN1",
.min = 54000000, .min = 54000000,
.max = 860000000, .max = 860000000,
...@@ -398,12 +399,11 @@ struct dvb_pll_desc dvb_pll_samsung_tbmv = { ...@@ -398,12 +399,11 @@ struct dvb_pll_desc dvb_pll_samsung_tbmv = {
{ 999999999, 166667, 0xfc, 0x02 }, { 999999999, 166667, 0xfc, 0x02 },
} }
}; };
EXPORT_SYMBOL(dvb_pll_samsung_tbmv);
/* /*
* Philips SD1878 Tuner. * Philips SD1878 Tuner.
*/ */
struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = { static struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = {
.name = "Philips SD1878", .name = "Philips SD1878",
.min = 950000, .min = 950000,
.max = 2150000, .max = 2150000,
...@@ -416,7 +416,6 @@ struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = { ...@@ -416,7 +416,6 @@ struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = {
{ 2150000, 500, 0xc4, 0xc0}, { 2150000, 500, 0xc4, 0xc0},
}, },
}; };
EXPORT_SYMBOL(dvb_pll_philips_sd1878_tda8261);
/* /*
* Philips TD1316 Tuner. * Philips TD1316 Tuner.
...@@ -440,7 +439,7 @@ static void td1316_bw(u8 *buf, const struct dvb_frontend_parameters *params) ...@@ -440,7 +439,7 @@ static void td1316_bw(u8 *buf, const struct dvb_frontend_parameters *params)
buf[3] |= 1 << 3; buf[3] |= 1 << 3;
} }
struct dvb_pll_desc dvb_pll_philips_td1316 = { static struct dvb_pll_desc dvb_pll_philips_td1316 = {
.name = "Philips TD1316", .name = "Philips TD1316",
.min = 87000000, .min = 87000000,
.max = 895000000, .max = 895000000,
...@@ -459,10 +458,9 @@ struct dvb_pll_desc dvb_pll_philips_td1316 = { ...@@ -459,10 +458,9 @@ struct dvb_pll_desc dvb_pll_philips_td1316 = {
{ 858834000, 166667, 0xca, 0xe0}, { 858834000, 166667, 0xca, 0xe0},
}, },
}; };
EXPORT_SYMBOL(dvb_pll_philips_td1316);
/* FE6600 used on DViCO Hybrid */ /* FE6600 used on DViCO Hybrid */
struct dvb_pll_desc dvb_pll_thomson_fe6600 = { static struct dvb_pll_desc dvb_pll_thomson_fe6600 = {
.name = "Thomson FE6600", .name = "Thomson FE6600",
.min = 44250000, .min = 44250000,
.max = 858000000, .max = 858000000,
...@@ -475,14 +473,14 @@ struct dvb_pll_desc dvb_pll_thomson_fe6600 = { ...@@ -475,14 +473,14 @@ struct dvb_pll_desc dvb_pll_thomson_fe6600 = {
{ 999999999, 166667, 0xf4, 0x18 }, { 999999999, 166667, 0xf4, 0x18 },
} }
}; };
EXPORT_SYMBOL(dvb_pll_thomson_fe6600);
static void opera1_bw(u8 *buf, const struct dvb_frontend_parameters *params) static void opera1_bw(u8 *buf, const struct dvb_frontend_parameters *params)
{ {
if (params->u.ofdm.bandwidth == BANDWIDTH_8_MHZ) if (params->u.ofdm.bandwidth == BANDWIDTH_8_MHZ)
buf[2] |= 0x08; buf[2] |= 0x08;
} }
struct dvb_pll_desc dvb_pll_opera1 = { static struct dvb_pll_desc dvb_pll_opera1 = {
.name = "Opera Tuner", .name = "Opera Tuner",
.min = 900000, .min = 900000,
.max = 2250000, .max = 2250000,
...@@ -500,7 +498,35 @@ struct dvb_pll_desc dvb_pll_opera1 = { ...@@ -500,7 +498,35 @@ struct dvb_pll_desc dvb_pll_opera1 = {
{ 2250000, 500, 0xe5, 0xc4 }, { 2250000, 500, 0xe5, 0xc4 },
} }
}; };
EXPORT_SYMBOL(dvb_pll_opera1);
/* ----------------------------------------------------------- */
static struct dvb_pll_desc *pll_list[] = {
[DVB_PLL_UNDEFINED] = NULL,
[DVB_PLL_THOMSON_DTT7579] = &dvb_pll_thomson_dtt7579,
[DVB_PLL_THOMSON_DTT759X] = &dvb_pll_thomson_dtt759x,
[DVB_PLL_THOMSON_DTT7610] = &dvb_pll_thomson_dtt7610,
[DVB_PLL_LG_Z201] = &dvb_pll_lg_z201,
[DVB_PLL_MICROTUNE_4042] = &dvb_pll_microtune_4042,
[DVB_PLL_THOMSON_DTT761X] = &dvb_pll_thomson_dtt761x,
[DVB_PLL_UNKNOWN_1] = &dvb_pll_unknown_1,
[DVB_PLL_TUA6010XS] = &dvb_pll_tua6010xs,
[DVB_PLL_ENV57H1XD5] = &dvb_pll_env57h1xd5,
[DVB_PLL_TUA6034] = &dvb_pll_tua6034,
[DVB_PLL_LG_TDVS_H06XF] = &dvb_pll_lg_tdvs_h06xf,
[DVB_PLL_TDA665X] = &dvb_pll_tda665x,
[DVB_PLL_FMD1216ME] = &dvb_pll_fmd1216me,
[DVB_PLL_TDED4] = &dvb_pll_tded4,
[DVB_PLL_TUV1236D] = &dvb_pll_tuv1236d,
[DVB_PLL_TDHU2] = &dvb_pll_tdhu2,
[DVB_PLL_SAMSUNG_TBMV] = &dvb_pll_samsung_tbmv,
[DVB_PLL_PHILIPS_SD1878_TDA8261] = &dvb_pll_philips_sd1878_tda8261,
[DVB_PLL_PHILIPS_TD1316] = &dvb_pll_philips_td1316,
[DVB_PLL_THOMSON_FE6600] = &dvb_pll_thomson_fe6600,
[DVB_PLL_OPERA1] = &dvb_pll_opera1,
};
/* ----------------------------------------------------------- */
struct dvb_pll_priv { struct dvb_pll_priv {
/* i2c details */ /* i2c details */
...@@ -702,13 +728,18 @@ static struct dvb_tuner_ops dvb_pll_tuner_ops = { ...@@ -702,13 +728,18 @@ static struct dvb_tuner_ops dvb_pll_tuner_ops = {
struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,
struct i2c_adapter *i2c, struct i2c_adapter *i2c,
struct dvb_pll_desc *desc) unsigned int pll_desc_id)
{ {
u8 b1 [] = { 0 }; u8 b1 [] = { 0 };
struct i2c_msg msg = { .addr = pll_addr, .flags = I2C_M_RD, struct i2c_msg msg = { .addr = pll_addr, .flags = I2C_M_RD,
.buf = b1, .len = 1 }; .buf = b1, .len = 1 };
struct dvb_pll_priv *priv = NULL; struct dvb_pll_priv *priv = NULL;
int ret; int ret;
struct dvb_pll_desc *desc;
BUG_ON(pll_desc_id < 1 || pll_desc_id >= ARRAY_SIZE(pll_list));
desc = pll_list[pll_desc_id];
if (i2c != NULL) { if (i2c != NULL) {
if (fe->ops.i2c_gate_ctrl) if (fe->ops.i2c_gate_ctrl)
......
...@@ -8,47 +8,28 @@ ...@@ -8,47 +8,28 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include "dvb_frontend.h" #include "dvb_frontend.h"
struct dvb_pll_desc { #define DVB_PLL_UNDEFINED 0
char *name; #define DVB_PLL_THOMSON_DTT7579 1
u32 min; #define DVB_PLL_THOMSON_DTT759X 2
u32 max; #define DVB_PLL_THOMSON_DTT7610 3
u32 iffreq; #define DVB_PLL_LG_Z201 4
void (*set)(u8 *buf, const struct dvb_frontend_parameters *params); #define DVB_PLL_MICROTUNE_4042 5
u8 *initdata; #define DVB_PLL_THOMSON_DTT761X 6
u8 *sleepdata; #define DVB_PLL_UNKNOWN_1 7
int count; #define DVB_PLL_TUA6010XS 8
struct { #define DVB_PLL_ENV57H1XD5 9
u32 limit; #define DVB_PLL_TUA6034 10
u32 stepsize; #define DVB_PLL_LG_TDVS_H06XF 11
u8 config; #define DVB_PLL_TDA665X 12
u8 cb; #define DVB_PLL_FMD1216ME 13
} entries[12]; #define DVB_PLL_TDED4 14
}; #define DVB_PLL_TUV1236D 15
#define DVB_PLL_TDHU2 16
extern struct dvb_pll_desc dvb_pll_thomson_dtt7579; #define DVB_PLL_SAMSUNG_TBMV 17
extern struct dvb_pll_desc dvb_pll_thomson_dtt759x; #define DVB_PLL_PHILIPS_SD1878_TDA8261 18
extern struct dvb_pll_desc dvb_pll_thomson_dtt7610; #define DVB_PLL_PHILIPS_TD1316 19
extern struct dvb_pll_desc dvb_pll_lg_z201; #define DVB_PLL_THOMSON_FE6600 20
extern struct dvb_pll_desc dvb_pll_microtune_4042; #define DVB_PLL_OPERA1 21
extern struct dvb_pll_desc dvb_pll_thomson_dtt761x;
extern struct dvb_pll_desc dvb_pll_unknown_1;
extern struct dvb_pll_desc dvb_pll_tua6010xs;
extern struct dvb_pll_desc dvb_pll_env57h1xd5;
extern struct dvb_pll_desc dvb_pll_tua6034;
extern struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf;
extern struct dvb_pll_desc dvb_pll_tda665x;
extern struct dvb_pll_desc dvb_pll_fmd1216me;
extern struct dvb_pll_desc dvb_pll_tded4;
extern struct dvb_pll_desc dvb_pll_tuv1236d;
extern struct dvb_pll_desc dvb_pll_tdhu2;
extern struct dvb_pll_desc dvb_pll_samsung_tbmv;
extern struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261;
extern struct dvb_pll_desc dvb_pll_philips_td1316;
extern struct dvb_pll_desc dvb_pll_thomson_fe6600;
extern struct dvb_pll_desc dvb_pll_opera1;
/** /**
* Attach a dvb-pll to the supplied frontend structure. * Attach a dvb-pll to the supplied frontend structure.
...@@ -56,19 +37,19 @@ extern struct dvb_pll_desc dvb_pll_opera1; ...@@ -56,19 +37,19 @@ extern struct dvb_pll_desc dvb_pll_opera1;
* @param fe Frontend to attach to. * @param fe Frontend to attach to.
* @param pll_addr i2c address of the PLL (if used). * @param pll_addr i2c address of the PLL (if used).
* @param i2c i2c adapter to use (set to NULL if not used). * @param i2c i2c adapter to use (set to NULL if not used).
* @param desc dvb_pll_desc to use. * @param pll_desc_id dvb_pll_desc to use.
* @return Frontend pointer on success, NULL on failure * @return Frontend pointer on success, NULL on failure
*/ */
#if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE)) #if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE))
extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
int pll_addr, int pll_addr,
struct i2c_adapter *i2c, struct i2c_adapter *i2c,
struct dvb_pll_desc *desc); unsigned int pll_desc_id);
#else #else
static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
int pll_addr, int pll_addr,
struct i2c_adapter *i2c, struct i2c_adapter *i2c,
struct dvb_pll_desc *desc) unsigned int pll_desc_id)
{ {
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
return NULL; return NULL;
......
...@@ -108,7 +108,7 @@ config DVB_BUDGET_AV ...@@ -108,7 +108,7 @@ config DVB_BUDGET_AV
tristate "Budget cards with analog video inputs" tristate "Budget cards with analog video inputs"
depends on DVB_CORE && PCI && I2C && VIDEO_V4L1 depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
select VIDEO_SAA7146_VV select VIDEO_SAA7146_VV
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_STV0299 if !DVB_FE_CUSTOMISE select DVB_STV0299 if !DVB_FE_CUSTOMISE
select DVB_TDA1004X if !DVB_FE_CUSTOMISE select DVB_TDA1004X if !DVB_FE_CUSTOMISE
select DVB_TDA10021 if !DVB_FE_CUSTOMISE select DVB_TDA10021 if !DVB_FE_CUSTOMISE
......
...@@ -966,7 +966,7 @@ static void frontend_init(struct budget_av *budget_av) ...@@ -966,7 +966,7 @@ static void frontend_init(struct budget_av *budget_av)
if (fe) { if (fe) {
dvb_attach(dvb_pll_attach, fe, 0x60, dvb_attach(dvb_pll_attach, fe, 0x60,
&budget_av->budget.i2c_adap, &budget_av->budget.i2c_adap,
&dvb_pll_philips_sd1878_tda8261); DVB_PLL_PHILIPS_SD1878_TDA8261);
} }
break; break;
......
...@@ -47,7 +47,7 @@ config VIDEO_CX88_DVB ...@@ -47,7 +47,7 @@ config VIDEO_CX88_DVB
tristate "DVB/ATSC Support for cx2388x based TV cards" tristate "DVB/ATSC Support for cx2388x based TV cards"
depends on VIDEO_CX88 && DVB_CORE depends on VIDEO_CX88 && DVB_CORE
select VIDEO_BUF_DVB select VIDEO_BUF_DVB
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE
select DVB_ZL10353 if !DVB_FE_CUSTOMISE select DVB_ZL10353 if !DVB_FE_CUSTOMISE
select DVB_OR51132 if !DVB_FE_CUSTOMISE select DVB_OR51132 if !DVB_FE_CUSTOMISE
......
...@@ -386,7 +386,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -386,7 +386,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_thomson_dtt759x); DVB_PLL_THOMSON_DTT759X);
} }
break; break;
case CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1: case CX88_BOARD_TERRATEC_CINERGY_1400_DVB_T1:
...@@ -399,7 +399,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -399,7 +399,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x60, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x60,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_thomson_dtt7579); DVB_PLL_THOMSON_DTT7579);
} }
break; break;
case CX88_BOARD_WINFAST_DTV2000H: case CX88_BOARD_WINFAST_DTV2000H:
...@@ -412,7 +412,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -412,7 +412,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dvb_pll_fmd1216me); &dev->core->i2c_adap, DVB_PLL_FMD1216ME);
} }
break; break;
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS: case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS:
...@@ -421,7 +421,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -421,7 +421,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x60, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x60,
NULL, &dvb_pll_thomson_dtt7579); NULL, DVB_PLL_THOMSON_DTT7579);
break; break;
} }
/* ZL10353 replaces MT352 on later cards */ /* ZL10353 replaces MT352 on later cards */
...@@ -430,7 +430,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -430,7 +430,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x60, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x60,
NULL, &dvb_pll_thomson_dtt7579); NULL, DVB_PLL_THOMSON_DTT7579);
} }
break; break;
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL: case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL:
...@@ -441,7 +441,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -441,7 +441,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_thomson_dtt7579); NULL, DVB_PLL_THOMSON_DTT7579);
break; break;
} }
/* ZL10353 replaces MT352 on later cards */ /* ZL10353 replaces MT352 on later cards */
...@@ -450,7 +450,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -450,7 +450,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_thomson_dtt7579); NULL, DVB_PLL_THOMSON_DTT7579);
} }
break; break;
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1:
...@@ -459,7 +459,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -459,7 +459,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_lg_z201); NULL, DVB_PLL_LG_Z201);
} }
break; break;
case CX88_BOARD_KWORLD_DVB_T: case CX88_BOARD_KWORLD_DVB_T:
...@@ -470,7 +470,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -470,7 +470,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_unknown_1); NULL, DVB_PLL_UNKNOWN_1);
} }
break; break;
case CX88_BOARD_DNTV_LIVE_DVB_T_PRO: case CX88_BOARD_DNTV_LIVE_DVB_T_PRO:
...@@ -479,7 +479,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -479,7 +479,7 @@ static int dvb_register(struct cx8802_dev *dev)
&((struct vp3054_i2c_state *)dev->card_priv)->adap); &((struct vp3054_i2c_state *)dev->card_priv)->adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dvb_pll_fmd1216me); &dev->core->i2c_adap, DVB_PLL_FMD1216ME);
} }
#else #else
printk("%s: built without vp3054 support\n", dev->core->name); printk("%s: built without vp3054 support\n", dev->core->name);
...@@ -492,7 +492,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -492,7 +492,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_thomson_fe6600); DVB_PLL_THOMSON_FE6600);
} }
break; break;
case CX88_BOARD_PCHDTV_HD3000: case CX88_BOARD_PCHDTV_HD3000:
...@@ -501,7 +501,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -501,7 +501,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_thomson_dtt761x); DVB_PLL_THOMSON_DTT761X);
} }
break; break;
case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q: case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q:
...@@ -523,7 +523,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -523,7 +523,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_microtune_4042); DVB_PLL_MICROTUNE_4042);
} }
} }
break; break;
...@@ -543,7 +543,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -543,7 +543,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_thomson_dtt761x); DVB_PLL_THOMSON_DTT761X);
} }
} }
break; break;
...@@ -563,7 +563,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -563,7 +563,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_lg_tdvs_h06xf); DVB_PLL_LG_TDVS_H06XF);
} }
} }
break; break;
...@@ -583,7 +583,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -583,7 +583,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, &dev->core->i2c_adap,
&dvb_pll_lg_tdvs_h06xf); DVB_PLL_LG_TDVS_H06XF);
} }
} }
break; break;
...@@ -593,7 +593,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -593,7 +593,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
if (dev->dvb.frontend != NULL) { if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_tuv1236d); NULL, DVB_PLL_TUV1236D);
} }
break; break;
case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1: case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1:
......
...@@ -40,7 +40,7 @@ config VIDEO_SAA7134_DVB ...@@ -40,7 +40,7 @@ config VIDEO_SAA7134_DVB
depends on VIDEO_SAA7134 && DVB_CORE depends on VIDEO_SAA7134 && DVB_CORE
select VIDEO_BUF_DVB select VIDEO_BUF_DVB
select FW_LOADER select FW_LOADER
select DVB_PLL select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_MT352 if !DVB_FE_CUSTOMISE select DVB_MT352 if !DVB_FE_CUSTOMISE
select DVB_TDA1004X if !DVB_FE_CUSTOMISE select DVB_TDA1004X if !DVB_FE_CUSTOMISE
select DVB_NXT200X if !DVB_FE_CUSTOMISE select DVB_NXT200X if !DVB_FE_CUSTOMISE
......
...@@ -855,7 +855,7 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -855,7 +855,7 @@ static int dvb_init(struct saa7134_dev *dev)
&dev->i2c_adap); &dev->i2c_adap);
if (dev->dvb.frontend) { if (dev->dvb.frontend) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_philips_td1316); NULL, DVB_PLL_PHILIPS_TD1316);
} }
break; break;
case SAA7134_BOARD_MD7134: case SAA7134_BOARD_MD7134:
...@@ -864,7 +864,7 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -864,7 +864,7 @@ static int dvb_init(struct saa7134_dev *dev)
&dev->i2c_adap); &dev->i2c_adap);
if (dev->dvb.frontend) { if (dev->dvb.frontend) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, medion_cardbus.tuner_address, dvb_attach(dvb_pll_attach, dev->dvb.frontend, medion_cardbus.tuner_address,
&dev->i2c_adap, &dvb_pll_fmd1216me); &dev->i2c_adap, DVB_PLL_FMD1216ME);
} }
break; break;
case SAA7134_BOARD_PHILIPS_TOUGH: case SAA7134_BOARD_PHILIPS_TOUGH:
...@@ -962,7 +962,7 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -962,7 +962,7 @@ static int dvb_init(struct saa7134_dev *dev)
&dev->i2c_adap); &dev->i2c_adap);
if (dev->dvb.frontend) { if (dev->dvb.frontend) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_tdhu2); NULL, DVB_PLL_TDHU2);
} }
break; break;
case SAA7134_BOARD_KWORLD_ATSC110: case SAA7134_BOARD_KWORLD_ATSC110:
...@@ -970,7 +970,7 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -970,7 +970,7 @@ static int dvb_init(struct saa7134_dev *dev)
&dev->i2c_adap); &dev->i2c_adap);
if (dev->dvb.frontend) { if (dev->dvb.frontend) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
NULL, &dvb_pll_tuv1236d); NULL, DVB_PLL_TUV1236D);
} }
break; break;
case SAA7134_BOARD_FLYDVBS_LR300: case SAA7134_BOARD_FLYDVBS_LR300:
...@@ -995,7 +995,7 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -995,7 +995,7 @@ static int dvb_init(struct saa7134_dev *dev)
dev->dvb.frontend->ops.sleep = philips_europa_demod_sleep; dev->dvb.frontend->ops.sleep = philips_europa_demod_sleep;
dvb_attach(dvb_pll_attach, dev->dvb.frontend, medion_cardbus.tuner_address, dvb_attach(dvb_pll_attach, dev->dvb.frontend, medion_cardbus.tuner_address,
&dev->i2c_adap, &dvb_pll_fmd1216me); &dev->i2c_adap, DVB_PLL_FMD1216ME);
} }
break; break;
case SAA7134_BOARD_VIDEOMATE_DVBT_200A: case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册