summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends/cx24123.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2006-08-07 10:44:33 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-08-07 10:44:33 -0300
commitd9d5fc49ab313764d9b32189e259e7ef2d970927 (patch)
tree9de972ef5d18f39b447b144b6cebc07f69153309 /linux/drivers/media/dvb/frontends/cx24123.c
parent41480cd76fdedd7a28a0e90cc602efd596a81eb9 (diff)
downloadmediapointer-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.c7
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;
};