Mailing List archive

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

[linux-dvb] SS2 hw filters work (was: [PATCH] Skystar2 pid filters reorganization)



On Mon, 01 Dec 2003 08:35:16 +0100
Niklas Peinecke <peinecke@gdv.uni-hannover.de> wrote:

> Sadly I cannot test my own code, since I found out that my card is 
> equipped with a flexcop II. If there is anybody out there with a flexcop 
> IIb (the revision nr. in the init section should tell you) it would be 
> most helpful to test the code.

I added some register dump code to collect debug info for Augusto and
tried a couple of tests.

Well, the hw filters just worked! My previous tests failed but these
didn't.

I'd like to have confirmation by someone else that the patch from Niklas
(Thu, 27 Nov 2003 08:39:21 +0100) can be applied.

My chip is rev.195 (IIB) and I modified the code which finds an unused
filter from this
        for (i = 0; i < 0x27; i++) {
to this
        for (i = 6; i < 0x27; i++) {
so we use only the new filters (this change is for testing only)

I successfully ran scan and the driver didn't have to call
open_whole_bandwith.

After the patch is confirmed ok and applied, I'll restart working on the
stylistical/reorganization changes.

If someone is interested, this is the code that dumps the registers; I inserted
it in add_pid(), after the switch() and before returning.

      if(pid==SOME_CHOSEN_PID_VALUE_THAT_TRIGGERS_THE_DEBUG){
        int r,f;
        r=0x200;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x204;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x208;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x300;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x304;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x308;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x30c;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x310;printk("%s reg 0x%04x = %08x (out of loop)\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x314;printk("%s reg 0x%04x = %08x (out of loop)\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        for(f=0;f<32;f++){
          write_reg_dw(adapter,0x310,f); // setting extra bits to 0 should be ok
          r=0x310;printk("%s reg 0x%04x = %08x (loop)\n",__FUNCTION__,r,read_reg_dw(adapter, r));
          r=0x314;printk("%s reg 0x%04x = %08x (loop)\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        }
        r=0x700;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x704;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x710;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));
        r=0x714;printk("%s reg 0x%04x = %08x\n",__FUNCTION__,r,read_reg_dw(adapter, r));

      }


-- 
   Roberto Ragusa    r.ragusa at libero.it


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index