diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-08-07 10:44:33 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-08-07 10:44:33 -0300 |
commit | d9d5fc49ab313764d9b32189e259e7ef2d970927 (patch) | |
tree | 9de972ef5d18f39b447b144b6cebc07f69153309 /linux/drivers/media/dvb/frontends/cx24123.c | |
parent | 41480cd76fdedd7a28a0e90cc602efd596a81eb9 (diff) | |
download | mediapointer-dvb-s2-d9d5fc49ab313764d9b32189e259e7ef2d970927.tar.gz mediapointer-dvb-s2-d9d5fc49ab313764d9b32189e259e7ef2d970927.tar.bz2 |
LNB voltage control was inverted for the benefit of geniatech cards on Kworld
From: Yeasah Pell <yeasah@schwide.com>
1) It sets LNBDCPol differently based on the card type. Now it should
work properly for both the kworld and geniatech cards.
2) It stops returning an error for the SEC_VOLTAGE_OFF voltage command
(the cx88-dvb level handles the actual voltage on/off, but it still
passes the ioctl down to the cx24123 level, which previously rejected
the OFF as invalid so the ioctl would report failure)
Signed-off-by: Yeasah Pell <yeasah at schwide.net>
Acked-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/dvb/frontends/cx24123.c')
-rw-r--r-- | linux/drivers/media/dvb/frontends/cx24123.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/frontends/cx24123.c b/linux/drivers/media/dvb/frontends/cx24123.c index d13036d0a..842dc9a02 100644 --- a/linux/drivers/media/dvb/frontends/cx24123.c +++ b/linux/drivers/media/dvb/frontends/cx24123.c @@ -672,6 +672,10 @@ static int cx24123_initfe(struct dvb_frontend* fe) for (i = 0; i < sizeof(cx24123_regdata) / sizeof(cx24123_regdata[0]); i++) cx24123_writereg(state, cx24123_regdata[i].reg, cx24123_regdata[i].data); + /* Set the LNB polarity */ + if(state->config->lnb_polarity) + cx24123_writereg(state, 0x32, cx24123_readreg(state, 0x32) | 0x02); + return 0; } @@ -689,6 +693,9 @@ static int cx24123_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage case SEC_VOLTAGE_18: dprintk("%s: setting voltage 18V\n", __FUNCTION__); return cx24123_writereg(state, 0x29, val | 0x80); + case SEC_VOLTAGE_OFF: + /* already handled in cx88-dvb */ + return 0; default: return -EINVAL; }; |