From: Hans Verkuil Remove AUDC_CONFIG_PINNACLE horror. This also fixes radio support for mt20xx tuners. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Andrew Morton --- drivers/media/video/bttv-cards.c | 18 +++++++++++----- drivers/media/video/bttv-driver.c | 1 drivers/media/video/bttvp.h | 2 - drivers/media/video/mt20xx.c | 7 ++++++ drivers/media/video/tda9887.c | 41 -------------------------------------- drivers/media/video/tuner-core.c | 13 ------------ include/media/audiochip.h | 11 ---------- 7 files changed, 20 insertions(+), 73 deletions(-) diff -puN drivers/media/video/bttv-cards.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror drivers/media/video/bttv-cards.c --- devel/drivers/media/video/bttv-cards.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror 2005-12-09 22:51:12.000000000 -0800 +++ devel-akpm/drivers/media/video/bttv-cards.c 2005-12-09 22:51:12.000000000 -0800 @@ -3056,26 +3056,33 @@ static void miro_pinnacle_gpio(struct bt switch (id) { case 1: info = "PAL / mono"; + btv->tda9887_conf = TDA9887_INTERCARRIER; break; case 2: info = "PAL+SECAM / stereo"; btv->has_radio = 1; + btv->tda9887_conf = TDA9887_QSS; break; case 3: info = "NTSC / stereo"; btv->has_radio = 1; + btv->tda9887_conf = TDA9887_QSS; break; case 4: info = "PAL+SECAM / mono"; + btv->tda9887_conf = TDA9887_QSS; break; case 5: info = "NTSC / mono"; + btv->tda9887_conf = TDA9887_INTERCARRIER; break; case 6: info = "NTSC / stereo"; + btv->tda9887_conf = TDA9887_INTERCARRIER; break; case 7: info = "PAL / stereo"; + btv->tda9887_conf = TDA9887_INTERCARRIER; break; default: info = "oops: unknown card"; @@ -3086,8 +3093,7 @@ static void miro_pinnacle_gpio(struct bt printk(KERN_INFO "bttv%d: pinnacle/mt: id=%d info=\"%s\" radio=%s\n", btv->c.nr, id, info, btv->has_radio ? "yes" : "no"); - btv->tuner_type = 33; - btv->pinnacle_id = id; + btv->tuner_type = TUNER_MT2032; } } @@ -3389,9 +3395,9 @@ void __devinit bttv_init_card2(struct bt bttv_call_i2c_clients(btv, TUNER_SET_TYPE_ADDR, &tun_setup); } - if (btv->pinnacle_id != UNSET) { - bttv_call_i2c_clients(btv, AUDC_CONFIG_PINNACLE, - &btv->pinnacle_id); + if (btv->tda9887_conf) { + bttv_call_i2c_clients(btv, TDA9887_SET_CONFIG, + &btv->tda9887_conf); } btv->svhs = bttv_tvcards[btv->c.type].svhs; @@ -3443,7 +3449,7 @@ void __devinit bttv_init_card2(struct bt /* tuner modules */ tda9887 = 0; - if (btv->pinnacle_id != UNSET) + if (btv->tda9887_conf) tda9887 = 1; if (0 == tda9887 && 0 == bttv_tvcards[btv->c.type].has_dvb && bttv_I2CRead(btv, I2C_TDA9887, "TDA9887") >=0) diff -puN drivers/media/video/bttv-driver.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror drivers/media/video/bttv-driver.c --- devel/drivers/media/video/bttv-driver.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror 2005-12-09 22:51:12.000000000 -0800 +++ devel-akpm/drivers/media/video/bttv-driver.c 2005-12-09 22:51:12.000000000 -0800 @@ -3947,7 +3947,6 @@ static int __devinit bttv_probe(struct p btv->i2c_rc = -1; btv->tuner_type = UNSET; - btv->pinnacle_id = UNSET; btv->new_input = UNSET; btv->has_radio=radio[btv->c.nr]; diff -puN drivers/media/video/bttvp.h~v4l-dvb-3105-remove-audc_config_pinnacle-horror drivers/media/video/bttvp.h --- devel/drivers/media/video/bttvp.h~v4l-dvb-3105-remove-audc_config_pinnacle-horror 2005-12-09 22:51:12.000000000 -0800 +++ devel-akpm/drivers/media/video/bttvp.h 2005-12-09 22:51:12.000000000 -0800 @@ -270,7 +270,7 @@ struct bttv { /* card configuration info */ unsigned int cardid; /* pci subsystem id (bt878 based ones) */ unsigned int tuner_type; /* tuner chip type */ - unsigned int pinnacle_id; + unsigned int tda9887_conf; unsigned int svhs; struct bttv_pll_info pll; int triton1; diff -puN drivers/media/video/mt20xx.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror drivers/media/video/mt20xx.c --- devel/drivers/media/video/mt20xx.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror 2005-12-09 22:51:12.000000000 -0800 +++ devel-akpm/drivers/media/video/mt20xx.c 2005-12-09 22:51:12.000000000 -0800 @@ -494,6 +494,13 @@ int microtune_init(struct i2c_client *c) t->tv_freq = NULL; t->radio_freq = 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"; i2c_master_send(c,buf,1); diff -puN drivers/media/video/tda9887.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror drivers/media/video/tda9887.c --- devel/drivers/media/video/tda9887.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror 2005-12-09 22:51:12.000000000 -0800 +++ devel-akpm/drivers/media/video/tda9887.c 2005-12-09 22:51:12.000000000 -0800 @@ -57,7 +57,6 @@ struct tda9887 { v4l2_std_id std; enum tuner_mode mode; unsigned int config; - unsigned int pinnacle_id; unsigned int using_v4l2; unsigned int radio_mode; unsigned char data[4]; @@ -481,34 +480,6 @@ static int tda9887_set_config(struct tda /* ---------------------------------------------------------------------- */ -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[] = "-"; module_param_string(pal, pal, sizeof(pal), 0644); static char secam[] = "-"; @@ -593,9 +564,6 @@ static int tda9887_configure(struct tda9 t->data[1] |= cOutputPort1Inactive; t->data[1] |= cOutputPort2Inactive; - if (UNSET != t->pinnacle_id) { - tda9887_set_pinnacle(t,t->data); - } tda9887_set_config(t,t->data); tda9887_set_insmod(t,t->data); @@ -634,7 +602,6 @@ static int tda9887_attach(struct i2c_ada t->client = client_template; t->std = 0; - t->pinnacle_id = UNSET; t->radio_mode = V4L2_TUNER_MODE_STEREO; tda9887_info("chip found @ 0x%x (%s)\n", addr<<1, adap->name); @@ -698,14 +665,6 @@ tda9887_command(struct i2c_client *clien tda9887_configure(t); break; } - case AUDC_CONFIG_PINNACLE: - { - int *i = arg; - - t->pinnacle_id = *i; - tda9887_configure(t); - break; - } case TDA9887_SET_CONFIG: { int *i = arg; diff -puN drivers/media/video/tuner-core.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror drivers/media/video/tuner-core.c --- devel/drivers/media/video/tuner-core.c~v4l-dvb-3105-remove-audc_config_pinnacle-horror 2005-12-09 22:51:12.000000000 -0800 +++ devel-akpm/drivers/media/video/tuner-core.c 2005-12-09 22:51:12.000000000 -0800 @@ -510,7 +510,6 @@ static void tuner_status(struct i2c_clie static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) { struct tuner *t = i2c_get_clientdata(client); - unsigned int *iarg = (int *)arg; switch (cmd) { /* --- configuration --- */ @@ -533,18 +532,6 @@ static int tuner_command(struct i2c_clie t->standby (client); 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: if (check_mode(t, "VIDIOCSAUDIO") == EINVAL) return 0; diff -puN include/media/audiochip.h~v4l-dvb-3105-remove-audc_config_pinnacle-horror include/media/audiochip.h --- devel/include/media/audiochip.h~v4l-dvb-3105-remove-audc_config_pinnacle-horror 2005-12-09 22:51:12.000000000 -0800 +++ devel-akpm/include/media/audiochip.h 2005-12-09 22:51:12.000000000 -0800 @@ -40,15 +40,4 @@ enum audiochip { #define AUDIO_MUTE 0x80 #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 */ _