[linux-dvb] Hauppauge Nova-S-Plus

jdobry at centrum.cz jdobry at centrum.cz
Sun Nov 26 00:38:31 CET 2006

I read few internet formums and it is common problem. And Linux can be first with working solution.

Problem is "dynamic current limit" in ISL6421 chip
see to PDF http://www.intersil.com/data/fn/fn9130.pdf

"Dynamic current limit" is protection feature. When overload is detected, chip periodicaly try switch on power (20ms). But in some DiseqC switches it is problem  on switch on (power capacitors). My switch include 4 LNBs have 150mA supply on working state, but switch on chip detect current overload (from 575 till 950)mA at 20ms

Hauppauge WinTV Nova-S Plus need in this configuration static type of current protection.

This patch add support for dynamic/static protection switch
At this moment it is only static option. PDF datasheet recomend for this cases: switch power with static protection a later change it to dynamic. This is not supported at this path, but I can write code for it, when somebody wants.

It is also possible add support for read overload or overheat detection status from chip for /proc . I have code but it have problem in documentation. PDF is little bit unclear for it. SR1 register is not problem, but SR2 register can be read only as second byte in I2C communication. PDF describe something unclear with "SR" bite, but is different from my working code.

Keyword for search machines: Hauppauge WinTV Nova-s Plus current diseq diseqc overload
license GPL

*** linux/drivers/media/dvb/frontends/isl6421.c     2006-11-25 23:05:44.000000000 +0100
--- linux/drivers/media/dvb/frontends/isl6421.c 2006-11-25 23:44:11.000000000 +0100
*** 44,49 ****
--- 44,51 ----
        u8                      i2c_addr;

+ static int dcl=1; // dynamic current limit on/off, default on
  static int isl6421_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
        struct isl6421 *isl6421 = (struct isl6421 *) fe->sec_priv;
*** 109,114 ****
--- 111,117 ----

        /* default configuration */
        isl6421->config = ISL6421_ISEL1;
+       if (! dcl) isl6421->config |= ISL6421_DCL;
        isl6421->i2c = i2c;
        isl6421->i2c_addr = i2c_addr;
        fe->sec_priv = isl6421;
*** 134,139 ****
--- 137,145 ----

        return fe;
+ module_param(dcl, int, 0644);
+ MODULE_PARM_DESC(dcl, "Turn on/off dynamic current limit (default:on).");

  MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6421");

> Od: jdobry at centrum.cz
> Komu: <linux-dvb at linuxtv.org>
> Datum: 24.11.2006 09:56
> Předmět: Re: [linux-dvb] Hauppauge Nova-S-Plus
>Please forget to this problem. I try it under windows and it is same. I
can't be driver problem only.
>> Od: jdobry at centrum.cz
>> Komu: <linux-dvb at linuxtv.org>
>> Datum: 22.11.2006 11:55
>> Předmět: [linux-dvb] Hauppauge Nova-S-Plus
>>Hello all,
>>I have one Nova-S-Plus card (Subsystem: 0070:9202) and I have problem
>with DiseqC switch 4/1
>>In wiki I read
>>but this information is litle bit obsolete beacuse DiseqC is fixed by
>>When I use this card without switch it's work. When I use another dvb-s
>receiver it work include switch.
>> But when I use Nova-S-Plus with switch I have no signal. Just nothing
>with any switch configuration. 
>>Do you have more info about this cart somebody? Any idea is wanted.
>>Used v4l sources from 2006-11-20
>>Thanks, Jiri
>>PS: I have big skill with linux drivers and DVB-S. I have no problem fix
>driver, but I don't have ANY hardware depended information about this
>>linux-dvb mailing list
>>linux-dvb at linuxtv.org
>linux-dvb mailing list
>linux-dvb at linuxtv.org

More information about the linux-dvb mailing list