diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c index dce1feddd55d..afde3789d702 100644 --- a/drivers/media/video/cx88/cx88-dvb.c +++ b/drivers/media/video/cx88/cx88-dvb.c | |||
@@ -496,6 +496,26 @@ static int kworld_dvbs_100_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t | |||
496 | return 0; | 496 | return 0; |
497 | } | 497 | } |
498 | 498 | ||
499 | static int geniatech_dvbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) | ||
500 | { | ||
501 | struct cx8802_dev *dev= fe->dvb->priv; | ||
502 | struct cx88_core *core = dev->core; | ||
503 | |||
504 | if (voltage == SEC_VOLTAGE_OFF) { | ||
505 | dprintk(1,"LNB Voltage OFF\n"); | ||
506 | cx_write(MO_GP0_IO, 0x0000efff); | ||
507 | } | ||
508 | |||
509 | if (core->prev_set_voltage) | ||
510 | return core->prev_set_voltage(fe, voltage); | ||
511 | return 0; | ||
512 | } | ||
513 | |||
514 | static struct cx24123_config geniatech_dvbs_config = { | ||
515 | .demod_address = 0x55, | ||
516 | .set_ts_params = cx24123_set_ts_param, | ||
517 | }; | ||
518 | |||
499 | static struct cx24123_config hauppauge_novas_config = { | 519 | static struct cx24123_config hauppauge_novas_config = { |
500 | .demod_address = 0x55, | 520 | .demod_address = 0x55, |
501 | .set_ts_params = cx24123_set_ts_param, | 521 | .set_ts_params = cx24123_set_ts_param, |
@@ -760,6 +780,14 @@ static int dvb_register(struct cx8802_dev *dev) | |||
760 | dev->dvb.frontend->ops.set_voltage = kworld_dvbs_100_set_voltage; | 780 | dev->dvb.frontend->ops.set_voltage = kworld_dvbs_100_set_voltage; |
761 | } | 781 | } |
762 | break; | 782 | break; |
783 | case CX88_BOARD_GENIATECH_DVBS: | ||
784 | dev->dvb.frontend = cx24123_attach(&geniatech_dvbs_config, | ||
785 | &dev->core->i2c_adap); | ||
786 | if (dev->dvb.frontend) { | ||
787 | dev->core->prev_set_voltage = dev->dvb.frontend->ops.set_voltage; | ||
788 | dev->dvb.frontend->ops.set_voltage = geniatech_dvbs_set_voltage; | ||
789 | } | ||
790 | break; | ||
763 | #endif | 791 | #endif |
764 | default: | 792 | default: |
765 | printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", | 793 | printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", |