[linux-dvb] SAA7146 DMA buffer overflow
Oliver Endriss
o.endriss at gmx.de
Wed Feb 15 13:29:27 CET 2006
Ingo Schneider wrote:
> I hava a problem that I loose TS packets due to overruns of the SAA 7146
> DMA buffer when the system is under I/O load (e.g. backup).
>
> I modified the budget-core.c to give warning when the buffer is nearly
> full to verify that this is really the cause (see code below).
> The simplest thing would be to increase the buffer size. The current
> size = 1024 TS packets, about 192k.
>
> I would tend to increase this buffer to about 1 or 2 megabytes to stop
> getting those TS continuity errors,
> is there a reason why this buffer was chosen to be so small ? Spec of
> SAA7146 says it can handle 4 megabytes for DMA.
I guess this size was chosen because dma buffer size is usually large
enough. Afaik you are the first one who needs a larger buffer...
Since the driver is widely used on systems with limited memory I vote
against increasing the default value.
But if you deliver a clean patch which adds a module parameter for that,
I will commit it to the hg repository (something like DMA_BUF_SIZE in
KByte).
> Also, there is a special handling for BUDGET_FS_ACTIVY which has a
> different buffer "layout" - why is this ?
The buffer size is the same, only the DMA ist configured in a slightly
different way. That must be done to strip the ECC bytes from the data
stream: 188 bytes data + 16 bytes ECC = 204 bytes total.
Other budget cards have a different hardware design and do not require
this.
Oliver
--
--------------------------------------------------------
VDR Remote Plugin available at
http://www.escape-edv.de/endriss/vdr/
--------------------------------------------------------
More information about the linux-dvb
mailing list