> Hello, linuxtv.
> Technotrend budget tt s-1500 don't work if voltage=0 ?
> ============================================================
> example 1
> 4 cards, 1 splitter, vlc, os slackware
> 1 card set vlotage=13 result work
> 2,3,4 set voltage=0 result don't work
> if 1,2,3,4 cards set voltage=13 result don't work (vlc always restart after
> 1-3 seconds and says that can't tune)
> change 4 differents splitters same result
> so it work's only if use splitter 1 out power pass
> so i set on all cards voltage=13 and all cards work
> ============================================================
> example 2
> 1 card set vlotage=18 result work
> 2,3,4 set voltage=0 result don't work*
> *BUT IF I SET 2,3,4 voltage=18 then stop vlc and then set 2,3,4
> voltage=0 result 2,3,4 begin to work
> *WORK ONLY IF VOLTAGE=18
> ============================================================
> example 3
> also test on Technotrend Budget S-1401
> 1 card set vlotage=13 result work
> 2,3,4 set voltage=0 result work
> ============================================================
> i think that card Technotrend budget tt s-1500 don't switch on tuner
> or something else if voltage=0.
my kernel 2.6.21.1
i think the problem somewhere in stv0299.c ...
static int stv0299_set_voltage (struct dvb_frontend* fe, fe_sec_voltage_t
voltage)
{
struct stv0299_state* state = fe->demodulator_priv;
u8 reg0x08;
u8 reg0x0c;
dprintk("%s: %s\n", __FUNCTION__,
voltage == SEC_VOLTAGE_13 ? "SEC_VOLTAGE_13" :
voltage == SEC_VOLTAGE_18 ? "SEC_VOLTAGE_18" : "??");
reg0x08 = stv0299_readreg (state, 0x08);
reg0x0c = stv0299_readreg (state, 0x0c);
/**
* H/V switching over OP0, OP1 and OP2 are LNB power enable bits
*/
reg0x0c &= 0x0f;
if (voltage == SEC_VOLTAGE_OFF) {
stv0299_writeregI (state, 0x0c, 0x00); /* LNB power off!
*/
return stv0299_writeregI (state, 0x08, 0x00); /* LNB
power off! */
}
stv0299_writeregI (state, 0x08, (reg0x08 & 0x3f) |
(state->config->lock_output << 6));
switch (voltage) {
case SEC_VOLTAGE_13:
if (state->config->volt13_op0_op1 == STV0299_VOLT13_OP0)
reg0x0c |= 0x10;
else reg0x0c |= 0x40;
return stv0299_writeregI(state, 0x0c, reg0x0c);
case SEC_VOLTAGE_18:
return stv0299_writeregI(state, 0x0c, reg0x0c | 0x50);
default:
return -EINVAL;
};
}
static int stv0299_send_legacy_dish_cmd (struct dvb_frontend* fe, unsigned long
cmd)
...
for (i=0; i<9; i++) {
if (debug_legacy_dish_switch)
do_gettimeofday (&tv[i+1]);
if((cmd & 0x01) != last) {
/* set voltage to (last ? 13V : 18V) */
stv0299_writeregI (state, 0x0c, reg0x0c | (last ?
lv_mask : 0x50));
last = (last) ? 0 : 1;
}
cmd = cmd >> 1;
...
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb