Commit 6ddcc919 authored by Michael Krufky's avatar Michael Krufky Committed by Linus Torvalds

[PATCH] dvb: rename lgdt3302 frontend module to lgdt330x

Rename lgdt3302 to lgdt330x, to make way for the addition of lgdt3303
support in future revisions.

I am changing the name of this module now so that hopefully the name will
be changed before the release of 2.6.13 ...  It wouldn't make sense to
release 2.6.13 with the name lgdt3302 in it, which will only be renamed to
lgdt330x in later versions.
Signed-off-by: default avatarMichael Krufky <mkrufky@m1k.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 9d2599d9
...@@ -187,8 +187,8 @@ config DVB_BCM3510 ...@@ -187,8 +187,8 @@ config DVB_BCM3510
An ATSC 8VSB/16VSB and QAM64/256 tuner module. Say Y when you want to An ATSC 8VSB/16VSB and QAM64/256 tuner module. Say Y when you want to
support this frontend. support this frontend.
config DVB_LGDT3302 config DVB_LGDT330X
tristate "LGDT3302 based (DViCO FusionHDTV3 Gold)" tristate "LGDT3302 or LGDT3303 based (DViCO FusionHDTV Gold)"
depends on DVB_CORE depends on DVB_CORE
help help
An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
......
...@@ -30,4 +30,4 @@ obj-$(CONFIG_DVB_OR51211) += or51211.o ...@@ -30,4 +30,4 @@ obj-$(CONFIG_DVB_OR51211) += or51211.o
obj-$(CONFIG_DVB_OR51132) += or51132.o obj-$(CONFIG_DVB_OR51132) += or51132.o
obj-$(CONFIG_DVB_BCM3510) += bcm3510.o obj-$(CONFIG_DVB_BCM3510) += bcm3510.o
obj-$(CONFIG_DVB_S5H1420) += s5h1420.o obj-$(CONFIG_DVB_S5H1420) += s5h1420.o
obj-$(CONFIG_DVB_LGDT3302) += lgdt3302.o obj-$(CONFIG_DVB_LGDT330X) += lgdt330x.o
/* /*
* Support for LGDT3302 (DViCO FustionHDTV 3 Gold) - VSB/QAM * Support for LGDT3302 & LGDT3303 (DViCO FusionHDTV Gold) - VSB/QAM
* *
* Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net> * Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net>
* *
...@@ -25,10 +25,11 @@ ...@@ -25,10 +25,11 @@
/* /*
* NOTES ABOUT THIS DRIVER * NOTES ABOUT THIS DRIVER
* *
* This driver supports DViCO FusionHDTV 3 Gold under Linux. * This driver supports DViCO FusionHDTV Gold under Linux.
* *
* TODO: * TODO:
* BER and signal strength always return 0. * BER and signal strength always return 0.
* Include support for LGDT3303
* *
*/ */
...@@ -41,24 +42,24 @@ ...@@ -41,24 +42,24 @@
#include "dvb_frontend.h" #include "dvb_frontend.h"
#include "dvb-pll.h" #include "dvb-pll.h"
#include "lgdt3302_priv.h" #include "lgdt330x_priv.h"
#include "lgdt3302.h" #include "lgdt330x.h"
static int debug = 0; static int debug = 0;
module_param(debug, int, 0644); module_param(debug, int, 0644);
MODULE_PARM_DESC(debug,"Turn on/off lgdt3302 frontend debugging (default:off)."); MODULE_PARM_DESC(debug,"Turn on/off lgdt330x frontend debugging (default:off).");
#define dprintk(args...) \ #define dprintk(args...) \
do { \ do { \
if (debug) printk(KERN_DEBUG "lgdt3302: " args); \ if (debug) printk(KERN_DEBUG "lgdt330x: " args); \
} while (0) } while (0)
struct lgdt3302_state struct lgdt330x_state
{ {
struct i2c_adapter* i2c; struct i2c_adapter* i2c;
struct dvb_frontend_ops ops; struct dvb_frontend_ops ops;
/* Configuration settings */ /* Configuration settings */
const struct lgdt3302_config* config; const struct lgdt330x_config* config;
struct dvb_frontend frontend; struct dvb_frontend frontend;
...@@ -69,7 +70,7 @@ struct lgdt3302_state ...@@ -69,7 +70,7 @@ struct lgdt3302_state
u32 current_frequency; u32 current_frequency;
}; };
static int i2c_writebytes (struct lgdt3302_state* state, static int i2c_writebytes (struct lgdt330x_state* state,
u8 addr, /* demod_address or pll_address */ u8 addr, /* demod_address or pll_address */
u8 *buf, /* data bytes to send */ u8 *buf, /* data bytes to send */
int len /* number of bytes to send */ ) int len /* number of bytes to send */ )
...@@ -83,7 +84,7 @@ static int i2c_writebytes (struct lgdt3302_state* state, ...@@ -83,7 +84,7 @@ static int i2c_writebytes (struct lgdt3302_state* state,
for (i=1; i<len; i++) { for (i=1; i<len; i++) {
tmp[1] = buf[i]; tmp[1] = buf[i];
if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) { if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) {
printk(KERN_WARNING "lgdt3302: %s error (addr %02x <- %02x, err == %i)\n", __FUNCTION__, addr, buf[0], err); printk(KERN_WARNING "lgdt330x: %s error (addr %02x <- %02x, err == %i)\n", __FUNCTION__, addr, buf[0], err);
if (err < 0) if (err < 0)
return err; return err;
else else
...@@ -95,7 +96,7 @@ static int i2c_writebytes (struct lgdt3302_state* state, ...@@ -95,7 +96,7 @@ static int i2c_writebytes (struct lgdt3302_state* state,
} }
#if 0 #if 0
static int i2c_readbytes (struct lgdt3302_state* state, static int i2c_readbytes (struct lgdt330x_state* state,
u8 addr, /* demod_address or pll_address */ u8 addr, /* demod_address or pll_address */
u8 *buf, /* holds data bytes read */ u8 *buf, /* holds data bytes read */
int len /* number of bytes to read */ ) int len /* number of bytes to read */ )
...@@ -105,7 +106,7 @@ static int i2c_readbytes (struct lgdt3302_state* state, ...@@ -105,7 +106,7 @@ static int i2c_readbytes (struct lgdt3302_state* state,
int err; int err;
if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) { if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) {
printk(KERN_WARNING "lgdt3302: %s error (addr %02x, err == %i)\n", __FUNCTION__, addr, err); printk(KERN_WARNING "lgdt330x: %s error (addr %02x, err == %i)\n", __FUNCTION__, addr, err);
return -EREMOTEIO; return -EREMOTEIO;
} }
return 0; return 0;
...@@ -117,7 +118,7 @@ static int i2c_readbytes (struct lgdt3302_state* state, ...@@ -117,7 +118,7 @@ static int i2c_readbytes (struct lgdt3302_state* state,
* then reads the data returned for (len) bytes. * then reads the data returned for (len) bytes.
*/ */
static u8 i2c_selectreadbytes (struct lgdt3302_state* state, static u8 i2c_selectreadbytes (struct lgdt330x_state* state,
enum I2C_REG reg, u8* buf, int len) enum I2C_REG reg, u8* buf, int len)
{ {
u8 wr [] = { reg }; u8 wr [] = { reg };
...@@ -130,7 +131,7 @@ static u8 i2c_selectreadbytes (struct lgdt3302_state* state, ...@@ -130,7 +131,7 @@ static u8 i2c_selectreadbytes (struct lgdt3302_state* state,
int ret; int ret;
ret = i2c_transfer(state->i2c, msg, 2); ret = i2c_transfer(state->i2c, msg, 2);
if (ret != 2) { if (ret != 2) {
printk(KERN_WARNING "lgdt3302: %s: addr 0x%02x select 0x%02x error (ret == %i)\n", __FUNCTION__, state->config->demod_address, reg, ret); printk(KERN_WARNING "lgdt330x: %s: addr 0x%02x select 0x%02x error (ret == %i)\n", __FUNCTION__, state->config->demod_address, reg, ret);
} else { } else {
ret = 0; ret = 0;
} }
...@@ -138,7 +139,7 @@ static u8 i2c_selectreadbytes (struct lgdt3302_state* state, ...@@ -138,7 +139,7 @@ static u8 i2c_selectreadbytes (struct lgdt3302_state* state,
} }
/* Software reset */ /* Software reset */
int lgdt3302_SwReset(struct lgdt3302_state* state) int lgdt330x_SwReset(struct lgdt330x_state* state)
{ {
u8 ret; u8 ret;
u8 reset[] = { u8 reset[] = {
...@@ -164,7 +165,7 @@ int lgdt3302_SwReset(struct lgdt3302_state* state) ...@@ -164,7 +165,7 @@ int lgdt3302_SwReset(struct lgdt3302_state* state)
return ret; return ret;
} }
static int lgdt3302_init(struct dvb_frontend* fe) static int lgdt330x_init(struct dvb_frontend* fe)
{ {
/* Hardware reset is done using gpio[0] of cx23880x chip. /* Hardware reset is done using gpio[0] of cx23880x chip.
* I'd like to do it here, but don't know how to find chip address. * I'd like to do it here, but don't know how to find chip address.
...@@ -173,18 +174,18 @@ static int lgdt3302_init(struct dvb_frontend* fe) ...@@ -173,18 +174,18 @@ static int lgdt3302_init(struct dvb_frontend* fe)
* the caller of this function needs to do it. */ * the caller of this function needs to do it. */
dprintk("%s entered\n", __FUNCTION__); dprintk("%s entered\n", __FUNCTION__);
return lgdt3302_SwReset((struct lgdt3302_state*) fe->demodulator_priv); return lgdt330x_SwReset((struct lgdt330x_state*) fe->demodulator_priv);
} }
static int lgdt3302_read_ber(struct dvb_frontend* fe, u32* ber) static int lgdt330x_read_ber(struct dvb_frontend* fe, u32* ber)
{ {
*ber = 0; /* Dummy out for now */ *ber = 0; /* Dummy out for now */
return 0; return 0;
} }
static int lgdt3302_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) static int lgdt330x_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
{ {
struct lgdt3302_state* state = (struct lgdt3302_state*) fe->demodulator_priv; struct lgdt330x_state* state = (struct lgdt330x_state*) fe->demodulator_priv;
u8 buf[2]; u8 buf[2];
i2c_selectreadbytes(state, PACKET_ERR_COUNTER1, buf, sizeof(buf)); i2c_selectreadbytes(state, PACKET_ERR_COUNTER1, buf, sizeof(buf));
...@@ -193,11 +194,11 @@ static int lgdt3302_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) ...@@ -193,11 +194,11 @@ static int lgdt3302_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
return 0; return 0;
} }
static int lgdt3302_set_parameters(struct dvb_frontend* fe, static int lgdt330x_set_parameters(struct dvb_frontend* fe,
struct dvb_frontend_parameters *param) struct dvb_frontend_parameters *param)
{ {
struct lgdt3302_state* state = struct lgdt330x_state* state =
(struct lgdt3302_state*) fe->demodulator_priv; (struct lgdt330x_state*) fe->demodulator_priv;
/* Use 50MHz parameter values from spec sheet since xtal is 50 */ /* Use 50MHz parameter values from spec sheet since xtal is 50 */
static u8 top_ctrl_cfg[] = { TOP_CONTROL, 0x03 }; static u8 top_ctrl_cfg[] = { TOP_CONTROL, 0x03 };
...@@ -244,7 +245,7 @@ static int lgdt3302_set_parameters(struct dvb_frontend* fe, ...@@ -244,7 +245,7 @@ static int lgdt3302_set_parameters(struct dvb_frontend* fe,
state->config->pll_rf_set(fe, 0); state->config->pll_rf_set(fe, 0);
break; break;
default: default:
printk(KERN_WARNING "lgdt3302: %s: Modulation type(%d) UNSUPPORTED\n", __FUNCTION__, param->u.vsb.modulation); printk(KERN_WARNING "lgdt330x: %s: Modulation type(%d) UNSUPPORTED\n", __FUNCTION__, param->u.vsb.modulation);
return -1; return -1;
} }
/* Initializations common to all modes */ /* Initializations common to all modes */
...@@ -291,19 +292,17 @@ static int lgdt3302_set_parameters(struct dvb_frontend* fe, ...@@ -291,19 +292,17 @@ static int lgdt3302_set_parameters(struct dvb_frontend* fe,
/* Change only if we are actually changing the channel */ /* Change only if we are actually changing the channel */
if (state->current_frequency != param->frequency) { if (state->current_frequency != param->frequency) {
u8 buf[5]; u8 buf[5];
struct i2c_msg msg = { .flags = 0, .buf = &buf[1], .len = 4 };
int err;
/* This must be done before the initialized msg is declared */
state->config->pll_set(fe, param, buf); state->config->pll_set(fe, param, buf);
msg.addr = buf[0];
struct i2c_msg msg =
{ .addr = buf[0], .flags = 0, .buf = &buf[1], .len = 4 };
int err;
dprintk("%s: tuner at 0x%02x bytes: 0x%02x 0x%02x " dprintk("%s: tuner at 0x%02x bytes: 0x%02x 0x%02x "
"0x%02x 0x%02x\n", __FUNCTION__, "0x%02x 0x%02x\n", __FUNCTION__,
buf[0],buf[1],buf[2],buf[3],buf[4]); buf[0],buf[1],buf[2],buf[3],buf[4]);
if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) { if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) {
printk(KERN_WARNING "lgdt3302: %s error (addr %02x <- %02x, err = %i)\n", __FUNCTION__, buf[0], buf[1], err); printk(KERN_WARNING "lgdt330x: %s error (addr %02x <- %02x, err = %i)\n", __FUNCTION__, buf[0], buf[1], err);
if (err < 0) if (err < 0)
return err; return err;
else else
...@@ -317,21 +316,21 @@ static int lgdt3302_set_parameters(struct dvb_frontend* fe, ...@@ -317,21 +316,21 @@ static int lgdt3302_set_parameters(struct dvb_frontend* fe,
/* Update current frequency */ /* Update current frequency */
state->current_frequency = param->frequency; state->current_frequency = param->frequency;
} }
lgdt3302_SwReset(state); lgdt330x_SwReset(state);
return 0; return 0;
} }
static int lgdt3302_get_frontend(struct dvb_frontend* fe, static int lgdt330x_get_frontend(struct dvb_frontend* fe,
struct dvb_frontend_parameters* param) struct dvb_frontend_parameters* param)
{ {
struct lgdt3302_state *state = fe->demodulator_priv; struct lgdt330x_state *state = fe->demodulator_priv;
param->frequency = state->current_frequency; param->frequency = state->current_frequency;
return 0; return 0;
} }
static int lgdt3302_read_status(struct dvb_frontend* fe, fe_status_t* status) static int lgdt330x_read_status(struct dvb_frontend* fe, fe_status_t* status)
{ {
struct lgdt3302_state* state = (struct lgdt3302_state*) fe->demodulator_priv; struct lgdt330x_state* state = (struct lgdt330x_state*) fe->demodulator_priv;
u8 buf[3]; u8 buf[3];
*status = 0; /* Reset status result */ *status = 0; /* Reset status result */
...@@ -391,19 +390,19 @@ static int lgdt3302_read_status(struct dvb_frontend* fe, fe_status_t* status) ...@@ -391,19 +390,19 @@ static int lgdt3302_read_status(struct dvb_frontend* fe, fe_status_t* status)
*status |= FE_HAS_CARRIER; *status |= FE_HAS_CARRIER;
break; break;
default: default:
printk("KERN_WARNING lgdt3302: %s: Modulation set to unsupported value\n", __FUNCTION__); printk("KERN_WARNING lgdt330x: %s: Modulation set to unsupported value\n", __FUNCTION__);
} }
return 0; return 0;
} }
static int lgdt3302_read_signal_strength(struct dvb_frontend* fe, u16* strength) static int lgdt330x_read_signal_strength(struct dvb_frontend* fe, u16* strength)
{ {
/* not directly available. */ /* not directly available. */
return 0; return 0;
} }
static int lgdt3302_read_snr(struct dvb_frontend* fe, u16* snr) static int lgdt330x_read_snr(struct dvb_frontend* fe, u16* snr)
{ {
#ifdef SNR_IN_DB #ifdef SNR_IN_DB
/* /*
...@@ -458,7 +457,7 @@ static int lgdt3302_read_snr(struct dvb_frontend* fe, u16* snr) ...@@ -458,7 +457,7 @@ static int lgdt3302_read_snr(struct dvb_frontend* fe, u16* snr)
static u8 buf[5];/* read data buffer */ static u8 buf[5];/* read data buffer */
static u32 noise; /* noise value */ static u32 noise; /* noise value */
static u32 snr_db; /* index into SNR_EQ[] */ static u32 snr_db; /* index into SNR_EQ[] */
struct lgdt3302_state* state = (struct lgdt3302_state*) fe->demodulator_priv; struct lgdt330x_state* state = (struct lgdt330x_state*) fe->demodulator_priv;
/* read both equalizer and pase tracker noise data */ /* read both equalizer and pase tracker noise data */
i2c_selectreadbytes(state, EQPH_ERR0, buf, sizeof(buf)); i2c_selectreadbytes(state, EQPH_ERR0, buf, sizeof(buf));
...@@ -494,7 +493,7 @@ static int lgdt3302_read_snr(struct dvb_frontend* fe, u16* snr) ...@@ -494,7 +493,7 @@ static int lgdt3302_read_snr(struct dvb_frontend* fe, u16* snr)
/* Return the raw noise value */ /* Return the raw noise value */
static u8 buf[5];/* read data buffer */ static u8 buf[5];/* read data buffer */
static u32 noise; /* noise value */ static u32 noise; /* noise value */
struct lgdt3302_state* state = (struct lgdt3302_state*) fe->demodulator_priv; struct lgdt330x_state* state = (struct lgdt330x_state*) fe->demodulator_priv;
/* read both equalizer and pase tracker noise data */ /* read both equalizer and pase tracker noise data */
i2c_selectreadbytes(state, EQPH_ERR0, buf, sizeof(buf)); i2c_selectreadbytes(state, EQPH_ERR0, buf, sizeof(buf));
...@@ -517,7 +516,7 @@ static int lgdt3302_read_snr(struct dvb_frontend* fe, u16* snr) ...@@ -517,7 +516,7 @@ static int lgdt3302_read_snr(struct dvb_frontend* fe, u16* snr)
return 0; return 0;
} }
static int lgdt3302_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fe_tune_settings) static int lgdt330x_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fe_tune_settings)
{ {
/* I have no idea about this - it may not be needed */ /* I have no idea about this - it may not be needed */
fe_tune_settings->min_delay_ms = 500; fe_tune_settings->min_delay_ms = 500;
...@@ -526,22 +525,22 @@ static int lgdt3302_get_tune_settings(struct dvb_frontend* fe, struct dvb_fronte ...@@ -526,22 +525,22 @@ static int lgdt3302_get_tune_settings(struct dvb_frontend* fe, struct dvb_fronte
return 0; return 0;
} }
static void lgdt3302_release(struct dvb_frontend* fe) static void lgdt330x_release(struct dvb_frontend* fe)
{ {
struct lgdt3302_state* state = (struct lgdt3302_state*) fe->demodulator_priv; struct lgdt330x_state* state = (struct lgdt330x_state*) fe->demodulator_priv;
kfree(state); kfree(state);
} }
static struct dvb_frontend_ops lgdt3302_ops; static struct dvb_frontend_ops lgdt330x_ops;
struct dvb_frontend* lgdt3302_attach(const struct lgdt3302_config* config, struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config,
struct i2c_adapter* i2c) struct i2c_adapter* i2c)
{ {
struct lgdt3302_state* state = NULL; struct lgdt330x_state* state = NULL;
u8 buf[1]; u8 buf[1];
/* Allocate memory for the internal state */ /* Allocate memory for the internal state */
state = (struct lgdt3302_state*) kmalloc(sizeof(struct lgdt3302_state), GFP_KERNEL); state = (struct lgdt330x_state*) kmalloc(sizeof(struct lgdt330x_state), GFP_KERNEL);
if (state == NULL) if (state == NULL)
goto error; goto error;
memset(state,0,sizeof(*state)); memset(state,0,sizeof(*state));
...@@ -549,7 +548,7 @@ struct dvb_frontend* lgdt3302_attach(const struct lgdt3302_config* config, ...@@ -549,7 +548,7 @@ struct dvb_frontend* lgdt3302_attach(const struct lgdt3302_config* config,
/* Setup the state */ /* Setup the state */
state->config = config; state->config = config;
state->i2c = i2c; state->i2c = i2c;
memcpy(&state->ops, &lgdt3302_ops, sizeof(struct dvb_frontend_ops)); memcpy(&state->ops, &lgdt330x_ops, sizeof(struct dvb_frontend_ops));
/* Verify communication with demod chip */ /* Verify communication with demod chip */
if (i2c_selectreadbytes(state, 2, buf, 1)) if (i2c_selectreadbytes(state, 2, buf, 1))
goto error; goto error;
...@@ -569,9 +568,9 @@ struct dvb_frontend* lgdt3302_attach(const struct lgdt3302_config* config, ...@@ -569,9 +568,9 @@ struct dvb_frontend* lgdt3302_attach(const struct lgdt3302_config* config,
return NULL; return NULL;
} }
static struct dvb_frontend_ops lgdt3302_ops = { static struct dvb_frontend_ops lgdt330x_ops = {
.info = { .info = {
.name= "LG Electronics LGDT3302 VSB/QAM Frontend", .name= "LG Electronics lgdt330x VSB/QAM Frontend",
.type = FE_ATSC, .type = FE_ATSC,
.frequency_min= 54000000, .frequency_min= 54000000,
.frequency_max= 858000000, .frequency_max= 858000000,
...@@ -581,23 +580,23 @@ static struct dvb_frontend_ops lgdt3302_ops = { ...@@ -581,23 +580,23 @@ static struct dvb_frontend_ops lgdt3302_ops = {
.symbol_rate_max = 10762000, .symbol_rate_max = 10762000,
.caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB .caps = FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_8VSB
}, },
.init = lgdt3302_init, .init = lgdt330x_init,
.set_frontend = lgdt3302_set_parameters, .set_frontend = lgdt330x_set_parameters,
.get_frontend = lgdt3302_get_frontend, .get_frontend = lgdt330x_get_frontend,
.get_tune_settings = lgdt3302_get_tune_settings, .get_tune_settings = lgdt330x_get_tune_settings,
.read_status = lgdt3302_read_status, .read_status = lgdt330x_read_status,
.read_ber = lgdt3302_read_ber, .read_ber = lgdt330x_read_ber,
.read_signal_strength = lgdt3302_read_signal_strength, .read_signal_strength = lgdt330x_read_signal_strength,
.read_snr = lgdt3302_read_snr, .read_snr = lgdt330x_read_snr,
.read_ucblocks = lgdt3302_read_ucblocks, .read_ucblocks = lgdt330x_read_ucblocks,
.release = lgdt3302_release, .release = lgdt330x_release,
}; };
MODULE_DESCRIPTION("LGDT3302 [DViCO FusionHDTV 3 Gold] (ATSC 8VSB & ITU-T J.83 AnnexB 64/256 QAM) Demodulator Driver"); MODULE_DESCRIPTION("lgdt330x [DViCO FusionHDTV 3 Gold] (ATSC 8VSB & ITU-T J.83 AnnexB 64/256 QAM) Demodulator Driver");
MODULE_AUTHOR("Wilson Michaels"); MODULE_AUTHOR("Wilson Michaels");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
EXPORT_SYMBOL(lgdt3302_attach); EXPORT_SYMBOL(lgdt330x_attach);
/* /*
* Local variables: * Local variables:
......
/* /*
* Support for LGDT3302 (DViCO FustionHDTV 3 Gold) - VSB/QAM * Support for LGDT3302 & LGDT3303 (DViCO FustionHDTV Gold) - VSB/QAM
* *
* Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net> * Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net>
* *
...@@ -19,12 +19,12 @@ ...@@ -19,12 +19,12 @@
* *
*/ */
#ifndef LGDT3302_H #ifndef LGDT330X_H
#define LGDT3302_H #define LGDT330X_H
#include <linux/dvb/frontend.h> #include <linux/dvb/frontend.h>
struct lgdt3302_config struct lgdt330x_config
{ {
/* The demodulator's i2c address */ /* The demodulator's i2c address */
u8 demod_address; u8 demod_address;
...@@ -37,10 +37,10 @@ struct lgdt3302_config ...@@ -37,10 +37,10 @@ struct lgdt3302_config
int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
}; };
extern struct dvb_frontend* lgdt3302_attach(const struct lgdt3302_config* config, extern struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config,
struct i2c_adapter* i2c); struct i2c_adapter* i2c);
#endif /* LGDT3302_H */ #endif /* LGDT330X_H */
/* /*
* Local variables: * Local variables:
......
/* /*
* $Id: lgdt3302_priv.h,v 1.2 2005/06/28 23:50:48 mkrufky Exp $ * Support for LGDT3302 & LGDT3303 (DViCO FustionHDTV Gold) - VSB/QAM
*
* Support for LGDT3302 (DViCO FustionHDTV 3 Gold) - VSB/QAM
* *
* Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net> * Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net>
* *
...@@ -21,8 +19,8 @@ ...@@ -21,8 +19,8 @@
* *
*/ */
#ifndef _LGDT3302_PRIV_ #ifndef _LGDT330X_PRIV_
#define _LGDT3302_PRIV_ #define _LGDT330X_PRIV_
/* i2c control register addresses */ /* i2c control register addresses */
enum I2C_REG { enum I2C_REG {
...@@ -63,7 +61,7 @@ enum I2C_REG { ...@@ -63,7 +61,7 @@ enum I2C_REG {
PACKET_ERR_COUNTER2= 0x6b, PACKET_ERR_COUNTER2= 0x6b,
}; };
#endif /* _LGDT3302_PRIV_ */ #endif /* _LGDT330X_PRIV_ */
/* /*
* Local variables: * Local variables:
......
...@@ -331,7 +331,7 @@ config VIDEO_CX88_DVB ...@@ -331,7 +331,7 @@ config VIDEO_CX88_DVB
select DVB_MT352 select DVB_MT352
select DVB_OR51132 select DVB_OR51132
select DVB_CX22702 select DVB_CX22702
select DVB_LGDT3302 select DVB_LGDT330X
---help--- ---help---
This adds support for DVB/ATSC cards based on the This adds support for DVB/ATSC cards based on the
Connexant 2388x chip. Connexant 2388x chip.
......
...@@ -15,8 +15,8 @@ endif ...@@ -15,8 +15,8 @@ endif
ifneq ($(CONFIG_DVB_OR51132),n) ifneq ($(CONFIG_DVB_OR51132),n)
EXTRA_CFLAGS += -DHAVE_OR51132=1 EXTRA_CFLAGS += -DHAVE_OR51132=1
endif endif
ifneq ($(CONFIG_DVB_LGDT3302),n) ifneq ($(CONFIG_DVB_LGDT330X),n)
EXTRA_CFLAGS += -DHAVE_LGDT3302=1 EXTRA_CFLAGS += -DHAVE_LGDT330X=1
endif endif
ifneq ($(CONFIG_DVB_MT352),n) ifneq ($(CONFIG_DVB_MT352),n)
EXTRA_CFLAGS += -DHAVE_MT352=1 EXTRA_CFLAGS += -DHAVE_MT352=1
......
/* /*
* $Id: cx88-dvb.c,v 1.52 2005/07/24 22:12:47 mkrufky Exp $ * $Id: cx88-dvb.c,v 1.54 2005/07/25 05:13:50 mkrufky Exp $
* *
* device driver for Conexant 2388x based TV cards * device driver for Conexant 2388x based TV cards
* MPEG Transport Stream (DVB) routines * MPEG Transport Stream (DVB) routines
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include <linux/suspend.h> #include <linux/suspend.h>
#include <linux/config.h> #include <linux/config.h>
#include "cx88.h" #include "cx88.h"
#include "dvb-pll.h" #include "dvb-pll.h"
...@@ -45,8 +44,8 @@ ...@@ -45,8 +44,8 @@
#ifdef HAVE_OR51132 #ifdef HAVE_OR51132
# include "or51132.h" # include "or51132.h"
#endif #endif
#ifdef HAVE_LGDT3302 #ifdef HAVE_LGDT330X
# include "lgdt3302.h" # include "lgdt330x.h"
#endif #endif
MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
...@@ -207,8 +206,8 @@ static struct or51132_config pchdtv_hd3000 = { ...@@ -207,8 +206,8 @@ static struct or51132_config pchdtv_hd3000 = {
}; };
#endif #endif
#ifdef HAVE_LGDT3302 #ifdef HAVE_LGDT330X
static int lgdt3302_pll_set(struct dvb_frontend* fe, static int lgdt330x_pll_set(struct dvb_frontend* fe,
struct dvb_frontend_parameters* params, struct dvb_frontend_parameters* params,
u8* pllbuf) u8* pllbuf)
{ {
...@@ -220,7 +219,7 @@ static int lgdt3302_pll_set(struct dvb_frontend* fe, ...@@ -220,7 +219,7 @@ static int lgdt3302_pll_set(struct dvb_frontend* fe,
return 0; return 0;
} }
static int lgdt3302_pll_rf_set(struct dvb_frontend* fe, int index) static int lgdt330x_pll_rf_set(struct dvb_frontend* fe, int index)
{ {
struct cx8802_dev *dev= fe->dvb->priv; struct cx8802_dev *dev= fe->dvb->priv;
struct cx88_core *core = dev->core; struct cx88_core *core = dev->core;
...@@ -233,7 +232,7 @@ static int lgdt3302_pll_rf_set(struct dvb_frontend* fe, int index) ...@@ -233,7 +232,7 @@ static int lgdt3302_pll_rf_set(struct dvb_frontend* fe, int index)
return 0; return 0;
} }
static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured) static int lgdt330x_set_ts_param(struct dvb_frontend* fe, int is_punctured)
{ {
struct cx8802_dev *dev= fe->dvb->priv; struct cx8802_dev *dev= fe->dvb->priv;
if (is_punctured) if (is_punctured)
...@@ -243,10 +242,10 @@ static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured) ...@@ -243,10 +242,10 @@ static int lgdt3302_set_ts_param(struct dvb_frontend* fe, int is_punctured)
return 0; return 0;
} }
static struct lgdt3302_config fusionhdtv_3_gold = { static struct lgdt330x_config fusionhdtv_3_gold = {
.demod_address = 0x0e, .demod_address = 0x0e,
.pll_set = lgdt3302_pll_set, .pll_set = lgdt330x_pll_set,
.set_ts_params = lgdt3302_set_ts_param, .set_ts_params = lgdt330x_set_ts_param,
}; };
#endif #endif
...@@ -297,7 +296,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -297,7 +296,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->core->i2c_adap); &dev->core->i2c_adap);
break; break;
#endif #endif
#ifdef HAVE_LGDT3302 #ifdef HAVE_LGDT330X
case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q: case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q:
dev->ts_gen_cntrl = 0x08; dev->ts_gen_cntrl = 0x08;
{ {
...@@ -310,10 +309,10 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -310,10 +309,10 @@ static int dvb_register(struct cx8802_dev *dev)
mdelay(200); mdelay(200);
/* Select RF connector callback */ /* Select RF connector callback */
fusionhdtv_3_gold.pll_rf_set = lgdt3302_pll_rf_set; fusionhdtv_3_gold.pll_rf_set = lgdt330x_pll_rf_set;
dev->core->pll_addr = 0x61; dev->core->pll_addr = 0x61;
dev->core->pll_desc = &dvb_pll_microtune_4042; dev->core->pll_desc = &dvb_pll_microtune_4042;
dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold, dev->dvb.frontend = lgdt330x_attach(&fusionhdtv_3_gold,
&dev->core->i2c_adap); &dev->core->i2c_adap);
} }
break; break;
...@@ -329,7 +328,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -329,7 +328,7 @@ static int dvb_register(struct cx8802_dev *dev)
mdelay(200); mdelay(200);
dev->core->pll_addr = 0x61; dev->core->pll_addr = 0x61;
dev->core->pll_desc = &dvb_pll_thomson_dtt7611; dev->core->pll_desc = &dvb_pll_thomson_dtt7611;
dev->dvb.frontend = lgdt3302_attach(&fusionhdtv_3_gold, dev->dvb.frontend = lgdt330x_attach(&fusionhdtv_3_gold,
&dev->core->i2c_adap); &dev->core->i2c_adap);
} }
break; break;
......
/* /*
$Id: cx88-i2c.c,v 1.28 2005/07/05 17:37:35 nsh Exp $ $Id: cx88-i2c.c,v 1.30 2005/07/25 05:10:13 mkrufky Exp $
cx88-i2c.c -- all the i2c code is here cx88-i2c.c -- all the i2c code is here
...@@ -164,7 +164,7 @@ static struct i2c_client cx8800_i2c_client_template = { ...@@ -164,7 +164,7 @@ static struct i2c_client cx8800_i2c_client_template = {
}; };
static char *i2c_devs[128] = { static char *i2c_devs[128] = {
[ 0x1c >> 1 ] = "lgdt3302", [ 0x1c >> 1 ] = "lgdt330x",
[ 0x86 >> 1 ] = "tda9887/cx22702", [ 0x86 >> 1 ] = "tda9887/cx22702",
[ 0xa0 >> 1 ] = "eeprom", [ 0xa0 >> 1 ] = "eeprom",
[ 0xc0 >> 1 ] = "tuner (analog)", [ 0xc0 >> 1 ] = "tuner (analog)",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment