提交 39e8f40d 编写于 作者: H Hans Verkuil 提交者: Mauro Carvalho Chehab

V4L/DVB (3105): Remove AUDC_CONFIG_PINNACLE horror, fix mt20xx radio support.

- Remove AUDC_CONFIG_PINNACLE horror. This also fixes radio support
for mt20xx tuners.
Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: NMauro Carvalho Chehab <mchehab@brturbo.com.br>
上级 ade0836c
...@@ -3056,26 +3056,33 @@ static void miro_pinnacle_gpio(struct bttv *btv) ...@@ -3056,26 +3056,33 @@ static void miro_pinnacle_gpio(struct bttv *btv)
switch (id) { switch (id) {
case 1: case 1:
info = "PAL / mono"; info = "PAL / mono";
btv->tda9887_conf = TDA9887_INTERCARRIER;
break; break;
case 2: case 2:
info = "PAL+SECAM / stereo"; info = "PAL+SECAM / stereo";
btv->has_radio = 1; btv->has_radio = 1;
btv->tda9887_conf = TDA9887_QSS;
break; break;
case 3: case 3:
info = "NTSC / stereo"; info = "NTSC / stereo";
btv->has_radio = 1; btv->has_radio = 1;
btv->tda9887_conf = TDA9887_QSS;
break; break;
case 4: case 4:
info = "PAL+SECAM / mono"; info = "PAL+SECAM / mono";
btv->tda9887_conf = TDA9887_QSS;
break; break;
case 5: case 5:
info = "NTSC / mono"; info = "NTSC / mono";
btv->tda9887_conf = TDA9887_INTERCARRIER;
break; break;
case 6: case 6:
info = "NTSC / stereo"; info = "NTSC / stereo";
btv->tda9887_conf = TDA9887_INTERCARRIER;
break; break;
case 7: case 7:
info = "PAL / stereo"; info = "PAL / stereo";
btv->tda9887_conf = TDA9887_INTERCARRIER;
break; break;
default: default:
info = "oops: unknown card"; info = "oops: unknown card";
...@@ -3086,8 +3093,7 @@ static void miro_pinnacle_gpio(struct bttv *btv) ...@@ -3086,8 +3093,7 @@ static void miro_pinnacle_gpio(struct bttv *btv)
printk(KERN_INFO printk(KERN_INFO
"bttv%d: pinnacle/mt: id=%d info=\"%s\" radio=%s\n", "bttv%d: pinnacle/mt: id=%d info=\"%s\" radio=%s\n",
btv->c.nr, id, info, btv->has_radio ? "yes" : "no"); btv->c.nr, id, info, btv->has_radio ? "yes" : "no");
btv->tuner_type = 33; btv->tuner_type = TUNER_MT2032;
btv->pinnacle_id = id;
} }
} }
...@@ -3389,9 +3395,9 @@ void __devinit bttv_init_card2(struct bttv *btv) ...@@ -3389,9 +3395,9 @@ void __devinit bttv_init_card2(struct bttv *btv)
bttv_call_i2c_clients(btv, TUNER_SET_TYPE_ADDR, &tun_setup); bttv_call_i2c_clients(btv, TUNER_SET_TYPE_ADDR, &tun_setup);
} }
if (btv->pinnacle_id != UNSET) { if (btv->tda9887_conf) {
bttv_call_i2c_clients(btv, AUDC_CONFIG_PINNACLE, bttv_call_i2c_clients(btv, TDA9887_SET_CONFIG,
&btv->pinnacle_id); &btv->tda9887_conf);
} }
btv->svhs = bttv_tvcards[btv->c.type].svhs; btv->svhs = bttv_tvcards[btv->c.type].svhs;
...@@ -3443,7 +3449,7 @@ void __devinit bttv_init_card2(struct bttv *btv) ...@@ -3443,7 +3449,7 @@ void __devinit bttv_init_card2(struct bttv *btv)
/* tuner modules */ /* tuner modules */
tda9887 = 0; tda9887 = 0;
if (btv->pinnacle_id != UNSET) if (btv->tda9887_conf)
tda9887 = 1; tda9887 = 1;
if (0 == tda9887 && 0 == bttv_tvcards[btv->c.type].has_dvb && if (0 == tda9887 && 0 == bttv_tvcards[btv->c.type].has_dvb &&
bttv_I2CRead(btv, I2C_TDA9887, "TDA9887") >=0) bttv_I2CRead(btv, I2C_TDA9887, "TDA9887") >=0)
......
...@@ -3947,7 +3947,6 @@ static int __devinit bttv_probe(struct pci_dev *dev, ...@@ -3947,7 +3947,6 @@ static int __devinit bttv_probe(struct pci_dev *dev,
btv->i2c_rc = -1; btv->i2c_rc = -1;
btv->tuner_type = UNSET; btv->tuner_type = UNSET;
btv->pinnacle_id = UNSET;
btv->new_input = UNSET; btv->new_input = UNSET;
btv->has_radio=radio[btv->c.nr]; btv->has_radio=radio[btv->c.nr];
......
...@@ -270,7 +270,7 @@ struct bttv { ...@@ -270,7 +270,7 @@ struct bttv {
/* card configuration info */ /* card configuration info */
unsigned int cardid; /* pci subsystem id (bt878 based ones) */ unsigned int cardid; /* pci subsystem id (bt878 based ones) */
unsigned int tuner_type; /* tuner chip type */ unsigned int tuner_type; /* tuner chip type */
unsigned int pinnacle_id; unsigned int tda9887_conf;
unsigned int svhs; unsigned int svhs;
struct bttv_pll_info pll; struct bttv_pll_info pll;
int triton1; int triton1;
......
...@@ -494,6 +494,13 @@ int microtune_init(struct i2c_client *c) ...@@ -494,6 +494,13 @@ int microtune_init(struct i2c_client *c)
t->tv_freq = NULL; t->tv_freq = NULL;
t->radio_freq = NULL; t->radio_freq = NULL;
t->standby = NULL; t->standby = NULL;
if (t->std & V4L2_STD_525_60) {
tuner_dbg("pinnacle ntsc\n");
t->radio_if2 = 41300 * 1000;
} else {
tuner_dbg("pinnacle pal\n");
t->radio_if2 = 33300 * 1000;
}
name = "unknown"; name = "unknown";
i2c_master_send(c,buf,1); i2c_master_send(c,buf,1);
......
...@@ -57,7 +57,6 @@ struct tda9887 { ...@@ -57,7 +57,6 @@ struct tda9887 {
v4l2_std_id std; v4l2_std_id std;
enum tuner_mode mode; enum tuner_mode mode;
unsigned int config; unsigned int config;
unsigned int pinnacle_id;
unsigned int using_v4l2; unsigned int using_v4l2;
unsigned int radio_mode; unsigned int radio_mode;
unsigned char data[4]; unsigned char data[4];
...@@ -481,34 +480,6 @@ static int tda9887_set_config(struct tda9887 *t, char *buf) ...@@ -481,34 +480,6 @@ static int tda9887_set_config(struct tda9887 *t, char *buf)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
static int tda9887_set_pinnacle(struct tda9887 *t, char *buf)
{
unsigned int bCarrierMode = UNSET;
if (t->std & V4L2_STD_625_50) {
if ((1 == t->pinnacle_id) || (7 == t->pinnacle_id)) {
bCarrierMode = cIntercarrier;
} else {
bCarrierMode = cQSS;
}
}
if (t->std & V4L2_STD_525_60) {
if ((5 == t->pinnacle_id) || (6 == t->pinnacle_id)) {
bCarrierMode = cIntercarrier;
} else {
bCarrierMode = cQSS;
}
}
if (bCarrierMode != UNSET) {
buf[1] &= ~0x04;
buf[1] |= bCarrierMode;
}
return 0;
}
/* ---------------------------------------------------------------------- */
static char pal[] = "-"; static char pal[] = "-";
module_param_string(pal, pal, sizeof(pal), 0644); module_param_string(pal, pal, sizeof(pal), 0644);
static char secam[] = "-"; static char secam[] = "-";
...@@ -593,9 +564,6 @@ static int tda9887_configure(struct tda9887 *t) ...@@ -593,9 +564,6 @@ static int tda9887_configure(struct tda9887 *t)
t->data[1] |= cOutputPort1Inactive; t->data[1] |= cOutputPort1Inactive;
t->data[1] |= cOutputPort2Inactive; t->data[1] |= cOutputPort2Inactive;
if (UNSET != t->pinnacle_id) {
tda9887_set_pinnacle(t,t->data);
}
tda9887_set_config(t,t->data); tda9887_set_config(t,t->data);
tda9887_set_insmod(t,t->data); tda9887_set_insmod(t,t->data);
...@@ -634,7 +602,6 @@ static int tda9887_attach(struct i2c_adapter *adap, int addr, int kind) ...@@ -634,7 +602,6 @@ static int tda9887_attach(struct i2c_adapter *adap, int addr, int kind)
t->client = client_template; t->client = client_template;
t->std = 0; t->std = 0;
t->pinnacle_id = UNSET;
t->radio_mode = V4L2_TUNER_MODE_STEREO; t->radio_mode = V4L2_TUNER_MODE_STEREO;
tda9887_info("chip found @ 0x%x (%s)\n", addr<<1, adap->name); tda9887_info("chip found @ 0x%x (%s)\n", addr<<1, adap->name);
...@@ -698,14 +665,6 @@ tda9887_command(struct i2c_client *client, unsigned int cmd, void *arg) ...@@ -698,14 +665,6 @@ tda9887_command(struct i2c_client *client, unsigned int cmd, void *arg)
tda9887_configure(t); tda9887_configure(t);
break; break;
} }
case AUDC_CONFIG_PINNACLE:
{
int *i = arg;
t->pinnacle_id = *i;
tda9887_configure(t);
break;
}
case TDA9887_SET_CONFIG: case TDA9887_SET_CONFIG:
{ {
int *i = arg; int *i = arg;
......
...@@ -510,7 +510,6 @@ static void tuner_status(struct i2c_client *client) ...@@ -510,7 +510,6 @@ static void tuner_status(struct i2c_client *client)
static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
{ {
struct tuner *t = i2c_get_clientdata(client); struct tuner *t = i2c_get_clientdata(client);
unsigned int *iarg = (int *)arg;
switch (cmd) { switch (cmd) {
/* --- configuration --- */ /* --- configuration --- */
...@@ -533,18 +532,6 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) ...@@ -533,18 +532,6 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
t->standby (client); t->standby (client);
break; break;
} }
case AUDC_CONFIG_PINNACLE:
switch (*iarg) {
case 2:
tuner_dbg("pinnacle pal\n");
t->radio_if2 = 33300 * 1000;
break;
case 3:
tuner_dbg("pinnacle ntsc\n");
t->radio_if2 = 41300 * 1000;
break;
}
break;
case VIDIOCSAUDIO: case VIDIOCSAUDIO:
if (check_mode(t, "VIDIOCSAUDIO") == EINVAL) if (check_mode(t, "VIDIOCSAUDIO") == EINVAL)
return 0; return 0;
......
...@@ -40,15 +40,4 @@ enum audiochip { ...@@ -40,15 +40,4 @@ enum audiochip {
#define AUDIO_MUTE 0x80 #define AUDIO_MUTE 0x80
#define AUDIO_UNMUTE 0x81 #define AUDIO_UNMUTE 0x81
/* all the stuff below is obsolete and just here for reference. I'll
* remove it once the driver is tested and works fine.
*
* Instead creating alot of tiny API's for all kinds of different
* chips, we'll just pass throuth the v4l ioctl structs (v4l2 not
* yet...). It is a bit less flexible, but most/all used i2c chips
* make sense in v4l context only. So I think that's acceptable...
*/
/* misc stuff to pass around config info to i2c chips */
#define AUDC_CONFIG_PINNACLE _IOW('m',32,int)
#endif /* AUDIOCHIP_H */ #endif /* AUDIOCHIP_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册