Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 232201
b: refs/heads/master
c: 6183040
h: refs/heads/master
i:
  232199: 7f345e4
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed Jan 19, 2011
1 parent 8e5fec7 commit 012b70a
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 77 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c736a5f28e81299b05ad14e892bdfb414daa9f5f
refs/heads/master: 6183040680c56ec4bd3d7c9398cbc05e84d60c1f
40 changes: 3 additions & 37 deletions trunk/drivers/media/video/saa7134/saa7134-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -5179,18 +5179,8 @@ struct saa7134_board saa7134_boards[] = {
[SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG] = {
.name = "Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid",
.audio_clock = 0x00187de7,
#if 0
/*
* FIXME: Analog mode doesn't work, if digital is enabled. The proper
* fix is to use tda8290 driver, but Kworld seems to use an
* unsupported version of tda8295.
*/
.tuner_type = TUNER_NXP_TDA18271, /* TUNER_PHILIPS_TDA8290 */
.tuner_addr = 0x60,
#else
.tuner_type = UNSET,
.tuner_type = TUNER_PHILIPS_TDA8290,
.tuner_addr = ADDR_UNSET,
#endif
.radio_type = UNSET,
.radio_addr = ADDR_UNSET,
.gpiomask = 0x8e054000,
Expand All @@ -5201,6 +5191,7 @@ struct saa7134_board saa7134_boards[] = {
.vmux = 1,
.amux = TV,
.tv = 1,
.gpio = 0x4000,
#if 0 /* FIXME */
}, {
.name = name_comp1,
Expand Down Expand Up @@ -7659,36 +7650,11 @@ int saa7134_board_init2(struct saa7134_dev *dev)
break;
}
case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
{
struct i2c_msg msg = { .addr = 0x4b, .flags = 0 };
int i;
static u8 buffer[][2] = {
{0x30, 0x31},
{0xff, 0x00},
{0x41, 0x03},
{0x41, 0x1a},
{0xff, 0x02},
{0x34, 0x00},
{0x45, 0x97},
{0x45, 0xc1},
};
saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);

/*
* FIXME: identify what device is at addr 0x4b and what means
* this initialization
*/
for (i = 0; i < ARRAY_SIZE(buffer); i++) {
msg.buf = &buffer[i][0];
msg.len = ARRAY_SIZE(buffer[0]);
if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
printk(KERN_WARNING
"%s: Unable to enable tuner(%i).\n",
dev->name, i);
}
saa7134_set_gpio(dev, 27, 0);
break;
}
} /* switch() */

/* initialize tuner */
Expand Down
40 changes: 1 addition & 39 deletions trunk/drivers/media/video/saa7134/saa7134-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ static struct tda18271_std_map mb86a20s_tda18271_std_map = {

static struct tda18271_config kworld_tda18271_config = {
.std_map = &mb86a20s_tda18271_std_map,
.gate = TDA18271_GATE_DIGITAL,
.gate = TDA18271_GATE_ANALOG,
};

static const struct mb86a20s_config kworld_mb86a20s_config = {
Expand Down Expand Up @@ -623,37 +623,6 @@ static struct tda827x_config tda827x_cfg_2_sw42 = {

/* ------------------------------------------------------------------ */

static int __kworld_sbtvd_i2c_gate_ctrl(struct saa7134_dev *dev, int enable)
{
unsigned char initmsg[] = {0x45, 0x97};
unsigned char msg_enable[] = {0x45, 0xc1};
unsigned char msg_disable[] = {0x45, 0x81};
struct i2c_msg msg = {.addr = 0x4b, .flags = 0, .buf = initmsg, .len = 2};

if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1) {
wprintk("could not access the I2C gate\n");
return -EIO;
}
if (enable)
msg.buf = msg_enable;
else
msg.buf = msg_disable;
if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1) {
wprintk("could not access the I2C gate\n");
return -EIO;
}
msleep(20);
return 0;
}
static int kworld_sbtvd_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
{
struct saa7134_dev *dev = fe->dvb->priv;

return __kworld_sbtvd_i2c_gate_ctrl(dev, enable);
}

/* ------------------------------------------------------------------ */

static struct tda1004x_config tda827x_lifeview_config = {
.demod_address = 0x08,
.invert = 1,
Expand Down Expand Up @@ -1660,7 +1629,6 @@ static int dvb_init(struct saa7134_dev *dev)
}
break;
case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
__kworld_sbtvd_i2c_gate_ctrl(dev, 0);
saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x14000);
saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x14000);
msleep(20);
Expand All @@ -1670,16 +1638,10 @@ static int dvb_init(struct saa7134_dev *dev)
fe0->dvb.frontend = dvb_attach(mb86a20s_attach,
&kworld_mb86a20s_config,
&dev->i2c_adap);
__kworld_sbtvd_i2c_gate_ctrl(dev, 1);
if (fe0->dvb.frontend != NULL) {
dvb_attach(tda18271_attach, fe0->dvb.frontend,
0x60, &dev->i2c_adap,
&kworld_tda18271_config);
/*
* Only after success, it can initialize the gate, otherwise
* an OOPS will hit, due to kfree(fe0->dvb.frontend)
*/
fe0->dvb.frontend->ops.i2c_gate_ctrl = kworld_sbtvd_i2c_gate_ctrl;
}
break;
default:
Expand Down

0 comments on commit 012b70a

Please sign in to comment.