On Sun, 23 Nov 2003 11:44:09 +0000
Vincenzo Di Massa <[EMAIL PROTECTED]> wrote:

> Roberto's PATCH is OK, but calls CheckPID (heavy!!) twice for every
> packet in.

Well, you have two comparisons in the for loop in CheckPID, so it's not
a big difference. Anyway, I like your version.

There is something that doesn't look right:

> @@ -1434,9 +1437,9 @@ static int AddPID(struct adapter *adapte
>               {
>                       adapter->pids[i] = pid;
>  
> -                     if (AddHwPID(adapter, pid) < 0)
> +                     if (pid != 0x2000 || AddHwPID(adapter, pid) < 0)
>                               OpenWholeBandwidth(adapter);
> -
> +                     
>                       return 1;
>               }
>       }

Shouldn't it be "pid == 0x2000"?

On a general side, I think the current pid handling is not very smart:
1) we check 0x27 slots even if only two are occupied (easily fixable)
2) when we openwholebandwith we don't close it back; this consumes
CPU time and causes interrupts and DMA transfers

Other considerations: is there any specific reason
1) to have exactly 0x27 slots?
2) to advertize 32 pids max?
3) to have stream1/stream2/pcr/pmt/emm/ecm specific routines, given that
it looks like they have no particular specialization, they're just generic
filters?
4) to have different coding style than linux kernel? ("CheckPID" instead
of "check_pid")

Would patches on these issues welcome?

Bye. Ciao.
-- 
   Roberto Ragusa    r.ragusa at libero.it


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as 
subject.

Reply via email to