diff options
Diffstat (limited to 'drivers/media/dvb/frontends/dvb-pll.c')
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c index 2be33f27c69f..b7e7108ee5b3 100644 --- a/drivers/media/dvb/frontends/dvb-pll.c +++ b/drivers/media/dvb/frontends/dvb-pll.c | |||
@@ -493,6 +493,9 @@ static int dvb_pll_sleep(struct dvb_frontend *fe) | |||
493 | int i; | 493 | int i; |
494 | int result; | 494 | int result; |
495 | 495 | ||
496 | if (priv->i2c == NULL) | ||
497 | return -EINVAL; | ||
498 | |||
496 | for (i = 0; i < priv->pll_desc->count; i++) { | 499 | for (i = 0; i < priv->pll_desc->count; i++) { |
497 | if (priv->pll_desc->entries[i].limit == 0) | 500 | if (priv->pll_desc->entries[i].limit == 0) |
498 | break; | 501 | break; |
@@ -611,7 +614,7 @@ static struct dvb_tuner_ops dvb_pll_tuner_ops = { | |||
611 | .get_bandwidth = dvb_pll_get_bandwidth, | 614 | .get_bandwidth = dvb_pll_get_bandwidth, |
612 | }; | 615 | }; |
613 | 616 | ||
614 | int dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2c, struct dvb_pll_desc *desc) | 617 | struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2c, struct dvb_pll_desc *desc) |
615 | { | 618 | { |
616 | u8 b1 [] = { 0 }; | 619 | u8 b1 [] = { 0 }; |
617 | struct i2c_msg msg = { .addr = pll_addr, .flags = I2C_M_RD, .buf = b1, .len = 1 }; | 620 | struct i2c_msg msg = { .addr = pll_addr, .flags = I2C_M_RD, .buf = b1, .len = 1 }; |
@@ -624,14 +627,14 @@ int dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2 | |||
624 | 627 | ||
625 | ret = i2c_transfer (i2c, &msg, 1); | 628 | ret = i2c_transfer (i2c, &msg, 1); |
626 | if (ret != 1) | 629 | if (ret != 1) |
627 | return -1; | 630 | return NULL; |
628 | if (fe->ops.i2c_gate_ctrl) | 631 | if (fe->ops.i2c_gate_ctrl) |
629 | fe->ops.i2c_gate_ctrl(fe, 0); | 632 | fe->ops.i2c_gate_ctrl(fe, 0); |
630 | } | 633 | } |
631 | 634 | ||
632 | priv = kzalloc(sizeof(struct dvb_pll_priv), GFP_KERNEL); | 635 | priv = kzalloc(sizeof(struct dvb_pll_priv), GFP_KERNEL); |
633 | if (priv == NULL) | 636 | if (priv == NULL) |
634 | return -ENOMEM; | 637 | return NULL; |
635 | 638 | ||
636 | priv->pll_i2c_address = pll_addr; | 639 | priv->pll_i2c_address = pll_addr; |
637 | priv->i2c = i2c; | 640 | priv->i2c = i2c; |
@@ -643,7 +646,7 @@ int dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2 | |||
643 | fe->ops.tuner_ops.info.frequency_min = desc->max; | 646 | fe->ops.tuner_ops.info.frequency_min = desc->max; |
644 | 647 | ||
645 | fe->tuner_priv = priv; | 648 | fe->tuner_priv = priv; |
646 | return 0; | 649 | return fe; |
647 | } | 650 | } |
648 | EXPORT_SYMBOL(dvb_pll_attach); | 651 | EXPORT_SYMBOL(dvb_pll_attach); |
649 | 652 | ||