mws@renzel.net wrote:
> i am playing around with the DVR device for playing back a TS which
> was recorded from the DVR device.
...
> The kernel is configured a an SMP Kernel and Preemptible feature.
That's a recipe for disaster -- the dvr playback code in the av7110
is seriously b0rked. Apart from the bug you found, the dvr device
does not support non-blocking writes, and if you try to use multiple
threads and do video ioctls from one thread while another thread
blocks in dvr write() your machine will lock up...
> The output from dmesg after Oopsing is :
>
> bad: scheduling while atomic! Call Trace:
Just for the record, this is not an Oops, just an indication that the
driver is buggy.
> anybody you can help me out of this?
The problem is that the av7110 hardware does not support TS playback.
The driver tries to work around this by remuxing the TS into PES and
feeding PES to the hardware. IMHO this code should be dropped rather
than attempted to fix. Remuxing should be done in user space. VDR
does the right thing.
calling the PES unpacking process a 'remuxing' is kind of flattered,
not? Forcing everybody to misuse the lowlevel-API instead of highlevel
access just because the av711x driver is broken has the unlovely side
effect that on well-designed hardware that can eat PS and TS directly
the code will still do all the protocol handling and bit-twiddling on
the host processor, the dedicated hardware will run idle.