[linux-dvb] problems and workaround when tuning to a channel with DD enabled

Johannes Stezenbach js at linuxtv.org
Wed Jun 8 15:10:08 CEST 2005


On Wed, Jun 08, 2005 at 12:59:34PM +0200, Johannes Stezenbach wrote:
> On Wed, Jun 08, 2005 at 11:56:24AM +0200, Dr. Werner Fink wrote:
> > On Tue, Jun 07, 2005 at 09:53:55PM +0200, Wolfgang Rohdewald wrote:
> > > On Dienstag 07 Juni 2005 21:04, Oliver Endriss wrote:
> > > > If I understood this -ERESTARTSYS thing correctly, the interrupted ioctl
> > > > will be automagically restarted when the user space signal handler has
> > > > completed.
> > > > 
> > > > Signals can occur anytime, so the driver is broken and has to be fixed.
> > > > 
> > > > The easiest and most robust fix would be to abort OSDSetBlock and
> > > > restart from the beginning. Can we tell the firmware to abort the
> > > > current bitmap transfer?
> > > 
> > > My idea would be: on entry of OSDSetBlock: if there is a current transfer,
> > > wait for it to finish, call ReleaseBitmap and start all over.
> > 
> > This does not work.  The OSD commands are queued by the
> > firmware upto the point where the data load is done.
> 
> I think it does. "wait for current transfer to finish" just
> waits for the fw to ack to last DMA, ReleaseBitmap() then
> aborts the upload (this wasn't intended, hence the
> "paranoia" comment in the fw source in bitmap_loading_finished()),
> but it should work nevertheless.

OK, Werner is right, this doesn't work :-(
(I misread the firmware source code)

We need a firmware change to allow aborting OSDSetBlock.

Johannes




More information about the linux-dvb mailing list