Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 241952
b: refs/heads/master
c: 52c506e
h: refs/heads/master
v: v3
  • Loading branch information
Igor M. Liplianin authored and Mauro Carvalho Chehab committed Mar 21, 2011
1 parent 6e76c06 commit 113046e
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 7 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: 69519c3eff2a4a164351792d70666efa900b697e
refs/heads/master: 52c506e09cd624cbf7d21d9c16283f3e8b32f4bc
34 changes: 28 additions & 6 deletions trunk/drivers/media/dvb/dvb-usb/dw2102.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ struct su3000_state {
u8 initialized;
};

struct s6x0_state {
int (*old_set_voltage)(struct dvb_frontend *f, fe_sec_voltage_t v);
};

/* debug */
static int dvb_usb_dw2102_debug;
module_param_named(debug, dvb_usb_dw2102_debug, int, 0644);
Expand Down Expand Up @@ -854,6 +858,19 @@ static int dw210x_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
return 0;
}

static int s660_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
{
struct dvb_usb_adapter *d =
(struct dvb_usb_adapter *)(fe->dvb->priv);
struct s6x0_state *st = (struct s6x0_state *)d->dev->priv;

dw210x_set_voltage(fe, voltage);
if (st->old_set_voltage)
st->old_set_voltage(fe, voltage);

return 0;
}

static void dw210x_led_ctrl(struct dvb_frontend *fe, int offon)
{
static u8 led_off[] = { 0 };
Expand Down Expand Up @@ -1105,15 +1122,19 @@ static int stv0288_frontend_attach(struct dvb_usb_adapter *d)

static int ds3000_frontend_attach(struct dvb_usb_adapter *d)
{
struct s6x0_state *st = (struct s6x0_state *)d->dev->priv;

d->fe = dvb_attach(ds3000_attach, &dw2104_ds3000_config,
&d->dev->i2c_adap);
if (d->fe != NULL) {
d->fe->ops.set_voltage = dw210x_set_voltage;
info("Attached ds3000+ds2020!\n");
return 0;
}

return -EIO;
if (d->fe == NULL)
return -EIO;

st->old_set_voltage = d->fe->ops.set_voltage;
d->fe->ops.set_voltage = s660_set_voltage;
info("Attached ds3000+ds2020!\n");

return 0;
}

static int prof_7500_frontend_attach(struct dvb_usb_adapter *d)
Expand Down Expand Up @@ -1669,6 +1690,7 @@ static struct dvb_usb_device_properties dw3101_properties = {
static struct dvb_usb_device_properties s6x0_properties = {
.caps = DVB_USB_IS_AN_I2C_ADAPTER,
.usb_ctrl = DEVICE_SPECIFIC,
.size_of_priv = sizeof(struct s6x0_state),
.firmware = "dvb-usb-s630.fw",
.no_reconnect = 1,

Expand Down

0 comments on commit 113046e

Please sign in to comment.