Re: Technotrend budget tt s-1500 don't work if voltage=0 ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux