Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB: 22-kHz set_tone fix for NetUP Dual DVB-S2-CI card. 22kHz logic controlled by demod

22-kHz tone can be driven in two ways:
1. LNBH24 can produce 22kHz continuous tone when TEN=1 ( 22 KHz tone output is
always activated ).
2. LNBH24 can reproduce 22kHz tone timings from DSQIN or EXTM pin's when TEN=0.
From LNBH24 datasheet:
"In order to improve design flexibility an external tone input pin is
available (EXTM). The EXTM is a Logic input pin which activates the 22 kHz
tone output, on the VoTX pin, by using the LNBH24 integrated tone generator
(similar to the DSQIN pin function). In fact, the output tone waveform
characteristics will always be internally controlled by the LNBH24 tone
generator and the EXTM signal will be used as a timing control for DiSEqC tone
data encoding on the VoTX output."

In NetUP Dual DVB-S2-CI card 22kHz tone timings on EXTM pin produced by
STV0900 demod:
.set_tone = stv0900_set_tone

redefine to "set_tone = lnbp21_set_tone" is not correct for "NetUP Dual
DVB-S2-CI card".

Signed-off-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Abylay Ospan and committed by
Mauro Carvalho Chehab
0726681a 6b54ee08

+1 -1
+1 -1
drivers/media/dvb/frontends/lnbp21.c
··· 158 158 /* override frontend ops */ 159 159 fe->ops.set_voltage = lnbp21_set_voltage; 160 160 fe->ops.enable_high_lnb_voltage = lnbp21_enable_high_lnb_voltage; 161 - if (!fe->ops.set_tone) /* don't redefine */ 161 + if (!(override_clear & LNBH24_TEN)) /*22kHz logic controlled by demod*/ 162 162 fe->ops.set_tone = lnbp21_set_tone; 163 163 printk(KERN_INFO "LNBx2x attached on addr=%x\n", lnbp21->i2c_addr); 164 164